@digigov/form 1.2.0-dcbd7ded → 2.0.0-0138f8bd

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 (924) hide show
  1. package/Field/ErrorGroup/index.js +48 -0
  2. package/{Questions/index.spec → 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 +115 -76
  6. package/Field/FieldBase.d.ts +1 -1
  7. package/Field/FieldBase.js.map +7 -0
  8. package/Field/FieldBaseContainer/index.js +50 -38
  9. package/Field/FieldBaseContainer.d.ts +2 -2
  10. package/Field/FieldBaseContainer.js.map +7 -0
  11. package/Field/FieldConditional/index.js +83 -53
  12. package/Field/FieldConditional.d.ts +1 -1
  13. package/Field/FieldConditional.js.map +7 -0
  14. package/Field/index.d.ts +1 -1
  15. package/Field/index.js +106 -66
  16. package/Field/index.js.map +7 -0
  17. package/Field/types/index.js +1 -1
  18. package/Field/types.d.ts +59 -11
  19. package/Field/types.js.map +7 -0
  20. package/Field/utils/evaluateFieldWithConditions/index.js +26 -0
  21. package/{inputs/DateInput/__stories__/Default → Field/utils/evaluateFieldWithConditions}/package.json +1 -1
  22. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -0
  23. package/Field/utils/evaluateFieldWithConditions.js.map +7 -0
  24. package/Field/utils/resolveField/index.js +35 -0
  25. package/{Questions/Questions.stories → Field/utils/resolveField}/package.json +1 -1
  26. package/Field/utils/resolveField.d.ts +3 -0
  27. package/Field/utils/resolveField.js.map +7 -0
  28. package/Field/utils/useField/index.js +66 -0
  29. package/{FormBuilder/FormBuilder → Field/utils/useField}/package.json +1 -1
  30. package/Field/utils/useField.d.ts +2 -0
  31. package/Field/utils/useField.js.map +7 -0
  32. package/FieldArray/BaseFieldArray/index.js +76 -0
  33. package/FieldArray/BaseFieldArray/package.json +6 -0
  34. package/FieldArray/BaseFieldArray.d.ts +5 -0
  35. package/FieldArray/BaseFieldArray.js.map +7 -0
  36. package/FieldArray/FieldArray.stories.d.ts +4 -2
  37. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +23 -0
  38. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/package.json +6 -0
  39. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.d.ts +9 -0
  40. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  41. package/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.d.ts +13 -0
  42. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +184 -0
  43. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/package.json +6 -0
  44. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +26 -0
  45. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  46. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +11 -0
  47. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/package.json +6 -0
  48. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
  49. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  50. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.d.ts +2 -0
  51. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.d.ts +2 -0
  52. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.d.ts +2 -0
  53. package/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.d.ts +2 -0
  54. package/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.d.ts +2 -0
  55. package/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.d.ts +2 -0
  56. package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +15 -0
  57. package/FieldArray/FormDialog/ArrayDisplay/index.js +57 -0
  58. package/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  59. package/{inputs/DateInput/DateInput.stories → FieldArray/FormDialog/ArrayDisplay}/package.json +1 -1
  60. package/FieldArray/FormDialog/ArrayEditModal/index.js +158 -0
  61. package/{inputs/Checkboxes/Checkboxes.stories → FieldArray/FormDialog/ArrayEditModal}/package.json +1 -1
  62. package/FieldArray/FormDialog/ArrayEditModal.d.ts +26 -0
  63. package/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  64. package/FieldArray/FormDialog/index.d.ts +19 -0
  65. package/FieldArray/FormDialog/index.js +231 -0
  66. package/FieldArray/FormDialog/index.js.map +7 -0
  67. package/FieldArray/FormDialog/package.json +6 -0
  68. package/FieldArray/__stories__/CardsWithError.d.ts +15 -0
  69. package/FieldArray/__stories__/Default.d.ts +2 -2
  70. package/FieldArray/__stories__/WithExactLength.d.ts +2 -2
  71. package/FieldArray/__stories__/WithModal.d.ts +2 -0
  72. package/FieldArray/index.d.ts +11 -2
  73. package/FieldArray/index.js +91 -59
  74. package/FieldArray/index.js.map +7 -0
  75. package/FieldObject/index.d.ts +11 -3
  76. package/FieldObject/index.js +78 -52
  77. package/FieldObject/index.js.map +7 -0
  78. package/Fieldset/FieldsetWithContext/index.js +27 -31
  79. package/Fieldset/FieldsetWithContext.js.map +7 -0
  80. package/Fieldset/index.d.ts +2 -2
  81. package/Fieldset/index.js +27 -29
  82. package/Fieldset/index.js.map +7 -0
  83. package/Fieldset/types/index.js +1 -1
  84. package/Fieldset/types.d.ts +3 -2
  85. package/Fieldset/types.js.map +7 -0
  86. package/FormBuilder/FormBuilder.stories.d.ts +5 -1
  87. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
  88. package/FormBuilder/__stories__/Default.d.ts +2 -2
  89. package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
  90. package/FormBuilder/index.d.ts +8 -1
  91. package/FormBuilder/index.js +267 -2
  92. package/FormBuilder/index.js.map +7 -0
  93. package/FormContext/index.js +11 -3
  94. package/FormContext.d.ts +3 -2
  95. package/FormContext.js.map +7 -0
  96. package/MultiplicityField/MultiplicityField.stories.d.ts +8 -6
  97. package/MultiplicityField/__stories__/Default.d.ts +2 -2
  98. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +2 -2
  99. package/MultiplicityField/__stories__/WithExactLength.d.ts +2 -2
  100. package/MultiplicityField/__stories__/WithMaxLength.d.ts +2 -2
  101. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +2 -2
  102. package/MultiplicityField/__stories__/WithMinLength.d.ts +2 -2
  103. package/MultiplicityField/add-objects/index.js +131 -133
  104. package/MultiplicityField/add-objects.d.ts +3 -2
  105. package/MultiplicityField/add-objects.js.map +7 -0
  106. package/MultiplicityField/index.d.ts +2 -19
  107. package/MultiplicityField/index.js +117 -106
  108. package/MultiplicityField/index.js.map +7 -0
  109. package/MultiplicityField/types/index.js +1 -0
  110. package/MultiplicityField/types/package.json +6 -0
  111. package/MultiplicityField/types.d.ts +19 -0
  112. package/MultiplicityField/types.js.map +7 -0
  113. package/Questions/Questions/index.js +48 -56
  114. package/Questions/Questions.d.ts +1 -1
  115. package/Questions/Questions.js.map +7 -0
  116. package/Questions/Questions.stories.d.ts +3 -1
  117. package/Questions/QuestionsContext/index.js +9 -9
  118. package/Questions/QuestionsContext.d.ts +1 -2
  119. package/Questions/QuestionsContext.js.map +7 -0
  120. package/Questions/Step/ReviewStep/index.js +35 -47
  121. package/Questions/Step/ReviewStep.js.map +7 -0
  122. package/Questions/Step/Step/index.js +39 -47
  123. package/Questions/Step/Step.d.ts +1 -1
  124. package/Questions/Step/Step.js.map +7 -0
  125. package/Questions/Step/StepArrayReview/index.js +41 -45
  126. package/Questions/Step/StepArrayReview.d.ts +1 -1
  127. package/Questions/Step/StepArrayReview.js.map +7 -0
  128. package/Questions/Step/StepContext/index.js +15 -19
  129. package/Questions/Step/StepContext.d.ts +1 -2
  130. package/Questions/Step/StepContext.js.map +7 -0
  131. package/Questions/Step/StepDescription/index.js +22 -22
  132. package/Questions/Step/StepDescription.d.ts +1 -1
  133. package/Questions/Step/StepDescription.js.map +7 -0
  134. package/Questions/Step/StepForm/index.js +33 -43
  135. package/Questions/Step/StepForm.d.ts +2 -2
  136. package/Questions/Step/StepForm.js.map +7 -0
  137. package/Questions/Step/StepQuote/index.js +10 -9
  138. package/Questions/Step/StepQuote.d.ts +1 -1
  139. package/Questions/Step/StepQuote.js.map +7 -0
  140. package/Questions/Step/StepTitle/index.js +41 -38
  141. package/Questions/Step/StepTitle.d.ts +2 -1
  142. package/Questions/Step/StepTitle.js.map +7 -0
  143. package/Questions/Step/getAddMoreFields/index.js +28 -20
  144. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  145. package/Questions/Step/getAddMoreFields.js.map +7 -0
  146. package/Questions/Step/index.d.ts +0 -1
  147. package/Questions/Step/index.js +16 -13
  148. package/Questions/Step/index.js.map +7 -0
  149. package/Questions/Step/types/index.js +1 -1
  150. package/Questions/Step/types.d.ts +2 -1
  151. package/Questions/Step/types.js.map +7 -0
  152. package/Questions/__stories__/Default.d.ts +2 -2
  153. package/Questions/getNextStep/index.js +12 -10
  154. package/Questions/getNextStep.d.ts +1 -1
  155. package/Questions/getNextStep.js.map +7 -0
  156. package/Questions/index.js +7 -3
  157. package/Questions/index.js.map +7 -0
  158. package/Questions/types/index.js +1 -1
  159. package/Questions/types.d.ts +2 -1
  160. package/Questions/types.js.map +7 -0
  161. package/cjs/Field/ErrorGroup/index.js +82 -0
  162. package/cjs/Field/ErrorGroup.js.map +7 -0
  163. package/cjs/Field/FieldBase/index.js +147 -82
  164. package/cjs/Field/FieldBase.js.map +7 -0
  165. package/cjs/Field/FieldBaseContainer/index.js +83 -45
  166. package/cjs/Field/FieldBaseContainer.js.map +7 -0
  167. package/cjs/Field/FieldConditional/index.js +115 -59
  168. package/cjs/Field/FieldConditional.js.map +7 -0
  169. package/cjs/Field/index.js +138 -75
  170. package/cjs/Field/index.js.map +7 -0
  171. package/cjs/Field/types/index.js +16 -5
  172. package/cjs/Field/types.js.map +7 -0
  173. package/cjs/Field/utils/evaluateFieldWithConditions/index.js +49 -0
  174. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +7 -0
  175. package/cjs/Field/utils/resolveField/index.js +55 -0
  176. package/cjs/Field/utils/resolveField.js.map +7 -0
  177. package/cjs/Field/utils/useField/index.js +89 -0
  178. package/cjs/Field/utils/useField.js.map +7 -0
  179. package/cjs/FieldArray/BaseFieldArray/index.js +109 -0
  180. package/cjs/FieldArray/BaseFieldArray.js.map +7 -0
  181. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay/index.js +56 -0
  182. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js.map +7 -0
  183. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay/index.js +209 -0
  184. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js.map +7 -0
  185. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader/index.js +44 -0
  186. package/cjs/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js.map +7 -0
  187. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js +90 -0
  188. package/cjs/FieldArray/FormDialog/ArrayDisplay/index.js.map +7 -0
  189. package/cjs/FieldArray/FormDialog/ArrayEditModal/index.js +186 -0
  190. package/cjs/FieldArray/FormDialog/ArrayEditModal.js.map +7 -0
  191. package/cjs/FieldArray/FormDialog/index.js +258 -0
  192. package/cjs/FieldArray/FormDialog/index.js.map +7 -0
  193. package/cjs/FieldArray/index.js +123 -65
  194. package/cjs/FieldArray/index.js.map +7 -0
  195. package/cjs/FieldObject/index.js +110 -61
  196. package/cjs/FieldObject/index.js.map +7 -0
  197. package/cjs/Fieldset/FieldsetWithContext/index.js +54 -40
  198. package/cjs/Fieldset/FieldsetWithContext.js.map +7 -0
  199. package/cjs/Fieldset/index.js +61 -39
  200. package/cjs/Fieldset/index.js.map +7 -0
  201. package/cjs/Fieldset/types/index.js +16 -5
  202. package/cjs/Fieldset/types.js.map +7 -0
  203. package/cjs/FormBuilder/index.js +302 -7
  204. package/cjs/FormBuilder/index.js.map +7 -0
  205. package/cjs/FormContext/index.js +34 -8
  206. package/cjs/FormContext.js.map +7 -0
  207. package/cjs/MultiplicityField/add-objects/index.js +163 -139
  208. package/cjs/MultiplicityField/add-objects.js.map +7 -0
  209. package/cjs/MultiplicityField/index.js +145 -115
  210. package/cjs/MultiplicityField/index.js.map +7 -0
  211. package/cjs/MultiplicityField/types/index.js +16 -0
  212. package/cjs/MultiplicityField/types.js.map +7 -0
  213. package/cjs/Questions/Questions/index.js +80 -65
  214. package/cjs/Questions/Questions.js.map +7 -0
  215. package/cjs/Questions/QuestionsContext/index.js +31 -14
  216. package/cjs/Questions/QuestionsContext.js.map +7 -0
  217. package/cjs/Questions/Step/ReviewStep/index.js +61 -56
  218. package/cjs/Questions/Step/ReviewStep.js.map +7 -0
  219. package/cjs/Questions/Step/Step/index.js +71 -56
  220. package/cjs/Questions/Step/Step.js.map +7 -0
  221. package/cjs/Questions/Step/StepArrayReview/index.js +65 -54
  222. package/cjs/Questions/Step/StepArrayReview.js.map +7 -0
  223. package/cjs/Questions/Step/StepContext/index.js +37 -24
  224. package/cjs/Questions/Step/StepContext.js.map +7 -0
  225. package/cjs/Questions/Step/StepDescription/index.js +55 -31
  226. package/cjs/Questions/Step/StepDescription.js.map +7 -0
  227. package/cjs/Questions/Step/StepForm/index.js +65 -52
  228. package/cjs/Questions/Step/StepForm.js.map +7 -0
  229. package/cjs/Questions/Step/StepQuote/index.js +42 -15
  230. package/cjs/Questions/Step/StepQuote.js.map +7 -0
  231. package/cjs/Questions/Step/StepTitle/index.js +72 -47
  232. package/cjs/Questions/Step/StepTitle.js.map +7 -0
  233. package/cjs/Questions/Step/getAddMoreFields/index.js +50 -25
  234. package/cjs/Questions/Step/getAddMoreFields.js.map +7 -0
  235. package/cjs/Questions/Step/index.js +59 -143
  236. package/cjs/Questions/Step/index.js.map +7 -0
  237. package/cjs/Questions/Step/types/index.js +16 -5
  238. package/cjs/Questions/Step/types.js.map +7 -0
  239. package/cjs/Questions/getNextStep/index.js +33 -14
  240. package/cjs/Questions/getNextStep.js.map +7 -0
  241. package/cjs/Questions/index.js +29 -19
  242. package/cjs/Questions/index.js.map +7 -0
  243. package/cjs/Questions/types/index.js +16 -5
  244. package/cjs/Questions/types.js.map +7 -0
  245. package/cjs/hooks/useFieldFocusManager/index.js +135 -0
  246. package/cjs/hooks/useFieldFocusManager.js.map +7 -0
  247. package/cjs/hooks/utils/index.js +98 -0
  248. package/cjs/hooks/utils.js.map +7 -0
  249. package/cjs/index.js +47 -20
  250. package/cjs/index.js.map +7 -0
  251. package/cjs/inputs/AutoCompleteInput/index.js +92 -46
  252. package/cjs/inputs/AutoCompleteInput/index.js.map +7 -0
  253. package/cjs/inputs/Checkboxes/index.js +102 -92
  254. package/cjs/inputs/Checkboxes/index.js.map +7 -0
  255. package/cjs/inputs/DateInput/index.js +164 -117
  256. package/cjs/inputs/DateInput/index.js.map +7 -0
  257. package/cjs/inputs/DateTimeInput/index.js +250 -0
  258. package/cjs/inputs/DateTimeInput/index.js.map +7 -0
  259. package/cjs/inputs/FileInput/index.js +115 -65
  260. package/cjs/inputs/FileInput/index.js.map +7 -0
  261. package/cjs/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  262. package/cjs/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  263. package/cjs/inputs/ImageInput/index.js +127 -83
  264. package/cjs/inputs/ImageInput/index.js.map +7 -0
  265. package/cjs/inputs/Input/index.js +101 -68
  266. package/cjs/inputs/Input/index.js.map +7 -0
  267. package/cjs/inputs/Label/index.js +45 -24
  268. package/cjs/inputs/Label/index.js.map +7 -0
  269. package/cjs/inputs/OtpInput/index.js +163 -127
  270. package/cjs/inputs/OtpInput/index.js.map +7 -0
  271. package/cjs/inputs/Radio/index.js +132 -61
  272. package/cjs/inputs/Radio/index.js.map +7 -0
  273. package/cjs/inputs/Select/index.js +61 -36
  274. package/cjs/inputs/Select/index.js.map +7 -0
  275. package/cjs/inputs/index.js +62 -69
  276. package/cjs/inputs/index.js.map +7 -0
  277. package/cjs/inputs/registry/index.js +121 -0
  278. package/cjs/inputs/registry.js.map +7 -0
  279. package/cjs/internal/index.js +36 -346
  280. package/cjs/internal.js.map +7 -0
  281. package/cjs/lazy/index.js +113 -516
  282. package/cjs/lazy.js.map +7 -0
  283. package/cjs/registry/index.js +204 -142
  284. package/cjs/registry.js.map +7 -0
  285. package/cjs/types/index.js +22 -5
  286. package/cjs/types.js.map +7 -0
  287. package/cjs/utils/index.js +93 -83
  288. package/cjs/utils.js.map +7 -0
  289. package/cjs/validators/index.js +142 -167
  290. package/cjs/validators/index.js.map +7 -0
  291. package/cjs/validators/types/index.js +16 -5
  292. package/cjs/validators/types.js.map +7 -0
  293. package/cjs/validators/utils/afm/index.js +38 -21
  294. package/cjs/validators/utils/afm.js.map +7 -0
  295. package/cjs/validators/utils/amka/index.js +60 -0
  296. package/cjs/validators/utils/amka.js.map +7 -0
  297. package/cjs/validators/utils/date/index.js +161 -0
  298. package/cjs/validators/utils/date.js.map +7 -0
  299. package/cjs/validators/utils/datetime/index.js +245 -0
  300. package/cjs/validators/utils/datetime.js.map +7 -0
  301. package/cjs/validators/utils/email/index.js +39 -0
  302. package/cjs/validators/utils/email.js.map +7 -0
  303. package/cjs/validators/utils/file/index.js +53 -43
  304. package/cjs/validators/utils/file.js.map +7 -0
  305. package/cjs/validators/utils/iban/index.js +36 -17
  306. package/cjs/validators/utils/iban.js.map +7 -0
  307. package/cjs/validators/utils/image/index.js +88 -112
  308. package/cjs/validators/utils/image.js.map +7 -0
  309. package/cjs/validators/utils/index.js +103 -159
  310. package/cjs/validators/utils/index.js.map +7 -0
  311. package/cjs/validators/utils/int/index.js +35 -13
  312. package/cjs/validators/utils/int.js.map +7 -0
  313. package/cjs/validators/utils/number/index.js +34 -12
  314. package/cjs/validators/utils/number.js.map +7 -0
  315. package/cjs/validators/utils/otp/index.js +35 -13
  316. package/cjs/validators/utils/otp.js.map +7 -0
  317. package/cjs/validators/utils/phone/index.js +113 -58
  318. package/cjs/validators/utils/phone.js.map +7 -0
  319. package/cjs/validators/utils/postal_code/index.js +36 -16
  320. package/cjs/validators/utils/postal_code.js.map +7 -0
  321. package/cjs/validators/utils/text_limit/index.js +40 -25
  322. package/cjs/validators/utils/text_limit.js.map +7 -0
  323. package/cjs/validators/utils/uuid4/index.js +34 -13
  324. package/cjs/validators/utils/uuid4.js.map +7 -0
  325. package/hooks/useFieldFocusManager/index.js +116 -0
  326. package/hooks/useFieldFocusManager/package.json +6 -0
  327. package/hooks/useFieldFocusManager.d.ts +25 -0
  328. package/hooks/useFieldFocusManager.js.map +7 -0
  329. package/hooks/utils/index.js +73 -0
  330. package/{Form.stories → hooks/utils}/package.json +1 -1
  331. package/hooks/utils.d.ts +18 -0
  332. package/hooks/utils.js.map +7 -0
  333. package/index.d.ts +4 -1
  334. package/index.js +13 -4
  335. package/index.js.map +7 -0
  336. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +4 -1
  337. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +3 -2
  338. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +3 -0
  339. package/inputs/AutoCompleteInput/index.d.ts +5 -5
  340. package/inputs/AutoCompleteInput/index.js +60 -37
  341. package/inputs/AutoCompleteInput/index.js.map +7 -0
  342. package/inputs/Checkboxes/Checkboxes.stories.d.ts +5 -3
  343. package/inputs/Checkboxes/__stories__/Conditional.d.ts +3 -2
  344. package/inputs/Checkboxes/__stories__/Default.d.ts +2 -2
  345. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +2 -2
  346. package/inputs/Checkboxes/index.d.ts +5 -4
  347. package/inputs/Checkboxes/index.js +73 -82
  348. package/inputs/Checkboxes/index.js.map +7 -0
  349. package/inputs/DateInput/DateInput.stories.d.ts +7 -1
  350. package/inputs/DateInput/__stories__/Default.d.ts +2 -2
  351. package/inputs/DateInput/__stories__/WithDefaultValue.d.ts +3 -0
  352. package/inputs/DateInput/__stories__/WithInitialValue.d.ts +3 -0
  353. package/inputs/DateInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  354. package/inputs/DateInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  355. package/inputs/DateInput/index.d.ts +3 -7
  356. package/inputs/DateInput/index.js +133 -106
  357. package/inputs/DateInput/index.js.map +7 -0
  358. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +14 -0
  359. package/inputs/DateTimeInput/__stories__/Default.d.ts +3 -0
  360. package/inputs/DateTimeInput/__stories__/WithDefaultValue.d.ts +3 -0
  361. package/inputs/DateTimeInput/__stories__/WithInitialValue.d.ts +3 -0
  362. package/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.d.ts +3 -0
  363. package/inputs/DateTimeInput/__stories__/WithWrongInitialValue.d.ts +3 -0
  364. package/inputs/DateTimeInput/index.d.ts +10 -0
  365. package/inputs/DateTimeInput/index.js +220 -0
  366. package/inputs/DateTimeInput/index.js.map +7 -0
  367. package/inputs/DateTimeInput/package.json +6 -0
  368. package/inputs/FileInput/FileInput.stories.d.ts +4 -1
  369. package/inputs/FileInput/__stories__/Default.d.ts +2 -2
  370. package/inputs/FileInput/__stories__/WithBorderAndLink.d.ts +3 -0
  371. package/inputs/FileInput/index.d.ts +18 -2
  372. package/inputs/FileInput/index.js +83 -56
  373. package/inputs/FileInput/index.js.map +7 -0
  374. package/inputs/ImageInput/ImageInput.stories.d.ts +6 -3
  375. package/inputs/ImageInput/__stories__/Default.d.ts +2 -2
  376. package/inputs/ImageInput/__stories__/MaxSize.d.ts +3 -0
  377. package/inputs/ImageInput/__stories__/WithInitialValues.d.ts +3 -0
  378. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +2 -2
  379. package/inputs/ImageInput/__stories__/logo.d/index.js +1 -0
  380. package/inputs/{FileInput/__stories__/Default → ImageInput/__stories__/logo.d}/package.json +1 -1
  381. package/inputs/ImageInput/__stories__/logo.d.js.map +7 -0
  382. package/inputs/ImageInput/index.d.ts +10 -2
  383. package/inputs/ImageInput/index.js +95 -75
  384. package/inputs/ImageInput/index.js.map +7 -0
  385. package/inputs/Input/Input.stories.d.ts +15 -10
  386. package/inputs/Input/__stories__/AFM.d.ts +2 -2
  387. package/inputs/Input/__stories__/AMKA.d.ts +3 -0
  388. package/inputs/Input/__stories__/Boolean.d.ts +2 -2
  389. package/inputs/Input/__stories__/Email.d.ts +3 -0
  390. package/inputs/Input/__stories__/IBAN.d.ts +2 -2
  391. package/inputs/Input/__stories__/Integer.d.ts +2 -2
  392. package/inputs/Input/__stories__/LandlineNumber.d.ts +2 -2
  393. package/inputs/Input/__stories__/MobilePhone.d.ts +2 -2
  394. package/inputs/Input/__stories__/PhoneNumber.d.ts +2 -2
  395. package/inputs/Input/__stories__/PostalCode.d.ts +2 -2
  396. package/inputs/Input/__stories__/String.d.ts +3 -0
  397. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
  398. package/inputs/Input/__stories__/TextWithLimit.d.ts +3 -0
  399. package/inputs/Input/index.d.ts +4 -3
  400. package/inputs/Input/index.js +69 -62
  401. package/inputs/Input/index.js.map +7 -0
  402. package/inputs/Label/Label.stories.d.ts +3 -1
  403. package/inputs/Label/__stories__/Default.d.ts +2 -2
  404. package/inputs/Label/index.d.ts +2 -4
  405. package/inputs/Label/index.js +12 -17
  406. package/inputs/Label/index.js.map +7 -0
  407. package/inputs/OtpInput/OtpInput.stories.d.ts +3 -1
  408. package/inputs/OtpInput/__stories__/Default.d.ts +2 -2
  409. package/inputs/OtpInput/index.d.ts +9 -6
  410. package/inputs/OtpInput/index.js +129 -117
  411. package/inputs/OtpInput/index.js.map +7 -0
  412. package/inputs/Radio/Radio.stories.d.ts +5 -3
  413. package/inputs/Radio/__stories__/Conditional.d.ts +3 -2
  414. package/inputs/Radio/__stories__/Default.d.ts +2 -2
  415. package/inputs/Radio/__stories__/WithDivider.d.ts +2 -2
  416. package/inputs/Radio/index.d.ts +8 -3
  417. package/inputs/Radio/index.js +103 -55
  418. package/inputs/Radio/index.js.map +7 -0
  419. package/inputs/Select/Select.stories.d.ts +3 -1
  420. package/inputs/Select/__stories__/Default.d.ts +2 -2
  421. package/inputs/Select/index.d.ts +5 -4
  422. package/inputs/Select/index.js +33 -31
  423. package/inputs/Select/index.js.map +7 -0
  424. package/inputs/index.js +21 -9
  425. package/inputs/index.js.map +7 -0
  426. package/inputs/registry/index.js +86 -0
  427. package/{Field/utils → inputs/registry}/package.json +1 -1
  428. package/inputs/registry.d.ts +5 -0
  429. package/inputs/registry.js.map +7 -0
  430. package/internal/index.js +10 -34
  431. package/internal.d.ts +2 -31
  432. package/internal.js.map +7 -0
  433. package/lazy/index.js +79 -393
  434. package/package.json +8 -9
  435. package/registry/index.js +140 -99
  436. package/src/Field/ErrorGroup.tsx +84 -0
  437. package/src/Field/FieldBase.tsx +41 -24
  438. package/src/Field/FieldBaseContainer.tsx +71 -47
  439. package/src/Field/FieldConditional.tsx +10 -2
  440. package/src/Field/doc.mdx +207 -0
  441. package/src/Field/index.tsx +37 -23
  442. package/src/Field/types.tsx +89 -13
  443. package/src/Field/utils/evaluateFieldWithConditions.ts +33 -0
  444. package/src/Field/utils/resolveField.ts +58 -0
  445. package/src/Field/utils/useField.ts +68 -0
  446. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  447. package/src/FieldArray/FieldArray.stories.js +4 -2
  448. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.tsx +45 -0
  449. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +14 -0
  450. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +335 -0
  451. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  452. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.tsx +88 -0
  453. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  454. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  455. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.tsx +75 -0
  456. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  457. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.tsx +88 -0
  458. package/src/FieldArray/FormDialog/ArrayDisplay/index.test.tsx +44 -0
  459. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +67 -0
  460. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +243 -0
  461. package/src/FieldArray/FormDialog/index.tsx +299 -0
  462. package/src/FieldArray/__stories__/CardsWithError.tsx +124 -0
  463. package/src/FieldArray/__stories__/Default.tsx +2 -1
  464. package/src/FieldArray/__stories__/WithExactLength.tsx +2 -1
  465. package/src/FieldArray/__stories__/WithModal.tsx +160 -0
  466. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  467. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  468. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +131 -0
  469. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  470. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  471. package/src/FieldArray/index.spec.tsx +355 -0
  472. package/src/FieldArray/index.test.tsx +36 -0
  473. package/src/FieldArray/index.tsx +84 -55
  474. package/src/FieldObject/index.tsx +53 -27
  475. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  476. package/src/Fieldset/index.tsx +6 -6
  477. package/src/Fieldset/types.tsx +5 -3
  478. package/src/FormBuilder/FormBuilder.stories.js +6 -1
  479. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
  480. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  481. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
  482. package/src/FormBuilder/{FormBuilder.mdx → doc.mdx} +27 -35
  483. package/src/FormBuilder/index.test.tsx +32 -0
  484. package/src/FormBuilder/index.tsx +314 -1
  485. package/src/FormBuilder/interaction.test.tsx +40 -0
  486. package/src/FormBuilder/scenarios.test.tsx +2737 -0
  487. package/src/FormContext.tsx +7 -3
  488. package/src/MultiplicityField/MultiplicityField.stories.js +9 -6
  489. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  490. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +3 -3
  491. package/src/MultiplicityField/__stories__/WithExactLength.tsx +2 -2
  492. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +2 -2
  493. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +2 -2
  494. package/src/MultiplicityField/__stories__/WithMinLength.tsx +2 -2
  495. package/src/MultiplicityField/add-objects.tsx +39 -30
  496. package/{cjs/MultiplicityField/MultiplicityField.mdx → src/MultiplicityField/doc.mdx} +112 -98
  497. package/src/MultiplicityField/index.test.tsx +44 -0
  498. package/src/MultiplicityField/index.tsx +25 -34
  499. package/src/MultiplicityField/types.ts +25 -0
  500. package/src/Questions/Questions.stories.js +4 -1
  501. package/src/Questions/Questions.tsx +6 -6
  502. package/src/Questions/QuestionsContext.tsx +1 -1
  503. package/src/Questions/Step/Step.tsx +1 -1
  504. package/src/Questions/Step/StepArrayReview.tsx +3 -3
  505. package/src/Questions/Step/StepContext.tsx +1 -1
  506. package/src/Questions/Step/StepDescription.tsx +2 -1
  507. package/src/Questions/Step/StepForm.tsx +2 -2
  508. package/src/Questions/Step/StepQuote.tsx +2 -1
  509. package/src/Questions/Step/StepTitle.tsx +6 -3
  510. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  511. package/src/Questions/Step/index.ts +0 -1
  512. package/src/Questions/Step/types.tsx +2 -1
  513. package/src/Questions/__snapshots__/index.spec.tsx.snap +74 -587
  514. package/src/Questions/__stories__/Default.tsx +1 -1
  515. package/src/Questions/{index.mdx → doc.mdx} +34 -57
  516. package/src/Questions/getNextStep.tsx +1 -1
  517. package/src/Questions/index.spec.tsx +17 -5
  518. package/src/Questions/index.test.tsx +24 -0
  519. package/src/Questions/types.tsx +2 -1
  520. package/src/create-simple-form.mdx +2 -6
  521. package/{index.mdx → src/doc.mdx} +29 -18
  522. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  523. package/src/hooks/__tests__/utils.spec.ts +568 -0
  524. package/src/hooks/useFieldFocusManager.ts +162 -0
  525. package/src/hooks/utils.ts +122 -0
  526. package/src/index.ts +4 -1
  527. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +5 -1
  528. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +20 -19
  529. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +47 -0
  530. package/src/inputs/AutoCompleteInput/doc.mdx +18 -0
  531. package/src/inputs/AutoCompleteInput/index.test.tsx +28 -0
  532. package/src/inputs/AutoCompleteInput/index.tsx +48 -33
  533. package/src/inputs/Checkboxes/Checkboxes.stories.js +6 -3
  534. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +3 -4
  535. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  536. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  537. package/src/inputs/Checkboxes/doc.mdx +23 -0
  538. package/src/inputs/Checkboxes/index.test.tsx +32 -0
  539. package/src/inputs/Checkboxes/index.tsx +103 -92
  540. package/src/inputs/DateInput/DateInput.stories.js +8 -1
  541. package/src/inputs/DateInput/__stories__/Default.tsx +17 -16
  542. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  543. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  544. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  545. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  546. package/src/inputs/DateInput/doc.mdx +16 -0
  547. package/src/inputs/DateInput/index.test.tsx +40 -0
  548. package/src/inputs/DateInput/index.tsx +77 -27
  549. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +14 -0
  550. package/src/inputs/DateTimeInput/__stories__/Default.tsx +25 -0
  551. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  552. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  553. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  554. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  555. package/src/inputs/DateTimeInput/doc.mdx +16 -0
  556. package/src/inputs/DateTimeInput/index.test.tsx +40 -0
  557. package/src/inputs/DateTimeInput/index.tsx +246 -0
  558. package/src/inputs/FileInput/FileInput.stories.js +5 -1
  559. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  560. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  561. package/src/inputs/FileInput/doc.mdx +15 -0
  562. package/src/inputs/FileInput/index.test.tsx +28 -0
  563. package/src/inputs/FileInput/index.tsx +109 -42
  564. package/src/inputs/ImageInput/ImageInput.stories.js +7 -3
  565. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  566. package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → MaxSize.tsx} +5 -3
  567. package/src/inputs/ImageInput/__stories__/WithInitialValues.tsx +45 -0
  568. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +3 -1
  569. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  570. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  571. package/src/inputs/ImageInput/doc.mdx +23 -0
  572. package/src/inputs/ImageInput/index.test.tsx +36 -0
  573. package/src/inputs/ImageInput/index.tsx +104 -51
  574. package/src/inputs/Input/Input.stories.js +16 -10
  575. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  576. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  577. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  578. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  579. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  580. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  581. package/src/inputs/Input/__stories__/LandlineNumber.tsx +3 -2
  582. package/src/inputs/Input/__stories__/MobilePhone.tsx +2 -1
  583. package/src/inputs/Input/__stories__/PhoneNumber.tsx +2 -1
  584. package/src/inputs/Input/__stories__/PostalCode.tsx +2 -1
  585. package/src/inputs/Input/__stories__/{Default.tsx → String.tsx} +2 -2
  586. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
  587. package/src/inputs/Input/__stories__/{TextWithCharacterLimit.tsx → TextWithLimit.tsx} +3 -2
  588. package/src/inputs/Input/doc.mdx +56 -0
  589. package/src/inputs/Input/index.test.tsx +72 -0
  590. package/src/inputs/Input/index.tsx +87 -73
  591. package/src/inputs/Label/Label.stories.js +4 -1
  592. package/src/inputs/Label/__stories__/Default.tsx +4 -2
  593. package/src/inputs/Label/doc.mdx +14 -0
  594. package/src/inputs/Label/index.test.tsx +24 -0
  595. package/src/inputs/Label/index.tsx +4 -11
  596. package/src/inputs/OtpInput/OtpInput.stories.js +4 -1
  597. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  598. package/src/inputs/OtpInput/doc.mdx +16 -0
  599. package/src/inputs/OtpInput/index.test.tsx +24 -0
  600. package/src/inputs/OtpInput/index.tsx +46 -35
  601. package/src/inputs/Radio/Radio.stories.js +6 -3
  602. package/src/inputs/Radio/__stories__/Conditional.tsx +5 -2
  603. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  604. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  605. package/src/inputs/Radio/doc.mdx +23 -0
  606. package/src/inputs/Radio/index.test.tsx +32 -0
  607. package/src/inputs/Radio/index.tsx +90 -12
  608. package/src/inputs/Select/Select.stories.js +4 -1
  609. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  610. package/src/inputs/Select/doc.mdx +13 -0
  611. package/src/inputs/Select/index.test.tsx +24 -0
  612. package/src/inputs/Select/index.tsx +20 -9
  613. package/src/inputs/registry.ts +86 -0
  614. package/src/installation.mdx +2 -5
  615. package/src/internal.ts +2 -31
  616. package/src/lazy.js +80 -59
  617. package/src/registry.js +123 -89
  618. package/src/types.tsx +21 -65
  619. package/src/utils.ts +58 -35
  620. package/src/validators/index.ts +120 -99
  621. package/src/validators/types.ts +1 -1
  622. package/src/validators/utils/amka.ts +39 -0
  623. package/src/validators/utils/date.ts +131 -0
  624. package/src/validators/utils/datetime.ts +222 -0
  625. package/src/validators/utils/email.ts +11 -0
  626. package/src/validators/utils/file.ts +36 -20
  627. package/src/validators/utils/iban.ts +2 -2
  628. package/src/validators/utils/image.ts +2 -2
  629. package/src/validators/utils/index.ts +8 -3
  630. package/src/validators/utils/int.ts +2 -2
  631. package/src/validators/utils/number.ts +2 -2
  632. package/src/validators/utils/otp.ts +2 -2
  633. package/src/validators/utils/phone.ts +65 -74
  634. package/src/validators/utils/postal_code.ts +3 -3
  635. package/src/validators/utils/text_limit.ts +2 -2
  636. package/src/validators/utils/uuid4.ts +2 -1
  637. package/src/validators/validators.spec.ts +6 -40
  638. package/types/index.js +2 -1
  639. package/types.d.ts +14 -37
  640. package/types.js.map +7 -0
  641. package/utils/index.js +71 -77
  642. package/utils.d.ts +3 -1
  643. package/utils.js.map +7 -0
  644. package/validators/index.d.ts +6 -6
  645. package/validators/index.js +124 -153
  646. package/validators/index.js.map +7 -0
  647. package/validators/types/index.js +1 -1
  648. package/validators/types.d.ts +1 -1
  649. package/validators/types.js.map +7 -0
  650. package/validators/utils/afm/index.js +16 -16
  651. package/validators/utils/afm.js.map +7 -0
  652. package/validators/utils/amka/index.js +36 -0
  653. package/validators/utils/amka/package.json +6 -0
  654. package/validators/utils/amka.d.ts +6 -0
  655. package/validators/utils/amka.js.map +7 -0
  656. package/validators/utils/date/index.js +126 -0
  657. package/validators/utils/date/package.json +6 -0
  658. package/validators/utils/date.d.ts +9 -0
  659. package/validators/utils/date.js.map +7 -0
  660. package/validators/utils/datetime/index.js +210 -0
  661. package/validators/utils/datetime/package.json +6 -0
  662. package/validators/utils/datetime.d.ts +9 -0
  663. package/validators/utils/datetime.js.map +7 -0
  664. package/validators/utils/email/index.js +16 -0
  665. package/validators/utils/email/package.json +6 -0
  666. package/validators/utils/email.d.ts +5 -0
  667. package/validators/utils/email.js.map +7 -0
  668. package/validators/utils/file/index.js +31 -38
  669. package/validators/utils/file.d.ts +2 -2
  670. package/validators/utils/file.js.map +7 -0
  671. package/validators/utils/iban/index.js +14 -12
  672. package/validators/utils/iban.d.ts +2 -2
  673. package/validators/utils/iban.js.map +7 -0
  674. package/validators/utils/image/index.js +66 -106
  675. package/validators/utils/image.d.ts +2 -2
  676. package/validators/utils/image.js.map +7 -0
  677. package/validators/utils/index.d.ts +5 -2
  678. package/validators/utils/index.js +59 -48
  679. package/validators/utils/index.js.map +7 -0
  680. package/validators/utils/int/index.js +13 -8
  681. package/validators/utils/int.d.ts +1 -1
  682. package/validators/utils/int.js.map +7 -0
  683. package/validators/utils/number/index.js +12 -7
  684. package/validators/utils/number.d.ts +1 -1
  685. package/validators/utils/number.js.map +7 -0
  686. package/validators/utils/otp/index.js +13 -8
  687. package/validators/utils/otp.d.ts +2 -2
  688. package/validators/utils/otp.js.map +7 -0
  689. package/validators/utils/phone/index.js +89 -51
  690. package/validators/utils/phone.d.ts +3 -3
  691. package/validators/utils/phone.js.map +7 -0
  692. package/validators/utils/postal_code/index.js +14 -11
  693. package/validators/utils/postal_code.d.ts +3 -3
  694. package/validators/utils/postal_code.js.map +7 -0
  695. package/validators/utils/text_limit/index.js +18 -20
  696. package/validators/utils/text_limit.d.ts +2 -2
  697. package/validators/utils/text_limit.js.map +7 -0
  698. package/validators/utils/uuid4/index.js +12 -8
  699. package/validators/utils/uuid4.js.map +7 -0
  700. package/Field/index.mdx +0 -6
  701. package/Field/utils/index.js +0 -153
  702. package/Field/utils.d.ts +0 -5
  703. package/FieldArray/FieldArray.stories/index.js +0 -8
  704. package/FieldArray/FieldArray.stories/package.json +0 -6
  705. package/FieldArray/FieldArray.stories.playwright.json +0 -353
  706. package/FieldArray/__stories__/Default/index.js +0 -88
  707. package/FieldArray/__stories__/Default/package.json +0 -6
  708. package/FieldArray/__stories__/WithExactLength/index.js +0 -88
  709. package/FieldArray/__stories__/WithExactLength/package.json +0 -6
  710. package/Form.stories/index.js +0 -3
  711. package/FormBuilder/FormBuilder/index.js +0 -152
  712. package/FormBuilder/FormBuilder.d.ts +0 -5
  713. package/FormBuilder/FormBuilder.mdx +0 -256
  714. package/FormBuilder/FormBuilder.stories/index.js +0 -7
  715. package/FormBuilder/FormBuilder.stories/package.json +0 -6
  716. package/FormBuilder/FormBuilder.stories.playwright.json +0 -52
  717. package/FormBuilder/__stories__/Default/index.js +0 -26
  718. package/FormBuilder/__stories__/Default/package.json +0 -6
  719. package/MultiplicityField/MultiplicityField.mdx +0 -590
  720. package/MultiplicityField/MultiplicityField.stories/index.js +0 -12
  721. package/MultiplicityField/MultiplicityField.stories/package.json +0 -6
  722. package/MultiplicityField/MultiplicityField.stories.playwright.json +0 -1370
  723. package/MultiplicityField/__stories__/Default/index.js +0 -95
  724. package/MultiplicityField/__stories__/Default/package.json +0 -6
  725. package/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -72
  726. package/MultiplicityField/__stories__/PreviewDisplay/package.json +0 -6
  727. package/MultiplicityField/__stories__/WithExactLength/index.js +0 -90
  728. package/MultiplicityField/__stories__/WithExactLength/package.json +0 -6
  729. package/MultiplicityField/__stories__/WithMaxLength/index.js +0 -93
  730. package/MultiplicityField/__stories__/WithMaxLength/package.json +0 -6
  731. package/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -94
  732. package/MultiplicityField/__stories__/WithMinAndMaxLength/package.json +0 -6
  733. package/MultiplicityField/__stories__/WithMinLength/index.js +0 -93
  734. package/MultiplicityField/__stories__/WithMinLength/package.json +0 -6
  735. package/Questions/Questions.stories/index.js +0 -7
  736. package/Questions/__snapshots__/index.spec.tsx.snap +0 -596
  737. package/Questions/__stories__/Default/index.js +0 -102
  738. package/Questions/__stories__/Default/package.json +0 -6
  739. package/Questions/index.mdx +0 -415
  740. package/Questions/index.spec/index.js +0 -59
  741. package/cjs/Field/index.mdx +0 -6
  742. package/cjs/Field/utils/index.js +0 -167
  743. package/cjs/FieldArray/FieldArray.stories/index.js +0 -38
  744. package/cjs/FieldArray/FieldArray.stories.playwright.json +0 -353
  745. package/cjs/FieldArray/__stories__/Default/index.js +0 -98
  746. package/cjs/FieldArray/__stories__/WithExactLength/index.js +0 -98
  747. package/cjs/Form.stories/index.js +0 -9
  748. package/cjs/FormBuilder/FormBuilder/index.js +0 -162
  749. package/cjs/FormBuilder/FormBuilder.mdx +0 -256
  750. package/cjs/FormBuilder/FormBuilder.stories/index.js +0 -26
  751. package/cjs/FormBuilder/FormBuilder.stories.playwright.json +0 -52
  752. package/cjs/FormBuilder/__stories__/Default/index.js +0 -36
  753. package/cjs/MultiplicityField/MultiplicityField.stories/index.js +0 -86
  754. package/cjs/MultiplicityField/MultiplicityField.stories.playwright.json +0 -1370
  755. package/cjs/MultiplicityField/__stories__/Default/index.js +0 -105
  756. package/cjs/MultiplicityField/__stories__/PreviewDisplay/index.js +0 -82
  757. package/cjs/MultiplicityField/__stories__/WithExactLength/index.js +0 -100
  758. package/cjs/MultiplicityField/__stories__/WithMaxLength/index.js +0 -103
  759. package/cjs/MultiplicityField/__stories__/WithMinAndMaxLength/index.js +0 -104
  760. package/cjs/MultiplicityField/__stories__/WithMinLength/index.js +0 -103
  761. package/cjs/Questions/Questions.stories/index.js +0 -26
  762. package/cjs/Questions/__snapshots__/index.spec.tsx.snap +0 -596
  763. package/cjs/Questions/__stories__/Default/index.js +0 -113
  764. package/cjs/Questions/index.mdx +0 -415
  765. package/cjs/Questions/index.spec/index.js +0 -63
  766. package/cjs/create-simple-form.mdx +0 -539
  767. package/cjs/index.mdx +0 -51
  768. package/cjs/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -26
  769. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -56
  770. package/cjs/inputs/Checkboxes/Checkboxes.stories/index.js +0 -50
  771. package/cjs/inputs/Checkboxes/Checkboxes.stories.playwright.json +0 -85
  772. package/cjs/inputs/Checkboxes/__stories__/Conditional/index.js +0 -102
  773. package/cjs/inputs/Checkboxes/__stories__/Default/index.js +0 -50
  774. package/cjs/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -51
  775. package/cjs/inputs/Checkboxes/index.mdx +0 -0
  776. package/cjs/inputs/DateInput/DateInput.stories/index.js +0 -26
  777. package/cjs/inputs/DateInput/DateInput.stories.playwright.json +0 -72
  778. package/cjs/inputs/DateInput/__stories__/Default/index.js +0 -33
  779. package/cjs/inputs/FileInput/FileInput.stories/index.js +0 -26
  780. package/cjs/inputs/FileInput/FileInput.stories.playwright.json +0 -75
  781. package/cjs/inputs/FileInput/__stories__/Default/index.js +0 -30
  782. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +0 -50
  783. package/cjs/inputs/ImageInput/ImageInput.stories.playwright.json +0 -77
  784. package/cjs/inputs/ImageInput/__stories__/Default/index.js +0 -38
  785. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -46
  786. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -43
  787. package/cjs/inputs/Input/Input.stories/index.js +0 -134
  788. package/cjs/inputs/Input/Input.stories.playwright.json +0 -376
  789. package/cjs/inputs/Input/__stories__/AFM/index.js +0 -32
  790. package/cjs/inputs/Input/__stories__/Boolean/index.js +0 -33
  791. package/cjs/inputs/Input/__stories__/Default/index.js +0 -33
  792. package/cjs/inputs/Input/__stories__/IBAN/index.js +0 -33
  793. package/cjs/inputs/Input/__stories__/Integer/index.js +0 -41
  794. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +0 -36
  795. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +0 -36
  796. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +0 -35
  797. package/cjs/inputs/Input/__stories__/PostalCode/index.js +0 -35
  798. package/cjs/inputs/Input/__stories__/TextWithCharacterLimit/index.js +0 -39
  799. package/cjs/inputs/Input/index.mdx +0 -8
  800. package/cjs/inputs/Label/Label.stories/index.js +0 -26
  801. package/cjs/inputs/Label/Label.stories.playwright.json +0 -40
  802. package/cjs/inputs/Label/__stories__/Default/index.js +0 -37
  803. package/cjs/inputs/Label/index.mdx +0 -0
  804. package/cjs/inputs/OtpInput/OtpInput.stories/index.js +0 -26
  805. package/cjs/inputs/OtpInput/__stories__/Default/index.js +0 -39
  806. package/cjs/inputs/Radio/Radio.stories/index.js +0 -50
  807. package/cjs/inputs/Radio/Radio.stories.playwright.json +0 -73
  808. package/cjs/inputs/Radio/__stories__/Conditional/index.js +0 -102
  809. package/cjs/inputs/Radio/__stories__/Default/index.js +0 -55
  810. package/cjs/inputs/Radio/__stories__/WithDivider/index.js +0 -56
  811. package/cjs/inputs/Radio/index.mdx +0 -0
  812. package/cjs/inputs/Select/Select.stories/index.js +0 -26
  813. package/cjs/inputs/Select/Select.stories.playwright.json +0 -22
  814. package/cjs/inputs/Select/__stories__/Default/index.js +0 -61
  815. package/cjs/installation.mdx +0 -68
  816. package/cjs/validators/validators.spec/index.js +0 -87
  817. package/create-simple-form.mdx +0 -539
  818. package/inputs/AutoCompleteInput/AutoComplete.stories/index.js +0 -7
  819. package/inputs/AutoCompleteInput/AutoComplete.stories/package.json +0 -6
  820. package/inputs/AutoCompleteInput/__stories__/Default/index.js +0 -46
  821. package/inputs/AutoCompleteInput/__stories__/Default/package.json +0 -6
  822. package/inputs/Checkboxes/Checkboxes.stories/index.js +0 -9
  823. package/inputs/Checkboxes/Checkboxes.stories.playwright.json +0 -85
  824. package/inputs/Checkboxes/__stories__/Conditional/index.js +0 -92
  825. package/inputs/Checkboxes/__stories__/Conditional/package.json +0 -6
  826. package/inputs/Checkboxes/__stories__/Default/index.js +0 -40
  827. package/inputs/Checkboxes/__stories__/Default/package.json +0 -6
  828. package/inputs/Checkboxes/__stories__/WithDivider/index.js +0 -41
  829. package/inputs/Checkboxes/__stories__/WithDivider/package.json +0 -6
  830. package/inputs/Checkboxes/index.mdx +0 -0
  831. package/inputs/DateInput/DateInput.stories/index.js +0 -7
  832. package/inputs/DateInput/DateInput.stories.playwright.json +0 -72
  833. package/inputs/DateInput/__stories__/Default/index.js +0 -23
  834. package/inputs/FileInput/FileInput.stories/index.js +0 -7
  835. package/inputs/FileInput/FileInput.stories/package.json +0 -6
  836. package/inputs/FileInput/FileInput.stories.playwright.json +0 -75
  837. package/inputs/FileInput/__stories__/Default/index.js +0 -20
  838. package/inputs/ImageInput/ImageInput.stories/index.js +0 -9
  839. package/inputs/ImageInput/ImageInput.stories/package.json +0 -6
  840. package/inputs/ImageInput/ImageInput.stories.playwright.json +0 -77
  841. package/inputs/ImageInput/__stories__/Default/index.js +0 -28
  842. package/inputs/ImageInput/__stories__/Default/package.json +0 -6
  843. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +0 -36
  844. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/package.json +0 -6
  845. package/inputs/ImageInput/__stories__/WithInvalidImageSize/index.js +0 -33
  846. package/inputs/ImageInput/__stories__/WithInvalidImageSize/package.json +0 -6
  847. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  848. package/inputs/Input/Input.stories/index.js +0 -16
  849. package/inputs/Input/Input.stories/package.json +0 -6
  850. package/inputs/Input/Input.stories.playwright.json +0 -376
  851. package/inputs/Input/__stories__/AFM/index.js +0 -22
  852. package/inputs/Input/__stories__/AFM/package.json +0 -6
  853. package/inputs/Input/__stories__/Boolean/index.js +0 -23
  854. package/inputs/Input/__stories__/Boolean/package.json +0 -6
  855. package/inputs/Input/__stories__/Default/index.js +0 -23
  856. package/inputs/Input/__stories__/Default/package.json +0 -6
  857. package/inputs/Input/__stories__/Default.d.ts +0 -3
  858. package/inputs/Input/__stories__/IBAN/index.js +0 -23
  859. package/inputs/Input/__stories__/IBAN/package.json +0 -6
  860. package/inputs/Input/__stories__/Integer/index.js +0 -31
  861. package/inputs/Input/__stories__/Integer/package.json +0 -6
  862. package/inputs/Input/__stories__/LandlineNumber/index.js +0 -26
  863. package/inputs/Input/__stories__/LandlineNumber/package.json +0 -6
  864. package/inputs/Input/__stories__/MobilePhone/index.js +0 -26
  865. package/inputs/Input/__stories__/MobilePhone/package.json +0 -6
  866. package/inputs/Input/__stories__/PhoneNumber/index.js +0 -25
  867. package/inputs/Input/__stories__/PhoneNumber/package.json +0 -6
  868. package/inputs/Input/__stories__/PostalCode/index.js +0 -25
  869. package/inputs/Input/__stories__/PostalCode/package.json +0 -6
  870. package/inputs/Input/__stories__/TextWithCharacterLimit/index.js +0 -29
  871. package/inputs/Input/__stories__/TextWithCharacterLimit/package.json +0 -6
  872. package/inputs/Input/__stories__/TextWithCharacterLimit.d.ts +0 -3
  873. package/inputs/Input/index.mdx +0 -8
  874. package/inputs/Label/Label.stories/index.js +0 -7
  875. package/inputs/Label/Label.stories/package.json +0 -6
  876. package/inputs/Label/Label.stories.playwright.json +0 -40
  877. package/inputs/Label/__stories__/Default/index.js +0 -27
  878. package/inputs/Label/__stories__/Default/package.json +0 -6
  879. package/inputs/Label/index.mdx +0 -0
  880. package/inputs/OtpInput/OtpInput.stories/index.js +0 -7
  881. package/inputs/OtpInput/OtpInput.stories/package.json +0 -6
  882. package/inputs/OtpInput/__stories__/Default/index.js +0 -29
  883. package/inputs/OtpInput/__stories__/Default/package.json +0 -6
  884. package/inputs/Radio/Radio.stories/index.js +0 -9
  885. package/inputs/Radio/Radio.stories/package.json +0 -6
  886. package/inputs/Radio/Radio.stories.playwright.json +0 -73
  887. package/inputs/Radio/__stories__/Conditional/index.js +0 -92
  888. package/inputs/Radio/__stories__/Conditional/package.json +0 -6
  889. package/inputs/Radio/__stories__/Default/index.js +0 -45
  890. package/inputs/Radio/__stories__/Default/package.json +0 -6
  891. package/inputs/Radio/__stories__/WithDivider/index.js +0 -46
  892. package/inputs/Radio/__stories__/WithDivider/package.json +0 -6
  893. package/inputs/Radio/index.mdx +0 -0
  894. package/inputs/Select/Select.stories/index.js +0 -7
  895. package/inputs/Select/Select.stories/package.json +0 -6
  896. package/inputs/Select/Select.stories.playwright.json +0 -22
  897. package/inputs/Select/__stories__/Default/index.js +0 -51
  898. package/inputs/Select/__stories__/Default/package.json +0 -6
  899. package/installation.mdx +0 -68
  900. package/lazy.d.ts +0 -69
  901. package/registry.d.ts +0 -64
  902. package/src/Field/index.mdx +0 -6
  903. package/src/Field/utils.ts +0 -191
  904. package/src/FieldArray/FieldArray.stories.playwright.json +0 -353
  905. package/src/FormBuilder/FormBuilder.stories.playwright.json +0 -52
  906. package/src/FormBuilder/FormBuilder.tsx +0 -166
  907. package/src/MultiplicityField/MultiplicityField.mdx +0 -590
  908. package/src/MultiplicityField/MultiplicityField.stories.playwright.json +0 -1370
  909. package/src/index.mdx +0 -51
  910. package/src/inputs/Checkboxes/Checkboxes.stories.playwright.json +0 -85
  911. package/src/inputs/Checkboxes/index.mdx +0 -0
  912. package/src/inputs/DateInput/DateInput.stories.playwright.json +0 -72
  913. package/src/inputs/FileInput/FileInput.stories.playwright.json +0 -75
  914. package/src/inputs/ImageInput/ImageInput.stories.playwright.json +0 -77
  915. package/src/inputs/Input/Input.stories.playwright.json +0 -376
  916. package/src/inputs/Input/index.mdx +0 -8
  917. package/src/inputs/Label/Label.stories.playwright.json +0 -40
  918. package/src/inputs/Label/index.mdx +0 -0
  919. package/src/inputs/Radio/Radio.stories.playwright.json +0 -73
  920. package/src/inputs/Radio/index.mdx +0 -0
  921. package/src/inputs/Select/Select.stories.playwright.json +0 -22
  922. package/validators/validators.spec/index.js +0 -85
  923. package/validators/validators.spec/package.json +0 -6
  924. /package/{Questions/index.spec.d.ts → hooks/__tests__/utils.spec.d.ts} +0 -0
