@digigov/form 2.0.0-834daea4 → 2.0.0-87b6232d

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 (562) 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 +38 -25
  6. package/Field/FieldBase.js.map +2 -2
  7. package/Field/FieldBaseContainer/index.js +5 -3
  8. package/Field/FieldBaseContainer.js.map +2 -2
  9. package/Field/FieldConditional/index.js +4 -0
  10. package/Field/FieldConditional.js.map +2 -2
  11. package/Field/index.js +14 -4
  12. package/Field/index.js.map +2 -2
  13. package/Field/types.d.ts +20 -10
  14. package/Field/utils/index.js +8 -1
  15. package/Field/utils/index.js.map +2 -2
  16. package/Field/utils/useField/index.js +14 -1
  17. package/Field/utils/useField.js.map +2 -2
  18. package/FieldArray/FieldArray.stories.d.ts +1 -0
  19. package/FieldArray/FormDialog/index.js +402 -0
  20. package/{Questions/Questions.stories → FieldArray/FormDialog}/package.json +1 -1
  21. package/FieldArray/FormDialog.d.ts +67 -0
  22. package/FieldArray/FormDialog.js.map +7 -0
  23. package/FieldArray/__stories__/WithModal.d.ts +2 -0
  24. package/FieldArray/index.d.ts +6 -0
  25. package/FieldArray/index.js +97 -46
  26. package/FieldArray/index.js.map +3 -3
  27. package/FieldObject/index.d.ts +5 -0
  28. package/FieldObject/index.js +30 -15
  29. package/FieldObject/index.js.map +2 -2
  30. package/FormBuilder/FormBuilder.stories.d.ts +2 -0
  31. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
  32. package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
  33. package/FormBuilder/index.js +93 -6
  34. package/FormBuilder/index.js.map +2 -2
  35. package/FormBuilder/interaction.test.d.ts +1 -0
  36. package/FormContext.js.map +2 -2
  37. package/MultiplicityField/add-objects/index.js +6 -2
  38. package/MultiplicityField/add-objects.js.map +2 -2
  39. package/MultiplicityField/index.js +2 -0
  40. package/MultiplicityField/index.js.map +2 -2
  41. package/MultiplicityField/types.d.ts +1 -2
  42. package/Questions/Questions/index.js +5 -4
  43. package/Questions/Questions.js.map +2 -2
  44. package/Questions/Step/StepArrayReview.js.map +2 -2
  45. package/cjs/Field/ErrorGroup/index.js +82 -0
  46. package/cjs/Field/ErrorGroup.js.map +7 -0
  47. package/cjs/Field/FieldBase/index.js +37 -24
  48. package/cjs/Field/FieldBase.js.map +2 -2
  49. package/cjs/Field/FieldBaseContainer/index.js +5 -3
  50. package/cjs/Field/FieldBaseContainer.js.map +2 -2
  51. package/cjs/Field/FieldConditional/index.js +4 -0
  52. package/cjs/Field/FieldConditional.js.map +2 -2
  53. package/cjs/Field/index.js +14 -4
  54. package/cjs/Field/index.js.map +2 -2
  55. package/cjs/Field/types.js.map +1 -1
  56. package/cjs/Field/utils/index.js +8 -1
  57. package/cjs/Field/utils/index.js.map +3 -3
  58. package/cjs/Field/utils/useField/index.js +14 -1
  59. package/cjs/Field/utils/useField.js.map +2 -2
  60. package/cjs/FieldArray/FormDialog/index.js +421 -0
  61. package/cjs/FieldArray/FormDialog.js.map +7 -0
  62. package/cjs/FieldArray/index.js +92 -44
  63. package/cjs/FieldArray/index.js.map +3 -3
  64. package/cjs/FieldObject/index.js +30 -15
  65. package/cjs/FieldObject/index.js.map +2 -2
  66. package/cjs/FormBuilder/index.js +92 -5
  67. package/cjs/FormBuilder/index.js.map +2 -2
  68. package/cjs/FormContext/index.js +2 -2
  69. package/cjs/FormContext.js.map +3 -3
  70. package/cjs/MultiplicityField/add-objects/index.js +6 -2
  71. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  72. package/cjs/MultiplicityField/index.js +2 -0
  73. package/cjs/MultiplicityField/index.js.map +2 -2
  74. package/cjs/MultiplicityField/types.js.map +1 -1
  75. package/cjs/Questions/Questions/index.js +5 -4
  76. package/cjs/Questions/Questions.js.map +2 -2
  77. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  78. package/cjs/inputs/AutoCompleteInput/index.js +4 -3
  79. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  80. package/cjs/inputs/Checkboxes/index.js +2 -1
  81. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  82. package/cjs/inputs/DateInput/index.js +27 -12
  83. package/cjs/inputs/DateInput/index.js.map +2 -2
  84. package/cjs/inputs/DateTimeInput/index.js +224 -0
  85. package/cjs/inputs/DateTimeInput/index.js.map +7 -0
  86. package/cjs/inputs/FileInput/index.js +50 -31
  87. package/cjs/inputs/FileInput/index.js.map +2 -2
  88. package/cjs/inputs/ImageInput/index.js +8 -2
  89. package/cjs/inputs/ImageInput/index.js.map +2 -2
  90. package/cjs/inputs/Input/index.js +9 -2
  91. package/cjs/inputs/Input/index.js.map +2 -2
  92. package/cjs/inputs/Input/inputsInputScenarios.js.map +2 -2
  93. package/cjs/inputs/Label/index.js.map +2 -2
  94. package/cjs/inputs/OtpInput/index.js +1 -0
  95. package/cjs/inputs/OtpInput/index.js.map +2 -2
  96. package/cjs/inputs/Radio/index.js +1 -0
  97. package/cjs/inputs/Radio/index.js.map +2 -2
  98. package/cjs/inputs/Select/index.js +9 -2
  99. package/cjs/inputs/Select/index.js.map +2 -2
  100. package/cjs/inputs/inputsScenarios/index.js +6 -12
  101. package/cjs/inputs/inputsScenarios.js.map +2 -2
  102. package/cjs/lazy/index.js +48 -38
  103. package/cjs/lazy.js.map +3 -3
  104. package/cjs/locales/el.js.map +1 -1
  105. package/cjs/registry/index.js +70 -60
  106. package/cjs/registry.js.map +3 -3
  107. package/cjs/types.js.map +1 -1
  108. package/cjs/utils/index.js +22 -7
  109. package/cjs/utils.js.map +2 -2
  110. package/cjs/validators/index.js +58 -27
  111. package/cjs/validators/index.js.map +2 -2
  112. package/cjs/validators/utils/amka/index.js +60 -0
  113. package/cjs/validators/utils/amka.js.map +7 -0
  114. package/cjs/validators/utils/datetime/index.js +151 -0
  115. package/cjs/validators/utils/datetime.js.map +7 -0
  116. package/cjs/validators/utils/file/index.js +30 -17
  117. package/cjs/validators/utils/file.js.map +2 -2
  118. package/cjs/validators/utils/index.js +8 -2
  119. package/cjs/validators/utils/index.js.map +2 -2
  120. package/cjs/validators/utils/int/index.js +1 -1
  121. package/cjs/validators/utils/int.js.map +2 -2
  122. package/cjs/validators/utils/number/index.js +1 -1
  123. package/cjs/validators/utils/number.js.map +2 -2
  124. package/cjs/validators/utils/phone.js.map +2 -2
  125. package/cjs/validators/utils/postal_code.js.map +1 -1
  126. package/cjs/validators/utils/uuid4.js.map +2 -2
  127. package/index.js +1 -1
  128. package/inputs/AutoCompleteInput/index.d.ts +1 -1
  129. package/inputs/AutoCompleteInput/index.js +4 -3
  130. package/inputs/AutoCompleteInput/index.js.map +2 -2
  131. package/inputs/Checkboxes/index.d.ts +1 -1
  132. package/inputs/Checkboxes/index.js +2 -1
  133. package/inputs/Checkboxes/index.js.map +2 -2
  134. package/inputs/DateInput/index.d.ts +1 -2
  135. package/inputs/DateInput/index.js +27 -12
  136. package/inputs/DateInput/index.js.map +2 -2
  137. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +7 -0
  138. package/inputs/DateTimeInput/__stories__/Default.d.ts +3 -0
  139. package/inputs/DateTimeInput/index.d.ts +13 -0
  140. package/inputs/DateTimeInput/index.js +194 -0
  141. package/inputs/DateTimeInput/index.js.map +7 -0
  142. package/inputs/DateTimeInput/index.test.d.ts +1 -0
  143. package/inputs/{Input/Input.stories → DateTimeInput}/package.json +1 -1
  144. package/inputs/FileInput/FileInput.stories.d.ts +1 -0
  145. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  146. package/inputs/FileInput/index.d.ts +12 -0
  147. package/inputs/FileInput/index.js +55 -33
  148. package/inputs/FileInput/index.js.map +2 -2
  149. package/inputs/ImageInput/index.js +8 -2
  150. package/inputs/ImageInput/index.js.map +2 -2
  151. package/inputs/Input/Input.stories.d.ts +2 -0
  152. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  153. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
  154. package/inputs/Input/index.d.ts +2 -1
  155. package/inputs/Input/index.js +9 -2
  156. package/inputs/Input/index.js.map +2 -2
  157. package/inputs/Input/inputsInputScenarios.js.map +2 -2
  158. package/inputs/Label/index.d.ts +0 -2
  159. package/inputs/Label/index.js.map +2 -2
  160. package/inputs/OtpInput/index.js +1 -0
  161. package/inputs/OtpInput/index.js.map +2 -2
  162. package/inputs/Radio/index.d.ts +1 -1
  163. package/inputs/Radio/index.js +1 -0
  164. package/inputs/Radio/index.js.map +2 -2
  165. package/inputs/Select/index.d.ts +3 -2
  166. package/inputs/Select/index.js +13 -3
  167. package/inputs/Select/index.js.map +2 -2
  168. package/inputs/inputsScenarios/index.js +6 -12
  169. package/inputs/inputsScenarios.d.ts +1 -1
  170. package/inputs/inputsScenarios.js.map +2 -2
  171. package/lazy/index.js +77 -71
  172. package/locales/el.js.map +1 -1
  173. package/package.json +5 -5
  174. package/registry/index.js +116 -107
  175. package/src/Field/ErrorGroup.tsx +84 -0
  176. package/src/Field/FieldBase.tsx +55 -36
  177. package/src/Field/FieldBaseContainer.tsx +11 -7
  178. package/src/Field/FieldConditional.tsx +6 -2
  179. package/src/Field/doc.mdx +202 -1
  180. package/src/Field/index.tsx +19 -5
  181. package/src/Field/types.tsx +22 -10
  182. package/src/Field/utils/index.ts +7 -0
  183. package/src/Field/utils/useField.ts +14 -2
  184. package/src/FieldArray/FieldArray.stories.js +1 -0
  185. package/src/FieldArray/FormDialog.tsx +574 -0
  186. package/src/FieldArray/__stories__/Default.tsx +1 -0
  187. package/src/FieldArray/__stories__/WithExactLength.tsx +1 -0
  188. package/src/FieldArray/__stories__/WithModal.tsx +160 -0
  189. package/src/FieldArray/index.test.tsx +8 -0
  190. package/src/FieldArray/index.tsx +116 -60
  191. package/src/FieldObject/index.tsx +39 -18
  192. package/src/FormBuilder/FormBuilder.stories.js +2 -0
  193. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
  194. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
  195. package/src/FormBuilder/doc.mdx +9 -4
  196. package/src/FormBuilder/index.test.tsx +12 -0
  197. package/src/FormBuilder/index.tsx +103 -9
  198. package/src/FormBuilder/interaction.test.tsx +40 -0
  199. package/src/FormBuilder/scenarios.test.tsx +124 -10
  200. package/src/FormContext.tsx +1 -2
  201. package/src/MultiplicityField/add-objects.tsx +6 -3
  202. package/src/MultiplicityField/doc.mdx +101 -83
  203. package/src/MultiplicityField/index.test.tsx +4 -0
  204. package/src/MultiplicityField/index.tsx +2 -0
  205. package/src/MultiplicityField/types.ts +1 -2
  206. package/src/Questions/Questions.tsx +4 -4
  207. package/src/Questions/Step/StepArrayReview.tsx +1 -1
  208. package/src/Questions/__snapshots__/index.spec.tsx.snap +12 -10
  209. package/src/Questions/doc.mdx +21 -41
  210. package/src/Questions/index.spec.tsx +14 -2
  211. package/src/Questions/index.test.tsx +4 -0
  212. package/src/doc.mdx +26 -11
  213. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +2 -10
  214. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -7
  215. package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
  216. package/src/inputs/AutoCompleteInput/index.tsx +4 -5
  217. package/src/inputs/Checkboxes/index.test.tsx +4 -0
  218. package/src/inputs/Checkboxes/index.tsx +3 -4
  219. package/src/inputs/DateInput/__stories__/Default.tsx +7 -12
  220. package/src/inputs/DateInput/index.test.tsx +4 -0
  221. package/src/inputs/DateInput/index.tsx +28 -11
  222. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +8 -0
  223. package/src/inputs/DateTimeInput/__stories__/Default.tsx +25 -0
  224. package/src/inputs/DateTimeInput/doc.mdx +16 -0
  225. package/src/inputs/DateTimeInput/index.test.tsx +24 -0
  226. package/src/inputs/DateTimeInput/index.tsx +209 -0
  227. package/src/inputs/FileInput/FileInput.stories.js +1 -0
  228. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  229. package/src/inputs/FileInput/index.test.tsx +8 -0
  230. package/src/inputs/FileInput/index.tsx +56 -23
  231. package/src/inputs/ImageInput/ImageInput.stories.js +0 -1
  232. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +2 -2
  233. package/src/inputs/ImageInput/index.test.tsx +4 -4
  234. package/src/inputs/ImageInput/index.tsx +8 -5
  235. package/src/inputs/Input/Input.stories.js +2 -0
  236. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  237. package/src/inputs/Input/__stories__/LandlineNumber.tsx +2 -1
  238. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -0
  239. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -0
  240. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -0
  241. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
  242. package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -0
  243. package/src/inputs/Input/index.test.tsx +8 -0
  244. package/src/inputs/Input/index.tsx +12 -3
  245. package/src/inputs/Input/inputsInputScenarios.ts +244 -245
  246. package/src/inputs/Label/index.test.tsx +4 -0
  247. package/src/inputs/Label/index.tsx +0 -3
  248. package/src/inputs/OtpInput/index.test.tsx +4 -0
  249. package/src/inputs/OtpInput/index.tsx +3 -1
  250. package/src/inputs/Radio/index.test.tsx +4 -0
  251. package/src/inputs/Radio/index.tsx +2 -1
  252. package/src/inputs/Select/index.test.tsx +4 -0
  253. package/src/inputs/Select/index.tsx +18 -6
  254. package/src/inputs/inputsScenarios.ts +36 -42
  255. package/src/lazy.js +77 -68
  256. package/src/locales/el.ts +1 -1
  257. package/src/registry.js +108 -100
  258. package/src/types.tsx +4 -3
  259. package/src/utils.ts +29 -8
  260. package/src/validators/index.ts +104 -32
  261. package/src/validators/utils/amka.ts +39 -0
  262. package/src/validators/utils/datetime.ts +130 -0
  263. package/src/validators/utils/file.ts +33 -17
  264. package/src/validators/utils/index.ts +5 -1
  265. package/src/validators/utils/int.ts +1 -1
  266. package/src/validators/utils/number.ts +1 -1
  267. package/src/validators/utils/phone.ts +1 -1
  268. package/src/validators/utils/postal_code.ts +1 -1
  269. package/src/validators/utils/uuid4.ts +2 -1
  270. package/src/validators/validators.spec.ts +3 -3
  271. package/types.d.ts +4 -3
  272. package/types.js.map +1 -1
  273. package/utils/index.js +22 -7
  274. package/utils.d.ts +2 -0
  275. package/utils.js.map +2 -2
  276. package/validators/index.d.ts +1 -1
  277. package/validators/index.js +63 -28
  278. package/validators/index.js.map +2 -2
  279. package/validators/utils/amka/index.js +36 -0
  280. package/{FieldArray/FieldArray.stories → validators/utils/amka}/package.json +1 -1
  281. package/validators/utils/amka.d.ts +6 -0
  282. package/validators/utils/amka.js.map +7 -0
  283. package/validators/utils/datetime/index.js +116 -0
  284. package/validators/utils/datetime/package.json +6 -0
  285. package/validators/utils/datetime.d.ts +9 -0
  286. package/validators/utils/datetime.js.map +7 -0
  287. package/validators/utils/file/index.js +30 -17
  288. package/validators/utils/file.js.map +2 -2
  289. package/validators/utils/index.d.ts +2 -0
  290. package/validators/utils/index.js +5 -1
  291. package/validators/utils/index.js.map +2 -2
  292. package/validators/utils/int/index.js +1 -1
  293. package/validators/utils/int.js.map +2 -2
  294. package/validators/utils/number/index.js +1 -1
  295. package/validators/utils/number.js.map +2 -2
  296. package/validators/utils/phone.d.ts +1 -1
  297. package/validators/utils/phone.js.map +2 -2
  298. package/validators/utils/postal_code.d.ts +1 -1
  299. package/validators/utils/postal_code.js.map +1 -1
  300. package/validators/utils/uuid4.js.map +2 -2
  301. package/FieldArray/FieldArray.stories/index.js +0 -14
  302. package/FieldArray/FieldArray.stories.js.map +0 -7
  303. package/FieldArray/__stories__/Default/index.js +0 -95
  304. package/FieldArray/__stories__/Default/package.json +0 -6
  305. package/FieldArray/__stories__/Default.js.map +0 -7
  306. package/FieldArray/__stories__/WithExactLength/index.js +0 -95
  307. package/FieldArray/__stories__/WithExactLength/package.json +0 -6
  308. package/FieldArray/__stories__/WithExactLength.js.map +0 -7
  309. package/Form.stories/index.js +0 -7
  310. package/Form.stories.js.map +0 -7
  311. package/FormBuilder/FormBuilder.stories/index.js +0 -12
  312. package/FormBuilder/FormBuilder.stories/package.json +0 -6
  313. package/FormBuilder/FormBuilder.stories.js.map +0 -7
  314. package/FormBuilder/__stories__/Default/index.js +0 -32
  315. package/FormBuilder/__stories__/Default/package.json +0 -6
  316. package/FormBuilder/__stories__/Default.js.map +0 -7
  317. package/MultiplicityField/MultiplicityField.stories/index.js +0 -22
  318. package/MultiplicityField/MultiplicityField.stories/package.json +0 -6
  319. package/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  320. package/MultiplicityField/__stories__/Default/index.js +0 -100
  321. package/MultiplicityField/__stories__/Default/package.json +0 -6
  322. package/MultiplicityField/__stories__/Default.js.map +0 -7
  323. package/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -70
  324. package/MultiplicityField/__stories__/PreviewDisplay/package.json +0 -6
  325. package/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  326. package/MultiplicityField/__stories__/WithExactLength/index.js +0 -97
  327. package/MultiplicityField/__stories__/WithExactLength/package.json +0 -6
  328. package/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  329. package/MultiplicityField/__stories__/WithMaxLength/index.js +0 -100
  330. package/MultiplicityField/__stories__/WithMaxLength/package.json +0 -6
  331. package/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  332. package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -101
  333. package/MultiplicityField/__stories__/WithMinAndMaxLength/package.json +0 -6
  334. package/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  335. package/MultiplicityField/__stories__/WithMinLength/index.js +0 -100
  336. package/MultiplicityField/__stories__/WithMinLength/package.json +0 -6
  337. package/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  338. package/Questions/Questions.stories/index.js +0 -12
  339. package/Questions/Questions.stories.js.map +0 -7
  340. package/Questions/__stories__/Default/index.js +0 -108
  341. package/Questions/__stories__/Default/package.json +0 -6
  342. package/Questions/__stories__/Default.js.map +0 -7
  343. package/cjs/FieldArray/FieldArray.stories/index.js +0 -48
  344. package/cjs/FieldArray/FieldArray.stories.js.map +0 -7
  345. package/cjs/FieldArray/__stories__/Default/index.js +0 -128
  346. package/cjs/FieldArray/__stories__/Default.js.map +0 -7
  347. package/cjs/FieldArray/__stories__/WithExactLength/index.js +0 -128
  348. package/cjs/FieldArray/__stories__/WithExactLength.js.map +0 -7
  349. package/cjs/Form.stories/index.js +0 -26
  350. package/cjs/Form.stories.js.map +0 -7
  351. package/cjs/FormBuilder/FormBuilder.stories/index.js +0 -45
  352. package/cjs/FormBuilder/FormBuilder.stories.js.map +0 -7
  353. package/cjs/FormBuilder/__stories__/Default/index.js +0 -65
  354. package/cjs/FormBuilder/__stories__/Default.js.map +0 -7
  355. package/cjs/MultiplicityField/MultiplicityField.stories/index.js +0 -60
  356. package/cjs/MultiplicityField/MultiplicityField.stories.js.map +0 -7
  357. package/cjs/MultiplicityField/__stories__/Default/index.js +0 -133
  358. package/cjs/MultiplicityField/__stories__/Default.js.map +0 -7
  359. package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -86
  360. package/cjs/MultiplicityField/__stories__/PreviewDisplay.js.map +0 -7
  361. package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +0 -130
  362. package/cjs/MultiplicityField/__stories__/WithExactLength.js.map +0 -7
  363. package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +0 -133
  364. package/cjs/MultiplicityField/__stories__/WithMaxLength.js.map +0 -7
  365. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -134
  366. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength.js.map +0 -7
  367. package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +0 -133
  368. package/cjs/MultiplicityField/__stories__/WithMinLength.js.map +0 -7
  369. package/cjs/Questions/Questions.stories/index.js +0 -45
  370. package/cjs/Questions/Questions.stories.js.map +0 -7
  371. package/cjs/Questions/__stories__/Default/index.js +0 -136
  372. package/cjs/Questions/__stories__/Default.js.map +0 -7
  373. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -48
  374. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  375. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -83
  376. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  377. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -83
  378. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  379. package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +0 -51
  380. package/cjs/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  381. package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +0 -133
  382. package/cjs/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  383. package/cjs/inputs/Checkboxes/__stories__/Default/index.js +0 -77
  384. package/cjs/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  385. package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -78
  386. package/cjs/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  387. package/cjs/inputs/DateInput/DateInput.stories/index.js +0 -45
  388. package/cjs/inputs/DateInput/DateInput.stories.js.map +0 -7
  389. package/cjs/inputs/DateInput/__stories__/Default/index.js +0 -61
  390. package/cjs/inputs/DateInput/__stories__/Default.js.map +0 -7
  391. package/cjs/inputs/FileInput/FileInput.stories/index.js +0 -45
  392. package/cjs/inputs/FileInput/FileInput.stories.js.map +0 -7
  393. package/cjs/inputs/FileInput/__stories__/Default/index.js +0 -61
  394. package/cjs/inputs/FileInput/__stories__/Default.js.map +0 -7
  395. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +0 -51
  396. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  397. package/cjs/inputs/ImageInput/__stories__/Default/index.js +0 -63
  398. package/cjs/inputs/ImageInput/__stories__/Default.js.map +0 -7
  399. package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +0 -69
  400. package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
  401. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -72
  402. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  403. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -68
  404. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  405. package/cjs/inputs/Input/Input.stories/index.js +0 -72
  406. package/cjs/inputs/Input/Input.stories.js.map +0 -7
  407. package/cjs/inputs/Input/__stories__/AFM/index.js +0 -63
  408. package/cjs/inputs/Input/__stories__/AFM.js.map +0 -7
  409. package/cjs/inputs/Input/__stories__/Boolean/index.js +0 -64
  410. package/cjs/inputs/Input/__stories__/Boolean.js.map +0 -7
  411. package/cjs/inputs/Input/__stories__/IBAN/index.js +0 -64
  412. package/cjs/inputs/Input/__stories__/IBAN.js.map +0 -7
  413. package/cjs/inputs/Input/__stories__/Integer/index.js +0 -78
  414. package/cjs/inputs/Input/__stories__/Integer.js.map +0 -7
  415. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +0 -67
  416. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  417. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -67
  418. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  419. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -66
  420. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  421. package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -64
  422. package/cjs/inputs/Input/__stories__/PostalCode.js.map +0 -7
  423. package/cjs/inputs/Input/__stories__/String/index.js +0 -64
  424. package/cjs/inputs/Input/__stories__/String.js.map +0 -7
  425. package/cjs/inputs/Input/__stories__/TextWithLimit/index.js +0 -64
  426. package/cjs/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  427. package/cjs/inputs/Label/Label.stories/index.js +0 -45
  428. package/cjs/inputs/Label/Label.stories.js.map +0 -7
  429. package/cjs/inputs/Label/__stories__/Default/index.js +0 -72
  430. package/cjs/inputs/Label/__stories__/Default.js.map +0 -7
  431. package/cjs/inputs/OtpInput/OtpInput.stories/index.js +0 -45
  432. package/cjs/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  433. package/cjs/inputs/OtpInput/__stories__/Default/index.js +0 -64
  434. package/cjs/inputs/OtpInput/__stories__/Default.js.map +0 -7
  435. package/cjs/inputs/Radio/Radio.stories/index.js +0 -51
  436. package/cjs/inputs/Radio/Radio.stories.js.map +0 -7
  437. package/cjs/inputs/Radio/__stories__/Conditional/index.js +0 -133
  438. package/cjs/inputs/Radio/__stories__/Conditional.js.map +0 -7
  439. package/cjs/inputs/Radio/__stories__/Default/index.js +0 -81
  440. package/cjs/inputs/Radio/__stories__/Default.js.map +0 -7
  441. package/cjs/inputs/Radio/__stories__/WithDivider/index.js +0 -82
  442. package/cjs/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  443. package/cjs/inputs/Select/Select.stories/index.js +0 -45
  444. package/cjs/inputs/Select/Select.stories.js.map +0 -7
  445. package/cjs/inputs/Select/__stories__/Default/index.js +0 -86
  446. package/cjs/inputs/Select/__stories__/Default.js.map +0 -7
  447. package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -14
  448. package/inputs/AutoCompleteInput/AutoComplete.stories/package.json +0 -6
  449. package/inputs/AutoCompleteInput/AutoComplete.stories.js.map +0 -7
  450. package/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -50
  451. package/inputs/AutoCompleteInput/__stories__/Default/package.json +0 -6
  452. package/inputs/AutoCompleteInput/__stories__/Default.js.map +0 -7
  453. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +0 -50
  454. package/inputs/AutoCompleteInput/__stories__/Multiple/package.json +0 -6
  455. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +0 -7
  456. package/inputs/Checkboxes/Checkboxes.stories/index.js +0 -16
  457. package/inputs/Checkboxes/Checkboxes.stories/package.json +0 -6
  458. package/inputs/Checkboxes/Checkboxes.stories.js.map +0 -7
  459. package/inputs/Checkboxes/__stories__/Conditional/index.js +0 -100
  460. package/inputs/Checkboxes/__stories__/Conditional/package.json +0 -6
  461. package/inputs/Checkboxes/__stories__/Conditional.js.map +0 -7
  462. package/inputs/Checkboxes/__stories__/Default/index.js +0 -44
  463. package/inputs/Checkboxes/__stories__/Default/package.json +0 -6
  464. package/inputs/Checkboxes/__stories__/Default.js.map +0 -7
  465. package/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -45
  466. package/inputs/Checkboxes/__stories__/WithDivider/package.json +0 -6
  467. package/inputs/Checkboxes/__stories__/WithDivider.js.map +0 -7
  468. package/inputs/DateInput/DateInput.stories/index.js +0 -12
  469. package/inputs/DateInput/DateInput.stories/package.json +0 -6
  470. package/inputs/DateInput/DateInput.stories.js.map +0 -7
  471. package/inputs/DateInput/__stories__/Default/index.js +0 -28
  472. package/inputs/DateInput/__stories__/Default/package.json +0 -6
  473. package/inputs/DateInput/__stories__/Default.js.map +0 -7
  474. package/inputs/FileInput/FileInput.stories/index.js +0 -12
  475. package/inputs/FileInput/FileInput.stories/package.json +0 -6
  476. package/inputs/FileInput/FileInput.stories.js.map +0 -7
  477. package/inputs/FileInput/__stories__/Default/index.js +0 -28
  478. package/inputs/FileInput/__stories__/Default/package.json +0 -6
  479. package/inputs/FileInput/__stories__/Default.js.map +0 -7
  480. package/inputs/ImageInput/ImageInput.stories/index.js +0 -16
  481. package/inputs/ImageInput/ImageInput.stories/package.json +0 -6
  482. package/inputs/ImageInput/ImageInput.stories.js.map +0 -7
  483. package/inputs/ImageInput/__stories__/Default/index.js +0 -30
  484. package/inputs/ImageInput/__stories__/Default/package.json +0 -6
  485. package/inputs/ImageInput/__stories__/Default.js.map +0 -7
  486. package/inputs/ImageInput/__stories__/MaxSize/index.js +0 -36
  487. package/inputs/ImageInput/__stories__/MaxSize/package.json +0 -6
  488. package/inputs/ImageInput/__stories__/MaxSize.js.map +0 -7
  489. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -39
  490. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/package.json +0 -6
  491. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +0 -7
  492. package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -35
  493. package/inputs/ImageInput/__stories__/WithInvalidImageSize/package.json +0 -6
  494. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  495. package/inputs/ImageInput/__stories__/WithInvalidImageSize.js.map +0 -7
  496. package/inputs/Input/Input.stories/index.js +0 -30
  497. package/inputs/Input/Input.stories.js.map +0 -7
  498. package/inputs/Input/__stories__/AFM/index.js +0 -30
  499. package/inputs/Input/__stories__/AFM/package.json +0 -6
  500. package/inputs/Input/__stories__/AFM.js.map +0 -7
  501. package/inputs/Input/__stories__/Boolean/index.js +0 -31
  502. package/inputs/Input/__stories__/Boolean/package.json +0 -6
  503. package/inputs/Input/__stories__/Boolean.js.map +0 -7
  504. package/inputs/Input/__stories__/IBAN/index.js +0 -31
  505. package/inputs/Input/__stories__/IBAN/package.json +0 -6
  506. package/inputs/Input/__stories__/IBAN.js.map +0 -7
  507. package/inputs/Input/__stories__/Integer/index.js +0 -45
  508. package/inputs/Input/__stories__/Integer/package.json +0 -6
  509. package/inputs/Input/__stories__/Integer.js.map +0 -7
  510. package/inputs/Input/__stories__/LandlineNumber/index.js +0 -34
  511. package/inputs/Input/__stories__/LandlineNumber/package.json +0 -6
  512. package/inputs/Input/__stories__/LandlineNumber.js.map +0 -7
  513. package/inputs/Input/__stories__/MobilePhone/index.js +0 -34
  514. package/inputs/Input/__stories__/MobilePhone/package.json +0 -6
  515. package/inputs/Input/__stories__/MobilePhone.js.map +0 -7
  516. package/inputs/Input/__stories__/PhoneNumber/index.js +0 -33
  517. package/inputs/Input/__stories__/PhoneNumber/package.json +0 -6
  518. package/inputs/Input/__stories__/PhoneNumber.js.map +0 -7
  519. package/inputs/Input/__stories__/PostalCode/index.js +0 -31
  520. package/inputs/Input/__stories__/PostalCode/package.json +0 -6
  521. package/inputs/Input/__stories__/PostalCode.js.map +0 -7
  522. package/inputs/Input/__stories__/String/index.js +0 -31
  523. package/inputs/Input/__stories__/String/package.json +0 -6
  524. package/inputs/Input/__stories__/String.js.map +0 -7
  525. package/inputs/Input/__stories__/TextWithLimit/index.js +0 -31
  526. package/inputs/Input/__stories__/TextWithLimit/package.json +0 -6
  527. package/inputs/Input/__stories__/TextWithLimit.js.map +0 -7
  528. package/inputs/Label/Label.stories/index.js +0 -12
  529. package/inputs/Label/Label.stories/package.json +0 -6
  530. package/inputs/Label/Label.stories.js.map +0 -7
  531. package/inputs/Label/__stories__/Default/index.js +0 -39
  532. package/inputs/Label/__stories__/Default/package.json +0 -6
  533. package/inputs/Label/__stories__/Default.js.map +0 -7
  534. package/inputs/OtpInput/OtpInput.stories/index.js +0 -12
  535. package/inputs/OtpInput/OtpInput.stories/package.json +0 -6
  536. package/inputs/OtpInput/OtpInput.stories.js.map +0 -7
  537. package/inputs/OtpInput/__stories__/Default/index.js +0 -31
  538. package/inputs/OtpInput/__stories__/Default/package.json +0 -6
  539. package/inputs/OtpInput/__stories__/Default.js.map +0 -7
  540. package/inputs/Radio/Radio.stories/index.js +0 -16
  541. package/inputs/Radio/Radio.stories/package.json +0 -6
  542. package/inputs/Radio/Radio.stories.js.map +0 -7
  543. package/inputs/Radio/__stories__/Conditional/index.js +0 -100
  544. package/inputs/Radio/__stories__/Conditional/package.json +0 -6
  545. package/inputs/Radio/__stories__/Conditional.js.map +0 -7
  546. package/inputs/Radio/__stories__/Default/index.js +0 -48
  547. package/inputs/Radio/__stories__/Default/package.json +0 -6
  548. package/inputs/Radio/__stories__/Default.js.map +0 -7
  549. package/inputs/Radio/__stories__/WithDivider/index.js +0 -49
  550. package/inputs/Radio/__stories__/WithDivider/package.json +0 -6
  551. package/inputs/Radio/__stories__/WithDivider.js.map +0 -7
  552. package/inputs/Select/Select.stories/index.js +0 -12
  553. package/inputs/Select/Select.stories/package.json +0 -6
  554. package/inputs/Select/Select.stories.js.map +0 -7
  555. package/inputs/Select/__stories__/Default/index.js +0 -53
  556. package/inputs/Select/__stories__/Default/package.json +0 -6
  557. package/inputs/Select/__stories__/Default.js.map +0 -7
  558. package/lazy.d.ts +0 -81
  559. package/lazy.js.map +0 -7
  560. package/registry.d.ts +0 -71
  561. package/registry.js.map +0 -7
  562. package/src/inputs/ImageInput/__stories__/WithInvalidImageSize.tsx +0 -36
