@digigov/form 2.0.0-2445d5cb → 2.0.0-264e5fff

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 (917) hide show
  1. package/Field/ErrorGroup/index.js +48 -0
  2. package/{Form.stories → Field/ErrorGroup}/package.json +1 -1
  3. package/Field/ErrorGroup.d.ts +15 -0
  4. package/Field/ErrorGroup.js.map +7 -0
  5. package/Field/FieldBase/index.js +40 -26
  6. package/Field/FieldBase.d.ts +1 -1
  7. package/Field/FieldBase.js.map +2 -2
  8. package/Field/FieldBaseContainer/index.js +39 -19
  9. package/Field/FieldBaseContainer.d.ts +2 -2
  10. package/Field/FieldBaseContainer.js.map +2 -2
  11. package/Field/FieldConditional/index.js +11 -3
  12. package/Field/FieldConditional.d.ts +1 -1
  13. package/Field/FieldConditional.js.map +2 -2
  14. package/Field/index.d.ts +1 -1
  15. package/Field/index.js +34 -30
  16. package/Field/index.js.map +2 -2
  17. package/Field/types.d.ts +35 -18
  18. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -2
  19. package/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  20. package/Field/utils/resolveField/index.js +35 -0
  21. package/{Questions/Questions.stories → Field/utils/resolveField}/package.json +1 -1
  22. package/Field/utils/resolveField.d.ts +3 -0
  23. package/Field/utils/resolveField.js.map +7 -0
  24. package/Field/utils/useField/index.js +17 -2
  25. package/Field/utils/useField.d.ts +1 -1
  26. package/Field/utils/useField.js.map +2 -2
  27. package/FieldArray/BaseFieldArray/index.js +76 -0
  28. package/FieldArray/BaseFieldArray/package.json +6 -0
  29. package/FieldArray/BaseFieldArray.d.ts +5 -0
  30. package/FieldArray/BaseFieldArray.js.map +7 -0
  31. package/FieldArray/FieldArray.stories.d.ts +2 -0
  32. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +23 -0
  33. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/package.json +6 -0
  34. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.d.ts +9 -0
  35. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  36. package/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.d.ts +13 -0
  37. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +184 -0
  38. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/package.json +6 -0
  39. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +26 -0
  40. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  41. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +11 -0
  42. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/package.json +6 -0
  43. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
  44. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  45. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.d.ts +2 -0
  46. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.d.ts +2 -0
  47. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.d.ts +2 -0
  48. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.d.ts +2 -0
  49. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.d.ts +2 -0
  50. package/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.d.ts +2 -0
  51. package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +15 -0
  52. package/FieldArray/FormDialog/ArrayDisplay/index.js +57 -0
  53. package/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  54. package/{inputs/DateInput/DateInput.stories → FieldArray/FormDialog/ArrayDisplay}/package.json +1 -1
  55. package/FieldArray/FormDialog/ArrayEditModal/index.js +158 -0
  56. package/{inputs/Checkboxes/Checkboxes.stories → FieldArray/FormDialog/ArrayEditModal}/package.json +1 -1
  57. package/FieldArray/FormDialog/ArrayEditModal.d.ts +24 -0
  58. package/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  59. package/FieldArray/FormDialog/index.d.ts +19 -0
  60. package/FieldArray/FormDialog/index.js +234 -0
  61. package/FieldArray/FormDialog/index.js.map +7 -0
  62. package/{inputs/inputsScenarios → FieldArray/FormDialog}/package.json +1 -1
  63. package/FieldArray/__stories__/CardsWithError.d.ts +15 -0
  64. package/FieldArray/__stories__/Default.d.ts +1 -1
  65. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  66. package/FieldArray/__stories__/WithModal.d.ts +2 -0
  67. package/FieldArray/index.d.ts +11 -2
  68. package/FieldArray/index.js +63 -44
  69. package/FieldArray/index.js.map +2 -2
  70. package/FieldObject/index.d.ts +10 -3
  71. package/FieldObject/index.js +40 -28
  72. package/FieldObject/index.js.map +2 -2
  73. package/Fieldset/FieldsetWithContext.js.map +1 -1
  74. package/Fieldset/index.d.ts +2 -2
  75. package/Fieldset/index.js +5 -5
  76. package/Fieldset/index.js.map +2 -2
  77. package/Fieldset/types.d.ts +2 -3
  78. package/FormBuilder/FormBuilder.stories.d.ts +4 -0
  79. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
  80. package/FormBuilder/__stories__/Default.d.ts +1 -1
  81. package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
  82. package/FormBuilder/index.d.ts +8 -2
  83. package/FormBuilder/index.js +259 -6
  84. package/FormBuilder/index.js.map +3 -3
  85. package/FormContext/index.js +6 -2
  86. package/FormContext.d.ts +3 -2
  87. package/FormContext.js.map +2 -2
  88. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  89. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  90. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  91. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  92. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  93. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  94. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  95. package/MultiplicityField/add-objects/index.js +23 -26
  96. package/MultiplicityField/add-objects.d.ts +1 -1
  97. package/MultiplicityField/add-objects.js.map +2 -2
  98. package/MultiplicityField/index.d.ts +2 -2
  99. package/MultiplicityField/index.js +21 -13
  100. package/MultiplicityField/index.js.map +2 -2
  101. package/MultiplicityField/types.d.ts +3 -3
  102. package/Questions/Questions/index.js +5 -4
  103. package/Questions/Questions.d.ts +1 -1
  104. package/Questions/Questions.js.map +2 -2
  105. package/Questions/Questions.stories.d.ts +2 -0
  106. package/Questions/QuestionsContext.d.ts +1 -2
  107. package/Questions/QuestionsContext.js.map +1 -1
  108. package/Questions/Step/Step.d.ts +1 -1
  109. package/Questions/Step/Step.js.map +1 -1
  110. package/Questions/Step/StepArrayReview.d.ts +1 -1
  111. package/Questions/Step/StepArrayReview.js.map +2 -2
  112. package/Questions/Step/StepContext.d.ts +1 -2
  113. package/Questions/Step/StepContext.js.map +1 -1
  114. package/Questions/Step/StepDescription.d.ts +1 -1
  115. package/Questions/Step/StepDescription.js.map +2 -2
  116. package/Questions/Step/StepForm.d.ts +2 -2
  117. package/Questions/Step/StepForm.js.map +1 -1
  118. package/Questions/Step/StepQuote.d.ts +1 -1
  119. package/Questions/Step/StepQuote.js.map +2 -2
  120. package/Questions/Step/StepTitle/index.js +4 -3
  121. package/Questions/Step/StepTitle.d.ts +1 -1
  122. package/Questions/Step/StepTitle.js.map +2 -2
  123. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  124. package/Questions/Step/getAddMoreFields.js.map +1 -1
  125. package/Questions/Step/types.d.ts +1 -2
  126. package/Questions/__stories__/Default.d.ts +1 -1
  127. package/Questions/getNextStep.d.ts +1 -1
  128. package/Questions/getNextStep.js.map +1 -1
  129. package/Questions/types.d.ts +1 -2
  130. package/cjs/Field/ErrorGroup/index.js +82 -0
  131. package/cjs/Field/ErrorGroup.js.map +7 -0
  132. package/cjs/Field/FieldBase/index.js +39 -25
  133. package/cjs/Field/FieldBase.js.map +2 -2
  134. package/cjs/Field/FieldBaseContainer/index.js +38 -18
  135. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  136. package/cjs/Field/FieldConditional/index.js +11 -3
  137. package/cjs/Field/FieldConditional.js.map +2 -2
  138. package/cjs/Field/index.js +34 -27
  139. package/cjs/Field/index.js.map +2 -2
  140. package/cjs/Field/types.js.map +1 -1
  141. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  142. package/cjs/Field/utils/resolveField/index.js +55 -0
  143. package/cjs/Field/utils/resolveField.js.map +7 -0
  144. package/cjs/Field/utils/useField/index.js +17 -2
  145. package/cjs/Field/utils/useField.js.map +2 -2
  146. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  147. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  148. package/cjs/{FormBuilder/__stories__/Default → FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay}/index.js +22 -31
  149. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  150. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +209 -0
  151. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  152. package/cjs/{FormBuilder/FormBuilder.stories → FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader}/index.js +12 -13
  153. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  154. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js +90 -0
  155. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  156. package/cjs/FieldArray/FormDialog/ArrayEditModal/index.js +186 -0
  157. package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  158. package/cjs/FieldArray/FormDialog/index.js +261 -0
  159. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  160. package/cjs/FieldArray/index.js +62 -43
  161. package/cjs/FieldArray/index.js.map +3 -3
  162. package/cjs/FieldObject/index.js +40 -25
  163. package/cjs/FieldObject/index.js.map +3 -3
  164. package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
  165. package/cjs/Fieldset/index.js +10 -10
  166. package/cjs/Fieldset/index.js.map +3 -3
  167. package/cjs/Fieldset/types.js.map +1 -1
  168. package/cjs/FormBuilder/index.js +274 -5
  169. package/cjs/FormBuilder/index.js.map +3 -3
  170. package/cjs/FormContext/index.js +9 -4
  171. package/cjs/FormContext.js.map +3 -3
  172. package/cjs/MultiplicityField/add-objects/index.js +26 -24
  173. package/cjs/MultiplicityField/add-objects.js.map +3 -3
  174. package/cjs/MultiplicityField/index.js +20 -17
  175. package/cjs/MultiplicityField/index.js.map +3 -3
  176. package/cjs/MultiplicityField/types.js.map +1 -1
  177. package/cjs/Questions/Questions/index.js +5 -4
  178. package/cjs/Questions/Questions.js.map +2 -2
  179. package/cjs/Questions/QuestionsContext.js.map +1 -1
  180. package/cjs/Questions/Step/Step.js.map +1 -1
  181. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  182. package/cjs/Questions/Step/StepContext.js.map +1 -1
  183. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  184. package/cjs/Questions/Step/StepForm.js.map +1 -1
  185. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  186. package/cjs/Questions/Step/StepTitle/index.js +5 -5
  187. package/cjs/Questions/Step/StepTitle.js.map +3 -3
  188. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  189. package/cjs/Questions/Step/types.js.map +1 -1
  190. package/cjs/Questions/getNextStep.js.map +1 -1
  191. package/cjs/Questions/types.js.map +1 -1
  192. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  193. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  194. package/cjs/hooks/utils/index.js +98 -0
  195. package/cjs/hooks/utils.js.map +7 -0
  196. package/cjs/index.js +11 -155
  197. package/cjs/index.js.map +4 -4
  198. package/cjs/inputs/AutoCompleteInput/index.js +12 -9
  199. package/cjs/inputs/AutoCompleteInput/index.js.map +3 -3
  200. package/cjs/inputs/Checkboxes/index.js +70 -65
  201. package/cjs/inputs/Checkboxes/index.js.map +3 -3
  202. package/cjs/inputs/DateInput/index.js +59 -25
  203. package/cjs/inputs/DateInput/index.js.map +3 -3
  204. package/cjs/inputs/DateTimeInput/index.js +250 -0
  205. package/cjs/inputs/DateTimeInput/index.js.map +7 -0
  206. package/cjs/inputs/FileInput/index.js +64 -35
  207. package/cjs/inputs/FileInput/index.js.map +3 -3
  208. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  209. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  210. package/cjs/inputs/ImageInput/index.js +56 -19
  211. package/cjs/inputs/ImageInput/index.js.map +3 -3
  212. package/cjs/inputs/Input/index.js +33 -8
  213. package/cjs/inputs/Input/index.js.map +3 -3
  214. package/cjs/inputs/Label/index.js +3 -3
  215. package/cjs/inputs/Label/index.js.map +3 -3
  216. package/cjs/inputs/OtpInput/index.js +36 -30
  217. package/cjs/inputs/OtpInput/index.js.map +2 -2
  218. package/cjs/inputs/Radio/index.js +60 -11
  219. package/cjs/inputs/Radio/index.js.map +3 -3
  220. package/cjs/inputs/Select/index.js +11 -5
  221. package/cjs/inputs/Select/index.js.map +3 -3
  222. package/cjs/{Field/utils → inputs/registry}/index.js +31 -5
  223. package/cjs/inputs/registry.js.map +7 -0
  224. package/cjs/lazy/index.js +54 -35
  225. package/cjs/lazy.js.map +3 -3
  226. package/cjs/registry/index.js +85 -61
  227. package/cjs/registry.js.map +3 -3
  228. package/cjs/types.js.map +1 -1
  229. package/cjs/utils/index.js +31 -7
  230. package/cjs/utils.js.map +2 -2
  231. package/cjs/validators/index.js +70 -86
  232. package/cjs/validators/index.js.map +3 -3
  233. package/cjs/validators/types.js.map +1 -1
  234. package/cjs/validators/utils/amka/index.js +60 -0
  235. package/cjs/validators/utils/amka.js.map +7 -0
  236. package/cjs/validators/utils/date/index.js +161 -0
  237. package/cjs/validators/utils/date.js.map +7 -0
  238. package/cjs/validators/utils/datetime/index.js +245 -0
  239. package/cjs/validators/utils/datetime.js.map +7 -0
  240. package/cjs/{Form.stories → validators/utils/email}/index.js +20 -7
  241. package/cjs/validators/utils/email.js.map +7 -0
  242. package/cjs/validators/utils/file/index.js +30 -17
  243. package/cjs/validators/utils/file.js.map +2 -2
  244. package/cjs/validators/utils/iban.js.map +1 -1
  245. package/cjs/validators/utils/image.js.map +1 -1
  246. package/cjs/validators/utils/index.js +17 -5
  247. package/cjs/validators/utils/index.js.map +2 -2
  248. package/cjs/validators/utils/int/index.js +1 -1
  249. package/cjs/validators/utils/int.js.map +2 -2
  250. package/cjs/validators/utils/number/index.js +1 -1
  251. package/cjs/validators/utils/number.js.map +2 -2
  252. package/cjs/validators/utils/otp.js.map +1 -1
  253. package/cjs/validators/utils/phone.js.map +2 -2
  254. package/cjs/validators/utils/postal_code.js.map +1 -1
  255. package/cjs/validators/utils/text_limit.js.map +1 -1
  256. package/cjs/validators/utils/uuid4.js.map +2 -2
  257. package/hooks/useFieldFocusManager/index.js +116 -0
  258. package/hooks/useFieldFocusManager/package.json +6 -0
  259. package/hooks/useFieldFocusManager.d.ts +25 -0
  260. package/hooks/useFieldFocusManager.js.map +7 -0
  261. package/hooks/utils/index.js +73 -0
  262. package/{Field → hooks}/utils/package.json +1 -1
  263. package/hooks/utils.d.ts +18 -0
  264. package/hooks/utils.js.map +7 -0
  265. package/index.d.ts +5 -8
  266. package/index.js +9 -152
  267. package/index.js.map +4 -4
  268. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  269. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  270. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  271. package/inputs/AutoCompleteInput/index.d.ts +4 -4
  272. package/inputs/AutoCompleteInput/index.js +12 -9
  273. package/inputs/AutoCompleteInput/index.js.map +2 -2
  274. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  275. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  276. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  277. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  278. package/inputs/Checkboxes/index.d.ts +6 -4
  279. package/inputs/Checkboxes/index.js +74 -65
  280. package/inputs/Checkboxes/index.js.map +2 -2
  281. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  282. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  283. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  284. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  285. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  286. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  287. package/inputs/DateInput/index.d.ts +2 -6
  288. package/inputs/DateInput/index.js +62 -25
  289. package/inputs/DateInput/index.js.map +2 -2
  290. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +14 -0
  291. package/inputs/DateTimeInput/__stories__/Default.d.ts +3 -0
  292. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  293. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  294. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  295. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  296. package/inputs/DateTimeInput/index.d.ts +10 -0
  297. package/inputs/DateTimeInput/index.js +220 -0
  298. package/inputs/DateTimeInput/index.js.map +7 -0
  299. package/inputs/DateTimeInput/package.json +6 -0
  300. package/inputs/FileInput/FileInput.stories.d.ts +3 -0
  301. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  302. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  303. package/inputs/FileInput/index.d.ts +18 -2
  304. package/inputs/FileInput/index.js +65 -36
  305. package/inputs/FileInput/index.js.map +2 -2
  306. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  307. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  308. package/inputs/ImageInput/__stories__/MaxSize.d.ts +3 -0
  309. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  310. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  311. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  312. package/inputs/{DateInput/__stories__/Default → ImageInput/__stories__/logo.d}/package.json +1 -1
  313. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  314. package/inputs/ImageInput/index.d.ts +10 -2
  315. package/inputs/ImageInput/index.js +56 -19
  316. package/inputs/ImageInput/index.js.map +2 -2
  317. package/inputs/Input/Input.stories.d.ts +6 -0
  318. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  319. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  320. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  321. package/inputs/Input/__stories__/Email.d.ts +3 -0
  322. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  323. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  324. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  325. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  326. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  327. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  328. package/inputs/Input/__stories__/Rate.d.ts +3 -0
  329. package/inputs/Input/__stories__/String.d.ts +1 -1
  330. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
  331. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  332. package/inputs/Input/index.d.ts +5 -2
  333. package/inputs/Input/index.js +31 -6
  334. package/inputs/Input/index.js.map +3 -3
  335. package/inputs/Label/Label.stories.d.ts +2 -0
  336. package/inputs/Label/__stories__/Default.d.ts +1 -1
  337. package/inputs/Label/index.d.ts +1 -3
  338. package/inputs/Label/index.js +2 -2
  339. package/inputs/Label/index.js.map +2 -2
  340. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  341. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  342. package/inputs/OtpInput/index.d.ts +1 -5
  343. package/inputs/OtpInput/index.js +36 -30
  344. package/inputs/OtpInput/index.js.map +2 -2
  345. package/inputs/Radio/Radio.stories.d.ts +2 -0
  346. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  347. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  348. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  349. package/inputs/Radio/index.d.ts +9 -3
  350. package/inputs/Radio/index.js +61 -9
  351. package/inputs/Radio/index.js.map +3 -3
  352. package/inputs/Select/Select.stories.d.ts +2 -0
  353. package/inputs/Select/__stories__/Default.d.ts +1 -1
  354. package/inputs/Select/index.d.ts +7 -4
  355. package/inputs/Select/index.js +13 -4
  356. package/inputs/Select/index.js.map +2 -2
  357. package/{Field/utils → inputs/registry}/index.js +28 -3
  358. package/{locales/el → inputs/registry}/package.json +1 -1
  359. package/inputs/registry.d.ts +5 -0
  360. package/inputs/registry.js.map +7 -0
  361. package/lazy/index.js +80 -65
  362. package/package.json +8 -8
  363. package/registry/index.js +129 -106
  364. package/src/Field/ErrorGroup.tsx +84 -0
  365. package/src/Field/FieldBase.tsx +43 -26
  366. package/src/Field/FieldBaseContainer.tsx +71 -47
  367. package/src/Field/FieldConditional.tsx +9 -1
  368. package/src/Field/doc.mdx +207 -0
  369. package/src/Field/index.tsx +36 -38
  370. package/src/Field/types.tsx +39 -21
  371. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  372. package/src/Field/utils/resolveField.ts +58 -0
  373. package/src/Field/utils/useField.ts +17 -3
  374. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  375. package/src/FieldArray/FieldArray.stories.js +2 -0
  376. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.tsx +45 -0
  377. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +14 -0
  378. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +337 -0
  379. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  380. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.tsx +88 -0
  381. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  382. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  383. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.tsx +75 -0
  384. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  385. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.tsx +88 -0
  386. package/src/FieldArray/FormDialog/ArrayDisplay/index.test.tsx +44 -0
  387. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +67 -0
  388. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +241 -0
  389. package/src/FieldArray/FormDialog/index.tsx +302 -0
  390. package/src/FieldArray/__stories__/CardsWithError.tsx +124 -0
  391. package/src/FieldArray/__stories__/Default.tsx +2 -1
  392. package/src/FieldArray/__stories__/WithExactLength.tsx +2 -1
  393. package/src/FieldArray/__stories__/WithModal.tsx +160 -0
  394. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  395. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  396. package/src/FieldArray/__tests__/multiplicity-optional.spec.tsx +232 -0
  397. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +170 -0
  398. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  399. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  400. package/src/FieldArray/index.spec.tsx +355 -0
  401. package/src/FieldArray/index.test.tsx +12 -0
  402. package/src/FieldArray/index.tsx +84 -63
  403. package/src/FieldObject/index.tsx +50 -31
  404. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  405. package/src/Fieldset/index.tsx +6 -6
  406. package/src/Fieldset/types.tsx +2 -2
  407. package/src/FormBuilder/FormBuilder.stories.js +5 -0
  408. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
  409. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  410. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
  411. package/src/FormBuilder/{FormBuilder.mdx → doc.mdx} +27 -35
  412. package/src/FormBuilder/index.test.tsx +12 -0
  413. package/src/FormBuilder/index.tsx +315 -7
  414. package/src/FormBuilder/interaction.test.tsx +40 -0
  415. package/src/FormBuilder/scenarios.test.tsx +1043 -132
  416. package/src/FormContext.tsx +7 -3
  417. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  418. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  419. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +2 -4
  420. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  421. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  422. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  423. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  424. package/src/MultiplicityField/add-objects.tsx +24 -29
  425. package/src/MultiplicityField/{MultiplicityField.mdx → doc.mdx} +112 -98
  426. package/src/MultiplicityField/index.test.tsx +4 -0
  427. package/src/MultiplicityField/index.tsx +22 -14
  428. package/src/MultiplicityField/types.ts +6 -3
  429. package/src/Questions/Questions.stories.js +3 -0
  430. package/src/Questions/Questions.tsx +6 -6
  431. package/src/Questions/QuestionsContext.tsx +1 -1
  432. package/src/Questions/Step/Step.tsx +1 -1
  433. package/src/Questions/Step/StepArrayReview.tsx +3 -3
  434. package/src/Questions/Step/StepContext.tsx +1 -1
  435. package/src/Questions/Step/StepDescription.tsx +2 -1
  436. package/src/Questions/Step/StepForm.tsx +2 -2
  437. package/src/Questions/Step/StepQuote.tsx +2 -1
  438. package/src/Questions/Step/StepTitle.tsx +5 -3
  439. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  440. package/src/Questions/Step/types.tsx +1 -1
  441. package/src/Questions/__snapshots__/index.spec.tsx.snap +11 -5
  442. package/src/Questions/__stories__/Default.tsx +1 -1
  443. package/src/Questions/{index.mdx → doc.mdx} +30 -53
  444. package/src/Questions/getNextStep.tsx +1 -1
  445. package/src/Questions/index.spec.tsx +14 -2
  446. package/src/Questions/index.test.tsx +4 -0
  447. package/src/Questions/types.tsx +1 -1
  448. package/src/create-simple-form.mdx +2 -6
  449. package/src/{index.mdx → doc.mdx} +29 -18
  450. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  451. package/src/hooks/__tests__/utils.spec.ts +568 -0
  452. package/src/hooks/useFieldFocusManager.ts +162 -0
  453. package/src/hooks/utils.ts +122 -0
  454. package/src/index.ts +6 -0
  455. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  456. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +3 -11
  457. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +2 -9
  458. package/src/inputs/AutoCompleteInput/{index.mdx → doc.mdx} +2 -13
  459. package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
  460. package/src/inputs/AutoCompleteInput/index.tsx +39 -35
  461. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  462. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  463. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  464. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  465. package/src/inputs/Checkboxes/{index.mdx → doc.mdx} +5 -15
  466. package/src/inputs/Checkboxes/index.test.tsx +20 -17
  467. package/src/inputs/Checkboxes/index.tsx +105 -94
  468. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  469. package/src/inputs/DateInput/__stories__/Default.tsx +8 -13
  470. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  471. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  472. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  473. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  474. package/src/inputs/DateInput/{index.mdx → doc.mdx} +1 -8
  475. package/src/inputs/DateInput/index.test.tsx +20 -0
  476. package/src/inputs/DateInput/index.tsx +75 -25
  477. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +14 -0
  478. package/src/inputs/DateTimeInput/__stories__/Default.tsx +25 -0
  479. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  480. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  481. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  482. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  483. package/src/inputs/DateTimeInput/doc.mdx +16 -0
  484. package/src/inputs/DateTimeInput/index.test.tsx +40 -0
  485. package/src/inputs/DateTimeInput/index.tsx +246 -0
  486. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  487. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  488. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  489. package/src/inputs/FileInput/{index.mdx → doc.mdx} +1 -5
  490. package/src/inputs/FileInput/index.test.tsx +8 -0
  491. package/src/inputs/FileInput/index.tsx +102 -43
  492. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  493. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  494. package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → MaxSize.tsx} +5 -3
  495. package/src/inputs/ImageInput/__stories__/WithInitialValues.tsx +45 -0
  496. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +3 -1
  497. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  498. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  499. package/src/inputs/ImageInput/doc.mdx +23 -0
  500. package/src/inputs/ImageInput/index.test.tsx +12 -4
  501. package/src/inputs/ImageInput/index.tsx +105 -52
  502. package/src/inputs/Input/Input.stories.js +7 -0
  503. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  504. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  505. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  506. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  507. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  508. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  509. package/src/inputs/Input/__stories__/LandlineNumber.tsx +3 -2
  510. package/src/inputs/Input/__stories__/MobilePhone.tsx +2 -1
  511. package/src/inputs/Input/__stories__/PhoneNumber.tsx +2 -1
  512. package/src/inputs/Input/__stories__/PostalCode.tsx +2 -1
  513. package/src/inputs/Input/__stories__/Rate.tsx +25 -0
  514. package/src/inputs/Input/__stories__/String.tsx +1 -1
  515. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
  516. package/src/inputs/Input/__stories__/TextWithLimit.tsx +2 -1
  517. package/src/inputs/Input/doc.mdx +56 -0
  518. package/src/inputs/Input/index.test.tsx +20 -0
  519. package/src/inputs/Input/index.tsx +55 -35
  520. package/src/inputs/Label/Label.stories.js +3 -0
  521. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  522. package/src/inputs/Label/doc.mdx +14 -0
  523. package/src/inputs/Label/index.test.tsx +4 -0
  524. package/src/inputs/Label/index.tsx +3 -7
  525. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  526. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  527. package/src/inputs/OtpInput/{index.mdx → doc.mdx} +1 -8
  528. package/src/inputs/OtpInput/index.test.tsx +4 -0
  529. package/src/inputs/OtpInput/index.tsx +45 -34
  530. package/src/inputs/Radio/Radio.stories.js +3 -0
  531. package/src/inputs/Radio/__stories__/Conditional.tsx +3 -2
  532. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  533. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  534. package/src/inputs/Radio/{index.mdx → doc.mdx} +5 -15
  535. package/src/inputs/Radio/index.test.tsx +4 -0
  536. package/src/inputs/Radio/index.tsx +91 -13
  537. package/src/inputs/Select/Select.stories.js +3 -0
  538. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  539. package/src/inputs/Select/{index.mdx → doc.mdx} +1 -5
  540. package/src/inputs/Select/index.test.tsx +4 -0
  541. package/src/inputs/Select/index.tsx +22 -9
  542. package/src/{Field/utils/index.ts → inputs/registry.ts} +29 -2
  543. package/src/installation.mdx +2 -5
  544. package/src/lazy.js +80 -62
  545. package/src/registry.js +122 -100
  546. package/src/types.tsx +17 -7
  547. package/src/utils.ts +43 -10
  548. package/src/validators/index.ts +134 -100
  549. package/src/validators/types.ts +1 -1
  550. package/src/validators/utils/amka.ts +39 -0
  551. package/src/validators/utils/date.ts +131 -0
  552. package/src/validators/utils/datetime.ts +222 -0
  553. package/src/validators/utils/email.ts +11 -0
  554. package/src/validators/utils/file.ts +35 -19
  555. package/src/validators/utils/iban.ts +2 -2
  556. package/src/validators/utils/image.ts +2 -2
  557. package/src/validators/utils/index.ts +15 -6
  558. package/src/validators/utils/int.ts +2 -2
  559. package/src/validators/utils/number.ts +2 -2
  560. package/src/validators/utils/otp.ts +2 -2
  561. package/src/validators/utils/phone.ts +3 -3
  562. package/src/validators/utils/postal_code.ts +3 -3
  563. package/src/validators/utils/text_limit.ts +2 -2
  564. package/src/validators/utils/uuid4.ts +2 -1
  565. package/src/validators/validators.spec.ts +3 -3
  566. package/types.d.ts +13 -7
  567. package/types.js.map +1 -1
  568. package/utils/index.js +30 -7
  569. package/utils.d.ts +4 -1
  570. package/utils.js.map +2 -2
  571. package/validators/index.d.ts +6 -6
  572. package/validators/index.js +78 -87
  573. package/validators/index.js.map +2 -2
  574. package/validators/types.d.ts +1 -1
  575. package/validators/utils/amka/index.js +36 -0
  576. package/validators/utils/amka/package.json +6 -0
  577. package/validators/utils/amka.d.ts +6 -0
  578. package/validators/utils/amka.js.map +7 -0
  579. package/validators/utils/date/index.js +126 -0
  580. package/validators/utils/date/package.json +6 -0
  581. package/validators/utils/date.d.ts +9 -0
  582. package/validators/utils/date.js.map +7 -0
  583. package/validators/utils/datetime/index.js +210 -0
  584. package/validators/utils/datetime/package.json +6 -0
  585. package/validators/utils/datetime.d.ts +9 -0
  586. package/validators/utils/datetime.js.map +7 -0
  587. package/validators/utils/email/index.js +16 -0
  588. package/validators/utils/email/package.json +6 -0
  589. package/validators/utils/email.d.ts +5 -0
  590. package/validators/utils/email.js.map +7 -0
  591. package/validators/utils/file/index.js +30 -17
  592. package/validators/utils/file.d.ts +2 -2
  593. package/validators/utils/file.js.map +2 -2
  594. package/validators/utils/iban.d.ts +2 -2
  595. package/validators/utils/iban.js.map +1 -1
  596. package/validators/utils/image.d.ts +2 -2
  597. package/validators/utils/image.js.map +1 -1
  598. package/validators/utils/index.d.ts +5 -2
  599. package/validators/utils/index.js +13 -4
  600. package/validators/utils/index.js.map +2 -2
  601. package/validators/utils/int/index.js +1 -1
  602. package/validators/utils/int.d.ts +1 -1
  603. package/validators/utils/int.js.map +2 -2
  604. package/validators/utils/number/index.js +1 -1
  605. package/validators/utils/number.d.ts +1 -1
  606. package/validators/utils/number.js.map +2 -2
  607. package/validators/utils/otp.d.ts +2 -2
  608. package/validators/utils/otp.js.map +1 -1
  609. package/validators/utils/phone.d.ts +3 -3
  610. package/validators/utils/phone.js.map +2 -2
  611. package/validators/utils/postal_code.d.ts +3 -3
  612. package/validators/utils/postal_code.js.map +1 -1
  613. package/validators/utils/text_limit.d.ts +2 -2
  614. package/validators/utils/text_limit.js.map +1 -1
  615. package/validators/utils/uuid4.js.map +2 -2
  616. package/Field/utils/calculateField/index.js +0 -27
  617. package/Field/utils/calculateField/package.json +0 -6
  618. package/Field/utils/calculateField.d.ts +0 -2
  619. package/Field/utils/calculateField.js.map +0 -7
  620. package/Field/utils/index.d.ts +0 -3
  621. package/Field/utils/index.js.map +0 -7
  622. package/FieldArray/FieldArray.stories/index.js +0 -14
  623. package/FieldArray/FieldArray.stories/package.json +0 -6
  624. package/FieldArray/FieldArray.stories.js.map +0 -7
  625. package/FieldArray/__stories__/Default/index.js +0 -95
  626. package/FieldArray/__stories__/Default/package.json +0 -6
  627. package/FieldArray/__stories__/Default.js.map +0 -7
  628. package/FieldArray/__stories__/WithExactLength/index.js +0 -95
  629. package/FieldArray/__stories__/WithExactLength/package.json +0 -6
  630. package/FieldArray/__stories__/WithExactLength.js.map +0 -7
  631. package/Form.stories/index.js +0 -7
  632. package/Form.stories.js.map +0 -7
  633. package/FormBuilder/FormBuilder.stories/index.js +0 -12
  634. package/FormBuilder/FormBuilder.stories/package.json +0 -6
  635. package/FormBuilder/FormBuilder.stories.js.map +0 -7
  636. package/FormBuilder/__stories__/Default/index.js +0 -32
  637. package/FormBuilder/__stories__/Default/package.json +0 -6
  638. package/FormBuilder/__stories__/Default.js.map +0 -7
  639. package/FormBuilder/index.test.d.ts +0 -1
  640. package/FormBuilder/scenarios.test.d.ts +0 -88
  641. package/MultiplicityField/MultiplicityField.stories/index.js +0 -22
  642. package/MultiplicityField/MultiplicityField.stories/package.json +0 -6
  643. package/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  644. package/MultiplicityField/__stories__/Default/index.js +0 -100
  645. package/MultiplicityField/__stories__/Default/package.json +0 -6
  646. package/MultiplicityField/__stories__/Default.js.map +0 -7
  647. package/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -70
  648. package/MultiplicityField/__stories__/PreviewDisplay/package.json +0 -6
  649. package/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  650. package/MultiplicityField/__stories__/WithExactLength/index.js +0 -97
  651. package/MultiplicityField/__stories__/WithExactLength/package.json +0 -6
  652. package/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  653. package/MultiplicityField/__stories__/WithMaxLength/index.js +0 -100
  654. package/MultiplicityField/__stories__/WithMaxLength/package.json +0 -6
  655. package/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  656. package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -101
  657. package/MultiplicityField/__stories__/WithMinAndMaxLength/package.json +0 -6
  658. package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  659. package/MultiplicityField/__stories__/WithMinLength/index.js +0 -100
  660. package/MultiplicityField/__stories__/WithMinLength/package.json +0 -6
  661. package/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  662. package/MultiplicityField/index.test.d.ts +0 -1
  663. package/Questions/Questions.stories/index.js +0 -12
  664. package/Questions/Questions.stories.js.map +0 -7
  665. package/Questions/__stories__/Default/index.js +0 -108
  666. package/Questions/__stories__/Default/package.json +0 -6
  667. package/Questions/__stories__/Default.js.map +0 -7
  668. package/Questions/index.spec.d.ts +0 -1
  669. package/Questions/index.test.d.ts +0 -1
  670. package/cjs/Field/utils/calculateField/index.js +0 -50
  671. package/cjs/Field/utils/calculateField.js.map +0 -7
  672. package/cjs/Field/utils/index.js.map +0 -7
  673. package/cjs/FieldArray/FieldArray.stories/index.js +0 -48
  674. package/cjs/FieldArray/FieldArray.stories.js.map +0 -7
  675. package/cjs/FieldArray/__stories__/Default/index.js +0 -128
  676. package/cjs/FieldArray/__stories__/Default.js.map +0 -7
  677. package/cjs/FieldArray/__stories__/WithExactLength/index.js +0 -128
  678. package/cjs/FieldArray/__stories__/WithExactLength.js.map +0 -7
  679. package/cjs/Form.stories.js.map +0 -7
  680. package/cjs/FormBuilder/FormBuilder.stories.js.map +0 -7
  681. package/cjs/FormBuilder/__stories__/Default.js.map +0 -7
  682. package/cjs/MultiplicityField/MultiplicityField.stories/index.js +0 -60
  683. package/cjs/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  684. package/cjs/MultiplicityField/__stories__/Default/index.js +0 -133
  685. package/cjs/MultiplicityField/__stories__/Default.js.map +0 -7
  686. package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -86
  687. package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  688. package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +0 -130
  689. package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  690. package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +0 -133
  691. package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  692. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -134
  693. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  694. package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +0 -133
  695. package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  696. package/cjs/Questions/Questions.stories/index.js +0 -45
  697. package/cjs/Questions/Questions.stories.js.map +0 -7
  698. package/cjs/Questions/__stories__/Default/index.js +0 -136
  699. package/cjs/Questions/__stories__/Default.js.map +0 -7
  700. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -48
  701. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  702. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -83
  703. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  704. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -84
  705. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  706. package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +0 -51
  707. package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  708. package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +0 -133
  709. package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  710. package/cjs/inputs/Checkboxes/__stories__/Default/index.js +0 -77
  711. package/cjs/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  712. package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -78
  713. package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  714. package/cjs/inputs/DateInput/DateInput.stories/index.js +0 -45
  715. package/cjs/inputs/DateInput/DateInput.stories.js.map +0 -7
  716. package/cjs/inputs/DateInput/__stories__/Default/index.js +0 -61
  717. package/cjs/inputs/DateInput/__stories__/Default.js.map +0 -7
  718. package/cjs/inputs/FileInput/FileInput.stories/index.js +0 -45
  719. package/cjs/inputs/FileInput/FileInput.stories.js.map +0 -7
  720. package/cjs/inputs/FileInput/__stories__/Default/index.js +0 -61
  721. package/cjs/inputs/FileInput/__stories__/Default.js.map +0 -7
  722. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +0 -51
  723. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  724. package/cjs/inputs/ImageInput/__stories__/Default/index.js +0 -63
  725. package/cjs/inputs/ImageInput/__stories__/Default.js.map +0 -7
  726. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -71
  727. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  728. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -68
  729. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  730. package/cjs/inputs/Input/Input.stories/index.js +0 -72
  731. package/cjs/inputs/Input/Input.stories.js.map +0 -7
  732. package/cjs/inputs/Input/__stories__/AFM/index.js +0 -63
  733. package/cjs/inputs/Input/__stories__/AFM.js.map +0 -7
  734. package/cjs/inputs/Input/__stories__/Boolean/index.js +0 -64
  735. package/cjs/inputs/Input/__stories__/Boolean.js.map +0 -7
  736. package/cjs/inputs/Input/__stories__/IBAN/index.js +0 -64
  737. package/cjs/inputs/Input/__stories__/IBAN.js.map +0 -7
  738. package/cjs/inputs/Input/__stories__/Integer/index.js +0 -78
  739. package/cjs/inputs/Input/__stories__/Integer.js.map +0 -7
  740. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +0 -67
  741. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  742. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -67
  743. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  744. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -66
  745. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  746. package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -64
  747. package/cjs/inputs/Input/__stories__/PostalCode.js.map +0 -7
  748. package/cjs/inputs/Input/__stories__/String/index.js +0 -64
  749. package/cjs/inputs/Input/__stories__/String.js.map +0 -7
  750. package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +0 -64
  751. package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  752. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  753. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  754. package/cjs/inputs/Label/Label.stories/index.js +0 -45
  755. package/cjs/inputs/Label/Label.stories.js.map +0 -7
  756. package/cjs/inputs/Label/__stories__/Default/index.js +0 -72
  757. package/cjs/inputs/Label/__stories__/Default.js.map +0 -7
  758. package/cjs/inputs/OtpInput/OtpInput.stories/index.js +0 -45
  759. package/cjs/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  760. package/cjs/inputs/OtpInput/__stories__/Default/index.js +0 -64
  761. package/cjs/inputs/OtpInput/__stories__/Default.js.map +0 -7
  762. package/cjs/inputs/Radio/Radio.stories/index.js +0 -51
  763. package/cjs/inputs/Radio/Radio.stories.js.map +0 -7
  764. package/cjs/inputs/Radio/__stories__/Conditional/index.js +0 -133
  765. package/cjs/inputs/Radio/__stories__/Conditional.js.map +0 -7
  766. package/cjs/inputs/Radio/__stories__/Default/index.js +0 -81
  767. package/cjs/inputs/Radio/__stories__/Default.js.map +0 -7
  768. package/cjs/inputs/Radio/__stories__/WithDivider/index.js +0 -82
  769. package/cjs/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  770. package/cjs/inputs/Select/Select.stories/index.js +0 -45
  771. package/cjs/inputs/Select/Select.stories.js.map +0 -7
  772. package/cjs/inputs/Select/__stories__/Default/index.js +0 -86
  773. package/cjs/inputs/Select/__stories__/Default.js.map +0 -7
  774. package/cjs/inputs/inputsScenarios/index.js +0 -540
  775. package/cjs/inputs/inputsScenarios.js.map +0 -7
  776. package/cjs/locales/el/index.js +0 -35
  777. package/cjs/locales/el.js.map +0 -7
  778. package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -14
  779. package/inputs/AutoCompleteInput/AutoComplete.stories/package.json +0 -6
  780. package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  781. package/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -50
  782. package/inputs/AutoCompleteInput/__stories__/Default/package.json +0 -6
  783. package/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  784. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -51
  785. package/inputs/AutoCompleteInput/__stories__/Multiple/package.json +0 -6
  786. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  787. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  788. package/inputs/Checkboxes/Checkboxes.stories/index.js +0 -16
  789. package/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  790. package/inputs/Checkboxes/__stories__/Conditional/index.js +0 -100
  791. package/inputs/Checkboxes/__stories__/Conditional/package.json +0 -6
  792. package/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  793. package/inputs/Checkboxes/__stories__/Default/index.js +0 -44
  794. package/inputs/Checkboxes/__stories__/Default/package.json +0 -6
  795. package/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  796. package/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -45
  797. package/inputs/Checkboxes/__stories__/WithDivider/package.json +0 -6
  798. package/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  799. package/inputs/Checkboxes/index.test.d.ts +0 -1
  800. package/inputs/DateInput/DateInput.stories/index.js +0 -12
  801. package/inputs/DateInput/DateInput.stories.js.map +0 -7
  802. package/inputs/DateInput/__stories__/Default/index.js +0 -28
  803. package/inputs/DateInput/__stories__/Default.js.map +0 -7
  804. package/inputs/DateInput/index.test.d.ts +0 -1
  805. package/inputs/FileInput/FileInput.stories/index.js +0 -12
  806. package/inputs/FileInput/FileInput.stories/package.json +0 -6
  807. package/inputs/FileInput/FileInput.stories.js.map +0 -7
  808. package/inputs/FileInput/__stories__/Default/index.js +0 -28
  809. package/inputs/FileInput/__stories__/Default/package.json +0 -6
  810. package/inputs/FileInput/__stories__/Default.js.map +0 -7
  811. package/inputs/FileInput/index.test.d.ts +0 -1
  812. package/inputs/ImageInput/ImageInput.stories/index.js +0 -16
  813. package/inputs/ImageInput/ImageInput.stories/package.json +0 -6
  814. package/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  815. package/inputs/ImageInput/__stories__/Default/index.js +0 -30
  816. package/inputs/ImageInput/__stories__/Default/package.json +0 -6
  817. package/inputs/ImageInput/__stories__/Default.js.map +0 -7
  818. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -38
  819. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/package.json +0 -6
  820. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  821. package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -35
  822. package/inputs/ImageInput/__stories__/WithInvalidImageSize/package.json +0 -6
  823. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  824. package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  825. package/inputs/ImageInput/index.test.d.ts +0 -1
  826. package/inputs/Input/Input.stories/index.js +0 -30
  827. package/inputs/Input/Input.stories/package.json +0 -6
  828. package/inputs/Input/Input.stories.js.map +0 -7
  829. package/inputs/Input/__stories__/AFM/index.js +0 -30
  830. package/inputs/Input/__stories__/AFM/package.json +0 -6
  831. package/inputs/Input/__stories__/AFM.js.map +0 -7
  832. package/inputs/Input/__stories__/Boolean/index.js +0 -31
  833. package/inputs/Input/__stories__/Boolean/package.json +0 -6
  834. package/inputs/Input/__stories__/Boolean.js.map +0 -7
  835. package/inputs/Input/__stories__/IBAN/index.js +0 -31
  836. package/inputs/Input/__stories__/IBAN/package.json +0 -6
  837. package/inputs/Input/__stories__/IBAN.js.map +0 -7
  838. package/inputs/Input/__stories__/Integer/index.js +0 -45
  839. package/inputs/Input/__stories__/Integer/package.json +0 -6
  840. package/inputs/Input/__stories__/Integer.js.map +0 -7
  841. package/inputs/Input/__stories__/LandlineNumber/index.js +0 -34
  842. package/inputs/Input/__stories__/LandlineNumber/package.json +0 -6
  843. package/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  844. package/inputs/Input/__stories__/MobilePhone/index.js +0 -34
  845. package/inputs/Input/__stories__/MobilePhone/package.json +0 -6
  846. package/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  847. package/inputs/Input/__stories__/PhoneNumber/index.js +0 -33
  848. package/inputs/Input/__stories__/PhoneNumber/package.json +0 -6
  849. package/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  850. package/inputs/Input/__stories__/PostalCode/index.js +0 -31
  851. package/inputs/Input/__stories__/PostalCode/package.json +0 -6
  852. package/inputs/Input/__stories__/PostalCode.js.map +0 -7
  853. package/inputs/Input/__stories__/String/index.js +0 -31
  854. package/inputs/Input/__stories__/String/package.json +0 -6
  855. package/inputs/Input/__stories__/String.js.map +0 -7
  856. package/inputs/Input/__stories__/TextWithLimit/index.js +0 -31
  857. package/inputs/Input/__stories__/TextWithLimit/package.json +0 -6
  858. package/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  859. package/inputs/Input/index.test.d.ts +0 -1
  860. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  861. package/inputs/Input/inputsInputScenarios/package.json +0 -6
  862. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  863. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  864. package/inputs/Label/Label.stories/index.js +0 -12
  865. package/inputs/Label/Label.stories/package.json +0 -6
  866. package/inputs/Label/Label.stories.js.map +0 -7
  867. package/inputs/Label/__stories__/Default/index.js +0 -39
  868. package/inputs/Label/__stories__/Default/package.json +0 -6
  869. package/inputs/Label/__stories__/Default.js.map +0 -7
  870. package/inputs/Label/index.test.d.ts +0 -1
  871. package/inputs/OtpInput/OtpInput.stories/index.js +0 -12
  872. package/inputs/OtpInput/OtpInput.stories/package.json +0 -6
  873. package/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  874. package/inputs/OtpInput/__stories__/Default/index.js +0 -31
  875. package/inputs/OtpInput/__stories__/Default/package.json +0 -6
  876. package/inputs/OtpInput/__stories__/Default.js.map +0 -7
  877. package/inputs/OtpInput/index.test.d.ts +0 -1
  878. package/inputs/Radio/Radio.stories/index.js +0 -16
  879. package/inputs/Radio/Radio.stories/package.json +0 -6
  880. package/inputs/Radio/Radio.stories.js.map +0 -7
  881. package/inputs/Radio/__stories__/Conditional/index.js +0 -100
  882. package/inputs/Radio/__stories__/Conditional/package.json +0 -6
  883. package/inputs/Radio/__stories__/Conditional.js.map +0 -7
  884. package/inputs/Radio/__stories__/Default/index.js +0 -48
  885. package/inputs/Radio/__stories__/Default/package.json +0 -6
  886. package/inputs/Radio/__stories__/Default.js.map +0 -7
  887. package/inputs/Radio/__stories__/WithDivider/index.js +0 -49
  888. package/inputs/Radio/__stories__/WithDivider/package.json +0 -6
  889. package/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  890. package/inputs/Radio/index.test.d.ts +0 -1
  891. package/inputs/Select/Select.stories/index.js +0 -12
  892. package/inputs/Select/Select.stories/package.json +0 -6
  893. package/inputs/Select/Select.stories.js.map +0 -7
  894. package/inputs/Select/__stories__/Default/index.js +0 -53
  895. package/inputs/Select/__stories__/Default/package.json +0 -6
  896. package/inputs/Select/__stories__/Default.js.map +0 -7
  897. package/inputs/Select/index.test.d.ts +0 -1
  898. package/inputs/inputsScenarios/index.js +0 -506
  899. package/inputs/inputsScenarios.d.ts +0 -338
  900. package/inputs/inputsScenarios.js.map +0 -7
  901. package/lazy.d.ts +0 -72
  902. package/lazy.js.map +0 -7
  903. package/locales/el/index.js +0 -6
  904. package/locales/el.d.ts +0 -2
  905. package/locales/el.js.map +0 -7
  906. package/registry.d.ts +0 -70
  907. package/registry.js.map +0 -7
  908. package/src/Field/index.mdx +0 -6
  909. package/src/Field/utils/calculateField.ts +0 -49
  910. package/src/index.tsx +0 -178
  911. package/src/inputs/ImageInput/index.mdx +0 -19
  912. package/src/inputs/Input/index.mdx +0 -95
  913. package/src/inputs/Input/inputsInputScenarios.ts +0 -405
  914. package/src/inputs/Label/index.mdx +0 -0
  915. package/src/inputs/inputsScenarios.ts +0 -503
  916. package/src/locales/el.ts +0 -3
  917. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