@@ -0,0 +1,25 @@
1
+ import type { Control, FieldValues, UseFormReturn } from 'react-hook-form';
2
+ export interface UseFieldFocusManagerProps<T extends FieldValues> {
3
+ enabled?: boolean;
4
+ control: Control<T>;
5
+ subscribe: UseFormReturn['subscribe'];
6
+ setFocus: UseFormReturn['setFocus'];
7
+ }
8
+ /**
9
+ * Custom hook to manage focus on form fields.
10
+ *
11
+ * It collects all focusable elements from the form fields and sorts them according to their position in the DOM.
12
+ */
13
+ export declare function useFieldFocusManager<T extends FieldValues>({ enabled, control, subscribe, setFocus, }: UseFieldFocusManagerProps<T>): {
14
+ /**
15
+ * Registers a custom focusable element with the given field name.
16
+ *
17
+ * Returns a callback function to unregister the element by field name.
18
+ *
19
+ * @param fieldName - The name of the field to associate with the element.
20
+ * @param element - The HTML element to register as focusable.
21
+ */
22
+ registerCustomFocusableElement: (fieldName: string, element: HTMLElement) => () => void;
23
+ focusOnError: (errors: Record<string, any>) => void;
24
+ };
25
+ export default useFieldFocusManager;
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hooks/useFieldFocusManager.ts"],
4
+ "sourcesContent": ["import { useCallback, useEffect, useRef } from 'react';\nimport type { Control, FieldValues, Ref, UseFormReturn } from 'react-hook-form';\nimport {\n extractFieldEntries,\n mapElementsToFields,\n sortElementsByPosition,\n} from '@digigov/form/hooks/utils';\n\nexport interface UseFieldFocusManagerProps<T extends FieldValues> {\n enabled?: boolean;\n control: Control<T>;\n subscribe: UseFormReturn['subscribe'];\n setFocus: UseFormReturn['setFocus'];\n}\n\n/**\n * Custom hook to manage focus on form fields.\n *\n * It collects all focusable elements from the form fields and sorts them according to their position in the DOM.\n */\nexport function useFieldFocusManager<T extends FieldValues>({\n enabled = true,\n control,\n subscribe,\n setFocus,\n}: UseFieldFocusManagerProps<T>) {\n /** Array to hold any external focusable elements registered by the user */\n const customFocusableElements = useRef(new Map<string, HTMLElement>());\n /** Map to hold focusable elements by field name */\n const focusableElements = useRef(new Map<string, Ref>());\n\n // When disabled, clear custom focusable elements and focusable elements map\n useEffect(() => {\n if (!enabled) {\n customFocusableElements.current.clear();\n focusableElements.current.clear();\n return;\n }\n }, [enabled]);\n\n const updateFocusableElements = useCallback(() => {\n // Clear existing focusable elements\n focusableElements.current.clear();\n // Extract from form fields\n const formElements = extractFieldEntries(control._fields);\n // Extract from custom elements (convert to FieldRefs format first)\n const customFieldRefs = mapElementsToFields(\n customFocusableElements.current\n );\n const customElements = extractFieldEntries(customFieldRefs);\n\n // Combine both maps\n const combinedElements = new Map(formElements);\n customElements.forEach((element, fieldName) => {\n combinedElements.set(fieldName, element);\n });\n\n // Sort once by DOM position\n focusableElements.current = sortElementsByPosition(combinedElements);\n }, [control._fields]);\n\n // Register / unregister custom focusable elements\n const registerCustomFocusableElement = useCallback(\n (fieldName: string, element: HTMLElement) => {\n if (fieldName && element) {\n customFocusableElements.current.set(fieldName, element);\n updateFocusableElements();\n }\n\n return function unregister() {\n customFocusableElements.current.delete(fieldName);\n updateFocusableElements();\n };\n },\n [updateFocusableElements]\n );\n\n // Collect focusable elements when fields change\n useEffect(() => {\n if (!enabled || !subscribe) return;\n const callback = subscribe({\n formState: {\n errors: true,\n // Subscribe to any form state change that might indicate field structure changes\n },\n callback: () => {\n // Defer to next tick to ensure DOM is updated\n setTimeout(updateFocusableElements, 0);\n },\n });\n\n // Initial update\n updateFocusableElements();\n\n return () => callback();\n }, [enabled, updateFocusableElements, subscribe]);\n\n // Subscribe to errors and focus the first field (according to the DOM) with an error\n const focusOnError = useCallback(\n (errors: Record<string, any>) => {\n if (!enabled) return;\n if (!errors || Object.keys(errors).length === 0) return;\n for (const [fieldName, element] of Array.from(\n focusableElements.current\n )) {\n if (hasFieldError(errors, fieldName)) {\n if (element && typeof element.focus === 'function') {\n element.focus(); // Focus the element directly\n return;\n } else if (element && element.name) {\n setFocus(fieldName); // Field is registered with react-hook-form\n return;\n }\n }\n }\n },\n [enabled, setFocus]\n );\n\n return {\n /**\n * Registers a custom focusable element with the given field name.\n *\n * Returns a callback function to unregister the element by field name.\n *\n * @param fieldName - The name of the field to associate with the element.\n * @param element - The HTML element to register as focusable.\n */\n registerCustomFocusableElement,\n focusOnError,\n };\n}\n\n// Helper function to check for nested field errors\nfunction hasFieldError(\n errors: Record<string, any>,\n fieldName: string\n): boolean {\n if (!errors || typeof errors !== 'object') return false;\n\n // Handle direct field names first\n if (errors[fieldName]) {\n return true;\n }\n\n // Split the field name and traverse the error object\n const keys = fieldName.split(/[.[\\]]+/).filter(Boolean);\n let current = errors;\n\n for (const key of keys) {\n if (current && typeof current === 'object') {\n current = current[key];\n } else {\n return false;\n }\n }\n\n // Check if we found a truthy error value\n return !!current;\n}\n\nexport default useFieldFocusManager;\n"],
5
+ "mappings": "AAAA,SAAS,aAAa,WAAW,cAAc;AAE/C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcA,SAAS,qBAA4C;AAAA,EAC1D,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AACF,GAAiC;AAE/B,QAAM,0BAA0B,OAAO,oBAAI,IAAyB,CAAC;AAErE,QAAM,oBAAoB,OAAO,oBAAI,IAAiB,CAAC;AAGvD,YAAU,MAAM;AACd,QAAI,CAAC,SAAS;AACZ,8BAAwB,QAAQ,MAAM;AACtC,wBAAkB,QAAQ,MAAM;AAChC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,0BAA0B,YAAY,MAAM;AAEhD,sBAAkB,QAAQ,MAAM;AAEhC,UAAM,eAAe,oBAAoB,QAAQ,OAAO;AAExD,UAAM,kBAAkB;AAAA,MACtB,wBAAwB;AAAA,IAC1B;AACA,UAAM,iBAAiB,oBAAoB,eAAe;AAG1D,UAAM,mBAAmB,IAAI,IAAI,YAAY;AAC7C,mBAAe,QAAQ,CAAC,SAAS,cAAc;AAC7C,uBAAiB,IAAI,WAAW,OAAO;AAAA,IACzC,CAAC;AAGD,sBAAkB,UAAU,uBAAuB,gBAAgB;AAAA,EACrE,GAAG,CAAC,QAAQ,OAAO,CAAC;AAGpB,QAAM,iCAAiC;AAAA,IACrC,CAAC,WAAmB,YAAyB;AAC3C,UAAI,aAAa,SAAS;AACxB,gCAAwB,QAAQ,IAAI,WAAW,OAAO;AACtD,gCAAwB;AAAA,MAC1B;AAEA,aAAO,SAAS,aAAa;AAC3B,gCAAwB,QAAQ,OAAO,SAAS;AAChD,gCAAwB;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,CAAC,uBAAuB;AAAA,EAC1B;AAGA,YAAU,MAAM;AACd,QAAI,CAAC,WAAW,CAAC,UAAW;AAC5B,UAAM,WAAW,UAAU;AAAA,MACzB,WAAW;AAAA,QACT,QAAQ;AAAA;AAAA,MAEV;AAAA,MACA,UAAU,MAAM;AAEd,mBAAW,yBAAyB,CAAC;AAAA,MACvC;AAAA,IACF,CAAC;AAGD,4BAAwB;AAExB,WAAO,MAAM,SAAS;AAAA,EACxB,GAAG,CAAC,SAAS,yBAAyB,SAAS,CAAC;AAGhD,QAAM,eAAe;AAAA,IACnB,CAAC,WAAgC;AAC/B,UAAI,CAAC,QAAS;AACd,UAAI,CAAC,UAAU,OAAO,KAAK,MAAM,EAAE,WAAW,EAAG;AACjD,iBAAW,CAAC,WAAW,OAAO,KAAK,MAAM;AAAA,QACvC,kBAAkB;AAAA,MACpB,GAAG;AACD,YAAI,cAAc,QAAQ,SAAS,GAAG;AACpC,cAAI,WAAW,OAAO,QAAQ,UAAU,YAAY;AAClD,oBAAQ,MAAM;AACd;AAAA,UACF,WAAW,WAAW,QAAQ,MAAM;AAClC,qBAAS,SAAS;AAClB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,SAAS,QAAQ;AAAA,EACpB;AAEA,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASL;AAAA,IACA;AAAA,EACF;AACF;AAGA,SAAS,cACP,QACA,WACS;AACT,MAAI,CAAC,UAAU,OAAO,WAAW,SAAU,QAAO;AAGlD,MAAI,OAAO,SAAS,GAAG;AACrB,WAAO;AAAA,EACT;AAGA,QAAM,OAAO,UAAU,MAAM,SAAS,EAAE,OAAO,OAAO;AACtD,MAAI,UAAU;AAEd,aAAW,OAAO,MAAM;AACtB,QAAI,WAAW,OAAO,YAAY,UAAU;AAC1C,gBAAU,QAAQ,GAAG;AAAA,IACvB,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAGA,SAAO,CAAC,CAAC;AACX;AAEA,IAAO,+BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,73 @@
1
+ function extractFieldEntries(fields, prefix = "") {
2
+ const elementMap = /* @__PURE__ */ new Map();
3
+ const fieldEntries = Object.entries(fields);
4
+ if (fieldEntries.length === 0) return elementMap;
5
+ Object.entries(fields).forEach(([fieldName, field]) => {
6
+ if (!field) return;
7
+ const fullFieldName = prefix ? `${prefix}.${fieldName}` : fieldName;
8
+ if (isField(field)) {
9
+ const element = field._f.ref;
10
+ if (element) {
11
+ elementMap.set(fullFieldName, element);
12
+ }
13
+ } else if (isFieldRefs(field)) {
14
+ const keys = Object.keys(field);
15
+ const numericKeys = keys.filter((key) => /^\d+$/.test(key));
16
+ const hasNumericKeys = numericKeys.length > 0;
17
+ if (hasNumericKeys) {
18
+ numericKeys.forEach((index) => {
19
+ const arrayItem = field[index];
20
+ if (arrayItem && isFieldRefs(arrayItem)) {
21
+ const nestedEntries = extractFieldEntries(
22
+ arrayItem,
23
+ `${fullFieldName}.${index}`
24
+ );
25
+ nestedEntries.forEach((element, fieldName2) => {
26
+ elementMap.set(fieldName2, element);
27
+ });
28
+ }
29
+ });
30
+ } else {
31
+ const nestedEntries = extractFieldEntries(field, fullFieldName);
32
+ nestedEntries.forEach((element, fieldName2) => {
33
+ elementMap.set(fieldName2, element);
34
+ });
35
+ }
36
+ }
37
+ });
38
+ return elementMap;
39
+ }
40
+ const isField = (fieldRef) => Boolean(
41
+ fieldRef && typeof fieldRef === "object" && "_f" in fieldRef && fieldRef._f && "ref" in fieldRef._f
42
+ );
43
+ const isFieldRefs = (fieldRef) => Boolean(fieldRef && typeof fieldRef === "object" && !isField(fieldRef));
44
+ function sortElementsByPosition(elements) {
45
+ const sortedEntries = Array.from(elements.entries()).sort(([, a], [, b]) => {
46
+ if (isActualHTMLElement(a) && isActualHTMLElement(b)) {
47
+ const aPosition = a.compareDocumentPosition(b);
48
+ if (aPosition & Node.DOCUMENT_POSITION_FOLLOWING) return -1;
49
+ if (aPosition & Node.DOCUMENT_POSITION_PRECEDING) return 1;
50
+ }
51
+ return 0;
52
+ });
53
+ return new Map(sortedEntries);
54
+ }
55
+ const isActualHTMLElement = (ref) => ref instanceof HTMLElement && typeof ref.focus === "function";
56
+ function mapElementsToFields(elements) {
57
+ const fields = {};
58
+ elements.forEach((element, fieldName) => {
59
+ fields[fieldName] = {
60
+ _f: {
61
+ ref: element,
62
+ name: fieldName
63
+ }
64
+ };
65
+ });
66
+ return fields;
67
+ }
68
+ export {
69
+ extractFieldEntries,
70
+ mapElementsToFields,
71
+ sortElementsByPosition
72
+ };
73
+ //# sourceMappingURL=utils.js.map
@@ -2,5 +2,5 @@
2
2
  "sideEffects": false,