@@ -14,6 +14,7 @@ import {
14
14
  TableDataCell,
15
15
  } from '@digigov/react-core';
16
16
 
17
+ # Questions
17
18
 
18
19
  Question pages are used to ask users meaningful questions needed by your
19
20
  GOV.GR service, or even gather data about their persona or their application
@@ -46,7 +47,7 @@ import { Field } from '@digigov/form';
46
47
  const steps = [
47
48
  {
48
49
  name: 'residency',
49
- title: 'Where do you live?',
50
+ title: 'Που μένετε;',
50
51
  fields: [
51
52
  {
52
53
  key: 'countries',
@@ -56,25 +57,25 @@ const steps = [
56
57
  options: [
57
58
  {
58
59
  label: {
59
- primary: 'Greece',
60
+ primary: 'Ελλάδα',
60
61
  },
61
62
  value: 'greece',
62
63
  },
63
64
  {
64
65
  label: {
65
- primary: 'Cyprus',
66
+ primary: 'Κύπρος',
66
67
  },
67
68
  value: 'cyprus',
68
69
  },
69
70
  {
70
71
  label: {
71
- primary: 'European Union',
72
+ primary: 'Ευρωπαϊκή Ένωση',
72
73
  },
73
74
  value: 'eu',
74
75
  },
75
76
  {
76
77
  label: {
77
- primary: 'United States of America',
78
+ primary: 'Ηνωμένες Πολιτείες της Αμερικής',
78
79
  },
79
80
  value: 'usa',
80
81
  },
@@ -85,12 +86,12 @@ const steps = [
85
86
  },
86
87
  {
87
88
  name: 'dob',
88
- title: 'When is your birthday?',
89
+ title: 'Ποια είναι ημερομηνία γέννησής σας;',
89
90
  fields: [
90
91
  {
91
92
  key: 'dob',
92
93
  label: {
93
- primary: 'Birthday',
94
+ primary: 'Ημερομηνία γέννησης',
94
95
  },
95
96
  type: 'date',
96
97
  required: true,
@@ -184,7 +185,7 @@ object. The most basic properties are the following:
184
185
  ```json pure title="step-name.json"
185
186
  {
186
187
  "name": "name",
187
- "title": "What is your name?",
188
+ "title": "Ποιο είναι το όνομά σας;",
188
189
  "fields": [
189
190
  {
190
191
  "key": "name",
@@ -210,7 +211,7 @@ the next `step`.
210
211
  const steps = [
211
212
  {
212
213
  name: 'age',
213
- title: 'What is your age?',
214
+ title: 'Ποια είναι η ηλικία σας?',
214
215
  fields: [
215
216
  {
216
217
  key: 'age',
@@ -226,13 +227,13 @@ const steps = [
226
227
  },
227
228
  {
228
229
  name: 'citizen-underage',
229
- title: 'Are you a student?',
230
+ title: 'Είστε μαθητής;',
230
231
  fields: [ ... ]
231
232
  },
232
233
  {
233
234
  // highlight-next-line
234
235
  name: 'citizen-adult',
235
- title: 'Are you currently employed?',
236
+ title: 'Εργάζεστε;',
236
237
  fields: [
237
238
  {
238
239
  key: 'citizen-underage-employed',
@@ -242,11 +243,11 @@ const steps = [
242
243
  options: [
243
244
  {
244
245
  label: {primary: "Yes"},
245
- value: 'yes',
246
+ value: 'Ναι',
246
247
  },
247
248
  {
248
249
  label: {primary: "No"},
249
- value: 'no',
250
+ value: 'ΌΧι',
250
251
  }
251
252
  ]
252
253
  }
@@ -280,7 +281,7 @@ import TranslatorsHeader from 'translators-landing/components/TranslatorsHeader'
280
281
  const steps = [
281
282
  {
282
283
  name: 'age',
283
- title: 'What is your age?',
284
+ title: 'Ποια είναι η ηλικία σας;',
284
285
  fields: [
285
286
  {
286
287
  key: 'age',
@@ -294,7 +295,7 @@ const steps = [
294
295
  },
295
296
  {
296
297
  name: 'citizen-underage',
297
- title: 'Are you a student?',
298
+ title: 'Είστε μαθητής;',
298
299
  fields: [
299
300
  {
300
301
  key: 'citizen-underage-student',
@@ -303,11 +304,11 @@ const steps = [
303
304
  extra: {
304
305
  options: [
305
306
  {
306
- label: { primary: 'Yes' },
307
+ label: { primary: 'Ναι' },
307
308
  value: 'yes',
308
309
  },
309
310
  {
310
- label: { primary: 'No' },
311
+ label: { primary: 'Όχι' },
311
312
  value: 'no',
312
313
  },
313
314
  ],
@@ -317,7 +318,7 @@ const steps = [
317
318
  },
318
319
  {
319
320
  name: 'citizen-adult',
320
- title: 'Are you currently employed?',
321
+ title: 'Εργάζεστε;',
321
322
  fields: [
322
323
  {
323
324
  key: 'citizen-adult-employed',
@@ -326,11 +327,11 @@ const steps = [
326
327
  extra: {
327
328
  options: [
328
329
  {
329
- label: { primary: 'Yes' },
330
+ label: { primary: 'Ναι' },
330
331
  value: 'yes',
331
332
  },
332
333
  {
333
- label: { primary: 'No' },
334
+ label: { primary: 'Όχι' },
334
335
  value: 'no',
335
336
  },
336
337
  ],
@@ -389,24 +390,3 @@ export default function Index() {
389
390
  );
390
391
  }
391
392
  ```
392
-
393
- ## Prop types
394
-
395
- <TableContainer>
396
- <Table>
397
- <TableHead>
398
- <TableRow>
399
- <TableHeadCell>Περίοδος</TableHeadCell>
400
- <TableHeadCell>Κανονικό ποσό</TableHeadCell>
401
- <TableHeadCell>Μειωμένο ποσό</TableHeadCell>
402
- </TableRow>
403
- </TableHead>
404
- <TableBody>
405
- <TableRow>
406
- <TableDataCell>Πρώτες 6 εβδομάδες </TableDataCell>
407
- <TableDataCell> €109.80 / εβδομάδα</TableDataCell>
408
- <TableDataCell> €69.80 / εβδομάδα</TableDataCell>
409
- </TableRow>
410
- </TableBody>
411
- </Table>
412
- </TableContainer>
@@ -2,8 +2,12 @@ import * as React from 'react';
2
2
  import { render } from '@testing-library/react';
3
3
 
4
4
  import { Field } from '@digigov/form';
5
- import { Step, StepForm, StepQuote, StepTitle } from '@digigov/form/Questions';
6
- import Questions from '@digigov/form/Questions';
5
+ import Questions, {
6
+ Step,
7
+ StepForm,
8
+ StepQuote,
9
+ StepTitle,
10
+ } from '@digigov/form/Questions';
7
11
 
8
12
  const steps = [
9
13
  {
@@ -42,6 +46,14 @@ const steps = [
42
46
  },
43
47
  ];
44
48
 
49
+ beforeAll(() => {
50
+ global.ResizeObserver = class ResizeObserver {
51
+ observe() {}
52
+ unobserve() {}
53
+ disconnect() {}
54
+ };
55
+ });
56
+
45
57
  it('renders the Questions', () => {
46
58
  expect(
47
59
  render(
@@ -14,6 +14,10 @@ test('renders the All Questions variants', async ({ mount, page }) => {
14
14
  )
15
15
  await page.evaluate(() => document.fonts.ready);
16
16
 
17
+ // Move the mouse to the top-left corner to avoid random hover issues
18
+ await page.mouse.move(0, 0);
19
+
20
+
17
21
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
18
22
  expect(screenshot).toMatchSnapshot();
19
23
  });
package/src/doc.mdx CHANGED
@@ -1,16 +1,16 @@
1
1
  ---
2
2
  id: Introduction
3
- title: Digigov Form
4
- sidebar_label: Introduction to Digigov Form
5
3
  ---
6
4
 
5
+ # Digigov form
6
+
7
7
  Digigov Form is an off-the-shelf solution for managing web forms using
8
8
  Reactjs. It supports flexible and multi-step forms and easy-to-use validation.
9
9
  This page will guide you through everything you need to create accessible and
10
10
  dynamic forms that can handle all sorts of user inputs.
11
11
 
12
12
  <img
13
- src="/img/form.svg"
13
+ src="/tmp/form.svg"
14
14
  style={{ margin: '3rem 0', maxWidth: '450px', width: '60%' }}
15
15
  />
16
16
 
@@ -30,18 +30,33 @@ will be able to save via an JSON API.
30
30
  The `@digigov/form` NPM package contains React components and validators. The
31
31
  library uses basic, semantically correct HTML5 input fields.
32
32
 
33
- It adds dynamic control, interactivity and validations to the core input
34
- components implemented in `@digigov/react-core`. Styling is provided by
35
- `@digigov/css` library following the [GOV.GR design
36
- system](https://guide.services.gov.gr).
33
+ ### 📦 Installation
34
+
35
+ ```sh
36
+ yarn add @digigov/form
37
+
38
+ ```
39
+
40
+ Or using npm:
41
+
42
+ ```sh
43
+ npm install i @digigov/form
37
44
 
38
- Digigov Form uses two main libraries internally. The first is [React Hook
39
- Form](https://www.react-hook-form.com/) which helps us manage the form state and
40
- perform actions and mutations on it. The second is
41
- [Yup](https://github.com/jquense/yup) and it is used to validate form data. It
45
+ ```
46
+
47
+ `digigov/form` is a **form management solution** which adds dynamic control while simplifies handling user input, based on:
48
+
49
+ ✅ [React Hook Form](https://www.react-hook-form.com/) which helps us manage the form state and
50
+ perform actions and mutations on it.
51
+
52
+ 🛠️ [Yup](https://github.com/jquense/yup) and it is used to validate form data. It
42
53
  interfaces with React Hook Form right out of the box, but also enables us to
43
54
  define custom validation types such as AMKA, AFM etc.
44
55
 
56
+ 🔄 [Multi-step](/components/@digigov/form/Questions) forms for complex workflows.
57
+
58
+ 🔗 [digigov/form](/components/@digigov/form/FormBuilder) components for a consistent UI.
59
+
45
60
  Some basic functionalites of `@digigov/form` will be presented in the following
46
61
  sections and also we are going to guide you through some more advanced topics
47
62
  such as internationalisation, custom data validation etc.
@@ -4,13 +4,7 @@ import FormBuilder from '@digigov/form/FormBuilder';
4
4
  import { FieldSpec } from '@digigov/form/types';
5
5
  import Button from '@digigov/ui/form/Button';
6
6
 
7
- const results = [
8
- 'Αμερική',
9
- 'Ασία',
10
- 'Αυστραλία',
11
- 'Αφρική',
12
- 'Ευρώπη',
13
- ];
7
+ const results = ['Αμερική', 'Ασία', 'Αυστραλία', 'Αφρική', 'Ευρώπη'];
14
8
 
15
9
  const fields: FieldSpec[] = [
16
10
  {
@@ -36,7 +30,6 @@ const fields: FieldSpec[] = [
36
30
  const initialValues = {};
37
31
 
38
32
  export const Default = () => (
39
-
40
33
  <FormBuilder
41
34
  fields={fields}
42
35
  onSubmit={(data) => {
@@ -49,6 +42,5 @@ export const Default = () => (
49
42
  ))}
50
43
  <Button type="submit">Submit</Button>
51
44
  </FormBuilder>
52
-
53
45
  );
54
- export default Default;
46
+ export default Default;
@@ -4,13 +4,7 @@ import FormBuilder from '@digigov/form/FormBuilder';
4
4
  import { FieldSpec } from '@digigov/form/types';
5
5
  import Button from '@digigov/ui/form/Button';
6
6
 
7
- const results = [
8
- 'Αμερική',
9
- 'Ασία',
10
- 'Αυστραλία',
11
- 'Αφρική',
12
- 'Ευρώπη',
13
- ];
7
+ const results = ['Αμερική', 'Ασία', 'Αυστραλία', 'Αφρική', 'Ευρώπη'];
14
8
 
15
9
  const fields: FieldSpec[] = [
16
10
  {
@@ -18,6 +18,10 @@ test('renders the All AutoCompleteInput variants', async ({ mount, page }) => {
18
18
  )
19
19
  await page.evaluate(() => document.fonts.ready);
20
20
 
21
+ // Move the mouse to the top-left corner to avoid random hover issues
22
+ await page.mouse.move(0, 0);
23
+
24
+
21
25
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
22
26
  expect(screenshot).toMatchSnapshot();
23
27
  });
@@ -17,7 +17,7 @@ export interface AutoCompleteInputExtra
17
17
  | 'onConfirm'
18
18
  | 'dropdownArrow'
19
19
  > {
20
- options: Array<FieldOptionProps>;
20
+ options: FieldOptionProps[];
21
21
  }
22
22
 
23
23
  export interface AutoCompleteInputProps
@@ -33,7 +33,6 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
33
33
  extra: { options },
34
34
  onChange,
35
35
  value,
36
- error,
37
36
  ...props
38
37
  }) => {
39
38
  const suggest = useCallback(
@@ -65,9 +64,8 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
65
64
  onConfirm={(value) => {
66
65
  if (Array.isArray(value)) {
67
66
  const selectedValues = value.map((item) => item.value);
68
- selectedValues.length > 0
69
- ? onChange(selectedValues)
70
- : onChange(undefined);
67
+ if (selectedValues.length > 0) onChange(selectedValues);
68
+ else onChange(undefined);
71
69
  } else {
72
70
  onChange(value.value);
73
71
  }
@@ -92,6 +90,7 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
92
90
  ...props,
93
91
  reset: undefined,
94
92
  required: undefined,
93
+ Field: undefined,
95
94
  }}
96
95
  name={name}
97
96
  id={`${name}-id`}
@@ -22,6 +22,10 @@ test('renders the All Checkboxes variants', async ({ mount, page }) => {
22
22
  )
23
23
  await page.evaluate(() => document.fonts.ready);
24
24
 
25
+ // Move the mouse to the top-left corner to avoid random hover issues
26
+ await page.mouse.move(0, 0);
27
+
28
+
25
29
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
26
30
  expect(screenshot).toMatchSnapshot();
27
31
  });
@@ -14,7 +14,7 @@ export interface CheckboxesProps
14
14
  value?: string[];
15
15
  extra: {
16
16
  className?: string;
17
- options: Array<FieldOptionProps>;
17
+ options: FieldOptionProps[];
18
18
  };
19
19
  fieldComponent: React.FC<Omit<ControlledFieldProps, 'value' | 'onChange'>>;
20
20
  }
@@ -48,9 +48,6 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
48
48
  );
49
49
  }
50
50
 
51
- // reset value to undefined instead of an empty array
52
- // so the error state mechanism can throw validation errors
53
- if (newValue.length === 0) newValue = undefined;
54
51
  onChange(newValue);
55
52
  };
56
53
  const { t } = useTranslation();
@@ -75,6 +72,7 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
75
72
  <CheckboxItem
76
73
  key={`${name}.${index}`}
77
74
  name={`${name}.${v}`}
75
+ id={`${name}.${v}`}
78
76
  value={v}
79
77
  disabled={disabled || optionDisabled}
80
78
  checked={value?.includes(v)}
@@ -84,6 +82,7 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
84
82
  ...props,
85
83
  reset: undefined,
86
84
  defaultValue: undefined,
85
+ error: undefined,
87
86
  onBlur: undefined,
88
87
  required: undefined,
89
88
  'aria-describedby': undefined,
@@ -9,21 +9,16 @@ const fields = [
9
9
  required: true,
10
10
  label: {
11
11
  primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
12
- secondary:
13
- 'Για παράδειγμα, 05 11 2020',
14
- }
15
- },
16
- ]
12
+ secondary: 'Για παράδειγμα, 05 11 2020',
13
+ },
14
+ } as const,
15
+ ];
17
16
 
18
17
  export const Default = () => (
19
18
  <FormBuilder onSubmit={() => console.log('kati')}>
20
- {fields.map((field) => {
21
- return (
22
- // @ts-ignore
23
- <Field {...field} name={field.key} />
24
- )
25
- }
26
- )}
19
+ {fields.map(({ key, ...field }) => {
20
+ return <Field {...field} name={key} key={key} />;
21
+ })}
27
22
  <Button type="submit">Συνέχεια</Button>
28
23
  </FormBuilder>
29
24
  );
@@ -14,6 +14,10 @@ test('renders the All DateInput variants', async ({ mount, page }) => {
14
14
  )
15
15
  await page.evaluate(() => document.fonts.ready);
16
16
 
17
+ // Move the mouse to the top-left corner to avoid random hover issues
18
+ await page.mouse.move(0, 0);
19
+
20
+
17
21
  const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
18
22
  expect(screenshot).toMatchSnapshot();
19
23
  });
@@ -2,6 +2,7 @@ import React, { useMemo, useState } from 'react';
2
2
  import dayjs from 'dayjs';
3
3
  import customParseFormat from 'dayjs/plugin/customParseFormat';
4
4
  import { UncontrolledFieldProps } from '@digigov/form/Field/types';
5
+ import { useFormContext } from '@digigov/form/FormBuilder';
5
6
  import {
6
7
  DateInputContainer,
7
8
  DateInputItem,
@@ -16,32 +17,36 @@ export interface DateInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
16
17
  };
17
18
  }
18
19
 
19
- function useDate(value, onChange) {
20
+ function useDate(name, value, form) {
20
21
  const [year, month, day] = useMemo(() => {
21
22
  if (!value || value.length === 0) {
22
- onChange('');
23
+ update('');
23
24
  return ['', '', ''];
24
25
  }
25
26
  const [day, month, year] = value.split('/');
26
27
  return [year, month, day];
27
28
  }, [value]);
28
29
 
30
+ function update(value) {
31
+ form.setValue(name, value, { shouldValidate: false });
32
+ }
33
+
29
34
  function set(year, month, day) {
30
35
  const value = `${day || ''}/${month || ''}/${year || ''}`;
31
36
  if (!year && !month && !day) {
32
- onChange(null);
37
+ update('');
33
38
  } else {
34
- onChange(value);
39
+ update(value);
35
40
  }
36
41
  }
37
42
 
38
43
  function setYear(evt) {
39
- const val = evt.target.value;
44
+ const val = evt.target.value.trim();
40
45
  set(val, month, day);
41
46
  }
42
47
 
43
48
  function setMonth(evt, cast) {
44
- let val = evt.target.value;
49
+ let val = evt.target.value.trim();
45
50
  if (cast && val && val.length === 1) {
46
51
  val = '0' + val;
47
52
  }
@@ -49,13 +54,19 @@ function useDate(value, onChange) {
49
54
  }
50
55
 
51
56
  function setDay(evt, cast) {
52
- let val = evt.target.value;
57
+ let val = evt.target.value.trim();
53
58
  if (cast && val && val.length === 1) {
54
59
  val = '0' + val;
55
60
  }
56
61
  set(year, month, val);
57
62
  }
58
63
 
64
+ function trigger() {
65
+ if (form.formState.isSubmitted) {
66
+ form.trigger(name);
67
+ }
68
+ }
69
+
59
70
  return {
60
71
  day,
61
72
  month,
@@ -63,6 +74,7 @@ function useDate(value, onChange) {
63
74
  setYear,
64
75
  setMonth,
65
76
  setDay,
77
+ trigger,
66
78
  };
67
79
  }
68
80
 
@@ -80,7 +92,7 @@ const DatePart = ({ label, ...props }) => {
80
92
  return <DateInputItem {...props}>{label}</DateInputItem>;
81
93
  };
82
94
 
83
- export const DateInput = ({ name, type, ...props }) => {
95
+ export const DateInput = ({ name, ...props }) => {
84
96
  const { t } = useTranslation();
85
97
  const [initial] = useState(props.value);
86
98
  const value = useMemo(() => {
@@ -90,17 +102,19 @@ export const DateInput = ({ name, type, ...props }) => {
90
102
  return props.value;
91
103
  }, [props.value, initial]);
92
104
 
93
- const date = useDate(value || makeDate(props.defaultValue), props.onChange);
105
+ const form = useFormContext();
106
+ const date = useDate(name, value || makeDate(props.defaultValue), form);
94
107
 
95
108
  return (
96
109
  <DateInputContainer>
97
110
  <DatePart
98
111
  label={t('form.label.day')}
99
112
  onChange={date.setDay}
100
- onBlur={(e) => date.setDay(e, true)}
113
+ onBlur={date.trigger}
101
114
  value={date.day}
102
115
  width={2}
103
116
  name={`${name}-day`}
117
+ id={`${name}-day`}
104
118
  maxLength="2"
105
119
  disabled={props.disabled}
106
120
  aria-required={props['aria-required']}
@@ -109,10 +123,11 @@ export const DateInput = ({ name, type, ...props }) => {
109
123
  <DatePart
110
124
  label={t('form.label.month')}
111
125
  onChange={date.setMonth}
112
- onBlur={(e) => date.setMonth(e, true)}
126
+ onBlur={date.trigger}
113
127
  value={date.month}
114
128
  width={2}
115
129
  name={`${name}-month`}
130
+ id={`${name}-month`}
116
131
  maxLength="2"
117
132
  disabled={props.disabled}
118
133
  aria-required={props['aria-required']}
@@ -121,9 +136,11 @@ export const DateInput = ({ name, type, ...props }) => {
121
136
  <DatePart
122
137
  label={t('form.label.year')}
123
138
  onChange={date.setYear}
139
+ onBlur={date.trigger}
124
140
  value={date.year}
125
141
  width={4}
126
142
  name={`${name}-year`}
143
+ id={`${name}-year`}
127
144
  maxLength="4"
128
145
  disabled={props.disabled}
129
146
  aria-required={props['aria-required']}
@@ -0,0 +1,8 @@
1
+ import { Default } from './__stories__/Default';
2
+
3
+ export default {
4
+ title: 'Form/Inputs/DateTimeInput',
5
+ component: Default,
6
+ };
7
+
8
+ export { Default };
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import FormBuilder, { Field } from '@digigov/form';
3
+ import { Button } from '@digigov/ui/form/Button';
4
+
5
+ const fields = [
6
+ {
7
+ key: 'datetime-example',
8
+ type: 'datetime',
9
+ required: true,
10
+ label: {
11
+ primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
12
+ secondary: 'Για παράδειγμα, 05 11 2020',
13
+ },
14
+ } as const,
15
+ ];
16
+
17
+ export const Default = () => (
18
+ <FormBuilder onSubmit={() => console.log('kati')}>
19
+ {fields.map(({ key, ...field }) => {
20
+ return <Field {...field} name={key} key={key} />;
21
+ })}
22
+ <Button type="submit">Συνέχεια</Button>
23
+ </FormBuilder>
24
+ );
25
+ export default Default;
@@ -0,0 +1,16 @@
1
+ ---
2
+ title: DateTime Input
3
+ ---
4
+
5
+ # DateTime input
6
+
7
+
8
+
9
+ Input element of type `datetime` create input fields that let the user enter a date and time,
10
+ either with a textbox that validates the input or a special date picker interface.
11
+
12
+ ## How to use
13
+
14
+ ### Default
15
+
16
+ <code src="@digigov/form/inputs/DateTimeInput/__stories__/Default.tsx" />