@digigov/form 2.0.0-d0adc9fb → 2.0.0-d2ffc726

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 (625) hide show
  1. package/Field/ErrorGroup/index.js +48 -0
  2. package/{inputs/inputsScenarios → 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 -26
  6. package/Field/FieldBase.d.ts +1 -1
  7. package/Field/FieldBase.js.map +2 -2
  8. package/Field/FieldBaseContainer/index.js +37 -17
  9. package/Field/FieldBaseContainer.d.ts +2 -2
  10. package/Field/FieldBaseContainer.js.map +2 -2
  11. package/Field/FieldConditional/index.js +4 -0
  12. package/Field/FieldConditional.d.ts +1 -1
  13. package/Field/FieldConditional.js.map +2 -2
  14. package/Field/index.d.ts +1 -1
  15. package/Field/index.js +24 -28
  16. package/Field/index.js.map +2 -2
  17. package/Field/types.d.ts +23 -12
  18. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -2
  19. package/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  20. package/Field/utils/resolveField/index.js +35 -0
  21. package/Field/utils/{calculateField → resolveField}/package.json +1 -1
  22. package/Field/utils/resolveField.d.ts +3 -0
  23. package/Field/utils/resolveField.js.map +7 -0
  24. package/Field/utils/useField/index.js +12 -3
  25. package/Field/utils/useField.d.ts +1 -1
  26. package/Field/utils/useField.js.map +2 -2
  27. package/FieldArray/BaseFieldArray/index.js +76 -0
  28. package/FieldArray/BaseFieldArray/package.json +6 -0
  29. package/FieldArray/BaseFieldArray.d.ts +5 -0
  30. package/FieldArray/BaseFieldArray.js.map +7 -0
  31. package/FieldArray/FieldArray.stories.d.ts +2 -0
  32. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +23 -0
  33. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/package.json +6 -0
  34. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.d.ts +9 -0
  35. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  36. package/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.d.ts +13 -0
  37. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +184 -0
  38. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/package.json +6 -0
  39. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +26 -0
  40. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  41. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +11 -0
  42. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/package.json +6 -0
  43. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
  44. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  45. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.d.ts +2 -0
  46. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.d.ts +2 -0
  47. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.d.ts +2 -0
  48. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.d.ts +2 -0
  49. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.d.ts +2 -0
  50. package/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.d.ts +2 -0
  51. package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +15 -0
  52. package/FieldArray/FormDialog/ArrayDisplay/index.js +57 -0
  53. package/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  54. package/{inputs/Input/inputsInputScenarios → FieldArray/FormDialog/ArrayDisplay}/package.json +1 -1
  55. package/FieldArray/FormDialog/ArrayEditModal/index.js +158 -0
  56. package/FieldArray/FormDialog/ArrayEditModal/package.json +6 -0
  57. package/FieldArray/FormDialog/ArrayEditModal.d.ts +26 -0
  58. package/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  59. package/FieldArray/FormDialog/index.d.ts +19 -0
  60. package/FieldArray/FormDialog/index.js +213 -257
  61. package/FieldArray/FormDialog/index.js.map +7 -0
  62. package/FieldArray/__stories__/CardsWithError.d.ts +15 -0
  63. package/FieldArray/__stories__/Default.d.ts +1 -1
  64. package/FieldArray/__stories__/WithExactLength.d.ts +1 -1
  65. package/FieldArray/__stories__/WithModal.d.ts +2 -0
  66. package/FieldArray/index.d.ts +5 -2
  67. package/FieldArray/index.js +41 -57
  68. package/FieldArray/index.js.map +2 -2
  69. package/FieldObject/index.d.ts +7 -4
  70. package/FieldObject/index.js +30 -27
  71. package/FieldObject/index.js.map +2 -2
  72. package/Fieldset/FieldsetWithContext.js.map +1 -1
  73. package/Fieldset/index.d.ts +1 -1
  74. package/Fieldset/index.js.map +1 -1
  75. package/Fieldset/types.d.ts +2 -2
  76. package/FormBuilder/FormBuilder.stories.d.ts +4 -0
  77. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
  78. package/FormBuilder/__stories__/Default.d.ts +1 -1
  79. package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
  80. package/FormBuilder/index.d.ts +2 -2
  81. package/FormBuilder/index.js +186 -80
  82. package/FormBuilder/index.js.map +2 -2
  83. package/FormContext/index.js +6 -2
  84. package/FormContext.d.ts +3 -2
  85. package/FormContext.js.map +2 -2
  86. package/MultiplicityField/MultiplicityField.stories.d.ts +2 -0
  87. package/MultiplicityField/__stories__/Default.d.ts +1 -1
  88. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +1 -1
  89. package/MultiplicityField/__stories__/WithExactLength.d.ts +1 -1
  90. package/MultiplicityField/__stories__/WithMaxLength.d.ts +1 -1
  91. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +1 -1
  92. package/MultiplicityField/__stories__/WithMinLength.d.ts +1 -1
  93. package/MultiplicityField/add-objects/index.js +12 -19
  94. package/MultiplicityField/add-objects.d.ts +1 -1
  95. package/MultiplicityField/add-objects.js.map +2 -2
  96. package/MultiplicityField/index.d.ts +2 -2
  97. package/MultiplicityField/index.js +6 -2
  98. package/MultiplicityField/index.js.map +2 -2
  99. package/MultiplicityField/types.d.ts +3 -2
  100. package/Questions/Questions.d.ts +1 -1
  101. package/Questions/Questions.js.map +1 -1
  102. package/Questions/Questions.stories.d.ts +2 -0
  103. package/Questions/QuestionsContext.d.ts +1 -1
  104. package/Questions/QuestionsContext.js.map +1 -1
  105. package/Questions/Step/Step.d.ts +1 -1
  106. package/Questions/Step/Step.js.map +1 -1
  107. package/Questions/Step/StepArrayReview.d.ts +1 -1
  108. package/Questions/Step/StepArrayReview.js.map +1 -1
  109. package/Questions/Step/StepContext.d.ts +1 -1
  110. package/Questions/Step/StepContext.js.map +1 -1
  111. package/Questions/Step/StepDescription.d.ts +1 -1
  112. package/Questions/Step/StepDescription.js.map +2 -2
  113. package/Questions/Step/StepForm.d.ts +2 -2
  114. package/Questions/Step/StepForm.js.map +1 -1
  115. package/Questions/Step/StepQuote.d.ts +1 -1
  116. package/Questions/Step/StepQuote.js.map +2 -2
  117. package/Questions/Step/StepTitle.d.ts +1 -1
  118. package/Questions/Step/StepTitle.js.map +2 -2
  119. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  120. package/Questions/Step/getAddMoreFields.js.map +1 -1
  121. package/Questions/Step/types.d.ts +1 -1
  122. package/Questions/__stories__/Default.d.ts +1 -1
  123. package/Questions/getNextStep.d.ts +1 -1
  124. package/Questions/getNextStep.js.map +1 -1
  125. package/Questions/types.d.ts +1 -1
  126. package/cjs/Field/ErrorGroup/index.js +82 -0
  127. package/cjs/Field/ErrorGroup.js.map +7 -0
  128. package/cjs/Field/FieldBase/index.js +36 -25
  129. package/cjs/Field/FieldBase.js.map +2 -2
  130. package/cjs/Field/FieldBaseContainer/index.js +36 -16
  131. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  132. package/cjs/Field/FieldConditional/index.js +4 -0
  133. package/cjs/Field/FieldConditional.js.map +2 -2
  134. package/cjs/Field/index.js +24 -25
  135. package/cjs/Field/index.js.map +2 -2
  136. package/cjs/Field/types.js.map +1 -1
  137. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +2 -2
  138. package/cjs/Field/utils/resolveField/index.js +55 -0
  139. package/cjs/Field/utils/resolveField.js.map +7 -0
  140. package/cjs/Field/utils/useField/index.js +12 -3
  141. package/cjs/Field/utils/useField.js.map +2 -2
  142. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  143. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  144. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +56 -0
  145. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  146. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +209 -0
  147. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  148. package/cjs/{locales/el → FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader}/index.js +16 -7
  149. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  150. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js +90 -0
  151. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  152. package/cjs/FieldArray/FormDialog/ArrayEditModal/index.js +186 -0
  153. package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  154. package/cjs/FieldArray/FormDialog/index.js +204 -243
  155. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  156. package/cjs/FieldArray/index.js +40 -56
  157. package/cjs/FieldArray/index.js.map +3 -3
  158. package/cjs/FieldObject/index.js +30 -24
  159. package/cjs/FieldObject/index.js.map +2 -2
  160. package/cjs/Fieldset/FieldsetWithContext.js.map +1 -1
  161. package/cjs/Fieldset/index.js.map +1 -1
  162. package/cjs/Fieldset/types.js.map +1 -1
  163. package/cjs/FormBuilder/index.js +188 -82
  164. package/cjs/FormBuilder/index.js.map +3 -3
  165. package/cjs/FormContext/index.js +7 -2
  166. package/cjs/FormContext.js.map +2 -2
  167. package/cjs/MultiplicityField/add-objects/index.js +11 -13
  168. package/cjs/MultiplicityField/add-objects.js.map +2 -2
  169. package/cjs/MultiplicityField/index.js +6 -2
  170. package/cjs/MultiplicityField/index.js.map +2 -2
  171. package/cjs/MultiplicityField/types.js.map +1 -1
  172. package/cjs/Questions/Questions.js.map +1 -1
  173. package/cjs/Questions/QuestionsContext.js.map +1 -1
  174. package/cjs/Questions/Step/Step.js.map +1 -1
  175. package/cjs/Questions/Step/StepArrayReview.js.map +1 -1
  176. package/cjs/Questions/Step/StepContext.js.map +1 -1
  177. package/cjs/Questions/Step/StepDescription.js.map +2 -2
  178. package/cjs/Questions/Step/StepForm.js.map +1 -1
  179. package/cjs/Questions/Step/StepQuote.js.map +2 -2
  180. package/cjs/Questions/Step/StepTitle.js.map +2 -2
  181. package/cjs/Questions/Step/getAddMoreFields.js.map +1 -1
  182. package/cjs/Questions/Step/types.js.map +1 -1
  183. package/cjs/Questions/getNextStep.js.map +1 -1
  184. package/cjs/Questions/types.js.map +1 -1
  185. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  186. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  187. package/cjs/hooks/utils/index.js +98 -0
  188. package/cjs/hooks/utils.js.map +7 -0
  189. package/cjs/inputs/AutoCompleteInput/index.js.map +2 -2
  190. package/cjs/inputs/Checkboxes/index.js +67 -62
  191. package/cjs/inputs/Checkboxes/index.js.map +2 -2
  192. package/cjs/inputs/DateInput/index.js +54 -19
  193. package/cjs/inputs/DateInput/index.js.map +2 -2
  194. package/cjs/inputs/DateTimeInput/index.js +83 -39
  195. package/cjs/inputs/DateTimeInput/index.js.map +2 -2
  196. package/cjs/inputs/FileInput/index.js +68 -30
  197. package/cjs/inputs/FileInput/index.js.map +2 -2
  198. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  199. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  200. package/cjs/inputs/ImageInput/index.js +42 -10
  201. package/cjs/inputs/ImageInput/index.js.map +2 -2
  202. package/cjs/inputs/Input/index.js +55 -55
  203. package/cjs/inputs/Input/index.js.map +2 -2
  204. package/cjs/inputs/Label/index.js.map +1 -1
  205. package/cjs/inputs/OtpInput/index.js +36 -30
  206. package/cjs/inputs/OtpInput/index.js.map +2 -2
  207. package/cjs/inputs/Radio/index.js +5 -4
  208. package/cjs/inputs/Radio/index.js.map +3 -3
  209. package/cjs/inputs/Select/index.js +5 -3
  210. package/cjs/inputs/Select/index.js.map +2 -2
  211. package/cjs/{Field/utils → inputs/registry}/index.js +7 -5
  212. package/cjs/inputs/registry.js.map +7 -0
  213. package/cjs/lazy/index.js +16 -10
  214. package/cjs/lazy.js.map +2 -2
  215. package/cjs/registry/index.js +31 -15
  216. package/cjs/registry.js.map +2 -2
  217. package/cjs/types.js.map +1 -1
  218. package/cjs/utils/index.js +20 -6
  219. package/cjs/utils.js.map +2 -2
  220. package/cjs/validators/index.js +33 -19
  221. package/cjs/validators/index.js.map +2 -2
  222. package/cjs/validators/types.js.map +1 -1
  223. package/cjs/validators/utils/amka/index.js +60 -0
  224. package/cjs/validators/utils/amka.js.map +7 -0
  225. package/cjs/validators/utils/date/index.js +26 -3
  226. package/cjs/validators/utils/date.js.map +2 -2
  227. package/cjs/validators/utils/datetime/index.js +118 -24
  228. package/cjs/validators/utils/datetime.js.map +2 -2
  229. package/cjs/validators/utils/email/index.js +39 -0
  230. package/cjs/validators/utils/email.js.map +7 -0
  231. package/cjs/validators/utils/file/index.js +30 -17
  232. package/cjs/validators/utils/file.js.map +2 -2
  233. package/cjs/validators/utils/iban.js.map +1 -1
  234. package/cjs/validators/utils/image.js.map +1 -1
  235. package/cjs/validators/utils/index.js +5 -1
  236. package/cjs/validators/utils/index.js.map +2 -2
  237. package/cjs/validators/utils/int/index.js +1 -1
  238. package/cjs/validators/utils/int.js.map +2 -2
  239. package/cjs/validators/utils/number/index.js +1 -1
  240. package/cjs/validators/utils/number.js.map +2 -2
  241. package/cjs/validators/utils/otp.js.map +1 -1
  242. package/cjs/validators/utils/phone.js.map +1 -1
  243. package/cjs/validators/utils/postal_code.js.map +1 -1
  244. package/cjs/validators/utils/text_limit.js.map +1 -1
  245. package/hooks/useFieldFocusManager/index.js +116 -0
  246. package/hooks/useFieldFocusManager/package.json +6 -0
  247. package/hooks/useFieldFocusManager.d.ts +25 -0
  248. package/hooks/useFieldFocusManager.js.map +7 -0
  249. package/hooks/utils/index.js +73 -0
  250. package/{Field → hooks}/utils/package.json +1 -1
  251. package/hooks/utils.d.ts +18 -0
  252. package/hooks/utils.js.map +7 -0
  253. package/index.js +1 -1
  254. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +2 -0
  255. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +1 -1
  256. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +1 -1
  257. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  258. package/inputs/AutoCompleteInput/index.js +1 -3
  259. package/inputs/AutoCompleteInput/index.js.map +2 -2
  260. package/inputs/Checkboxes/Checkboxes.stories.d.ts +2 -0
  261. package/inputs/Checkboxes/__stories__/Conditional.d.ts +1 -1
  262. package/inputs/Checkboxes/__stories__/Default.d.ts +1 -1
  263. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +1 -1
  264. package/inputs/Checkboxes/index.d.ts +3 -3
  265. package/inputs/Checkboxes/index.js +67 -62
  266. package/inputs/Checkboxes/index.js.map +2 -2
  267. package/inputs/DateInput/DateInput.stories.d.ts +6 -0
  268. package/inputs/DateInput/__stories__/Default.d.ts +1 -1
  269. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  270. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  271. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  272. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  273. package/inputs/DateInput/index.d.ts +2 -5
  274. package/inputs/DateInput/index.js +55 -20
  275. package/inputs/DateInput/index.js.map +2 -2
  276. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +10 -3
  277. package/inputs/DateTimeInput/__stories__/Default.d.ts +1 -1
  278. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  279. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  280. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  281. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  282. package/inputs/DateTimeInput/index.d.ts +2 -5
  283. package/inputs/DateTimeInput/index.js +84 -40
  284. package/inputs/DateTimeInput/index.js.map +2 -2
  285. package/inputs/FileInput/FileInput.stories.d.ts +3 -0
  286. package/inputs/FileInput/__stories__/Default.d.ts +1 -1
  287. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  288. package/inputs/FileInput/index.d.ts +18 -2
  289. package/inputs/FileInput/index.js +69 -31
  290. package/inputs/FileInput/index.js.map +2 -2
  291. package/inputs/ImageInput/ImageInput.stories.d.ts +4 -1
  292. package/inputs/ImageInput/__stories__/Default.d.ts +1 -1
  293. package/inputs/ImageInput/__stories__/MaxSize.d.ts +1 -1
  294. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  295. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +1 -1
  296. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  297. package/inputs/ImageInput/__stories__/logo.d/package.json +6 -0
  298. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  299. package/inputs/ImageInput/index.d.ts +10 -2
  300. package/inputs/ImageInput/index.js +43 -11
  301. package/inputs/ImageInput/index.js.map +2 -2
  302. package/inputs/Input/Input.stories.d.ts +5 -0
  303. package/inputs/Input/__stories__/AFM.d.ts +1 -1
  304. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  305. package/inputs/Input/__stories__/Boolean.d.ts +1 -1
  306. package/inputs/Input/__stories__/Email.d.ts +3 -0
  307. package/inputs/Input/__stories__/IBAN.d.ts +1 -1
  308. package/inputs/Input/__stories__/Integer.d.ts +1 -1
  309. package/inputs/Input/__stories__/LandlineNumber.d.ts +1 -1
  310. package/inputs/Input/__stories__/MobilePhone.d.ts +1 -1
  311. package/inputs/Input/__stories__/PhoneNumber.d.ts +1 -1
  312. package/inputs/Input/__stories__/PostalCode.d.ts +1 -1
  313. package/inputs/Input/__stories__/String.d.ts +1 -1
  314. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
  315. package/inputs/Input/__stories__/TextWithLimit.d.ts +1 -1
  316. package/inputs/Input/index.d.ts +4 -3
  317. package/inputs/Input/index.js +55 -55
  318. package/inputs/Input/index.js.map +2 -2
  319. package/inputs/Label/Label.stories.d.ts +2 -0
  320. package/inputs/Label/__stories__/Default.d.ts +1 -1
  321. package/inputs/Label/index.d.ts +1 -1
  322. package/inputs/Label/index.js.map +1 -1
  323. package/inputs/OtpInput/OtpInput.stories.d.ts +2 -0
  324. package/inputs/OtpInput/__stories__/Default.d.ts +1 -1
  325. package/inputs/OtpInput/index.d.ts +1 -5
  326. package/inputs/OtpInput/index.js +36 -30
  327. package/inputs/OtpInput/index.js.map +2 -2
  328. package/inputs/Radio/Radio.stories.d.ts +2 -0
  329. package/inputs/Radio/__stories__/Conditional.d.ts +1 -1
  330. package/inputs/Radio/__stories__/Default.d.ts +1 -1
  331. package/inputs/Radio/__stories__/WithDivider.d.ts +1 -1
  332. package/inputs/Radio/index.d.ts +4 -4
  333. package/inputs/Radio/index.js +5 -4
  334. package/inputs/Radio/index.js.map +3 -3
  335. package/inputs/Select/Select.stories.d.ts +2 -0
  336. package/inputs/Select/__stories__/Default.d.ts +1 -1
  337. package/inputs/Select/index.d.ts +4 -3
  338. package/inputs/Select/index.js +5 -3
  339. package/inputs/Select/index.js.map +2 -2
  340. package/{Field/utils → inputs/registry}/index.js +4 -2
  341. package/{locales/el → inputs/registry}/package.json +1 -1
  342. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  343. package/inputs/registry.js.map +7 -0
  344. package/lazy/index.js +16 -10
  345. package/package.json +8 -8
  346. package/registry/index.js +31 -15
  347. package/src/Field/ErrorGroup.tsx +84 -0
  348. package/src/Field/FieldBase.tsx +40 -26
  349. package/src/Field/FieldBaseContainer.tsx +69 -47
  350. package/src/Field/FieldConditional.tsx +5 -1
  351. package/src/Field/doc.mdx +202 -1
  352. package/src/Field/index.tsx +27 -37
  353. package/src/Field/types.tsx +24 -14
  354. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  355. package/src/Field/utils/resolveField.ts +58 -0
  356. package/src/Field/utils/useField.ts +12 -2
  357. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  358. package/src/FieldArray/FieldArray.stories.js +2 -0
  359. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.tsx +45 -0
  360. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +14 -0
  361. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +335 -0
  362. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  363. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.tsx +88 -0
  364. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  365. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  366. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.tsx +75 -0
  367. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  368. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.tsx +88 -0
  369. package/src/FieldArray/FormDialog/ArrayDisplay/index.test.tsx +44 -0
  370. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +67 -0
  371. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +243 -0
  372. package/src/FieldArray/FormDialog/index.tsx +304 -0
  373. package/src/FieldArray/__stories__/CardsWithError.tsx +124 -0
  374. package/src/FieldArray/__stories__/Default.tsx +1 -1
  375. package/src/FieldArray/__stories__/WithExactLength.tsx +15 -78
  376. package/src/FieldArray/__stories__/WithModal.tsx +160 -0
  377. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  378. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  379. package/src/FieldArray/__tests__/multiplicity-optional.spec.tsx +232 -0
  380. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +170 -0
  381. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  382. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  383. package/src/FieldArray/index.spec.tsx +355 -0
  384. package/src/FieldArray/index.test.tsx +12 -0
  385. package/src/FieldArray/index.tsx +49 -72
  386. package/src/FieldObject/index.tsx +40 -34
  387. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  388. package/src/Fieldset/index.tsx +1 -1
  389. package/src/Fieldset/types.tsx +2 -2
  390. package/src/FormBuilder/FormBuilder.stories.js +5 -0
  391. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
  392. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  393. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
  394. package/src/FormBuilder/doc.mdx +9 -4
  395. package/src/FormBuilder/index.test.tsx +12 -0
  396. package/src/FormBuilder/index.tsx +223 -89
  397. package/src/FormBuilder/interaction.test.tsx +40 -0
  398. package/src/FormBuilder/scenarios.test.tsx +1002 -129
  399. package/src/FormContext.tsx +7 -2
  400. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  401. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  402. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +1 -1
  403. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  404. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  405. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  406. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  407. package/src/MultiplicityField/add-objects.tsx +14 -21
  408. package/src/MultiplicityField/doc.mdx +101 -83
  409. package/src/MultiplicityField/index.test.tsx +4 -0
  410. package/src/MultiplicityField/index.tsx +8 -3
  411. package/src/MultiplicityField/types.ts +6 -2
  412. package/src/Questions/Questions.stories.js +3 -0
  413. package/src/Questions/Questions.tsx +2 -2
  414. package/src/Questions/QuestionsContext.tsx +1 -1
  415. package/src/Questions/Step/Step.tsx +1 -1
  416. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  417. package/src/Questions/Step/StepContext.tsx +1 -1
  418. package/src/Questions/Step/StepDescription.tsx +2 -1
  419. package/src/Questions/Step/StepForm.tsx +2 -2
  420. package/src/Questions/Step/StepQuote.tsx +2 -1
  421. package/src/Questions/Step/StepTitle.tsx +2 -1
  422. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  423. package/src/Questions/Step/types.tsx +1 -1
  424. package/src/Questions/__snapshots__/index.spec.tsx.snap +3 -1
  425. package/src/Questions/__stories__/Default.tsx +1 -1
  426. package/src/Questions/doc.mdx +21 -41
  427. package/src/Questions/getNextStep.tsx +1 -1
  428. package/src/Questions/index.spec.tsx +8 -0
  429. package/src/Questions/index.test.tsx +4 -0
  430. package/src/Questions/types.tsx +1 -1
  431. package/src/doc.mdx +26 -11
  432. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  433. package/src/hooks/__tests__/utils.spec.ts +568 -0
  434. package/src/hooks/useFieldFocusManager.ts +162 -0
  435. package/src/hooks/utils.ts +122 -0
  436. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  437. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
  438. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
  439. package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
  440. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  441. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  442. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  443. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  444. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  445. package/src/inputs/Checkboxes/index.test.tsx +4 -0
  446. package/src/inputs/Checkboxes/index.tsx +95 -90
  447. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  448. package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
  449. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  450. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  451. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  452. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  453. package/src/inputs/DateInput/index.test.tsx +20 -0
  454. package/src/inputs/DateInput/index.tsx +68 -20
  455. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
  456. package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
  457. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  458. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  459. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  460. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  461. package/src/inputs/DateTimeInput/index.test.tsx +27 -5
  462. package/src/inputs/DateTimeInput/index.tsx +97 -40
  463. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  464. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  465. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  466. package/src/inputs/FileInput/index.test.tsx +8 -0
  467. package/src/inputs/FileInput/index.tsx +106 -38
  468. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  469. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  470. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
  471. package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → WithInitialValues.tsx} +12 -3
  472. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
  473. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  474. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  475. package/src/inputs/ImageInput/index.test.tsx +8 -4
  476. package/src/inputs/ImageInput/index.tsx +101 -48
  477. package/src/inputs/Input/Input.stories.js +6 -0
  478. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  479. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  480. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  481. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  482. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  483. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  484. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  485. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  486. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  487. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  488. package/src/inputs/Input/__stories__/String.tsx +1 -1
  489. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
  490. package/src/inputs/Input/__stories__/TextWithLimit.tsx +2 -1
  491. package/src/inputs/Input/index.test.tsx +16 -0
  492. package/src/inputs/Input/index.tsx +76 -71
  493. package/src/inputs/Label/Label.stories.js +3 -0
  494. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  495. package/src/inputs/Label/index.test.tsx +4 -0
  496. package/src/inputs/Label/index.tsx +1 -1
  497. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  498. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  499. package/src/inputs/OtpInput/index.test.tsx +4 -0
  500. package/src/inputs/OtpInput/index.tsx +43 -33
  501. package/src/inputs/Radio/Radio.stories.js +3 -0
  502. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  503. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  504. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  505. package/src/inputs/Radio/index.test.tsx +4 -0
  506. package/src/inputs/Radio/index.tsx +29 -21
  507. package/src/inputs/Select/Select.stories.js +3 -0
  508. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  509. package/src/inputs/Select/index.test.tsx +4 -0
  510. package/src/inputs/Select/index.tsx +10 -6
  511. package/src/{Field/utils/index.ts → inputs/registry.ts} +5 -1
  512. package/src/lazy.js +16 -10
  513. package/src/registry.js +31 -15
  514. package/src/types.tsx +14 -5
  515. package/src/utils.ts +30 -8
  516. package/src/validators/index.ts +68 -28
  517. package/src/validators/types.ts +1 -1
  518. package/src/validators/utils/amka.ts +39 -0
  519. package/src/validators/utils/date.ts +30 -6
  520. package/src/validators/utils/datetime.ts +123 -31
  521. package/src/validators/utils/email.ts +11 -0
  522. package/src/validators/utils/file.ts +35 -21
  523. package/src/validators/utils/iban.ts +2 -2
  524. package/src/validators/utils/image.ts +2 -2
  525. package/src/validators/utils/index.ts +6 -3
  526. package/src/validators/utils/int.ts +2 -2
  527. package/src/validators/utils/number.ts +2 -2
  528. package/src/validators/utils/otp.ts +2 -2
  529. package/src/validators/utils/phone.ts +2 -2
  530. package/src/validators/utils/postal_code.ts +2 -2
  531. package/src/validators/utils/text_limit.ts +2 -2
  532. package/types.d.ts +10 -4
  533. package/types.js.map +1 -1
  534. package/utils/index.js +20 -6
  535. package/utils.d.ts +3 -1
  536. package/utils.js.map +2 -2
  537. package/validators/index.d.ts +6 -6
  538. package/validators/index.js +34 -19
  539. package/validators/index.js.map +2 -2
  540. package/validators/types.d.ts +1 -1
  541. package/validators/utils/amka/index.js +36 -0
  542. package/validators/utils/amka/package.json +6 -0
  543. package/validators/utils/amka.d.ts +6 -0
  544. package/validators/utils/amka.js.map +7 -0
  545. package/validators/utils/date/index.js +26 -3
  546. package/validators/utils/date.d.ts +3 -3
  547. package/validators/utils/date.js.map +2 -2
  548. package/validators/utils/datetime/index.js +118 -24
  549. package/validators/utils/datetime.d.ts +3 -3
  550. package/validators/utils/datetime.js.map +2 -2
  551. package/validators/utils/email/index.js +16 -0
  552. package/validators/utils/email/package.json +6 -0
  553. package/validators/utils/email.d.ts +5 -0
  554. package/validators/utils/email.js.map +7 -0
  555. package/validators/utils/file/index.js +30 -17
  556. package/validators/utils/file.d.ts +2 -2
  557. package/validators/utils/file.js.map +2 -2
  558. package/validators/utils/iban.d.ts +2 -2
  559. package/validators/utils/iban.js.map +1 -1
  560. package/validators/utils/image.d.ts +2 -2
  561. package/validators/utils/image.js.map +1 -1
  562. package/validators/utils/index.d.ts +3 -2
  563. package/validators/utils/index.js +4 -1
  564. package/validators/utils/index.js.map +2 -2
  565. package/validators/utils/int/index.js +1 -1
  566. package/validators/utils/int.d.ts +1 -1
  567. package/validators/utils/int.js.map +2 -2
  568. package/validators/utils/number/index.js +1 -1
  569. package/validators/utils/number.d.ts +1 -1
  570. package/validators/utils/number.js.map +2 -2
  571. package/validators/utils/otp.d.ts +2 -2
  572. package/validators/utils/otp.js.map +1 -1
  573. package/validators/utils/phone.d.ts +2 -2
  574. package/validators/utils/phone.js.map +1 -1
  575. package/validators/utils/postal_code.d.ts +2 -2
  576. package/validators/utils/postal_code.js.map +1 -1
  577. package/validators/utils/text_limit.d.ts +2 -2
  578. package/validators/utils/text_limit.js.map +1 -1
  579. package/Field/utils/calculateField/index.js +0 -27
  580. package/Field/utils/calculateField.d.ts +0 -2
  581. package/Field/utils/calculateField.js.map +0 -7
  582. package/Field/utils/index.js.map +0 -7
  583. package/FieldArray/FormDialog.d.ts +0 -53
  584. package/FieldArray/FormDialog.js.map +0 -7
  585. package/FormBuilder/index.test.d.ts +0 -1
  586. package/FormBuilder/scenarios.test.d.ts +0 -88
  587. package/MultiplicityField/index.test.d.ts +0 -1
  588. package/Questions/index.spec.d.ts +0 -1
  589. package/Questions/index.test.d.ts +0 -1
  590. package/cjs/Field/utils/calculateField/index.js +0 -50
  591. package/cjs/Field/utils/calculateField.js.map +0 -7
  592. package/cjs/Field/utils/index.js.map +0 -7
  593. package/cjs/FieldArray/FormDialog.js.map +0 -7
  594. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  595. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  596. package/cjs/inputs/inputsScenarios/index.js +0 -533
  597. package/cjs/inputs/inputsScenarios.js.map +0 -7
  598. package/cjs/locales/el.js.map +0 -7
  599. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  600. package/inputs/Checkboxes/index.test.d.ts +0 -1
  601. package/inputs/DateInput/index.test.d.ts +0 -1
  602. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  603. package/inputs/FileInput/index.test.d.ts +0 -1
  604. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  605. package/inputs/ImageInput/index.test.d.ts +0 -1
  606. package/inputs/Input/index.test.d.ts +0 -1
  607. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  608. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  609. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  610. package/inputs/Label/index.test.d.ts +0 -1
  611. package/inputs/OtpInput/index.test.d.ts +0 -1
  612. package/inputs/Radio/index.test.d.ts +0 -1
  613. package/inputs/Select/index.test.d.ts +0 -1
  614. package/inputs/inputsScenarios/index.js +0 -499
  615. package/inputs/inputsScenarios.d.ts +0 -296
  616. package/inputs/inputsScenarios.js.map +0 -7
  617. package/locales/el/index.js +0 -6
  618. package/locales/el.d.ts +0 -2
  619. package/locales/el.js.map +0 -7
  620. package/src/Field/utils/calculateField.ts +0 -49
  621. package/src/FieldArray/FormDialog.tsx +0 -379
  622. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
  623. package/src/inputs/inputsScenarios.ts +0 -496
  624. package/src/locales/el.ts +0 -3
  625. /package/{FieldArray/index.test.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
@@ -1,9 +1,10 @@
1
1
  import React, { useState } from 'react';
2
- import { useFieldArray, UseFormReturn } from 'react-hook-form';
2
+ import type { UseFormReturn } from 'react-hook-form';
3
+ import { useFieldArray } from 'react-hook-form';
3
4
  import { FieldBaseContainer } from '@digigov/form/Field/FieldBaseContainer';
4
5
  import { FieldObject } from '@digigov/form/FieldObject';
5
6
  import { AddObjects } from '@digigov/form/MultiplicityField/add-objects';
6
- import {
7
+ import type {
7
8
  MultiplicityProps,
8
9
  StashedObject,
9
10
  } from '@digigov/form/MultiplicityField/types';
@@ -31,6 +32,7 @@ export const Multiplicity: React.FC<MultiplicityProps> = ({
31
32
  setValue,
32
33
  getValues,
33
34
  unregister,
35
+ resetField,
34
36
  Field,
35
37
  }) => {
36
38
  const { fields, append, remove } = useFieldArray({
@@ -57,8 +59,10 @@ export const Multiplicity: React.FC<MultiplicityProps> = ({
57
59
  ? error
58
60
  : undefined
59
61
  }
62
+ hasError={formState.isSubmitted && !formState.isSubmitting && !!error}
60
63
  wrapper="fieldset"
61
64
  name={name}
65
+ register={register}
62
66
  >
63
67
  {stashedObjects.length > 0 ? (
64
68
  <div>
@@ -97,6 +101,7 @@ export const Multiplicity: React.FC<MultiplicityProps> = ({
97
101
  getValues={getValues}
98
102
  unregister={unregister}
99
103
  trigger={trigger}
104
+ resetField={resetField}
100
105
  clearErrors={clearErrors}
101
106
  Field={Field}
102
107
  />
@@ -128,7 +133,7 @@ export const ListObject: React.FC<ListObjectProps> = ({
128
133
  }) => {
129
134
  const currentName = `${name}.${index}`;
130
135
  return (
131
- <Card variant={extra?.border ? 'border' : 'divider'}>
136
+ <Card variant={extra?.border && 'border'}>
132
137
  <CardHeading>
133
138
  {extra?.label.object.title} #{index + 1}
134
139
  </CardHeading>
@@ -1,5 +1,8 @@
1
- import { ErrorOption, UseFormReturn } from 'react-hook-form';
2
- import { FieldSpec, ControlledFieldProps } from '@digigov/form/Field/types';
1
+ import type { ErrorOption, UseFormReturn } from 'react-hook-form';
2
+ import type {
3
+ FieldSpec,
4
+ ControlledFieldProps,
5
+ } from '@digigov/form/Field/types';
3
6
 
4
7
  export interface MultiplicityProps
5
8
  extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'error' | 'extra'> {
@@ -12,6 +15,7 @@ export interface MultiplicityProps
12
15
  setValue: UseFormReturn['setValue'];
13
16
  getValues: UseFormReturn['getValues'];
14
17
  unregister: UseFormReturn['unregister'];
18
+ resetField?: UseFormReturn['resetField'];
15
19
  error?: ErrorOption;
16
20
  extra?: Record<string, any>;
17
21
  label?: FieldSpec['label'];
@@ -1,7 +1,10 @@
1
1
  import Questions from '@digigov/form/Questions';
2
+ import doc from './doc.mdx?raw';
2
3
  export default {
3
4
  title: 'Digigov Form/Questions',
4
5
  component: Questions,
6
+ tags: ['autodocs'],
7
+ markdown: doc,
5
8
  displayName: 'Questions',
6
9
  };
7
10
  export { Default } from '@digigov/form/Questions/__stories__/Default';
@@ -1,8 +1,8 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { getNextStep } from '@digigov/form/Questions/getNextStep';
3
3
  import { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';
4
- import { StepInterface } from '@digigov/form/Questions/Step/types';
5
- import { QuestionsInterface } from '@digigov/form/Questions/types';
4
+ import type { StepInterface } from '@digigov/form/Questions/Step/types';
5
+ import type { QuestionsInterface } from '@digigov/form/Questions/types';
6
6
 
7
7
  const isBrowser = typeof window !== 'undefined';
8
8
 
@@ -1,5 +1,5 @@
1
1
  import { createContext } from 'react';
2
- import { QuestionsContextInterface } from '@digigov/form/Questions/types';
2
+ import type { QuestionsContextInterface } from '@digigov/form/Questions/types';
3
3
 
4
4
  const defaultStep = { name: '' };
5
5
  export const QuestionsContext = createContext<QuestionsContextInterface>({
@@ -2,7 +2,7 @@ import React, { useContext, useState } from 'react';
2
2
  import { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';
3
3
  import { StepArrayReview } from '@digigov/form/Questions/Step/StepArrayReview';
4
4
  import { StepContext } from '@digigov/form/Questions/Step/StepContext';
5
- import { StepInterface } from '@digigov/form/Questions/Step/types';
5
+ import type { StepInterface } from '@digigov/form/Questions/Step/types';
6
6
 
7
7
  /**
8
8
  * The Step component accepts Step data as props
@@ -5,8 +5,8 @@ import FormBuilder from '@digigov/form/FormBuilder';
5
5
  import Label from '@digigov/form/inputs/Label';
6
6
  import { QuestionsContext } from '@digigov/form/Questions/QuestionsContext';
7
7
  import { getAddMoreFields } from '@digigov/form/Questions/Step/getAddMoreFields';
8
- import { StepArrayReviewInterface } from '@digigov/form/Questions/Step/types';
9
- import { FieldSpec } from '@digigov/form/types';
8
+ import type { StepArrayReviewInterface } from '@digigov/form/Questions/Step/types';
9
+ import type { FieldSpec } from '@digigov/form/types';
10
10
  import PageTitleContainer, {
11
11
  PageTitleHeading,
12
12
  } from '@digigov/ui/app/PageTitleContainer';
@@ -1,5 +1,5 @@
1
1
  import { createContext } from 'react';
2
- import { StepInterface } from '@digigov/form/Questions/Step/types';
2
+ import type { StepInterface } from '@digigov/form/Questions/Step/types';
3
3
 
4
4
  export const StepContext = createContext<StepInterface>({
5
5
  name: '',
@@ -1,7 +1,8 @@
1
1
  import React, { useContext } from 'react';
2
2
  import { StepContext } from '@digigov/form/Questions/Step/StepContext';
3
3
  import { useTranslation } from '@digigov/ui/i18n';
4
- import Paragraph, { ParagraphProps } from '@digigov/ui/typography/Paragraph';
4
+ import type { ParagraphProps } from '@digigov/ui/typography/Paragraph';
5
+ import Paragraph from '@digigov/ui/typography/Paragraph';
5
6
 
6
7
  export interface StepDescriptionInterface extends ParagraphProps {
7
8
  description?: string;
@@ -1,10 +1,10 @@
1
1
  import React, { useContext } from 'react';
2
2
  import Field from '@digigov/form/Field';
3
- import { FieldProps } from '@digigov/form/Field/types';
3
+ import type { FieldProps } from '@digigov/form/Field/types';
4
4
  import Fieldset from '@digigov/form/Fieldset';
5
5
  import FormBuilder from '@digigov/form/FormBuilder';
6
6
  import { StepContext } from '@digigov/form/Questions/Step/StepContext';
7
- import { FormBuilderProps } from '@digigov/form/types';
7
+ import type { FormBuilderProps } from '@digigov/form/types';
8
8
  import Button from '@digigov/ui/form/Button';
9
9
  import { useTranslation } from '@digigov/ui/i18n';
10
10
 
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import Paragraph, { ParagraphProps } from '@digigov/ui/typography/Paragraph';
2
+ import type { ParagraphProps } from '@digigov/ui/typography/Paragraph';
3
+ import Paragraph from '@digigov/ui/typography/Paragraph';
3
4
 
4
5
  export const StepQuote: React.FC<ParagraphProps> = ({ children, ...props }) => {
5
6
  return <Paragraph {...props}>{children}</Paragraph>;
@@ -6,7 +6,8 @@ import {
6
6
  } from '@digigov/ui/app/PageTitleContainer';
7
7
  import { useTranslation } from '@digigov/ui/i18n';
8
8
  import { BackLink } from '@digigov/ui/navigation/BackLink';
9
- import { Heading, HeadingProps } from '@digigov/ui/typography/Heading';
9
+ import type { HeadingProps } from '@digigov/ui/typography/Heading';
10
+ import { Heading } from '@digigov/ui/typography/Heading';
10
11
  import { HeadingCaption } from '@digigov/ui/typography/HeadingCaption';
11
12
 
12
13
  export interface StepTitleInterface {
@@ -1,5 +1,5 @@
1
- import { StepInterface } from '@digigov/form/Questions/Step/types';
2
- import { FieldSpec } from '@digigov/form/types';
1
+ import type { StepInterface } from '@digigov/form/Questions/Step/types';
2
+ import type { FieldSpec } from '@digigov/form/types';
3
3
 
4
4
  export const getAddMoreFields = (currentStep: StepInterface): FieldSpec[] => {
5
5
  return [
@@ -1,4 +1,4 @@
1
- import { LabelProps } from '@digigov/form/inputs/Label';
1
+ import type { LabelProps } from '@digigov/form/inputs/Label';
2
2
 
3
3
  export type StepType = 'object' | 'array';
4
4
  export type StepReviewAnswersType = 'positive' | 'negative';
@@ -5,6 +5,7 @@ exports[`renders the Questions 1`] = `
5
5
  <div>
6
6
  <a
7
7
  class="ds-print-hidden ds-back-link"
8
+ href=""
8
9
  tabindex="0"
9
10
  >
10
11
  <svg
@@ -45,7 +46,7 @@ exports[`renders the Questions 1`] = `
45
46
  class="ds-form"
46
47
  >
47
48
  <div
48
- class="ds-field xs:ds-grid__col-span-12"
49
+ class="ds-field ds-grid-item xs:ds-grid__col-span-12 sm:ds-grid__col-span-12 md:ds-grid__col-span-12 lg:ds-grid__col-span-12 xl:ds-grid__col-span-12"
49
50
  >
50
51
  <label
51
52
  class="ds-label"
@@ -64,6 +65,7 @@ exports[`renders the Questions 1`] = `
64
65
  aria-required="true"
65
66
  class="ds-input"
66
67
  data-type="string"
68
+ id="name"
67
69
  name="name"
68
70
  type="text"
69
71
  />
@@ -75,7 +75,7 @@ const steps = [
75
75
  },
76
76
  ];
77
77
 
78
- export function Default() {
78
+ export function Default(_: any) {
79
79
  return (
80
80
  <BasicLayout>
81
81
  <Top>
@@ -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>
@@ -1,4 +1,4 @@
1
- import { StepInterface } from '@digigov/form/Questions/Step/types';
1
+ import type { StepInterface } from '@digigov/form/Questions/Step/types';
2
2
 
3
3
  export function getNextStep(
4
4
  currentStep: any,
@@ -46,6 +46,14 @@ const steps = [
46
46
  },
47
47
  ];
48
48
 
49
+ beforeAll(() => {
50
+ global.ResizeObserver = class ResizeObserver {
51
+ observe() {}
52
+ unobserve() {}
53
+ disconnect() {}
54
+ };
55
+ });
56
+
49
57
  it('renders the Questions', () => {
50
58
  expect(
51
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
  });
@@ -1,4 +1,4 @@
1
- import { StepInterface } from '@digigov/form/Questions/Step/types';
1
+ import type { StepInterface } from '@digigov/form/Questions/Step/types';
2
2
 
3
3
  export interface QuestionsInterface {
4
4
  name: string;
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.