3
3
  "module": "./index.js",
4
4
  "types": "./index.d.ts",
5
- "main": "../cjs/Form.stories/index.js"
5
+ "main": "../../cjs/hooks/utils/index.js"
6
6
  }
@@ -0,0 +1,18 @@
1
+ import type { Field, FieldRefs, Ref } from 'react-hook-form';
2
+ /**
3
+ * Recursively extracts field entries from nested form field structure.
4
+ * Handles both regular nested objects and array-like structures.
5
+ */
6
+ export declare function extractFieldEntries(fields: FieldRefs, prefix?: string): Map<string, Ref>;
7
+ /**
8
+ * Sorts a map of HTML elements by their position in the DOM.
9
+ * Elements appearing earlier in the document order come first.
10
+ */
11
+ export declare function sortElementsByPosition(elements: Map<string, Ref>): Map<string, Ref>;
12
+ /**
13
+ * Maps a collection of HTML elements to a FieldRefs structure.
14
+ *
15
+ * It's not a direct conversion, but rather a way to create a simple FieldRefs
16
+ * structure that can be used with React Hook Form.
17
+ */
18
+ export declare function mapElementsToFields(elements: Map<string, HTMLElement>): Record<string, Field>;
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/hooks/utils.ts"],
4
+ "sourcesContent": ["import type { Field, FieldRefs, Ref } from 'react-hook-form';\n\n/**\n * Recursively extracts field entries from nested form field structure.\n * Handles both regular nested objects and array-like structures.\n */\nexport function extractFieldEntries(\n fields: FieldRefs,\n prefix = ''\n): Map<string, Ref> {\n const elementMap = new Map<string, Ref>();\n\n const fieldEntries = Object.entries(fields);\n if (fieldEntries.length === 0) return elementMap;\n\n Object.entries(fields).forEach(([fieldName, field]) => {\n if (!field) return;\n const fullFieldName = prefix ? `${prefix}.${fieldName}` : fieldName;\n\n // Handle direct field with ref\n if (isField(field)) {\n const element = field._f.ref;\n if (element) {\n elementMap.set(fullFieldName, element);\n }\n }\n\n // Handle array fields (numeric keys indicate array indices)\n else if (isFieldRefs(field)) {\n // Check if any keys are numeric (indicating an array structure)\n // Filter out non-numeric keys like '_f' which contains field metadata\n const keys = Object.keys(field);\n const numericKeys = keys.filter((key) => /^\\d+$/.test(key));\n const hasNumericKeys = numericKeys.length > 0;\n\n if (hasNumericKeys) {\n // Process only the numeric array indices, ignore metadata keys like '_f'\n numericKeys.forEach((index) => {\n const arrayItem = field[index];\n if (arrayItem && isFieldRefs(arrayItem)) {\n const nestedEntries = extractFieldEntries(\n arrayItem,\n `${fullFieldName}.${index}`\n );\n // Merge nested entries into main map\n nestedEntries.forEach((element, fieldName) => {\n elementMap.set(fieldName, element);\n });\n }\n });\n } else {\n // Handle regular nested objects\n const nestedEntries = extractFieldEntries(field, fullFieldName);\n // Merge nested entries into main map\n nestedEntries.forEach((element, fieldName) => {\n elementMap.set(fieldName, element);\n });\n }\n }\n });\n\n return elementMap;\n}\n\n/** Type guard to check if a ref is a Field object */\nconst isField = (fieldRef: FieldRefs[keyof FieldRefs]): fieldRef is Field =>\n Boolean(\n fieldRef &&\n typeof fieldRef === 'object' &&\n '_f' in fieldRef &&\n fieldRef._f &&\n 'ref' in fieldRef._f\n );\n\n/** Type guard to check if a ref is a FieldRefs object (nested fields) */\nconst isFieldRefs = (\n fieldRef: FieldRefs[keyof FieldRefs]\n): fieldRef is FieldRefs =>\n Boolean(fieldRef && typeof fieldRef === 'object' && !isField(fieldRef));\n\n/**\n * Sorts a map of HTML elements by their position in the DOM.\n * Elements appearing earlier in the document order come first.\n */\nexport function sortElementsByPosition(\n elements: Map<string, Ref>\n): Map<string, Ref> {\n const sortedEntries = Array.from(elements.entries()).sort(([, a], [, b]) => {\n if (isActualHTMLElement(a) && isActualHTMLElement(b)) {\n const aPosition = a.compareDocumentPosition(b);\n if (aPosition & Node.DOCUMENT_POSITION_FOLLOWING) return -1;\n if (aPosition & Node.DOCUMENT_POSITION_PRECEDING) return 1;\n }\n return 0; // keep original order\n });\n return new Map(sortedEntries);\n}\n\n/** Type guard to check if a ref is an actual HTML element */\nconst isActualHTMLElement = (ref: Ref): ref is Ref & HTMLElement =>\n ref instanceof HTMLElement && typeof ref.focus === 'function';\n\n/**\n * Maps a collection of HTML elements to a FieldRefs structure.\n *\n * It's not a direct conversion, but rather a way to create a simple FieldRefs\n * structure that can be used with React Hook Form.\n */\nexport function mapElementsToFields(\n elements: Map<string, HTMLElement>\n): Record<string, Field> {\n const fields = {};\n elements.forEach((element, fieldName) => {\n fields[fieldName] = {\n _f: {\n ref: element,\n name: fieldName,\n },\n };\n });\n return fields;\n}\n"],
5
+ "mappings": "AAMO,SAAS,oBACd,QACA,SAAS,IACS;AAClB,QAAM,aAAa,oBAAI,IAAiB;AAExC,QAAM,eAAe,OAAO,QAAQ,MAAM;AAC1C,MAAI,aAAa,WAAW,EAAG,QAAO;AAEtC,SAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,WAAW,KAAK,MAAM;AACrD,QAAI,CAAC,MAAO;AACZ,UAAM,gBAAgB,SAAS,GAAG,MAAM,IAAI,SAAS,KAAK;AAG1D,QAAI,QAAQ,KAAK,GAAG;AAClB,YAAM,UAAU,MAAM,GAAG;AACzB,UAAI,SAAS;AACX,mBAAW,IAAI,eAAe,OAAO;AAAA,MACvC;AAAA,IACF,WAGS,YAAY,KAAK,GAAG;AAG3B,YAAM,OAAO,OAAO,KAAK,KAAK;AAC9B,YAAM,cAAc,KAAK,OAAO,CAAC,QAAQ,QAAQ,KAAK,GAAG,CAAC;AAC1D,YAAM,iBAAiB,YAAY,SAAS;AAE5C,UAAI,gBAAgB;AAElB,oBAAY,QAAQ,CAAC,UAAU;AAC7B,gBAAM,YAAY,MAAM,KAAK;AAC7B,cAAI,aAAa,YAAY,SAAS,GAAG;AACvC,kBAAM,gBAAgB;AAAA,cACpB;AAAA,cACA,GAAG,aAAa,IAAI,KAAK;AAAA,YAC3B;AAEA,0BAAc,QAAQ,CAAC,SAASA,eAAc;AAC5C,yBAAW,IAAIA,YAAW,OAAO;AAAA,YACnC,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH,OAAO;AAEL,cAAM,gBAAgB,oBAAoB,OAAO,aAAa;AAE9D,sBAAc,QAAQ,CAAC,SAASA,eAAc;AAC5C,qBAAW,IAAIA,YAAW,OAAO;AAAA,QACnC,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAGA,MAAM,UAAU,CAAC,aACf;AAAA,EACE,YACE,OAAO,aAAa,YACpB,QAAQ,YACR,SAAS,MACT,SAAS,SAAS;AACtB;AAGF,MAAM,cAAc,CAClB,aAEA,QAAQ,YAAY,OAAO,aAAa,YAAY,CAAC,QAAQ,QAAQ,CAAC;AAMjE,SAAS,uBACd,UACkB;AAClB,QAAM,gBAAgB,MAAM,KAAK,SAAS,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM;AAC1E,QAAI,oBAAoB,CAAC,KAAK,oBAAoB,CAAC,GAAG;AACpD,YAAM,YAAY,EAAE,wBAAwB,CAAC;AAC7C,UAAI,YAAY,KAAK,4BAA6B,QAAO;AACzD,UAAI,YAAY,KAAK,4BAA6B,QAAO;AAAA,IAC3D;AACA,WAAO;AAAA,EACT,CAAC;AACD,SAAO,IAAI,IAAI,aAAa;AAC9B;AAGA,MAAM,sBAAsB,CAAC,QAC3B,eAAe,eAAe,OAAO,IAAI,UAAU;AAQ9C,SAAS,oBACd,UACuB;AACvB,QAAM,SAAS,CAAC;AAChB,WAAS,QAAQ,CAAC,SAAS,cAAc;AACvC,WAAO,SAAS,IAAI;AAAA,MAClB,IAAI;AAAA,QACF,KAAK;AAAA,QACL,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF,CAAC;AACD,SAAO;AACT;",
6
+ "names": ["fieldName"]
7
+ }
package/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
- export * from '@digigov/form/internal';
1
+ export { default as Field } from '@digigov/form/Field';
2
+ export { default as Fieldset } from '@digigov/form/Fieldset';
3
+ export * from '@digigov/form/inputs/Label';
2
4
  import FormBuilder from '@digigov/form/FormBuilder';
