@digigov/form 2.0.0-daaf7bdf → 2.0.0-e7d30530

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 (716) 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 +37 -25
  6. package/Field/FieldBase.js.map +2 -2
  7. package/Field/FieldBaseContainer/index.js +38 -18
  8. package/Field/FieldBaseContainer.d.ts +1 -1
  9. package/Field/FieldBaseContainer.js.map +2 -2
  10. package/Field/FieldConditional/index.js +4 -0
  11. package/Field/FieldConditional.js.map +2 -2
  12. package/Field/index.js +15 -4
  13. package/Field/index.js.map +2 -2
  14. package/Field/types.d.ts +21 -10
  15. package/Field/utils/index.js +9 -1
  16. package/Field/utils/index.js.map +2 -2
  17. package/Field/utils/useField/index.js +14 -1
  18. package/Field/utils/useField.js.map +2 -2
  19. package/FieldArray/FieldArray.stories.d.ts +1 -0
  20. package/FieldArray/FormDialog/index.js +397 -0
  21. package/{Questions/Questions.stories → FieldArray/FormDialog}/package.json +1 -1
  22. package/FieldArray/FormDialog.d.ts +66 -0
  23. package/FieldArray/FormDialog.js.map +7 -0
  24. package/FieldArray/__stories__/Default.d.ts +1 -1
  25. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  26. package/FieldArray/__stories__/WithModal.d.ts +2 -0
  27. package/FieldArray/index.d.ts +6 -0
  28. package/FieldArray/index.js +87 -29
  29. package/FieldArray/index.js.map +2 -2
  30. package/FieldObject/index.d.ts +5 -0
  31. package/FieldObject/index.js +32 -17
  32. package/FieldObject/index.js.map +2 -2
  33. package/Fieldset/index.d.ts +1 -1
  34. package/Fieldset/index.js +5 -5
  35. package/Fieldset/index.js.map +2 -2
  36. package/Fieldset/types.d.ts +2 -2
  37. package/FormBuilder/FormBuilder.stories.d.ts +4 -0
  38. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
  39. package/FormBuilder/__stories__/Default.d.ts +1 -1
  40. package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
  41. package/FormBuilder/index.d.ts +1 -1
  42. package/FormBuilder/index.js +94 -11
  43. package/FormBuilder/index.js.map +2 -2
  44. package/FormBuilder/interaction.test.d.ts +1 -0
  45. package/FormContext/index.js +6 -2
  46. package/FormContext.d.ts +1 -0
  47. package/FormContext.js.map +2 -2
  48. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  49. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  50. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  51. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  52. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  53. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  54. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  55. package/MultiplicityField/add-objects/index.js +10 -6
  56. package/MultiplicityField/add-objects.js.map +2 -2
  57. package/MultiplicityField/index.js +17 -11
  58. package/MultiplicityField/index.js.map +2 -2
  59. package/MultiplicityField/types.d.ts +2 -2
  60. package/Questions/Questions/index.js +5 -4
  61. package/Questions/Questions.js.map +2 -2
  62. package/Questions/Questions.stories.d.ts +2 -0
  63. package/Questions/Step/StepArrayReview.js.map +2 -2
  64. package/Questions/Step/StepTitle/index.js +4 -3
  65. package/Questions/Step/StepTitle.d.ts +1 -1
  66. package/Questions/Step/StepTitle.js.map +2 -2
  67. package/Questions/__stories__/Default.d.ts +1 -1
  68. package/cjs/Field/ErrorGroup/index.js +82 -0
  69. package/cjs/Field/ErrorGroup.js.map +7 -0
  70. package/cjs/Field/FieldBase/index.js +36 -24
  71. package/cjs/Field/FieldBase.js.map +2 -2
  72. package/cjs/Field/FieldBaseContainer/index.js +37 -17
  73. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  74. package/cjs/Field/FieldConditional/index.js +4 -0
  75. package/cjs/Field/FieldConditional.js.map +2 -2
  76. package/cjs/Field/index.js +15 -4
  77. package/cjs/Field/index.js.map +2 -2
  78. package/cjs/Field/types.js.map +1 -1
  79. package/cjs/Field/utils/index.js +9 -1
  80. package/cjs/Field/utils/index.js.map +3 -3
  81. package/cjs/Field/utils/useField/index.js +14 -1
  82. package/cjs/Field/utils/useField.js.map +2 -2
  83. package/cjs/FieldArray/FormDialog/index.js +416 -0
  84. package/cjs/FieldArray/FormDialog.js.map +7 -0
  85. package/cjs/FieldArray/index.js +85 -27
  86. package/cjs/FieldArray/index.js.map +3 -3
  87. package/cjs/FieldObject/index.js +32 -17
  88. package/cjs/FieldObject/index.js.map +3 -3
  89. package/cjs/Fieldset/index.js +10 -10
  90. package/cjs/Fieldset/index.js.map +3 -3
  91. package/cjs/Fieldset/types.js.map +1 -1
  92. package/cjs/FormBuilder/index.js +94 -11
  93. package/cjs/FormBuilder/index.js.map +3 -3
  94. package/cjs/FormContext/index.js +9 -4
  95. package/cjs/FormContext.js.map +3 -3
  96. package/cjs/MultiplicityField/add-objects/index.js +14 -10
  97. package/cjs/MultiplicityField/add-objects.js.map +3 -3
  98. package/cjs/MultiplicityField/index.js +16 -15
  99. package/cjs/MultiplicityField/index.js.map +3 -3
  100. package/cjs/MultiplicityField/types.js.map +1 -1
  101. package/cjs/Questions/Questions/index.js +5 -4
  102. package/cjs/Questions/Questions.js.map +2 -2
  103. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  104. package/cjs/Questions/Step/StepTitle/index.js +5 -5
  105. package/cjs/Questions/Step/StepTitle.js.map +3 -3
  106. package/cjs/inputs/AutoCompleteInput/index.js +8 -7
  107. package/cjs/inputs/AutoCompleteInput/index.js.map +3 -3
  108. package/cjs/inputs/Checkboxes/index.js +9 -9
  109. package/cjs/inputs/Checkboxes/index.js.map +3 -3
  110. package/cjs/inputs/DateInput/index.js +51 -22
  111. package/cjs/inputs/DateInput/index.js.map +3 -3
  112. package/cjs/inputs/DateTimeInput/index.js +245 -0
  113. package/cjs/inputs/DateTimeInput/index.js.map +7 -0
  114. package/cjs/inputs/FileInput/index.js +72 -35
  115. package/cjs/inputs/FileInput/index.js.map +3 -3
  116. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  117. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  118. package/cjs/inputs/ImageInput/index.js +54 -18
  119. package/cjs/inputs/ImageInput/index.js.map +3 -3
  120. package/cjs/inputs/Input/index.js +12 -4
  121. package/cjs/inputs/Input/index.js.map +2 -2
  122. package/cjs/inputs/Label/index.js +3 -3
  123. package/cjs/inputs/Label/index.js.map +3 -3
  124. package/cjs/inputs/OtpInput/index.js +1 -0
  125. package/cjs/inputs/OtpInput/index.js.map +2 -2
  126. package/cjs/inputs/Radio/index.js +12 -13
  127. package/cjs/inputs/Radio/index.js.map +3 -3
  128. package/cjs/inputs/Select/index.js +11 -5
  129. package/cjs/inputs/Select/index.js.map +3 -3
  130. package/cjs/inputs/inputsScenarios/index.js +6 -12
  131. package/cjs/inputs/inputsScenarios.js.map +2 -2
  132. package/cjs/lazy/index.js +48 -34
  133. package/cjs/lazy.js.map +3 -3
  134. package/cjs/locales/el.js.map +1 -1
  135. package/cjs/registry/index.js +70 -60
  136. package/cjs/registry.js.map +3 -3
  137. package/cjs/types.js.map +1 -1
  138. package/cjs/utils/index.js +22 -7
  139. package/cjs/utils.js.map +2 -2
  140. package/cjs/validators/index.js +55 -85
  141. package/cjs/validators/index.js.map +3 -3
  142. package/cjs/validators/utils/amka/index.js +60 -0
  143. package/cjs/validators/utils/amka.js.map +7 -0
  144. package/cjs/validators/utils/date/index.js +156 -0
  145. package/cjs/validators/utils/date.js.map +7 -0
  146. package/cjs/validators/utils/datetime/index.js +240 -0
  147. package/cjs/validators/utils/datetime.js.map +7 -0
  148. package/cjs/validators/utils/file/index.js +30 -17
  149. package/cjs/validators/utils/file.js.map +2 -2
  150. package/cjs/validators/utils/index.js +10 -2
  151. package/cjs/validators/utils/index.js.map +2 -2
  152. package/cjs/validators/utils/int/index.js +1 -1
  153. package/cjs/validators/utils/int.js.map +2 -2
  154. package/cjs/validators/utils/number/index.js +1 -1
  155. package/cjs/validators/utils/number.js.map +2 -2
  156. package/cjs/validators/utils/phone.js.map +2 -2
  157. package/cjs/validators/utils/postal_code.js.map +1 -1
  158. package/cjs/validators/utils/uuid4.js.map +2 -2
  159. package/index.js +1 -1
  160. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  161. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  162. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  163. package/inputs/AutoCompleteInput/index.d.ts +1 -1
  164. package/inputs/AutoCompleteInput/index.js +10 -7
  165. package/inputs/AutoCompleteInput/index.js.map +2 -2
  166. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  167. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  168. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  169. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  170. package/inputs/Checkboxes/index.d.ts +1 -1
  171. package/inputs/Checkboxes/index.js +10 -6
  172. package/inputs/Checkboxes/index.js.map +2 -2
  173. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  174. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  175. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  176. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  177. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  178. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  179. package/inputs/DateInput/index.d.ts +1 -2
  180. package/inputs/DateInput/index.js +54 -22
  181. package/inputs/DateInput/index.js.map +2 -2
  182. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +14 -0
  183. package/inputs/DateTimeInput/__stories__/Default.d.ts +3 -0
  184. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  185. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  186. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  187. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  188. package/inputs/DateTimeInput/index.d.ts +13 -0
  189. package/inputs/DateTimeInput/index.js +215 -0
  190. package/inputs/DateTimeInput/index.js.map +7 -0
  191. package/inputs/DateTimeInput/index.test.d.ts +1 -0
  192. package/inputs/{Input/Input.stories → DateTimeInput}/package.json +1 -1
  193. package/inputs/FileInput/FileInput.stories.d.ts +3 -0
  194. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  195. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  196. package/inputs/FileInput/index.d.ts +17 -1
  197. package/inputs/FileInput/index.js +76 -36
  198. package/inputs/FileInput/index.js.map +2 -2
  199. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  200. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  201. package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
  202. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  203. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  204. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  205. package/inputs/{DateInput/__stories__/Default → ImageInput/__stories__/logo.d}/package.json +1 -1
  206. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  207. package/inputs/ImageInput/index.d.ts +9 -1
  208. package/inputs/ImageInput/index.js +54 -18
  209. package/inputs/ImageInput/index.js.map +2 -2
  210. package/inputs/Input/Input.stories.d.ts +5 -0
  211. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  212. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  213. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  214. package/inputs/Input/__stories__/Email.d.ts +3 -0
  215. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  216. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  217. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  218. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  219. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  220. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  221. package/inputs/Input/__stories__/String.d.ts +1 -1
  222. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
  223. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  224. package/inputs/Input/index.d.ts +2 -1
  225. package/inputs/Input/index.js +12 -4
  226. package/inputs/Input/index.js.map +2 -2
  227. package/inputs/Label/Label.stories.d.ts +2 -0
  228. package/inputs/Label/__stories__/Default.d.ts +1 -1
  229. package/inputs/Label/index.d.ts +0 -2
  230. package/inputs/Label/index.js +2 -2
  231. package/inputs/Label/index.js.map +2 -2
  232. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  233. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  234. package/inputs/OtpInput/index.js +1 -0
  235. package/inputs/OtpInput/index.js.map +2 -2
  236. package/inputs/Radio/Radio.stories.d.ts +2 -0
  237. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  238. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  239. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  240. package/inputs/Radio/index.d.ts +1 -1
  241. package/inputs/Radio/index.js +8 -5
  242. package/inputs/Radio/index.js.map +2 -2
  243. package/inputs/Select/Select.stories.d.ts +2 -0
  244. package/inputs/Select/__stories__/Default.d.ts +1 -1
  245. package/inputs/Select/index.d.ts +3 -2
  246. package/inputs/Select/index.js +13 -4
  247. package/inputs/Select/index.js.map +2 -2
  248. package/inputs/inputsScenarios/index.js +6 -12
  249. package/inputs/inputsScenarios.d.ts +1 -1
  250. package/inputs/inputsScenarios.js.map +2 -2
  251. package/lazy/index.js +77 -67
  252. package/locales/el.js.map +1 -1
  253. package/package.json +8 -8
  254. package/registry/index.js +115 -106
  255. package/src/Field/ErrorGroup.tsx +84 -0
  256. package/src/Field/FieldBase.tsx +39 -24
  257. package/src/Field/FieldBaseContainer.tsx +70 -47
  258. package/src/Field/FieldConditional.tsx +6 -2
  259. package/src/Field/doc.mdx +207 -0
  260. package/src/Field/index.tsx +20 -5
  261. package/src/Field/types.tsx +42 -29
  262. package/src/Field/utils/index.ts +8 -0
  263. package/src/Field/utils/useField.ts +14 -2
  264. package/src/FieldArray/FieldArray.stories.js +1 -0
  265. package/src/FieldArray/FormDialog.tsx +565 -0
  266. package/src/FieldArray/__stories__/Default.tsx +2 -1
  267. package/src/FieldArray/__stories__/WithExactLength.tsx +2 -1
  268. package/src/FieldArray/__stories__/WithModal.tsx +160 -0
  269. package/src/FieldArray/index.test.tsx +8 -0
  270. package/src/FieldArray/index.tsx +119 -54
  271. package/src/FieldObject/index.tsx +41 -20
  272. package/src/Fieldset/index.tsx +5 -5
  273. package/src/Fieldset/types.tsx +2 -2
  274. package/src/FormBuilder/FormBuilder.stories.js +5 -0
  275. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
  276. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  277. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
  278. package/src/FormBuilder/{FormBuilder.mdx → doc.mdx} +27 -35
  279. package/src/FormBuilder/index.test.tsx +12 -0
  280. package/src/FormBuilder/index.tsx +104 -14
  281. package/src/FormBuilder/interaction.test.tsx +40 -0
  282. package/src/FormBuilder/scenarios.test.tsx +125 -11
  283. package/src/FormContext.tsx +5 -2
  284. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  285. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  286. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
  287. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  288. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  289. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  290. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  291. package/src/MultiplicityField/add-objects.tsx +11 -9
  292. package/src/MultiplicityField/{MultiplicityField.mdx → doc.mdx} +112 -98
  293. package/src/MultiplicityField/index.test.tsx +4 -0
  294. package/src/MultiplicityField/index.tsx +17 -12
  295. package/src/MultiplicityField/types.ts +2 -2
  296. package/src/Questions/Questions.stories.js +3 -0
  297. package/src/Questions/Questions.tsx +4 -4
  298. package/src/Questions/Step/StepArrayReview.tsx +1 -1
  299. package/src/Questions/Step/StepTitle.tsx +4 -3
  300. package/src/Questions/__snapshots__/index.spec.tsx.snap +11 -5
  301. package/src/Questions/__stories__/Default.tsx +1 -1
  302. package/src/Questions/{index.mdx → doc.mdx} +30 -53
  303. package/src/Questions/index.spec.tsx +14 -2
  304. package/src/Questions/index.test.tsx +4 -0
  305. package/src/create-simple-form.mdx +2 -6
  306. package/src/{index.mdx → doc.mdx} +29 -18
  307. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  308. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +3 -11
  309. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +2 -8
  310. package/src/inputs/AutoCompleteInput/{index.mdx → doc.mdx} +2 -13
  311. package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
  312. package/src/inputs/AutoCompleteInput/index.tsx +32 -28
  313. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  314. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  315. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  316. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  317. package/src/inputs/Checkboxes/{index.mdx → doc.mdx} +5 -15
  318. package/src/inputs/Checkboxes/index.test.tsx +4 -0
  319. package/src/inputs/Checkboxes/index.tsx +28 -28
  320. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  321. package/src/inputs/DateInput/__stories__/Default.tsx +8 -13
  322. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  323. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  324. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  325. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  326. package/src/inputs/DateInput/{index.mdx → doc.mdx} +1 -8
  327. package/src/inputs/DateInput/index.test.tsx +20 -0
  328. package/src/inputs/DateInput/index.tsx +58 -21
  329. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +14 -0
  330. package/src/inputs/DateTimeInput/__stories__/Default.tsx +25 -0
  331. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  332. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  333. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  334. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  335. package/src/inputs/DateTimeInput/doc.mdx +16 -0
  336. package/src/inputs/DateTimeInput/index.test.tsx +40 -0
  337. package/src/inputs/DateTimeInput/index.tsx +233 -0
  338. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  339. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  340. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  341. package/src/inputs/FileInput/{index.mdx → doc.mdx} +1 -5
  342. package/src/inputs/FileInput/index.test.tsx +8 -0
  343. package/src/inputs/FileInput/index.tsx +106 -41
  344. package/src/inputs/ImageInput/ImageInput.stories.js +5 -2
  345. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  346. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +5 -4
  347. package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → WithInitialValues.tsx} +12 -3
  348. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +3 -1
  349. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  350. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  351. package/src/inputs/ImageInput/doc.mdx +23 -0
  352. package/src/inputs/ImageInput/index.test.tsx +8 -4
  353. package/src/inputs/ImageInput/index.tsx +103 -50
  354. package/src/inputs/Input/Input.stories.js +6 -0
  355. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  356. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  357. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  358. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  359. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  360. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  361. package/src/inputs/Input/__stories__/LandlineNumber.tsx +3 -2
  362. package/src/inputs/Input/__stories__/MobilePhone.tsx +2 -1
  363. package/src/inputs/Input/__stories__/PhoneNumber.tsx +2 -1
  364. package/src/inputs/Input/__stories__/PostalCode.tsx +2 -1
  365. package/src/inputs/Input/__stories__/String.tsx +1 -1
  366. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
  367. package/src/inputs/Input/__stories__/TextWithLimit.tsx +2 -1
  368. package/src/inputs/Input/doc.mdx +56 -0
  369. package/src/inputs/Input/index.test.tsx +16 -0
  370. package/src/inputs/Input/index.tsx +30 -12
  371. package/src/inputs/Label/Label.stories.js +3 -0
  372. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  373. package/src/inputs/Label/doc.mdx +14 -0
  374. package/src/inputs/Label/index.test.tsx +4 -0
  375. package/src/inputs/Label/index.tsx +2 -6
  376. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  377. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  378. package/src/inputs/OtpInput/{index.mdx → doc.mdx} +1 -8
  379. package/src/inputs/OtpInput/index.test.tsx +4 -0
  380. package/src/inputs/OtpInput/index.tsx +3 -1
  381. package/src/inputs/Radio/Radio.stories.js +3 -0
  382. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  383. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  384. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  385. package/src/inputs/Radio/{index.mdx → doc.mdx} +5 -15
  386. package/src/inputs/Radio/index.test.tsx +4 -0
  387. package/src/inputs/Radio/index.tsx +59 -56
  388. package/src/inputs/Select/Select.stories.js +3 -0
  389. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  390. package/src/inputs/Select/{index.mdx → doc.mdx} +1 -5
  391. package/src/inputs/Select/index.test.tsx +4 -0
  392. package/src/inputs/Select/index.tsx +18 -7
  393. package/src/inputs/inputsScenarios.ts +36 -42
  394. package/src/installation.mdx +2 -5
  395. package/src/lazy.js +77 -64
  396. package/src/locales/el.ts +1 -1
  397. package/src/registry.js +107 -99
  398. package/src/types.tsx +4 -3
  399. package/src/utils.ts +29 -8
  400. package/src/validators/index.ts +103 -91
  401. package/src/validators/utils/amka.ts +39 -0
  402. package/src/validators/utils/date.ts +126 -0
  403. package/src/validators/utils/datetime.ts +217 -0
  404. package/src/validators/utils/file.ts +33 -17
  405. package/src/validators/utils/index.ts +6 -1
  406. package/src/validators/utils/int.ts +1 -1
  407. package/src/validators/utils/number.ts +1 -1
  408. package/src/validators/utils/phone.ts +1 -1
  409. package/src/validators/utils/postal_code.ts +1 -1
  410. package/src/validators/utils/uuid4.ts +2 -1
  411. package/src/validators/validators.spec.ts +3 -3
  412. package/types.d.ts +4 -3
  413. package/types.js.map +1 -1
  414. package/utils/index.js +22 -7
  415. package/utils.d.ts +2 -0
  416. package/utils.js.map +2 -2
  417. package/validators/index.d.ts +1 -1
  418. package/validators/index.js +63 -86
  419. package/validators/index.js.map +2 -2
  420. package/validators/utils/amka/index.js +36 -0
  421. package/{FieldArray/FieldArray.stories → validators/utils/amka}/package.json +1 -1
  422. package/validators/utils/amka.d.ts +6 -0
  423. package/validators/utils/amka.js.map +7 -0
  424. package/validators/utils/date/index.js +121 -0
  425. package/validators/utils/date/package.json +6 -0
  426. package/validators/utils/date.d.ts +9 -0
  427. package/validators/utils/date.js.map +7 -0
  428. package/validators/utils/datetime/index.js +205 -0
  429. package/validators/utils/datetime/package.json +6 -0
  430. package/validators/utils/datetime.d.ts +9 -0
  431. package/validators/utils/datetime.js.map +7 -0
  432. package/validators/utils/file/index.js +30 -17
  433. package/validators/utils/file.js.map +2 -2
  434. package/validators/utils/index.d.ts +3 -0
  435. package/validators/utils/index.js +6 -1
  436. package/validators/utils/index.js.map +2 -2
  437. package/validators/utils/int/index.js +1 -1
  438. package/validators/utils/int.js.map +2 -2
  439. package/validators/utils/number/index.js +1 -1
  440. package/validators/utils/number.js.map +2 -2
  441. package/validators/utils/phone.d.ts +1 -1
  442. package/validators/utils/phone.js.map +2 -2
  443. package/validators/utils/postal_code.d.ts +1 -1
  444. package/validators/utils/postal_code.js.map +1 -1
  445. package/validators/utils/uuid4.js.map +2 -2
  446. package/FieldArray/FieldArray.stories/index.js +0 -14
  447. package/FieldArray/FieldArray.stories.js.map +0 -7
  448. package/FieldArray/__stories__/Default/index.js +0 -95
  449. package/FieldArray/__stories__/Default/package.json +0 -6
  450. package/FieldArray/__stories__/Default.js.map +0 -7
  451. package/FieldArray/__stories__/WithExactLength/index.js +0 -95
  452. package/FieldArray/__stories__/WithExactLength/package.json +0 -6
  453. package/FieldArray/__stories__/WithExactLength.js.map +0 -7
  454. package/Form.stories/index.js +0 -7
  455. package/Form.stories.js.map +0 -7
  456. package/FormBuilder/FormBuilder.stories/index.js +0 -12
  457. package/FormBuilder/FormBuilder.stories/package.json +0 -6
  458. package/FormBuilder/FormBuilder.stories.js.map +0 -7
  459. package/FormBuilder/__stories__/Default/index.js +0 -32
  460. package/FormBuilder/__stories__/Default/package.json +0 -6
  461. package/FormBuilder/__stories__/Default.js.map +0 -7
  462. package/MultiplicityField/MultiplicityField.stories/index.js +0 -22
  463. package/MultiplicityField/MultiplicityField.stories/package.json +0 -6
  464. package/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  465. package/MultiplicityField/__stories__/Default/index.js +0 -100
  466. package/MultiplicityField/__stories__/Default/package.json +0 -6
  467. package/MultiplicityField/__stories__/Default.js.map +0 -7
  468. package/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -70
  469. package/MultiplicityField/__stories__/PreviewDisplay/package.json +0 -6
  470. package/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  471. package/MultiplicityField/__stories__/WithExactLength/index.js +0 -97
  472. package/MultiplicityField/__stories__/WithExactLength/package.json +0 -6
  473. package/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  474. package/MultiplicityField/__stories__/WithMaxLength/index.js +0 -100
  475. package/MultiplicityField/__stories__/WithMaxLength/package.json +0 -6
  476. package/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  477. package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -101
  478. package/MultiplicityField/__stories__/WithMinAndMaxLength/package.json +0 -6
  479. package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  480. package/MultiplicityField/__stories__/WithMinLength/index.js +0 -100
  481. package/MultiplicityField/__stories__/WithMinLength/package.json +0 -6
  482. package/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  483. package/Questions/Questions.stories/index.js +0 -12
  484. package/Questions/Questions.stories.js.map +0 -7
  485. package/Questions/__stories__/Default/index.js +0 -108
  486. package/Questions/__stories__/Default/package.json +0 -6
  487. package/Questions/__stories__/Default.js.map +0 -7
  488. package/cjs/FieldArray/FieldArray.stories/index.js +0 -48
  489. package/cjs/FieldArray/FieldArray.stories.js.map +0 -7
  490. package/cjs/FieldArray/__stories__/Default/index.js +0 -128
  491. package/cjs/FieldArray/__stories__/Default.js.map +0 -7
  492. package/cjs/FieldArray/__stories__/WithExactLength/index.js +0 -128
  493. package/cjs/FieldArray/__stories__/WithExactLength.js.map +0 -7
  494. package/cjs/Form.stories/index.js +0 -26
  495. package/cjs/Form.stories.js.map +0 -7
  496. package/cjs/FormBuilder/FormBuilder.stories/index.js +0 -45
  497. package/cjs/FormBuilder/FormBuilder.stories.js.map +0 -7
  498. package/cjs/FormBuilder/__stories__/Default/index.js +0 -65
  499. package/cjs/FormBuilder/__stories__/Default.js.map +0 -7
  500. package/cjs/MultiplicityField/MultiplicityField.stories/index.js +0 -60
  501. package/cjs/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  502. package/cjs/MultiplicityField/__stories__/Default/index.js +0 -133
  503. package/cjs/MultiplicityField/__stories__/Default.js.map +0 -7
  504. package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -86
  505. package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  506. package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +0 -130
  507. package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  508. package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +0 -133
  509. package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  510. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -134
  511. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  512. package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +0 -133
  513. package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  514. package/cjs/Questions/Questions.stories/index.js +0 -45
  515. package/cjs/Questions/Questions.stories.js.map +0 -7
  516. package/cjs/Questions/__stories__/Default/index.js +0 -136
  517. package/cjs/Questions/__stories__/Default.js.map +0 -7
  518. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -48
  519. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  520. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -83
  521. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  522. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -83
  523. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  524. package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +0 -51
  525. package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  526. package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +0 -133
  527. package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  528. package/cjs/inputs/Checkboxes/__stories__/Default/index.js +0 -77
  529. package/cjs/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  530. package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -78
  531. package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  532. package/cjs/inputs/DateInput/DateInput.stories/index.js +0 -45
  533. package/cjs/inputs/DateInput/DateInput.stories.js.map +0 -7
  534. package/cjs/inputs/DateInput/__stories__/Default/index.js +0 -61
  535. package/cjs/inputs/DateInput/__stories__/Default.js.map +0 -7
  536. package/cjs/inputs/FileInput/FileInput.stories/index.js +0 -45
  537. package/cjs/inputs/FileInput/FileInput.stories.js.map +0 -7
  538. package/cjs/inputs/FileInput/__stories__/Default/index.js +0 -61
  539. package/cjs/inputs/FileInput/__stories__/Default.js.map +0 -7
  540. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +0 -51
  541. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  542. package/cjs/inputs/ImageInput/__stories__/Default/index.js +0 -63
  543. package/cjs/inputs/ImageInput/__stories__/Default.js.map +0 -7
  544. package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +0 -69
  545. package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
  546. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -71
  547. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  548. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -68
  549. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  550. package/cjs/inputs/Input/Input.stories/index.js +0 -72
  551. package/cjs/inputs/Input/Input.stories.js.map +0 -7
  552. package/cjs/inputs/Input/__stories__/AFM/index.js +0 -63
  553. package/cjs/inputs/Input/__stories__/AFM.js.map +0 -7
  554. package/cjs/inputs/Input/__stories__/Boolean/index.js +0 -64
  555. package/cjs/inputs/Input/__stories__/Boolean.js.map +0 -7
  556. package/cjs/inputs/Input/__stories__/IBAN/index.js +0 -64
  557. package/cjs/inputs/Input/__stories__/IBAN.js.map +0 -7
  558. package/cjs/inputs/Input/__stories__/Integer/index.js +0 -78
  559. package/cjs/inputs/Input/__stories__/Integer.js.map +0 -7
  560. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +0 -67
  561. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  562. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -67
  563. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  564. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -66
  565. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  566. package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -64
  567. package/cjs/inputs/Input/__stories__/PostalCode.js.map +0 -7
  568. package/cjs/inputs/Input/__stories__/String/index.js +0 -64
  569. package/cjs/inputs/Input/__stories__/String.js.map +0 -7
  570. package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +0 -64
  571. package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  572. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  573. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  574. package/cjs/inputs/Label/Label.stories/index.js +0 -45
  575. package/cjs/inputs/Label/Label.stories.js.map +0 -7
  576. package/cjs/inputs/Label/__stories__/Default/index.js +0 -72
  577. package/cjs/inputs/Label/__stories__/Default.js.map +0 -7
  578. package/cjs/inputs/OtpInput/OtpInput.stories/index.js +0 -45
  579. package/cjs/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  580. package/cjs/inputs/OtpInput/__stories__/Default/index.js +0 -64
  581. package/cjs/inputs/OtpInput/__stories__/Default.js.map +0 -7
  582. package/cjs/inputs/Radio/Radio.stories/index.js +0 -51
  583. package/cjs/inputs/Radio/Radio.stories.js.map +0 -7
  584. package/cjs/inputs/Radio/__stories__/Conditional/index.js +0 -133
  585. package/cjs/inputs/Radio/__stories__/Conditional.js.map +0 -7
  586. package/cjs/inputs/Radio/__stories__/Default/index.js +0 -81
  587. package/cjs/inputs/Radio/__stories__/Default.js.map +0 -7
  588. package/cjs/inputs/Radio/__stories__/WithDivider/index.js +0 -82
  589. package/cjs/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  590. package/cjs/inputs/Select/Select.stories/index.js +0 -45
  591. package/cjs/inputs/Select/Select.stories.js.map +0 -7
  592. package/cjs/inputs/Select/__stories__/Default/index.js +0 -86
  593. package/cjs/inputs/Select/__stories__/Default.js.map +0 -7
  594. package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -14
  595. package/inputs/AutoCompleteInput/AutoComplete.stories/package.json +0 -6
  596. package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  597. package/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -50
  598. package/inputs/AutoCompleteInput/__stories__/Default/package.json +0 -6
  599. package/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  600. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -50
  601. package/inputs/AutoCompleteInput/__stories__/Multiple/package.json +0 -6
  602. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  603. package/inputs/Checkboxes/Checkboxes.stories/index.js +0 -16
  604. package/inputs/Checkboxes/Checkboxes.stories/package.json +0 -6
  605. package/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  606. package/inputs/Checkboxes/__stories__/Conditional/index.js +0 -100
  607. package/inputs/Checkboxes/__stories__/Conditional/package.json +0 -6
  608. package/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  609. package/inputs/Checkboxes/__stories__/Default/index.js +0 -44
  610. package/inputs/Checkboxes/__stories__/Default/package.json +0 -6
  611. package/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  612. package/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -45
  613. package/inputs/Checkboxes/__stories__/WithDivider/package.json +0 -6
  614. package/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  615. package/inputs/DateInput/DateInput.stories/index.js +0 -12
  616. package/inputs/DateInput/DateInput.stories/package.json +0 -6
  617. package/inputs/DateInput/DateInput.stories.js.map +0 -7
  618. package/inputs/DateInput/__stories__/Default/index.js +0 -28
  619. package/inputs/DateInput/__stories__/Default.js.map +0 -7
  620. package/inputs/FileInput/FileInput.stories/index.js +0 -12
  621. package/inputs/FileInput/FileInput.stories/package.json +0 -6
  622. package/inputs/FileInput/FileInput.stories.js.map +0 -7
  623. package/inputs/FileInput/__stories__/Default/index.js +0 -28
  624. package/inputs/FileInput/__stories__/Default/package.json +0 -6
  625. package/inputs/FileInput/__stories__/Default.js.map +0 -7
  626. package/inputs/ImageInput/ImageInput.stories/index.js +0 -16
  627. package/inputs/ImageInput/ImageInput.stories/package.json +0 -6
  628. package/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  629. package/inputs/ImageInput/__stories__/Default/index.js +0 -30
  630. package/inputs/ImageInput/__stories__/Default/package.json +0 -6
  631. package/inputs/ImageInput/__stories__/Default.js.map +0 -7
  632. package/inputs/ImageInput/__stories__/MaxSize/index.js +0 -36
  633. package/inputs/ImageInput/__stories__/MaxSize/package.json +0 -6
  634. package/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
  635. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -38
  636. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/package.json +0 -6
  637. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  638. package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -35
  639. package/inputs/ImageInput/__stories__/WithInvalidImageSize/package.json +0 -6
  640. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  641. package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  642. package/inputs/Input/Input.stories/index.js +0 -30
  643. package/inputs/Input/Input.stories.js.map +0 -7
  644. package/inputs/Input/__stories__/AFM/index.js +0 -30
  645. package/inputs/Input/__stories__/AFM/package.json +0 -6
  646. package/inputs/Input/__stories__/AFM.js.map +0 -7
  647. package/inputs/Input/__stories__/Boolean/index.js +0 -31
  648. package/inputs/Input/__stories__/Boolean/package.json +0 -6
  649. package/inputs/Input/__stories__/Boolean.js.map +0 -7
  650. package/inputs/Input/__stories__/IBAN/index.js +0 -31
  651. package/inputs/Input/__stories__/IBAN/package.json +0 -6
  652. package/inputs/Input/__stories__/IBAN.js.map +0 -7
  653. package/inputs/Input/__stories__/Integer/index.js +0 -45
  654. package/inputs/Input/__stories__/Integer/package.json +0 -6
  655. package/inputs/Input/__stories__/Integer.js.map +0 -7
  656. package/inputs/Input/__stories__/LandlineNumber/index.js +0 -34
  657. package/inputs/Input/__stories__/LandlineNumber/package.json +0 -6
  658. package/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  659. package/inputs/Input/__stories__/MobilePhone/index.js +0 -34
  660. package/inputs/Input/__stories__/MobilePhone/package.json +0 -6
  661. package/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  662. package/inputs/Input/__stories__/PhoneNumber/index.js +0 -33
  663. package/inputs/Input/__stories__/PhoneNumber/package.json +0 -6
  664. package/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  665. package/inputs/Input/__stories__/PostalCode/index.js +0 -31
  666. package/inputs/Input/__stories__/PostalCode/package.json +0 -6
  667. package/inputs/Input/__stories__/PostalCode.js.map +0 -7
  668. package/inputs/Input/__stories__/String/index.js +0 -31
  669. package/inputs/Input/__stories__/String/package.json +0 -6
  670. package/inputs/Input/__stories__/String.js.map +0 -7
  671. package/inputs/Input/__stories__/TextWithLimit/index.js +0 -31
  672. package/inputs/Input/__stories__/TextWithLimit/package.json +0 -6
  673. package/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  674. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  675. package/inputs/Input/inputsInputScenarios/package.json +0 -6
  676. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  677. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  678. package/inputs/Label/Label.stories/index.js +0 -12
  679. package/inputs/Label/Label.stories/package.json +0 -6
  680. package/inputs/Label/Label.stories.js.map +0 -7
  681. package/inputs/Label/__stories__/Default/index.js +0 -39
  682. package/inputs/Label/__stories__/Default/package.json +0 -6
  683. package/inputs/Label/__stories__/Default.js.map +0 -7
  684. package/inputs/OtpInput/OtpInput.stories/index.js +0 -12
  685. package/inputs/OtpInput/OtpInput.stories/package.json +0 -6
  686. package/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  687. package/inputs/OtpInput/__stories__/Default/index.js +0 -31
  688. package/inputs/OtpInput/__stories__/Default/package.json +0 -6
  689. package/inputs/OtpInput/__stories__/Default.js.map +0 -7
  690. package/inputs/Radio/Radio.stories/index.js +0 -16
  691. package/inputs/Radio/Radio.stories/package.json +0 -6
  692. package/inputs/Radio/Radio.stories.js.map +0 -7
  693. package/inputs/Radio/__stories__/Conditional/index.js +0 -100
  694. package/inputs/Radio/__stories__/Conditional/package.json +0 -6
  695. package/inputs/Radio/__stories__/Conditional.js.map +0 -7
  696. package/inputs/Radio/__stories__/Default/index.js +0 -48
  697. package/inputs/Radio/__stories__/Default/package.json +0 -6
  698. package/inputs/Radio/__stories__/Default.js.map +0 -7
  699. package/inputs/Radio/__stories__/WithDivider/index.js +0 -49
  700. package/inputs/Radio/__stories__/WithDivider/package.json +0 -6
  701. package/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  702. package/inputs/Select/Select.stories/index.js +0 -12
  703. package/inputs/Select/Select.stories/package.json +0 -6
  704. package/inputs/Select/Select.stories.js.map +0 -7
  705. package/inputs/Select/__stories__/Default/index.js +0 -53
  706. package/inputs/Select/__stories__/Default/package.json +0 -6
  707. package/inputs/Select/__stories__/Default.js.map +0 -7
  708. package/lazy.d.ts +0 -77
  709. package/lazy.js.map +0 -7
  710. package/registry.d.ts +0 -70
  711. package/registry.js.map +0 -7
  712. package/src/Field/index.mdx +0 -6
  713. package/src/inputs/ImageInput/index.mdx +0 -19
  714. package/src/inputs/Input/index.mdx +0 -95
  715. package/src/inputs/Input/inputsInputScenarios.ts +0 -405
  716. package/src/inputs/Label/index.mdx +0 -0
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import FormBuilder, { Field } from '@digigov/form';
3
+ import { ErrorGroup } from '@digigov/form/Field/ErrorGroup';
4
+ import { Button } from '@digigov/ui/form/Button';
5
+
6
+ export const ErrorGrouping = (_: any) => (
7
+ <FormBuilder
8
+ grid={true}
9
+ onSubmit={(data) => {
10
+ console.log(data);
11
+ }}
12
+ >
13
+ <ErrorGroup>
14
+ <Field
15
+ key="name"
16
+ name="name"
17
+ type="string"
18
+ label={{ primary: 'Όνομα' }}
19
+ layout={{ xs: 4 }}
20
+ required
21
+ />
22
+ <Field
23
+ key="surname"
24
+ name="surname"
25
+ type="string"
26
+ label={{ primary: 'Επίθετο' }}
27
+ layout={{ xs: 4 }}
28
+ required
29
+ />
30
+ <Field
31
+ key="address"
32
+ name="address"
33
+ type="string"
34
+ label={{ primary: 'Διεύθυνση' }}
35
+ layout={{ xs: 4 }}
36
+ required
37
+ />
38
+ </ErrorGroup>
39
+ <Button type="submit">Συνέχεια</Button>
40
+ </FormBuilder>
41
+ );
42
+
43
+ export default ErrorGrouping;
@@ -4,15 +4,13 @@ title: FormBuilder
4
4
  sidebar_label: FormBuilder