@@ -1,38 +1,51 @@
1
- import React from 'react';
1
+ import React, { useContext, useEffect } from 'react';
2
2
  import { Controller } from 'react-hook-form';
3
+ import { ErrorGroupContext } from '@digigov/form/Field/ErrorGroup';
3
4
  import FieldBaseContainer from '@digigov/form/Field/FieldBaseContainer';
4
- import { FieldBaseProps } from '@digigov/form/Field/types';
5
+ import type { FieldBaseProps } from '@digigov/form/Field/types';
6
+
7
+ export const FieldBase: React.FC<FieldBaseProps> = ({
8
+ required,
9
+ name,
10
+ component: Component,
11
+ wrapper,
12
+ control,
13
+ type,
14
+ controlled = false,
15
+ enabled = true,
16
+ editable,
17
+ defaultValue,
18
+ label,
19
+ extra = {},
20
+ layout,
21
+ error,
22
+ trim,
23
+ register,
24
+ ...componentProps
25
+ }) => {
26
+ const errorGroupContext = useContext(ErrorGroupContext);
27
+
28
+ useEffect(() => {
29
+ if (errorGroupContext) {
30
+ errorGroupContext.setError(name, label, error);
31
+ }
32
+ }, [error, name, errorGroupContext?.setError]);
5
33
 
6
- export const FieldBase: React.FC<FieldBaseProps> = (props) => {
7
- const {
8
- required,
9
- name,
10
- component: Component,
11
- wrapper,
12
- control,
13
- type,
14
- controlled = false,
15
- enabled = true,
16
- editable,
17
- defaultValue,
18
- label,
19
- extra = {},
20
- layout,
21
- error,
22
- register,
23
- ...componentProps
24
- } = props;
25
34
  if (!enabled) {
26
35
  return null;
27
36
  }
37
+
28
38
  if (controlled) {
29
39
  return (
30
40
  <FieldBaseContainer
31
41
  label={label}
32
42
  layout={layout}
33
- error={error}
43
+ register={register}
44
+ error={errorGroupContext ? undefined : error}
45
+ hasError={!!error}
34
46
  wrapper={wrapper}
35
47
  name={name}
48
+ controlled={controlled}
36
49
  >
37
50
  <Controller
38
51
  control={control}
@@ -41,8 +54,8 @@ export const FieldBase: React.FC<FieldBaseProps> = (props) => {
41
54
  return (
42
55
  <Component
43
56
  {...field}
44
- ref={undefined}
45
- defaultValue={defaultValue}
57
+ control={control}
58
+ defaultValue={defaultValue ?? field.value}
46
59
  extra={extra}
47
60
  error={!!error}
48
61
  type={type}
@@ -50,6 +63,7 @@ export const FieldBase: React.FC<FieldBaseProps> = (props) => {
50
63
  aria-describedby={error && `${name}-error`}
51
64
  required={required}
52
65
  disabled={editable === false}
66
+ trim={trim}
53
67
  {...componentProps}
54
68
  />
55
69
  );
@@ -63,7 +77,9 @@ export const FieldBase: React.FC<FieldBaseProps> = (props) => {
63
77
  <FieldBaseContainer
64
78
  label={label}
65
79
  layout={layout}
66
- error={error}
80
+ register={register}
81
+ error={errorGroupContext ? undefined : error}
82
+ hasError={!!error}
67
83
  wrapper={wrapper}
68
84
  name={name}
69
85
  >
@@ -78,6 +94,7 @@ export const FieldBase: React.FC<FieldBaseProps> = (props) => {
78
94
  aria-describedby={error && `${name}-error`}
79
95
  required={required}
80
96
  disabled={editable === false}
97
+ defaultValue={defaultValue}
81
98
  {...componentProps}
82
99
  />
83
100
  ) : (
@@ -88,11 +105,11 @@ export const FieldBase: React.FC<FieldBaseProps> = (props) => {
88
105
  error={!!error}
89
106
  extra={extra}
90
107
  type={type}
108
+ defaultValue={defaultValue}
91
109
  aria-required={!!required}
92
110
  aria-describedby={error && `${name}-error`}
93
111
  required={required}
94
112
  disabled={editable === false}
95
- ref={undefined}
96
113
  {...componentProps}
97
114
  />
98
115
  )}
@@ -1,57 +1,81 @@
1
+ import type { ComponentRef } from 'react';
1
2
  import React from 'react';
2
- import { FieldContainerProps } from '@digigov/form/Field/types';
3
+ import type { FieldContainerProps } from '@digigov/form/Field/types';
3
4
  import Label from '@digigov/form/inputs/Label';
4
- import ErrorMessage from '@digigov/react-core/ErrorMessage';
5
+ import { ErrorMessage } from '@digigov/react-core/ErrorMessage';
5
6
  import FieldContainer from '@digigov/react-core/FieldContainer';
6
- import CoreFieldset from '@digigov/react-core/Fieldset';
7
+ import Fieldset from '@digigov/react-core/Fieldset';
7
8
  import FieldsetLegend from '@digigov/react-core/FieldsetLegend';
8
- import Hint from '@digigov/react-core/Hint';
9
9
  import LabelContainer from '@digigov/react-core/LabelContainer';
10
10
  import { useTranslation } from '@digigov/ui/i18n';
11
+ import { Hint } from '@digigov/ui/typography/Hint';
11
12
 
12
- export const FieldBaseContainer: React.FC<FieldContainerProps> = ({
13
- name,
14
- wrapper,
15
- label,
16
- children,
17
- error,
18
- layout,
19
- }) => {
20
- const { t } = useTranslation();
21
- const errorMessage = error?.message.key
22
- ? error.message.key
23
- : error?.message || '';
24
- const errorContext = error?.message.context || {};
25
- if (wrapper === 'fieldset') {
26
- return (
27
- <FieldContainer error={!!error} {...layout}>
28
- <CoreFieldset>
29
- <FieldsetLegend size="sm">{label && label.primary}</FieldsetLegend>
30
- {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
31
- {error && (
32
- <ErrorMessage id={`${name}-error`}>
33
- {t(errorMessage, errorContext)}
34
- </ErrorMessage>
35
- )}
36
- {children}
37
- </CoreFieldset>
38
- </FieldContainer>
39
- );
40
- } else {
41
- return (
42
- <FieldContainer error={!!error} {...layout}>
43
- <LabelContainer>
44
- {label && <Label label={label} />}
45
- {error && (
46
- <ErrorMessage id={`${name}-error`}>
47
- {t(errorMessage, errorContext)}
48
- </ErrorMessage>
49
- )}
50
- {children}
51
- </LabelContainer>
52
- </FieldContainer>
53
- );
13
+ export const FieldBaseContainer = React.forwardRef<
14
+ ComponentRef<typeof Fieldset>,
15
+ FieldContainerProps
16
+ >(
17
+ (
18
+ {
19
+ name,
20
+ wrapper,
21
+ label,
22
+ children,
23
+ error,
24
+ hasError,
25
+ layout,
26
+ controlled,
27
+ labelSize = 'sm',
28
+ },
29
+ ref
30
+ ) => {
31
+ const { t } = useTranslation();
32
+ const errorMessage = error?.message.key
33
+ ? error.message.key
34
+ : error?.message || '';
35
+ const errorContext = error?.message.context || {};
36
+ if (wrapper === 'fieldset') {
37
+ return (
38
+ <FieldContainer error={hasError} {...layout}>
39
+ <Fieldset
40
+ ref={ref}
41
+ className="outline-none"
42
+ {...(controlled && {
43
+ tabIndex: -1,
44
+ })}
45
+ >
46
+ <FieldsetLegend size={labelSize}>
47
+ {label && label.primary}
48
+ </FieldsetLegend>
49
+ {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}
50
+ {error && (
51
+ <ErrorMessage id={`${name}-error`}>
52
+ {t(errorMessage, errorContext)}
53
+ </ErrorMessage>
54
+ )}
55
+ {children}
56
+ {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
57
+ </Fieldset>
58
+ </FieldContainer>
59
+ );
60
+ } else {
61
+ return (
62
+ <FieldContainer error={hasError} {...layout}>
63
+ <LabelContainer>
64
+ {label && <Label label={label} />}
65
+ {error && (
66
+ <ErrorMessage id={`${name}-error`}>
67
+ {t(errorMessage, errorContext)}
68
+ </ErrorMessage>
69
+ )}
70
+ {children}
71
+ {label && label.hint && <Hint size="sm">{label.hint}</Hint>}
72
+ </LabelContainer>
73
+ </FieldContainer>
74
+ );
75
+ }
54
76
  }
55
- };
77
+ );
78
+
79
+ FieldBaseContainer.displayName = 'FieldBaseContainer';
56
80
 
57
81
  export default FieldBaseContainer;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { useWatch } from 'react-hook-form';
3
3
  import { FieldBase } from '@digigov/form/Field/FieldBase';
4
- import {
4
+ import type {
5
5
  ChildFieldMemoProps,
6
6
  FieldConditionalProps,
7
7
  } from '@digigov/form/Field/types';
@@ -13,8 +13,10 @@ const ChildFieldMemo = React.memo(
13
13
  field,
14
14
  control,
15
15
  reset,
16
+ resetField,
16
17
  register,
17
18
  error,
19
+ Field,
18
20
  }: ChildFieldMemoProps) {
19
21
  const newField = evaluateFieldWithConditions(
20
22
  field,
@@ -23,8 +25,10 @@ const ChildFieldMemo = React.memo(
23
25
  return (
24
26
  <FieldBase
25
27
  {...newField}
28
+ Field={Field}
26
29
  name={newField.key}
27
30
  reset={reset}
31
+ resetField={resetField}
28
32
  control={control}
29
33
  register={register}
30
34
  error={error}
@@ -52,7 +56,9 @@ export const FieldConditional: React.FC<FieldConditionalProps> = ({
52
56
  field,
53
57
  register,
54
58
  reset,
59
+ resetField,
55
60
  error,
61
+ Field,
56
62
  }) => {
57
63
  const dependencyKeys = Object.keys(field.condition);
58
64
  const dependencyValues = useWatch({
@@ -73,7 +79,9 @@ export const FieldConditional: React.FC<FieldConditionalProps> = ({
73
79
  control={control}
74
80
  register={register}
75
81
  reset={reset}
82
+ resetField={resetField}
76
83
  error={error}
84
+ Field={Field}
77
85
  />
78
86
  );
79
87
  };
@@ -0,0 +1,207 @@
1
+ ---
2
+ title: Form
3
+ parent: docs/form/components
4
+ ---
5
+
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,49 +25,47 @@ 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}
43
+ Field={Field}
59
44
  />
60
45
  );
61
46
  }
62
- if (calculatedField.type === 'array' && !calculatedField.multiplicity) {
63
- calculatedField.name = name;
47
+ if (resolvedField.type === 'array' && !resolvedField.multiplicity) {
48
+ resolvedField.name = name;
64
49
  return (
65
50
  <FieldArray
66
51
  control={control}
52
+ trigger={trigger}
67
53
  register={register}
54
+ clearErrors={clearErrors}
68
55
  error={error}
56
+ getValues={getValues}
57
+ setValue={setValue}
69
58
  formState={formState}
70
- {...calculatedField}
59
+ Field={Field}
60
+ reset={reset}
61
+ resetField={resetField}
62
+ registerFieldFocus={registerFieldFocus}
63
+ {...resolvedField}
71
64
  />
72
65
  );
73
66
  }
74
- if (
75
- calculatedField.type === 'array' &&
76
- calculatedField.multiplicity === true
77
- ) {
78
- calculatedField.name = name;
67
+ if (resolvedField.type === 'array' && resolvedField.multiplicity === true) {
68
+ resolvedField.name = name;
79
69
  return (
80
70
  <Multiplicity
81
71
  control={control}
@@ -87,20 +77,28 @@ export const Field: React.FC<FieldProps> = ({
87
77
  setValue={setValue}
88
78
  getValues={getValues}
89
79
  unregister={unregister}
90
- {...calculatedField}
80
+ resetField={resetField}
81
+ Field={Field}
82
+ {...resolvedField}
91
83
  />
92
84
  );
93
85
  }
86
+ const editable =
87
+ customField.editable === false || customField.disabled === true
88
+ ? false
89
+ : true;
90
+ const customError = error ? error : formState?.errors[name];
94
91
  return (
95
92
  <FieldBase
96
- {...calculatedField}
93
+ {...resolvedField}
94
+ editable={editable}
97
95
  name={name}
98
- disabled={disabled}
99
96
  control={control}
100
97
  register={register}
101
98
  reset={reset}
102
- error={error}
103
- fieldComponent={Field}
99
+ error={customError}
100
+ resetField={resetField}
101
+ Field={Field}
104
102
  />
105
103
  );
106
104
  };