5
+ export * from '@digigov/form/types';
3
6
  export default FormBuilder;
package/index.js CHANGED
@@ -1,8 +1,17 @@
1
- /** @license Digigov v1.2.0-dcbd7ded
1
+ /** @license Digigov v2.0.0-0138f8bd
2
2
  *
3
3
  * This source code is licensed under the BSD-2-Clause license found in the
4
4
  * LICENSE file in the root directory of this source tree.
5
5
  */
6
- export * from '@digigov/form/internal';
7
- import FormBuilder from '@digigov/form/FormBuilder';
8
- export default FormBuilder;
6
+ import { default as default2 } from "@digigov/form/Field";
7
+ import { default as default3 } from "@digigov/form/Fieldset";
8
+ export * from "@digigov/form/inputs/Label";
9
+ import FormBuilder from "@digigov/form/FormBuilder";
10
+ export * from "@digigov/form/types";
11
+ var src_default = FormBuilder;
12
+ export {
13
+ default2 as Field,
14
+ default3 as Fieldset,
15
+ src_default as default
16
+ };
17
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["export { default as Field } from '@digigov/form/Field';\nexport { default as Fieldset } from '@digigov/form/Fieldset';\nexport * from '@digigov/form/inputs/Label';\nimport FormBuilder from '@digigov/form/FormBuilder';\nexport * from '@digigov/form/types';\nexport default FormBuilder;\n"],
5
+ "mappings": "AAAA,SAAoB,WAAXA,gBAAwB;AACjC,SAAoB,WAAXA,gBAA2B;AACpC,cAAc;AACd,OAAO,iBAAiB;AACxB,cAAc;AACd,IAAO,cAAQ;",
6
+ "names": ["default"]
7
+ }
@@ -1,8 +1,11 @@
1
1
  declare namespace _default {
2
2
  export let title: string;
3
3
  export { AutoComplete as component };
4
+ export let tags: string[];
5
+ export { doc as markdown };
4
6
  export let displayName: string;
5
7
  }