5
5
  ---
6
6
 
7
+ # FormBuilder
8
+
7
9
  `FormBuilder` is a React component that provides an easy way to efficiently create reusable form page. Forms are a flexible mechanism for collecting user input because there are suitable widgets for entering many different types of data, including text boxes, checkboxes, radio buttons, dropdowns and so on for submission to a server. Actually when we use `stepForm` for building step-forms all we do is to render `FormBuilder` component.
8
10
 
9
11
  `stepForm` component:
10
12
 
11
- <Story
12
- packageName="@digigov/form"
13
- component="FormBuilder"
14
- story="Default.tsx"
15
- />
13
+ <code src="@digigov/form/FormBuilder/__stories__/Default.tsx" />
16
14
 
17
15
  ### Importing and using FormBuilder Component
18
16
 
@@ -31,21 +29,17 @@ import BasicLayout, {
31
29
  Main,
32
30
  Bottom,
33
31
  } from '@digigov/ui/layouts/Basic';
34
- import {FormBuilder} from '@digigov/form';
32
+ import { FormBuilder } from '@digigov/form';
35
33
 
36
34
  export default function MyComponent({ props }) {
37
-
38
35
  return (
39
36
  <BasicLayout>
40
- .
41
- .
37
+ /* code */
42
38
  <Container>
43
39
  <Main>
44
- .
45
- .
40
+ /* code */
46
41
  <FormBuilder></FormBuilder>
47
- .
48
- .
42
+ /* code */
49
43
  </Main>
50
44
  </Container>
51
45
  <Bottom>
@@ -54,7 +48,6 @@ export default function MyComponent({ props }) {
54
48
  </BasicLayout>
55
49
  );
56
50
  }
57
- }
58
51
  ```
59
52
 
60
53
  ### Props
@@ -81,9 +74,9 @@ Below are demostrated some examples for each type of field
81
74
 
82
75
  ### FormBuilder implementation
83
76
 
84
- The examples above are implemented by using the code below
77
+ The example below are implemented by using the code above.
85
78
 
86
- ```javascript
79
+ ```jsx
87
80
  import React, { useState } from 'react';
88
81
  import BasicLayout, {
89
82
  Top,
@@ -91,7 +84,11 @@ import BasicLayout, {
91
84
  Main,
92
85
  Bottom,
93
86
  } from '@digigov/ui/layouts/Basic';
94
- import Header, { HeaderTitle } from '@digigov/ui/app/Header';
87
+ import Header, {
88
+ HeaderTitle,
89
+ HeaderContent,
90
+ HeaderSection,
91
+ } from '@digigov/ui/app/Header';
95
92
  import GovGRLogo from '@digigov/ui/govgr/GovGRLogo';
96
93
  import GovGRFooter from '@digigov/ui/govgr/Footer';
97
94
  import Button from '@digigov/ui/form/Button';
@@ -99,8 +96,9 @@ import PageTitleContainer, {
99
96
  PageTitleCaption,
100
97
  PageTitleHeading,
101
98
  } from '@digigov/ui/app/PageTitleContainer';
102
- import BackButton from '@digigov/ui/form/Button/BackButton';
103
- import FormBuilder, { Fieldset, FieldsetLabel, Field } from '@digigov/form';
99
+ import BackLink from '@digigov/ui/navigation/BackLink';
100
+ import FormBuilder, { Fieldset, Field } from '@digigov/form';
101
+ import { FieldsetLabel } from '@digigov/form/Fieldset';
104
102
  import { useTranslation } from '@digigov/ui/i18n';
105
103
 
106
104
  const FIELDS = [
@@ -203,30 +201,24 @@ const initialValues = {
203
201
  string: 'default content',
204
202
  };
205
203
 
206
- const useStyles = makeStyles(
207
- {
208
- top: { minHeight: '75px' },
209
- main: {},
210
- side: {},
211
- },
212
- { name: 'MuiSite' }
213
- );
214
-
215
204
  export default function Index() {
216
- const styles = useStyles();
217
205
  const [data, setData] = useState(null);
218
206
  const { t } = useTranslation();
219
207
  return (
220
208
  <BasicLayout>
221
- <Top className={styles.top}>
209
+ <Top>
222
210
  <Header>
223
- <GovGRLogo />
224
- <HeaderTitle>Service name</HeaderTitle>
211
+ <HeaderContent>
212
+ <HeaderSection>
213
+ <GovGRLogo />
214
+ <HeaderTitle>Service name</HeaderTitle>
215
+ </HeaderSection>
216
+ </HeaderContent>
225
217
  </Header>
226
218
  </Top>
227
219
  <Container>
228
- <Main className={styles.main}>
229
- <BackButton>{t('button.back')}</BackButton>
220
+ <Main>
221
+ <BackLink>Back</BackLink>
230
222
  <PageTitleContainer>
231
223
  <PageTitleCaption>Before we start</PageTitleCaption>
232
224
  <PageTitleHeading>Submit a form</PageTitleHeading>
@@ -237,7 +229,7 @@ export default function Index() {
237
229
  initial={initialValues}
238
230
  >
239
231
  <Fieldset>
240
- <FieldsetLabel>This is a fieldset</FieldsetLabel>
232
+ <FieldsetLabel size="lg">This is a fieldset</FieldsetLabel>
241
233
  {FIELDS.map((field) => (
242
234
  <Field key={field.key} name={field.key} />
243
235
  ))}
@@ -1,19 +1,31 @@
1
1
  import React from 'react';
2
2
  import { test, expect } from '@playwright/experimental-ct-react';
3
3
  import TestVariant from '@digigov/ui/utils/TestVariant'
4
+ import { AutoErrorGrouping } from '@digigov/form/FormBuilder/__stories__/AutoErrorGrouping';
4
5
  import { Default } from '@digigov/form/FormBuilder/__stories__/Default';
6
+ import { ErrorGrouping } from '@digigov/form/FormBuilder/__stories__/ErrorGrouping';
5
7
 
6
8
  test('renders the All FormBuilder variants', async ({ mount, page }) => {
7
9
  await mount(
8
10
 
9
11
  <div>
12
+ <TestVariant title="AutoErrorGrouping">
13
+ <AutoErrorGrouping />
14
+ </TestVariant>
10
15
  <TestVariant title="Default">
11
16
  <Default />
12
17
  </TestVariant>
18
+ <TestVariant title="ErrorGrouping">
19
+ <ErrorGrouping />
20
+ </TestVariant>
13
21
  </div>
14
22
  )
15
23
  await page.evaluate(() => document.fonts.ready);
16
24
 
25
+ // Move the mouse to the top-left corner to avoid random hover issues
26
+ await page.mouse.move(0, 0);
27
+
28
+
17
29
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
18
30
  expect(screenshot).toMatchSnapshot();
19
31
  });
@@ -1,15 +1,16 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import React, { useCallback, useContext, useRef } from 'react';
1
+ import React, { useCallback, useEffect, useRef } from 'react';
3
2
  import { useForm } from 'react-hook-form';
4
- import Field from '@digigov/form/Field';
3
+ import { Field } from '@digigov/form/Field';
4
+ import { ErrorGroup } from '@digigov/form/Field/ErrorGroup';
5
5
  import { CONTROLLED_FIELD_COMPONENTS } from '@digigov/form/Field/utils';
6
- import Fieldset from '@digigov/form/Fieldset';
7
- import { FormContext } from '@digigov/form/FormContext';
6
+ import { FieldsetWithContext } from '@digigov/form/Fieldset/FieldsetWithContext';
7
+ import { FormContext, useFormContext } from '@digigov/form/FormContext';
8
8
  import { FormBaseProps, FormData, FormBuilderProps } from '@digigov/form/types';
9
9
  import { yupResolver } from '@digigov/form/utils';
10
10
  import { useValidationSchema } from '@digigov/form/validators';
11
- import { Form } from '@digigov/react-core/Form';
12
11
  import { Button } from '@digigov/ui/form/Button';
12
+ import { Form } from '@digigov/ui/form/Form';
13
+ import { useScreenSize } from '@digigov/ui/utils/hooks/useScreen';
13
14
 
14
15
  const FormBase = React.forwardRef(function FormBase(
15
16
  {
@@ -22,10 +23,11 @@ const FormBase = React.forwardRef(function FormBase(
22
23
  mode,
23
24
  initial,
24
25
  reValidateMode,
25
- shouldFocusError,
26
+ shouldFocusError = true,
26
27
  criteriaMode,
27
28
  componentRegistry,
28
29
  grid,
30
+ errors,
29
31
  ...props
30
32
  }: FormBaseProps,
31
33
  ref: React.Ref<HTMLFormElement>
@@ -41,10 +43,19 @@ const FormBase = React.forwardRef(function FormBase(
41
43
 
42
44
  const handleSubmit = useCallback(
43
45
  (data: FormData): void => {
44
- onSubmit && onSubmit(data);
46
+ if (onSubmit) {
47
+ onSubmit(data);
48
+ }
45
49
  },
46
50
  [onSubmit]
47
51
  );
52
+ useEffect(() => {
53
+ if (errors) {
54
+ for (const fieldName in errors) {
55
+ form.setError(fieldName, errors[fieldName]);
56
+ }
57
+ }
58
+ }, [errors]);
48
59
  const submit = form.handleSubmit(handleSubmit);
49
60
  const ctx = {
50
61
  fieldsMap,
@@ -68,6 +79,7 @@ const FormBase = React.forwardRef(function FormBase(
68
79
  formRef: ref,
69
80
  submit,
70
81
  };
82
+
71
83
  return (
72
84
  <FormContext.Provider value={ctx}>
73
85
  <Form grid={grid} onSubmit={submit} ref={ref} {...props}>
@@ -77,8 +89,42 @@ const FormBase = React.forwardRef(function FormBase(
77
89
  );
78
90
  });
79
91
 
80
- const useFormContext = () => {
81
- return useContext(FormContext);
92
+ const DEFAULT_LAYOUT = {
93
+ xs: 12,
94
+ sm: 12,
95
+ md: 12,
96
+ lg: 12,
97
+ xl: 12,
98
+ };
99
+
100
+ const BREAKPOINTS = ['xs', 'sm', 'md', 'lg', 'xl'];
101
+
102
+ const groupFieldsByLayout = (fields) => {
103
+ return BREAKPOINTS.reduce((sizes, size) => {
104
+ sizes[size] = fields
105
+ .reduce((acc, item) => {
106
+ const layoutValue = item.layout?.[size] || 12;
107
+ if (layoutValue === 0) {
108
+ return [...acc, item];
109
+ }
110
+ const lastElement = acc[acc.length - 1];
111
+ const currentSum = Array.isArray(lastElement)
112
+ ? lastElement.reduce((sum, i) => sum + (i.layout?.[size] || 0), 0)
113
+ : 0;
114
+ if (!Array.isArray(lastElement) || currentSum + layoutValue > 12) {
115
+ return layoutValue === 12 ? [...acc, item] : [...acc, [item]];
116
+ }
117
+
118
+ return [...acc.slice(0, -1), [...lastElement, item]];
119
+ }, [])
120
+ .map((item) => {
121
+ if (Array.isArray(item) && item.length === 1) {
122
+ return item[0];
123
+ }
124
+ return item;
125
+ });
126
+ return sizes;
127
+ }, {});
82
128
  };
83
129
  const useFormValues = () => {
84
130
  const ctx = useFormContext();
@@ -103,6 +149,34 @@ const FormBuilder = React.forwardRef(function FormBuilder(
103
149
  }: FormBuilderProps,
104
150
  ref: React.Ref<HTMLFormElement>
105
151
  ): React.ReactElement {
152
+ const { screenSize } = useScreenSize();
153
+ fields = fields.map((field) => {
154
+ const layout = field.layout;
155
+ if (!layout) {
156
+ return {
157
+ ...field,
158
+ layout: DEFAULT_LAYOUT,
159
+ };
160
+ }
161
+ return {
162
+ ...field,
163
+ layout: BREAKPOINTS.reduce(
164
+ (expandedLayout, breakpoint, breakpointIndex) => {
165
+ if (field?.layout?.[breakpoint]) {
166
+ expandedLayout[breakpoint] = field?.layout[breakpoint];
167
+ } else if (expandedLayout[BREAKPOINTS[breakpointIndex - 1]]) {
168
+ expandedLayout[breakpoint] =
169
+ expandedLayout[BREAKPOINTS[breakpointIndex - 1]];
170
+ } else {
171
+ expandedLayout[breakpoint] = 12;
172
+ }
173
+ return expandedLayout;
174
+ },
175
+ {}
176
+ ),
177
+ };
178
+ });
179
+
106
180
  const fieldsState = useRef(fields);
107
181
  const setFieldsState = useCallback((newFields) => {
108
182
  fieldsState.current = newFields;
@@ -138,12 +212,28 @@ const FormBuilder = React.forwardRef(function FormBuilder(
138
212
  if (auto) {
139
213
  if (fieldsets) {
140
214
  fieldChildren = fieldsets.map((fieldset) => (
141
- <Fieldset key={fieldset.key} />
215
+ <FieldsetWithContext key={fieldset.key} name={fieldset.key} />
142
216
  ));
143
217
  } else if (fields) {
144
- fieldChildren = fields.map((field) => (
145
- <Field key={field.key} name={field.key} />
146
- ));
218
+ const fieldsByLayouts = groupFieldsByLayout(fields);
219
+ const fieldsByLayoutSize = fieldsByLayouts[screenSize];
220
+ fieldChildren = fieldsByLayoutSize.map((item, index) => {
221
+ if (Array.isArray(item)) {
222
+ return (
223
+ <ErrorGroup
224
+ key={index}
225
+ screenSize={screenSize}
226
+ fieldOrder={item.map((field) => field.key)}
227
+ >
228
+ {item.map((f) => {
229
+ return <Field key={f.key} name={f.key} />;
230
+ })}
231
+ </ErrorGroup>
232
+ );
233
+ } else {
234
+ return <Field key={item.key} name={item.key} />;
235
+ }
236
+ });
147
237
  }
148
238
  }
149
239
  }
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { test, expect } from '@playwright/experimental-ct-react';
3
+
4
+ import { AutoErrorGrouping } from '@digigov/form/FormBuilder/__stories__/AutoErrorGrouping';
5
+ import { ErrorGrouping } from '@digigov/form/FormBuilder/__stories__/ErrorGrouping';
6
+
7
+ test('renders the ErrorGrouping and click submit', async ({ mount, page }) => {
8
+ await mount(<ErrorGrouping />);
9
+ await page.evaluate(() => document.fonts.ready);
10
+
11
+ // Move the mouse to the top-left corner to avoid random hover issues
12
+ await page.mouse.move(0, 0);
13
+
14
+ await page.click('text="Συνέχεια"');
15
+
16
+ const screenshot = await page.screenshot({
17
+ fullPage: true,
18
+ animations: 'disabled',
19
+ });
20
+ expect(screenshot).toMatchSnapshot();
21
+ });
22
+
23
+ test('renders the AutoErrorGrouping and click submit', async ({
24
+ mount,
25
+ page,
26
+ }) => {
27
+ await mount(<AutoErrorGrouping />);
28
+ await page.evaluate(() => document.fonts.ready);
29
+
30
+ // Move the mouse to the top-left corner to avoid random hover issues
31
+ await page.mouse.move(0, 0);
32
+
33
+ await page.click('text="Συνέχεια"');
34
+
35
+ const screenshot = await page.screenshot({
36
+ fullPage: true,
37
+ animations: 'disabled',
38
+ });
39
+ expect(screenshot).toMatchSnapshot();
40
+ });
@@ -469,7 +469,11 @@ const expectErrorMessages = async (formBuilder, scenarioExpect, expect) => {
469
469
  );
470
470
  }
471
471
  }
472
- await expect(labelLocator).toHaveText(expectText);
472
+ if (expectObj.textAssertion === 'toContainText') {
473
+ await expect(labelLocator).toContainText(expectText);
474
+ } else {
475
+ await expect(labelLocator).toHaveText(expectText);
476
+ }
473
477
  }
474
478
  }
475
479
  };
@@ -589,7 +593,7 @@ const generateScenarios = (
589
593
  };
590
594
  scenarioFill.push(finalScenarioFill);
591
595
  for (const multiplicityField of fillTemplate?.value?.of?.extra
592
- ?.fields) {
596
+ ?.fields ?? []) {
593
597
  scenarioExpect.push({
594
598
  type: 'success',
595
599
  fieldKey: `${fillTemplate.fieldKey}\\.${i}\\.${multiplicityField.fieldKey}`,
@@ -648,9 +652,9 @@ const el = {
648
652
  email: 'Συμπληρώστε μια έγκυρη ηλεκτρονική διεύθυνση (e-mail).',
649
653
  afm: 'Ο Α.Φ.Μ που πληκτρολογήσατε είναι λανθασμένος.',
650
654
  file_size:
651
- 'Το μέγεθος του αρχείου είναι μεγαλύτερο απο το επιτρεπόμενο ({{maxSizeToMb}}Mb).',
655
+ 'Το μέγεθος του αρχείου είναι μεγαλύτερο από το επιτρεπόμενο ({{maxSize}} Bytes).',
652
656
  image_size:
653
- 'Το μέγεθος της φωτογραφίας είναι μεγαλύτερο απο το επιτρεπόμενο ({{maxSizeToMb}}Mb).',
657
+ 'Το μέγεθος της φωτογραφίας είναι μεγαλύτερο από το επιτρεπόμενο ({{maxSize}} Bytes).',
654
658
  mobile_phone: 'Συμπληρώστε έναν έγκυρο αριθμό κινητού τηλεφώνου.',
655
659
  phone_number: 'Συμπληρώστε έναν έγκυρο αριθμό τηλεφώνου.',
656
660
  landline: 'Συμπληρώστε έναν έγκυρο αριθμό σταθερού τηλεφώνου.',
@@ -1118,7 +1122,7 @@ const inputsScenarios = [
1118
1122
  type: 'error',
1119
1123
  fieldKey: 'image',
1120
1124
  args: {
1121
- maxSizeToMb: 0.0003,
1125
+ maxSize: 300,
1122
1126
  },
1123
1127
  text: el.form.error.image_size,
1124
1128
  },
@@ -1126,7 +1130,7 @@ const inputsScenarios = [
1126
1130
  type: 'error',
1127
1131
  fieldKey: 'file',
1128
1132
  args: {
1129
- maxSizeToMb: 0.0003,
1133
+ maxSize: 300,
1130
1134
  },
1131
1135
  text: el.form.error.file_size,
1132
1136
  },
@@ -1289,6 +1293,54 @@ const INPUTS_INPUT_FIELDS = [
1289
1293
  },
1290
1294
  ];
1291
1295
 
1296
+ const ERROR_GROUPING_FIELDS = [
1297
+ {
1298
+ key: 'address',
1299
+ type: 'string',
1300
+ required: true,
1301
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
1302
+ label: {
1303
+ primary: 'Οδός',
1304
+ },
1305
+ },
1306
+ {
1307
+ key: 'address_number',
1308
+ type: 'int',
1309
+ required: true,
1310
+ layout: { xl: 2, lg: 2, md: 2, xs: 6 },
1311
+ label: {
1312
+ primary: 'Αριθμός',
1313
+ },
1314
+ },
1315
+ {
1316
+ key: 'postal_code',
1317
+ type: 'postal_code',
1318
+ required: true,
1319
+ layout: { xl: 4, lg: 4, md: 4, xs: 6 },
1320
+ label: {
1321
+ primary: 'Ταχ. Κώδικας',
1322
+ },
1323
+ },
1324
+ {
1325
+ key: 'town',
1326
+ type: 'string',
1327
+ required: true,
1328
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
1329
+ label: {
1330
+ primary: 'Πόλη',
1331
+ },
1332
+ },
1333
+ {
1334
+ key: 'country',
1335
+ type: 'string',
1336
+ required: true,
1337
+ layout: { xl: 6, lg: 6, md: 6, xs: 6 },
1338
+ label: {
1339
+ primary: 'Χώρα',
1340
+ },
1341
+ },
1342
+ ];
1343
+
1292
1344
  const inputsInputScenarios = [
1293
1345
  {
1294
1346
  title: 'success fill for inputs Input',
@@ -1410,7 +1462,8 @@ const inputsInputScenarios = [
1410
1462
  {
1411
1463
  title: 'empty fill for inputs Input',
1412
1464
  describe: 'inputs Input scenario',
1413
- fields: INPUTS_INPUT_FIELDS,
1465
+ delay: 5_000,
1466
+ fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
1414
1467
  fill: [],
1415
1468
  expect: [
1416
1469
  {
@@ -1468,12 +1521,42 @@ const inputsInputScenarios = [
1468
1521
  fieldKey: 'uuid4',
1469
1522
  text: el.form.error.required,
1470
1523
  },
1524
+ {
1525
+ type: 'error',
1526
+ fieldKey: 'address',
1527
+ text: el.form.error.required,
1528
+ textAssertion: 'toContainText',
1529
+ },
1530
+ {
1531
+ type: 'error',
1532
+ fieldKey: 'address_number',
1533
+ text: el.form.error.required,
1534
+ textAssertion: 'toContainText',
1535
+ },
1536
+ {
1537
+ type: 'error',
1538
+ fieldKey: 'postal_code',
1539
+ text: el.form.error.required,
1540
+ textAssertion: 'toContainText',
1541
+ },
1542
+ {
1543
+ type: 'error',
1544
+ fieldKey: 'town',
1545
+ text: el.form.error.required,
1546
+ textAssertion: 'toContainText',
1547
+ },
1548
+ {
1549
+ type: 'error',
1550
+ fieldKey: 'country',
1551
+ text: el.form.error.required,
1552
+ textAssertion: 'toContainText',
1553
+ },
1471
1554
  ],
1472
1555
  },
1473
1556
  {
1474
1557
  title: 'incorrect types for inputs Input',
1475
1558
  describe: 'inputs Input scenario',
1476
- fields: INPUTS_INPUT_FIELDS,
1559
+ fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
1477
1560
  fill: [
1478
1561
  {
1479
1562
  fieldKey: 'age',
@@ -1481,7 +1564,7 @@ const inputsInputScenarios = [
1481
1564
  },
1482
1565
  {
1483
1566
  fieldKey: 'email',
1484
- value: '23232',
1567
+ value: 'example@mail.',
1485
1568
  },
1486
1569
  {
1487
1570
  fieldKey: 'location',
@@ -1519,6 +1602,14 @@ const inputsInputScenarios = [
1519
1602
  fieldKey: 'uuid4',
1520
1603
  value: 'aaaaaa',
1521
1604
  },
1605
+ {
1606
+ fieldKey: 'address_number',
1607
+ value: 'aa',
1608
+ },
1609
+ {
1610
+ fieldKey: 'postal_code',
1611
+ value: 'aaaaa',
1612
+ },
1522
1613
  ],
1523
1614
  expect: [
1524
1615
  {
@@ -1576,6 +1667,18 @@ const inputsInputScenarios = [
1576
1667
  fieldKey: 'uuid4',
1577
1668
  text: el.form.error.uuid4,
1578
1669
  },
1670
+ {
1671
+ type: 'error',
1672
+ fieldKey: 'address_number',
1673
+ text: el.form.error.number,
1674
+ textAssertion: 'toContainText',
1675
+ },
1676
+ {
1677
+ type: 'error',
1678
+ fieldKey: 'postal_code',
1679
+ text: el.form.error.postalCode,
1680
+ textAssertion: 'toContainText',
1681
+ },
1579
1682
  ],
1580
1683
  },
1581
1684
  ];
@@ -1726,6 +1829,7 @@ const fieldArrayScenarioTitles = [
1726
1829
  const fieldArrayFieldsTemplate = {
1727
1830
  key: 'fieldArray',
1728
1831
  type: 'array',
1832
+ editable: true,
1729
1833
  label: {
1730
1834
  primary: 'Εξαρτώμενα μέλη',
1731
1835
  secondary:
@@ -1744,6 +1848,7 @@ const fieldArrayFieldsTemplate = {
1744
1848
  no: 'Όχι',
1745
1849
  },
1746
1850
  },
1851
+ border: 'border',
1747
1852
  of: {
1748
1853
  type: 'object',
1749
1854
  label: {
@@ -1842,16 +1947,25 @@ const scenarios = [
1842
1947
  ...inputsInputScenarios,
1843
1948
  ];
1844
1949
 
1950
+ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
1951
+
1845
1952
  for (const scenario of scenarios) {
1846
1953
  test.describe(scenario.describe, () => {
1847
1954
  test(scenario.title, async ({ mount, page }) => {
1848
1955
  const formBuilder = await mount(
1849
1956
  // @ts-ignore
1850
- <FormBuilder auto={true} fields={scenario.fields} onSubmit={() => { }} />
1957
+ <FormBuilder
1958
+ auto={true}
1959
+ grid={true}
1960
+ fields={scenario.fields}
1961
+ onSubmit={() => { }}
1962
+ />
1851
1963
  );
1852
1964
  await fillFields(page, formBuilder, scenario);
1853
1965
  await submitForm(formBuilder);
1854
-
1966
+ if (scenario.delay) {
1967
+ await delay(scenario.delay);
1968
+ }
1855
1969
  const screenshot = await page.screenshot({
1856
1970
  fullPage: true,
1857
1971
  animations: 'disabled',
@@ -1,8 +1,11 @@
1
- import React from 'react';
2
- import { createContext } from 'react';
1
+ import React, { createContext, useContext } from 'react';
3
2
  import { FormContextProps } from '@digigov/form/types';
4
3
 
5
4
  export const FormContext: React.Context<FormContextProps> = createContext({
6
5
  fieldsMap: {},
7
6
  fieldsetsMap: {},
8
7
  } as FormContextProps);
8
+
9
+ export const useFormContext = () => {
10
+ return useContext(FormContext);
11
+ };