6
8
  export default _default;
7
- export * from "@digigov/form/inputs/AutoCompleteInput/__stories__/Default";
9
+ export { Default } from "@digigov/form/inputs/AutoCompleteInput/__stories__/Default";
10
+ export { Multiple } from "@digigov/form/inputs/AutoCompleteInput/__stories__/Multiple";
8
11
  import AutoComplete from '@digigov/form/inputs/AutoCompleteInput';
@@ -1,2 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const Default: () => JSX.Element;
1
+ import React from 'react';
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
+ export default Default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Multiple: (_: any) => React.JSX.Element;
3
+ export default Multiple;
@@ -1,14 +1,14 @@
1
1
  import React from 'react';
2
- import { ControlledFieldProps } from '@digigov/form/Field/types';
3
- import { FieldOptionProps } from '@digigov/form/inputs/Label';
4
- import { AutoCompleteProps as UIAutoCompleteProps } from '@digigov/ui/form/AutoComplete';
2
+ import type { ControlledFieldProps } from '@digigov/form/Field/types';
3
+ import type { FieldOptionProps } from '@digigov/form/inputs/Label';
4
+ import type { AutoCompleteProps as UIAutoCompleteProps } from '@digigov/ui/form/AutoComplete';
5
5
  export interface AutoCompleteInputExtra extends Omit<UIAutoCompleteProps, 'source' | 'id' | 'templates' | 'defaultValue' | 'onConfirm' | 'dropdownArrow'> {
6
- options: Array<FieldOptionProps>;
6
+ options: FieldOptionProps[];
7
7
  }
8
8
  export interface AutoCompleteInputProps extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'extra'> {
9
9
  extra: AutoCompleteInputExtra;
10
10
  value: string;
11
- onChange: (v: string) => void;
11
+ onChange: (v: string | string[] | undefined) => void;
12
12
  }
13
13
  export declare const AutoCompleteInput: React.FC<AutoCompleteInputProps>;
14
14
  export default AutoCompleteInput;
@@ -1,42 +1,65 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["name", "extra", "onChange", "value"];
4
- import React, { useCallback } from 'react';
5
- import { Hint } from '@digigov/react-core/Hint';
6
- import UIAutoComplete from '@digigov/ui/form/AutoComplete';
7
- export var AutoCompleteInput = function AutoCompleteInput(_ref) {
8
- var name = _ref.name,
9
- options = _ref.extra.options,
10
- onChange = _ref.onChange,
11
- value = _ref.value,
12
- props = _objectWithoutProperties(_ref, _excluded);
13
- var suggest = useCallback(function suggest(query, syncResults) {
14
- syncResults(query ? options.filter(function (option) {
15
- var _option$label, _option$label2;
16
- return "".concat(option.value, " ").concat(((_option$label = option.label) === null || _option$label === void 0 ? void 0 : _option$label.primary) || '', " ").concat(((_option$label2 = option.label) === null || _option$label2 === void 0 ? void 0 : _option$label2.secondary) || '').toLowerCase().indexOf(query.toLowerCase()) !== -1;
17
- }) : []);
18
- }, []);
19
- return /*#__PURE__*/React.createElement(UIAutoComplete, _extends({
20
- source: suggest,
21
- onConfirm: function onConfirm(value) {
22
- onChange(value.value);
1
+ import React, { useCallback } from "react";
2
+ import { AutoComplete } from "@digigov/ui/form/AutoComplete";
3
+ import { Hint } from "@digigov/ui/typography/Hint";
4
+ import { Base } from "@digigov/ui/utils/Base";
5
+ const AutoCompleteInput = ({
6
+ name,
7
+ type,
8
+ extra: { options },
9
+ onChange,
10
+ value,
11
+ ...props
12
+ }) => {
13
+ const suggest = useCallback(
14
+ function suggest2(query, syncResults) {
15
+ syncResults(
16
+ query ? options.filter(function(option) {
17
+ return `${option.value} ${option.label?.primary || ""} ${option.label?.secondary || ""}`.toLowerCase().indexOf(query.toLowerCase()) !== -1;
18
+ }) : options
19
+ );
23
20
  },
24
- templates: {
25
- suggestion: function suggestion(_ref2) {
26
- var label = _ref2.label,
27
- value = _ref2.value;
28
- return /*#__PURE__*/React.createElement("div", null, label && label.primary && label.primary || value, label && label.secondary && /*#__PURE__*/React.createElement(Hint, null, label.secondary));
21
+ [options]
22
+ );
23
+ return /* @__PURE__ */ React.createElement(
24
+ AutoComplete,
25
+ {
26
+ multiple: type === "choice:multiple" ? true : false,
27
+ source: suggest,
28
+ onConfirm: (value2) => {
29
+ if (Array.isArray(value2)) {
30
+ const selectedValues = value2.map((item) => item.value);
31
+ if (selectedValues.length > 0) onChange(selectedValues);
32
+ else onChange(void 0);
33
+ } else {
34
+ onChange(value2.value);
35
+ }
29
36
  },
30
- inputValue: function inputValue(option) {
31
- if (!option) {
32
- return '';
37
+ templates: {
38
+ suggestion({ label, value: value2 }) {
39
+ return /* @__PURE__ */ React.createElement(Base, { as: "div" }, label && label.primary && label.primary || value2, label && label.secondary && /* @__PURE__ */ React.createElement(Hint, null, label.secondary));
40
+ },
41
+ inputValue: (option) => {
42
+ if (!option) {
43
+ return "";
44
+ }
45
+ return option.label.primary || option.value;
33
46
  }
34
- return option.label.primary || option.value;
35
- }
47
+ },
48
+ ...{
49
+ ...props,
50
+ reset: void 0,
51
+ required: void 0,
52
+ Field: void 0
53
+ },
54
+ name,
55
+ id: `${name}-id`,
56
+ defaultValue: value
36
57
  }
37
- }, props, {
38
- id: "".concat(name, "-id"),
39
- defaultValue: value
40
- }));
58
+ );
59
+ };
60
+ var AutoCompleteInput_default = AutoCompleteInput;
61
+ export {
62
+ AutoCompleteInput,
63
+ AutoCompleteInput_default as default
41
64
  };
42
- export default AutoCompleteInput;
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/AutoCompleteInput/index.tsx"],
4
+ "sourcesContent": ["import React, { useCallback } from 'react';\nimport type { ControlledFieldProps } from '@digigov/form/Field/types';\nimport type { FieldOptionProps } from '@digigov/form/inputs/Label';\nimport type { AutoCompleteProps as UIAutoCompleteProps } from '@digigov/ui/form/AutoComplete';\nimport { AutoComplete } from '@digigov/ui/form/AutoComplete';\nimport { Hint } from '@digigov/ui/typography/Hint';\nimport { Base } from '@digigov/ui/utils/Base';\nexport interface AutoCompleteInputExtra\n extends Omit<\n UIAutoCompleteProps,\n | 'source'\n | 'id'\n | 'templates'\n | 'defaultValue'\n | 'onConfirm'\n | 'dropdownArrow'\n > {\n options: FieldOptionProps[];\n}\n\nexport interface AutoCompleteInputProps\n extends Omit<ControlledFieldProps, 'value' | 'onChange' | 'extra'> {\n extra: AutoCompleteInputExtra;\n value: string;\n onChange: (v: string | string[] | undefined) => void;\n}\n\nexport const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({\n name,\n type,\n extra: { options },\n onChange,\n value,\n ...props\n}) => {\n const suggest = useCallback(\n function suggest(\n query: string,\n syncResults: (options: any[]) => void\n ): void {\n syncResults(\n query\n ? options.filter(function (option) {\n return (\n `${option.value} ${option.label?.primary || ''} ${\n option.label?.secondary || ''\n }`\n .toLowerCase()\n .indexOf(query.toLowerCase()) !== -1\n );\n })\n : options\n );\n },\n [options]\n );\n\n return (\n <AutoComplete\n multiple={type === 'choice:multiple' ? true : false}\n source={suggest}\n onConfirm={(value) => {\n if (Array.isArray(value)) {\n const selectedValues = value.map((item) => item.value);\n if (selectedValues.length > 0) onChange(selectedValues);\n else onChange(undefined);\n } else {\n onChange(value.value);\n }\n }}\n templates={{\n suggestion({ label, value }) {\n return (\n <Base as=\"div\">\n {(label && label.primary && label.primary) || value}\n {label && label.secondary && <Hint>{label.secondary}</Hint>}\n </Base>\n );\n },\n inputValue: (option) => {\n if (!option) {\n return '';\n }\n return option.label.primary || option.value;\n },\n }}\n {...{\n ...props,\n reset: undefined,\n required: undefined,\n Field: undefined,\n }}\n name={name}\n id={`${name}-id`}\n defaultValue={value}\n />\n );\n};\n\nexport default AutoCompleteInput;\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,mBAAmB;AAInC,SAAS,oBAAoB;AAC7B,SAAS,YAAY;AACrB,SAAS,YAAY;AAqBd,MAAM,oBAAsD,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA,OAAO,EAAE,QAAQ;AAAA,EACjB;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,UAAU;AAAA,IACd,SAASA,SACP,OACA,aACM;AACN;AAAA,QACE,QACI,QAAQ,OAAO,SAAU,QAAQ;AAC/B,iBACE,GAAG,OAAO,KAAK,IAAI,OAAO,OAAO,WAAW,EAAE,IAC5C,OAAO,OAAO,aAAa,EAC7B,GACG,YAAY,EACZ,QAAQ,MAAM,YAAY,CAAC,MAAM;AAAA,QAExC,CAAC,IACD;AAAA,MACN;AAAA,IACF;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,SAAS,oBAAoB,OAAO;AAAA,MAC9C,QAAQ;AAAA,MACR,WAAW,CAACC,WAAU;AACpB,YAAI,MAAM,QAAQA,MAAK,GAAG;AACxB,gBAAM,iBAAiBA,OAAM,IAAI,CAAC,SAAS,KAAK,KAAK;AACrD,cAAI,eAAe,SAAS,EAAG,UAAS,cAAc;AAAA,cACjD,UAAS,MAAS;AAAA,QACzB,OAAO;AACL,mBAASA,OAAM,KAAK;AAAA,QACtB;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT,WAAW,EAAE,OAAO,OAAAA,OAAM,GAAG;AAC3B,iBACE,oCAAC,QAAK,IAAG,SACL,SAAS,MAAM,WAAW,MAAM,WAAYA,QAC7C,SAAS,MAAM,aAAa,oCAAC,YAAM,MAAM,SAAU,CACtD;AAAA,QAEJ;AAAA,QACA,YAAY,CAAC,WAAW;AACtB,cAAI,CAAC,QAAQ;AACX,mBAAO;AAAA,UACT;AACA,iBAAO,OAAO,MAAM,WAAW,OAAO;AAAA,QACxC;AAAA,MACF;AAAA,MACC,GAAG;AAAA,QACF,GAAG;AAAA,QACH,OAAO;AAAA,QACP,UAAU;AAAA,QACV,OAAO;AAAA,MACT;AAAA,MACA;AAAA,MACA,IAAI,GAAG,IAAI;AAAA,MACX,cAAc;AAAA;AAAA,EAChB;AAEJ;AAEA,IAAO,4BAAQ;",
6
+ "names": ["suggest", "value"]
7
+ }
@@ -1,10 +1,12 @@
1
1
  declare namespace _default {
2
2
  export let title: string;
3
3
  export { Checkboxes as component };
4
+ export let tags: string[];
5
+ export { doc as markdown };
4
6
  export let displayName: string;
5
7
  }
6
8
  export default _default;
7
- export * from "@digigov/form/inputs/Checkboxes/__stories__/Default";
8
- export * from "@digigov/form/inputs/Checkboxes/__stories__/WithDivider";
9
- export * from "@digigov/form/inputs/Checkboxes/__stories__/Conditional";
9
+ export { Default } from "@digigov/form/inputs/Checkboxes/__stories__/Default";
10
+ export { WithDivider } from "@digigov/form/inputs/Checkboxes/__stories__/WithDivider";
11
+ export { Conditional } from "@digigov/form/inputs/Checkboxes/__stories__/Conditional";
10
12
  import Checkboxes from '@digigov/form/inputs/Checkboxes';
@@ -1,2 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const Conditional: () => JSX.Element;
1
+ import React from 'react';
2
+ export declare const Conditional: (_: any) => React.JSX.Element;
3
+ export default Conditional;
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const Default: () => JSX.Element;
1
+ import React from 'react';
2
+ export declare const Default: (_: any) => React.JSX.Element;
3
3
  export default Default;
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const WithDivider: () => JSX.Element;
1
+ import React from 'react';
2
+ export declare const WithDivider: (_: any) => React.JSX.Element;
3
3
  export default WithDivider;
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
- import { ControlledFieldProps } from '@digigov/form/Field/types';
3
- import { FieldOptionProps } from '@digigov/form/inputs/Label';
2
+ import type { ControlledFieldProps } from '@digigov/form/Field/types';
3
+ import type { FieldOptionProps } from '@digigov/form/inputs/Label';
4
4
  export interface CheckboxesProps extends Omit<ControlledFieldProps, 'extra' | 'value'> {
5
5
  value?: string[];
6
6
  extra: {
7
7
  className?: string;
8
- options: Array<FieldOptionProps>;
8
+ options: FieldOptionProps[];
9
9
  };
10
+ fieldComponent: React.FC<Omit<ControlledFieldProps, 'value' | 'onChange'>>;
10
11
  }
11
- export declare const Checkboxes: React.FC<CheckboxesProps>;
12
+ export declare const Checkboxes: React.ForwardRefExoticComponent<CheckboxesProps & React.RefAttributes<HTMLInputElement>>;
12
13
  export default Checkboxes;
@@ -1,91 +1,82 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["name", "onChange", "value", "extra", "disabled"],
5
- _excluded2 = ["label", "value", "show", "disabled", "selected"];
6
- import React, { useState } from 'react';
7
- import { Field } from '@digigov/form';
8
- import { CheckboxConditional } from '@digigov/react-core/CheckboxConditional';
9
- import CoreCheckboxes from '@digigov/react-core/Checkbox';
10
- import CheckboxItem from '@digigov/react-core/CheckboxItem';
11
- import Hint from '@digigov/react-core/Hint';
12
- import { useTranslation } from '@digigov/ui/i18n';
13
- export var Checkboxes = function Checkboxes(_ref) {
14
- var name = _ref.name,
15
- onChange = _ref.onChange,
16
- value = _ref.value,
17
- _ref$extra = _ref.extra,
18
- options = _ref$extra.options,
19
- className = _ref$extra.className,
20
- disabled = _ref.disabled,
21
- props = _objectWithoutProperties(_ref, _excluded);
22
- if (!value) value = [];
23
- var handleChange = function handleChange(optionValue, idx, show) {
24
- return function (evt) {
25
- var newValue;
1
+ import React, { useState } from "react";
2
+ import {
3
+ Checkbox,
4
+ CheckboxItem,
5
+ CheckboxConditional
6
+ } from "@digigov/ui/form/Checkbox";
7
+ import { useTranslation } from "@digigov/ui/i18n";
8
+ import { Hint } from "@digigov/ui/typography/Hint";
9
+ const Checkboxes = React.forwardRef(
10
+ ({
11
+ name,
12
+ onChange,
13
+ value,
14
+ extra: { options, className },
15
+ disabled,
16
+ Field,
17
+ ...props
18
+ }, ref) => {
19
+ if (!value) value = [];
20
+ const handleChange = (optionValue, idx, show) => (evt) => {
21
+ let newValue = [];
26
22
  if (evt.currentTarget.checked) {
27
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
28
- // @ts-ignore
29
23
  newValue = value.concat([optionValue]);
30
24
  } else {
31
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
32
- // @ts-ignore
33
- newValue = value.filter(function (val) {
34
- return val !== optionValue;
35
- });
25
+ newValue = value.filter((val) => val !== optionValue);
36
26
  }
37
27
  if (show && show.length > 0) {
38
- setChecked(function (items) {
39
- return items.map(function (item, index) {
40
- return index === idx ? !item : item;
41
- });
42
- });
28
+ setChecked(
29
+ (items) => items.map((item, index) => index === idx ? !item : item)
30
+ );
43
31
  }
44
-
45
- // reset value to undefined instead of an empty array
46
- // so the error state mechanism can throw validation errors
47
- if (newValue.length === 0) newValue = undefined;
32
+ if (newValue.length === 0) newValue = void 0;
48
33
  onChange(newValue);
49
34
  };
50
- };
51
- var _useTranslation = useTranslation(),
52
- t = _useTranslation.t;
53
- var _useState = useState(Array(options.length).fill(false)),
54
- _useState2 = _slicedToArray(_useState, 2),
55
- checked = _useState2[0],
56
- setChecked = _useState2[1];
57
- return /*#__PURE__*/React.createElement(CoreCheckboxes, {
58
- className: className
59
- }, options.map(function (_ref2, index) {
60
- var _value;
61
- var label = _ref2.label,
62
- v = _ref2.value,
63
- show = _ref2.show,
64
- optionDisabled = _ref2.disabled,
65
- selected = _ref2.selected,
66
- option = _objectWithoutProperties(_ref2, _excluded2);
67
- return /*#__PURE__*/React.createElement(React.Fragment, {
68
- key: index
69
- }, /*#__PURE__*/React.createElement(CheckboxItem, _extends({
70
- key: "".concat(name, ".").concat(index),
71
- name: name,
72
- value: v,
73
- disabled: disabled || optionDisabled,
74
- checked: (_value = value) === null || _value === void 0 ? void 0 : _value.includes(v),
75
- onChange: handleChange(v, index, show)
76
- }, option, _extends({}, props, {
77
- reset: undefined,
78
- defaultValue: undefined,
79
- onBlur: undefined,
80
- required: undefined,
81
- 'aria-describedby': undefined,
82
- type: 'checkbox'
83
- })), label && label.primary && t(label.primary) || value, label && label.secondary && /*#__PURE__*/React.createElement(Hint, null, t(label.secondary))), !!checked[index] && show && /*#__PURE__*/React.createElement(CheckboxConditional, null, show.map(function (fieldName) {
84
- return /*#__PURE__*/React.createElement(Field, {
85
- name: fieldName,
86
- key: fieldName
87
- });
88
- })), selected && selected());
89
- }));
35
+ const { t } = useTranslation();
36
+ const [checked, setChecked] = useState(
37
+ Array(options.length).fill(false)
38
+ );
39
+ return /* @__PURE__ */ React.createElement(Checkbox, { className }, options.map(
40
+ ({
41
+ label,
42
+ value: v,
43
+ show,
44
+ disabled: optionDisabled,
45
+ selected,
46
+ ...option
47
+ }, index) => /* @__PURE__ */ React.createElement(React.Fragment, { key: index }, /* @__PURE__ */ React.createElement(
48
+ CheckboxItem,
49
+ {
50
+ ref: index === 0 ? ref : void 0,
51
+ key: `${name}.${index}`,
52
+ name: `${name}.${v}`,
53
+ id: `${name}.${v}`,
54
+ value: v,
55
+ disabled: disabled || optionDisabled,
56
+ checked: value?.includes(v),
57
+ onChange: handleChange(v, index, show),
58
+ ...option,
59
+ ...{
60
+ ...props,
61
+ reset: void 0,
62
+ defaultValue: void 0,
63
+ error: void 0,
64
+ onBlur: void 0,
65
+ required: void 0,
66
+ "aria-describedby": void 0,
67
+ type: "checkbox"
68
+ }
69
+ },
70
+ label && label.primary && t(label.primary) || value,
71
+ label && label.secondary && /* @__PURE__ */ React.createElement(Hint, null, t(label.secondary))
72
+ ), !!checked[index] && show && Field && /* @__PURE__ */ React.createElement(CheckboxConditional, null, show.map((fieldName) => /* @__PURE__ */ React.createElement(Field, { name: fieldName, key: fieldName }))), selected && selected())
73
+ ));
74
+ }
75
+ );
76
+ Checkboxes.displayName = "Checkboxes";
77
+ var Checkboxes_default = Checkboxes;
78
+ export {
79
+ Checkboxes,
80
+ Checkboxes_default as default
90
81
  };
91
- export default Checkboxes;
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/Checkboxes/index.tsx"],
4
+ "sourcesContent": ["import React, { useState } from 'react';\nimport type { ControlledFieldProps } from '@digigov/form/Field/types';\nimport type { FieldOptionProps } from '@digigov/form/inputs/Label';\nimport {\n Checkbox,\n CheckboxItem,\n CheckboxConditional,\n} from '@digigov/ui/form/Checkbox';\nimport { useTranslation } from '@digigov/ui/i18n';\nimport { Hint } from '@digigov/ui/typography/Hint';\n\nexport interface CheckboxesProps\n extends Omit<ControlledFieldProps, 'extra' | 'value'> {\n value?: string[];\n extra: {\n className?: string;\n options: FieldOptionProps[];\n };\n fieldComponent: React.FC<Omit<ControlledFieldProps, 'value' | 'onChange'>>;\n}\n\nexport const Checkboxes = React.forwardRef<HTMLInputElement, CheckboxesProps>(\n (\n {\n name,\n onChange,\n value,\n extra: { options, className },\n disabled,\n Field,\n ...props\n },\n ref\n ) => {\n if (!value) value = [];\n const handleChange =\n (optionValue, idx, show) =>\n (evt): void => {\n let newValue: any = [];\n if (evt.currentTarget.checked) {\n newValue = value.concat([optionValue]);\n } else {\n newValue = value.filter((val) => val !== optionValue);\n }\n if (show && show.length > 0) {\n setChecked((items) =>\n items.map((item, index) => (index === idx ? !item : item))\n );\n }\n\n // reset value to undefined instead of an empty array\n // so the error state mechanism can throw validation errors\n if (newValue.length === 0) newValue = undefined;\n onChange(newValue);\n };\n const { t } = useTranslation();\n const [checked, setChecked] = useState(\n Array<boolean>(options.length).fill(false)\n );\n return (\n <Checkbox className={className}>\n {options.map(\n (\n {\n label,\n value: v,\n show,\n disabled: optionDisabled,\n selected,\n ...option\n },\n index\n ) => (\n <React.Fragment key={index}>\n <CheckboxItem\n ref={index === 0 ? ref : undefined}\n key={`${name}.${index}`}\n name={`${name}.${v}`}\n id={`${name}.${v}`}\n value={v}\n disabled={disabled || optionDisabled}\n checked={value?.includes(v)}\n onChange={handleChange(v, index, show)}\n {...option}\n {...{\n ...props,\n reset: undefined,\n defaultValue: undefined,\n error: undefined,\n onBlur: undefined,\n required: undefined,\n 'aria-describedby': undefined,\n type: 'checkbox',\n }}\n >\n {(label && label.primary && t(label.primary)) || value}\n {label && label.secondary && <Hint>{t(label.secondary)}</Hint>}\n </CheckboxItem>\n\n {!!checked[index] && show && Field && (\n <CheckboxConditional>\n {show.map((fieldName) => (\n <Field name={fieldName} key={fieldName} />\n ))}\n </CheckboxConditional>\n )}\n {selected && selected()}\n </React.Fragment>\n )\n )}\n </Checkbox>\n );\n }\n);\n\nCheckboxes.displayName = 'Checkboxes';\n\nexport default Checkboxes;\n"],
5
+ "mappings": "AAAA,OAAO,SAAS,gBAAgB;AAGhC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AAYd,MAAM,aAAa,MAAM;AAAA,EAC9B,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS,UAAU;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,CAAC,MAAO,SAAQ,CAAC;AACrB,UAAM,eACJ,CAAC,aAAa,KAAK,SACnB,CAAC,QAAc;AACb,UAAI,WAAgB,CAAC;AACrB,UAAI,IAAI,cAAc,SAAS;AAC7B,mBAAW,MAAM,OAAO,CAAC,WAAW,CAAC;AAAA,MACvC,OAAO;AACL,mBAAW,MAAM,OAAO,CAAC,QAAQ,QAAQ,WAAW;AAAA,MACtD;AACA,UAAI,QAAQ,KAAK,SAAS,GAAG;AAC3B;AAAA,UAAW,CAAC,UACV,MAAM,IAAI,CAAC,MAAM,UAAW,UAAU,MAAM,CAAC,OAAO,IAAK;AAAA,QAC3D;AAAA,MACF;AAIA,UAAI,SAAS,WAAW,EAAG,YAAW;AACtC,eAAS,QAAQ;AAAA,IACnB;AACF,UAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,UAAM,CAAC,SAAS,UAAU,IAAI;AAAA,MAC5B,MAAe,QAAQ,MAAM,EAAE,KAAK,KAAK;AAAA,IAC3C;AACA,WACE,oCAAC,YAAS,aACP,QAAQ;AAAA,MACP,CACE;AAAA,QACE;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA,GAAG;AAAA,MACL,GACA,UAEA,oCAAC,MAAM,UAAN,EAAe,KAAK,SACnB;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,UAAU,IAAI,MAAM;AAAA,UACzB,KAAK,GAAG,IAAI,IAAI,KAAK;AAAA,UACrB,MAAM,GAAG,IAAI,IAAI,CAAC;AAAA,UAClB,IAAI,GAAG,IAAI,IAAI,CAAC;AAAA,UAChB,OAAO;AAAA,UACP,UAAU,YAAY;AAAA,UACtB,SAAS,OAAO,SAAS,CAAC;AAAA,UAC1B,UAAU,aAAa,GAAG,OAAO,IAAI;AAAA,UACpC,GAAG;AAAA,UACH,GAAG;AAAA,YACF,GAAG;AAAA,YACH,OAAO;AAAA,YACP,cAAc;AAAA,YACd,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,UAAU;AAAA,YACV,oBAAoB;AAAA,YACpB,MAAM;AAAA,UACR;AAAA;AAAA,QAEE,SAAS,MAAM,WAAW,EAAE,MAAM,OAAO,KAAM;AAAA,QAChD,SAAS,MAAM,aAAa,oCAAC,YAAM,EAAE,MAAM,SAAS,CAAE;AAAA,MACzD,GAEC,CAAC,CAAC,QAAQ,KAAK,KAAK,QAAQ,SAC3B,oCAAC,2BACE,KAAK,IAAI,CAAC,cACT,oCAAC,SAAM,MAAM,WAAW,KAAK,WAAW,CACzC,CACH,GAED,YAAY,SAAS,CACxB;AAAA,IAEJ,CACF;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AAEzB,IAAO,qBAAQ;",
6
+ "names": []
7
+ }