@digigov/form 2.0.0-85c27c19 → 2.0.0-aefd0709

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 (314) hide show
  1. package/Field/FieldBase/index.js +1 -0
  2. package/Field/FieldBase.js.map +2 -2
  3. package/Field/FieldBaseContainer/index.js +2 -2
  4. package/Field/FieldBaseContainer.js.map +2 -2
  5. package/Field/FieldConditional/index.js +7 -3
  6. package/Field/FieldConditional.js.map +2 -2
  7. package/Field/index.js +5 -2
  8. package/Field/index.js.map +2 -2
  9. package/Field/types.d.ts +10 -8
  10. package/Field/utils/index.d.ts +1 -0
  11. package/Field/utils/index.js +18 -1
  12. package/Field/utils/index.js.map +2 -2
  13. package/FieldArray/index.d.ts +1 -0
  14. package/FieldArray/index.js +7 -6
  15. package/FieldArray/index.js.map +2 -2
  16. package/FieldObject/index.d.ts +2 -0
  17. package/FieldObject/index.js +9 -5
  18. package/FieldObject/index.js.map +2 -2
  19. package/Fieldset/index.d.ts +1 -1
  20. package/Fieldset/index.js +5 -5
  21. package/Fieldset/index.js.map +2 -2
  22. package/Fieldset/types.d.ts +2 -3
  23. package/FormBuilder/index.d.ts +8 -2
  24. package/FormBuilder/index.js +150 -6
  25. package/FormBuilder/index.js.map +3 -3
  26. package/FormContext.js.map +2 -2
  27. package/MultiplicityField/add-objects/index.js +11 -7
  28. package/MultiplicityField/add-objects.js.map +2 -2
  29. package/MultiplicityField/index.js +16 -12
  30. package/MultiplicityField/index.js.map +2 -2
  31. package/MultiplicityField/types.d.ts +1 -2
  32. package/Questions/Questions/index.js +5 -4
  33. package/Questions/Questions.js.map +2 -2
  34. package/Questions/QuestionsContext.d.ts +0 -1
  35. package/Questions/Step/StepArrayReview.js.map +2 -2
  36. package/Questions/Step/StepContext.d.ts +0 -1
  37. package/Questions/Step/StepTitle/index.js +4 -3
  38. package/Questions/Step/StepTitle.d.ts +1 -1
  39. package/Questions/Step/StepTitle.js.map +2 -2
  40. package/Questions/Step/types.d.ts +0 -1
  41. package/Questions/types.d.ts +0 -1
  42. package/cjs/Field/FieldBase/index.js +1 -0
  43. package/cjs/Field/FieldBase.js.map +2 -2
  44. package/cjs/Field/FieldBaseContainer/index.js +4 -4
  45. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  46. package/cjs/Field/FieldConditional/index.js +7 -3
  47. package/cjs/Field/FieldConditional.js.map +2 -2
  48. package/cjs/Field/index.js +5 -2
  49. package/cjs/Field/index.js.map +2 -2
  50. package/cjs/Field/types.js.map +1 -1
  51. package/cjs/Field/utils/index.js +18 -0
  52. package/cjs/Field/utils/index.js.map +2 -2
  53. package/cjs/FieldArray/index.js +8 -7
  54. package/cjs/FieldArray/index.js.map +3 -3
  55. package/cjs/FieldObject/index.js +10 -6
  56. package/cjs/FieldObject/index.js.map +3 -3
  57. package/cjs/Fieldset/index.js +10 -10
  58. package/cjs/Fieldset/index.js.map +3 -3
  59. package/cjs/Fieldset/types.js.map +1 -1
  60. package/cjs/FormBuilder/index.js +165 -5
  61. package/cjs/FormBuilder/index.js.map +3 -3
  62. package/cjs/FormContext/index.js +2 -2
  63. package/cjs/FormContext.js.map +3 -3
  64. package/cjs/MultiplicityField/add-objects/index.js +15 -11
  65. package/cjs/MultiplicityField/add-objects.js.map +3 -3
  66. package/cjs/MultiplicityField/index.js +15 -16
  67. package/cjs/MultiplicityField/index.js.map +3 -3
  68. package/cjs/MultiplicityField/types.js.map +1 -1
  69. package/cjs/Questions/Questions/index.js +5 -4
  70. package/cjs/Questions/Questions.js.map +2 -2
  71. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  72. package/cjs/Questions/Step/StepTitle/index.js +5 -5
  73. package/cjs/Questions/Step/StepTitle.js.map +3 -3
  74. package/cjs/index.js +11 -155
  75. package/cjs/index.js.map +4 -4
  76. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +1 -7
  77. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +2 -2
  78. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +1 -8
  79. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  80. package/cjs/inputs/AutoCompleteInput/index.js +10 -8
  81. package/cjs/inputs/AutoCompleteInput/index.js.map +3 -3
  82. package/cjs/inputs/Checkboxes/index.js +7 -9
  83. package/cjs/inputs/Checkboxes/index.js.map +3 -3
  84. package/cjs/inputs/DateInput/__stories__/Default/index.js +3 -8
  85. package/cjs/inputs/DateInput/__stories__/Default.js.map +2 -2
  86. package/cjs/inputs/DateInput/index.js +4 -5
  87. package/cjs/inputs/DateInput/index.js.map +3 -3
  88. package/cjs/inputs/FileInput/index.js +8 -9
  89. package/cjs/inputs/FileInput/index.js.map +3 -3
  90. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +4 -4
  91. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  92. package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +69 -0
  93. package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  94. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +2 -1
  95. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +2 -2
  96. package/cjs/inputs/ImageInput/index.js +9 -9
  97. package/cjs/inputs/ImageInput/index.js.map +3 -3
  98. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +1 -0
  99. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +2 -2
  100. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +1 -0
  101. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +2 -2
  102. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +1 -0
  103. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +2 -2
  104. package/cjs/inputs/Input/__stories__/PostalCode/index.js +1 -0
  105. package/cjs/inputs/Input/__stories__/PostalCode.js.map +2 -2
  106. package/cjs/inputs/Input/index.js +19 -6
  107. package/cjs/inputs/Input/index.js.map +3 -3
  108. package/cjs/inputs/Input/inputsInputScenarios.js.map +2 -2
  109. package/cjs/inputs/Label/index.js +3 -3
  110. package/cjs/inputs/Label/index.js.map +3 -3
  111. package/cjs/inputs/OtpInput/index.js.map +2 -2
  112. package/cjs/inputs/Radio/__stories__/Conditional.js.map +2 -2
  113. package/cjs/inputs/Radio/index.js +56 -10
  114. package/cjs/inputs/Radio/index.js.map +3 -3
  115. package/cjs/inputs/Select/index.js +3 -4
  116. package/cjs/inputs/Select/index.js.map +3 -3
  117. package/cjs/inputs/inputsScenarios/index.js +4 -11
  118. package/cjs/inputs/inputsScenarios.js.map +2 -2
  119. package/cjs/lazy/index.js +320 -59
  120. package/cjs/lazy.js.map +2 -2
  121. package/cjs/locales/el.js.map +1 -1
  122. package/cjs/registry/index.js +118 -38
  123. package/cjs/registry.js.map +2 -2
  124. package/cjs/types.js.map +1 -1
  125. package/cjs/utils/index.js +2 -1
  126. package/cjs/utils.js.map +2 -2
  127. package/cjs/validators/index.js +16 -66
  128. package/cjs/validators/index.js.map +3 -3
  129. package/cjs/validators/utils/date/index.js +138 -0
  130. package/cjs/validators/utils/date.js.map +7 -0
  131. package/cjs/validators/utils/file/index.js +1 -1
  132. package/cjs/validators/utils/file.js.map +2 -2
  133. package/cjs/validators/utils/index.js +3 -1
  134. package/cjs/validators/utils/index.js.map +2 -2
  135. package/cjs/validators/utils/phone.js.map +2 -2
  136. package/cjs/validators/utils/postal_code.js.map +1 -1
  137. package/cjs/validators/utils/uuid4.js.map +2 -2
  138. package/index.d.ts +5 -8
  139. package/index.js +9 -152
  140. package/index.js.map +4 -4
  141. package/inputs/AutoCompleteInput/__stories__/Default/index.js +1 -7
  142. package/inputs/AutoCompleteInput/__stories__/Default.js.map +2 -2
  143. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +1 -8
  144. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  145. package/inputs/AutoCompleteInput/index.d.ts +1 -1
  146. package/inputs/AutoCompleteInput/index.js +12 -8
  147. package/inputs/AutoCompleteInput/index.js.map +2 -2
  148. package/inputs/Checkboxes/index.d.ts +1 -1
  149. package/inputs/Checkboxes/index.js +8 -6
  150. package/inputs/Checkboxes/index.js.map +2 -2
  151. package/inputs/DateInput/__stories__/Default/index.js +3 -8
  152. package/inputs/DateInput/__stories__/Default.js.map +2 -2
  153. package/inputs/DateInput/index.d.ts +1 -2
  154. package/inputs/DateInput/index.js +6 -4
  155. package/inputs/DateInput/index.js.map +2 -2
  156. package/inputs/FileInput/index.js +6 -7
  157. package/inputs/FileInput/index.js.map +2 -2
  158. package/inputs/ImageInput/ImageInput.stories/index.js +2 -2
  159. package/inputs/ImageInput/ImageInput.stories.d.ts +1 -1
  160. package/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  161. package/inputs/ImageInput/__stories__/MaxSize/index.js +36 -0
  162. package/inputs/ImageInput/__stories__/MaxSize/package.json +6 -0
  163. package/inputs/ImageInput/__stories__/MaxSize.d.ts +3 -0
  164. package/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  165. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +2 -1
  166. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +2 -2
  167. package/inputs/ImageInput/index.js +8 -8
  168. package/inputs/ImageInput/index.js.map +2 -2
  169. package/inputs/Input/__stories__/LandlineNumber/index.js +1 -0
  170. package/inputs/Input/__stories__/LandlineNumber.js.map +2 -2
  171. package/inputs/Input/__stories__/MobilePhone/index.js +1 -0
  172. package/inputs/Input/__stories__/MobilePhone.js.map +2 -2
  173. package/inputs/Input/__stories__/PhoneNumber/index.js +1 -0
  174. package/inputs/Input/__stories__/PhoneNumber.js.map +2 -2
  175. package/inputs/Input/__stories__/PostalCode/index.js +1 -0
  176. package/inputs/Input/__stories__/PostalCode.js.map +2 -2
  177. package/inputs/Input/index.js +17 -4
  178. package/inputs/Input/index.js.map +3 -3
  179. package/inputs/Input/inputsInputScenarios.js.map +2 -2
  180. package/inputs/Label/index.d.ts +0 -2
  181. package/inputs/Label/index.js +2 -2
  182. package/inputs/Label/index.js.map +2 -2
  183. package/inputs/OtpInput/index.js.map +2 -2
  184. package/inputs/Radio/__stories__/Conditional.js.map +2 -2
  185. package/inputs/Radio/index.d.ts +5 -1
  186. package/inputs/Radio/index.js +57 -8
  187. package/inputs/Radio/index.js.map +2 -2
  188. package/inputs/Select/index.d.ts +1 -1
  189. package/inputs/Select/index.js +4 -2
  190. package/inputs/Select/index.js.map +2 -2
  191. package/inputs/inputsScenarios/index.js +4 -11
  192. package/inputs/inputsScenarios.d.ts +0 -42
  193. package/inputs/inputsScenarios.js.map +2 -2
  194. package/lazy/index.js +320 -59
  195. package/lazy.d.ts +17 -10
  196. package/lazy.js.map +2 -2
  197. package/locales/el.js.map +1 -1
  198. package/package.json +4 -4
  199. package/registry/index.js +118 -38
  200. package/registry.d.ts +1 -0
  201. package/registry.js.map +2 -2
  202. package/src/Field/FieldBase.tsx +1 -0
  203. package/src/Field/FieldBaseContainer.tsx +2 -2
  204. package/src/Field/FieldConditional.tsx +4 -0
  205. package/src/Field/index.tsx +4 -1
  206. package/src/Field/types.tsx +10 -8
  207. package/src/Field/utils/index.ts +18 -1
  208. package/src/FieldArray/index.test.tsx +14 -13
  209. package/src/FieldArray/index.tsx +9 -6
  210. package/src/FieldObject/index.tsx +8 -2
  211. package/src/Fieldset/index.tsx +5 -5
  212. package/src/Fieldset/types.tsx +2 -2
  213. package/src/FormBuilder/{FormBuilder.mdx → doc.mdx} +20 -33
  214. package/src/FormBuilder/index.test.tsx +11 -10
  215. package/src/FormBuilder/index.tsx +178 -7
  216. package/src/FormBuilder/scenarios.test.tsx +2 -2
  217. package/src/FormContext.tsx +1 -2
  218. package/src/MultiplicityField/add-objects.tsx +10 -8
  219. package/src/MultiplicityField/{MultiplicityField.mdx → doc.mdx} +12 -16
  220. package/src/MultiplicityField/index.test.tsx +26 -25
  221. package/src/MultiplicityField/index.tsx +15 -12
  222. package/src/MultiplicityField/types.ts +1 -2
  223. package/src/Questions/Questions.tsx +4 -4
  224. package/src/Questions/Step/StepArrayReview.tsx +1 -1
  225. package/src/Questions/Step/StepTitle.tsx +4 -3
  226. package/src/Questions/__snapshots__/index.spec.tsx.snap +8 -4
  227. package/src/Questions/{index.mdx → doc.mdx} +9 -12
  228. package/src/Questions/index.spec.tsx +6 -2
  229. package/src/Questions/index.test.tsx +11 -10
  230. package/src/create-simple-form.mdx +2 -6
  231. package/src/{index.mdx → doc.mdx} +4 -8
  232. package/src/index.ts +6 -0
  233. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +2 -10
  234. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -8
  235. package/src/inputs/AutoCompleteInput/{index.mdx → doc.mdx} +2 -13
  236. package/src/inputs/AutoCompleteInput/index.test.tsx +14 -13
  237. package/src/inputs/AutoCompleteInput/index.tsx +36 -31
  238. package/src/inputs/Checkboxes/{index.mdx → doc.mdx} +5 -15
  239. package/src/inputs/Checkboxes/index.test.tsx +17 -16
  240. package/src/inputs/Checkboxes/index.tsx +10 -8
  241. package/src/inputs/DateInput/__stories__/Default.tsx +7 -12
  242. package/src/inputs/DateInput/{index.mdx → doc.mdx} +1 -8
  243. package/src/inputs/DateInput/index.test.tsx +11 -10
  244. package/src/inputs/DateInput/index.tsx +6 -4
  245. package/src/inputs/FileInput/{index.mdx → doc.mdx} +1 -5
  246. package/src/inputs/FileInput/index.test.tsx +11 -10
  247. package/src/inputs/FileInput/index.tsx +7 -8
  248. package/src/inputs/ImageInput/ImageInput.stories.js +1 -1
  249. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +37 -0
  250. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +2 -0
  251. package/src/inputs/ImageInput/doc.mdx +23 -0
  252. package/src/inputs/ImageInput/index.test.tsx +21 -16
  253. package/src/inputs/ImageInput/index.tsx +10 -15
  254. package/src/inputs/Input/__stories__/LandlineNumber.tsx +2 -1
  255. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -0
  256. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -0
  257. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -0
  258. package/src/inputs/Input/doc.mdx +56 -0
  259. package/src/inputs/Input/index.test.tsx +38 -37
  260. package/src/inputs/Input/index.tsx +32 -29
  261. package/src/inputs/Input/inputsInputScenarios.ts +244 -245
  262. package/src/inputs/Label/doc.mdx +14 -0
  263. package/src/inputs/Label/index.test.tsx +11 -10
  264. package/src/inputs/Label/index.tsx +2 -6
  265. package/src/inputs/OtpInput/{index.mdx → doc.mdx} +1 -8
  266. package/src/inputs/OtpInput/index.test.tsx +11 -10
  267. package/src/inputs/OtpInput/index.tsx +2 -1
  268. package/src/inputs/Radio/__stories__/Conditional.tsx +2 -1
  269. package/src/inputs/Radio/{index.mdx → doc.mdx} +5 -15
  270. package/src/inputs/Radio/index.test.tsx +17 -16
  271. package/src/inputs/Radio/index.tsx +76 -10
  272. package/src/inputs/Select/{index.mdx → doc.mdx} +1 -5
  273. package/src/inputs/Select/index.test.tsx +11 -10
  274. package/src/inputs/Select/index.tsx +5 -3
  275. package/src/inputs/inputsScenarios.ts +174 -181
  276. package/src/installation.mdx +2 -5
  277. package/src/lazy.js +322 -62
  278. package/src/locales/el.ts +1 -1
  279. package/src/registry.js +121 -45
  280. package/src/types.tsx +3 -2
  281. package/src/utils.ts +2 -2
  282. package/src/validators/index.ts +33 -71
  283. package/src/validators/utils/date.ts +107 -0
  284. package/src/validators/utils/file.ts +5 -3
  285. package/src/validators/utils/index.ts +1 -0
  286. package/src/validators/utils/phone.ts +1 -1
  287. package/src/validators/utils/postal_code.ts +1 -1
  288. package/src/validators/utils/uuid4.ts +2 -1
  289. package/src/validators/validators.spec.ts +3 -3
  290. package/types.d.ts +3 -3
  291. package/types.js.map +1 -1
  292. package/utils/index.js +2 -1
  293. package/utils.js.map +2 -2
  294. package/validators/index.js +20 -67
  295. package/validators/index.js.map +2 -2
  296. package/validators/utils/date/index.js +103 -0
  297. package/validators/utils/date/package.json +6 -0
  298. package/validators/utils/date.d.ts +9 -0
  299. package/validators/utils/date.js.map +7 -0
  300. package/validators/utils/file/index.js +1 -1
  301. package/validators/utils/file.js.map +2 -2
  302. package/validators/utils/index.d.ts +1 -0
  303. package/validators/utils/index.js +1 -0
  304. package/validators/utils/index.js.map +2 -2
  305. package/validators/utils/phone.d.ts +1 -1
  306. package/validators/utils/phone.js.map +2 -2
  307. package/validators/utils/postal_code.d.ts +1 -1
  308. package/validators/utils/postal_code.js.map +1 -1
  309. package/validators/utils/uuid4.js.map +2 -2
  310. package/src/index.tsx +0 -178
  311. package/src/inputs/ImageInput/index.mdx +0 -19
  312. package/src/inputs/Input/index.mdx +0 -95
  313. package/src/inputs/Label/index.mdx +0 -0
  314. /package/src/Field/{index.mdx → doc.mdx} +0 -0
@@ -1,24 +1,25 @@
1
1
  import React from 'react';
2
2
  import { test, expect } from '@playwright/experimental-ct-react';
3
- import TestVariant from '@digigov/ui/utils/TestVariant'
4
3
  import { Default } from '@digigov/form/inputs/AutoCompleteInput/__stories__/Default';
5
4
  import { Multiple } from '@digigov/form/inputs/AutoCompleteInput/__stories__/Multiple';
5
+ import TestVariant from '@digigov/ui/utils/TestVariant';
6
6
 
7
7
  test('renders the All AutoCompleteInput variants', async ({ mount, page }) => {
8
8
  await mount(
9
-
10
- <div>
11
- <TestVariant title="Default">
12
- <Default />
13
- </TestVariant>
14
- <TestVariant title="Multiple">
15
- <Multiple />
16
- </TestVariant>
17
- </div>
18
- )
9
+ <div>
10
+ <TestVariant title="Default">
11
+ <Default />
12
+ </TestVariant>
13
+ <TestVariant title="Multiple">
14
+ <Multiple />
15
+ </TestVariant>
16
+ </div>
17
+ );
19
18
  await page.evaluate(() => document.fonts.ready);
20
19
 
21
- const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
20
+ const screenshot = await page.screenshot({
21
+ fullPage: true,
22
+ animations: 'disabled',
23
+ });
22
24
  expect(screenshot).toMatchSnapshot();
23
25
  });
24
-
@@ -1,11 +1,12 @@
1
1
  import React, { useCallback } from 'react';
2
2
  import { ControlledFieldProps } from '@digigov/form/Field/types';
3
3
  import { FieldOptionProps } from '@digigov/form/inputs/Label';
4
- import { Hint } from '@digigov/react-core/Hint';
5
- import UIAutoComplete, {
4
+ import {
5
+ AutoComplete,
6
6
  AutoCompleteProps as UIAutoCompleteProps,
7
7
  } from '@digigov/ui/form/AutoComplete';
8
-
8
+ import { Hint } from '@digigov/ui/typography/Hint';
9
+ import { Base } from '@digigov/ui/utils/Base';
9
10
  export interface AutoCompleteInputExtra
10
11
  extends Omit<
11
12
  UIAutoCompleteProps,
@@ -16,7 +17,7 @@ export interface AutoCompleteInputExtra
16
17
  | 'onConfirm'
17
18
  | 'dropdownArrow'
18
19
  > {
19
- options: Array<FieldOptionProps>;
20
+ options: FieldOptionProps[];
20
21
  }
21
22
 
22
23
  export interface AutoCompleteInputProps
@@ -28,39 +29,43 @@ export interface AutoCompleteInputProps
28
29
 
29
30
  export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
30
31
  name,
31
- extra: { options, multiple },
32
+ type,
33
+ extra: { options },
32
34
  onChange,
33
35
  value,
34
- error,
35
36
  ...props
36
37
  }) => {
37
- const suggest = useCallback(function suggest(
38
- query: string,
39
- syncResults: (options: any[]) => void
40
- ): void {
41
- syncResults(
42
- query
43
- ? options.filter(function (option) {
44
- return (
45
- `${option.value} ${option.label?.primary || ''} ${option.label?.secondary || ''
46
- }`
47
- .toLowerCase()
48
- .indexOf(query.toLowerCase()) !== -1
49
- );
50
- })
51
- : options
52
- );
53
- },
54
- [options]);
38
+ const suggest = useCallback(
39
+ function suggest(
40
+ query: string,
41
+ syncResults: (options: any[]) => void
42
+ ): void {
43
+ syncResults(
44
+ query
45
+ ? options.filter(function (option) {
46
+ return (
47
+ `${option.value} ${option.label?.primary || ''} ${
48
+ option.label?.secondary || ''
49
+ }`
50
+ .toLowerCase()
51
+ .indexOf(query.toLowerCase()) !== -1
52
+ );
53
+ })
54
+ : options
55
+ );
56
+ },
57
+ [options]
58
+ );
55
59
 
56
60
  return (
57
- <UIAutoComplete
58
- multiple={multiple}
61
+ <AutoComplete
62
+ multiple={type === 'choice:multiple' ? true : false}
59
63
  source={suggest}
60
64
  onConfirm={(value) => {
61
65
  if (Array.isArray(value)) {
62
- const selectedValues = value.map(item => item.value);
63
- selectedValues.length > 0 ? onChange(selectedValues) : onChange(undefined);
66
+ const selectedValues = value.map((item) => item.value);
67
+ if (selectedValues.length > 0) onChange(selectedValues);
68
+ else onChange(undefined);
64
69
  } else {
65
70
  onChange(value.value);
66
71
  }
@@ -68,10 +73,10 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
68
73
  templates={{
69
74
  suggestion({ label, value }) {
70
75
  return (
71
- <div>
76
+ <Base as="div">
72
77
  {(label && label.primary && label.primary) || value}
73
78
  {label && label.secondary && <Hint>{label.secondary}</Hint>}
74
- </div>
79
+ </Base>
75
80
  );
76
81
  },
77
82
  inputValue: (option) => {
@@ -93,4 +98,4 @@ export const AutoCompleteInput: React.FC<AutoCompleteInputProps> = ({
93
98
  );
94
99
  };
95
100
 
96
- export default AutoCompleteInput;
101
+ export default AutoCompleteInput;
@@ -10,24 +10,14 @@ Checkboxes are used to let a user select one or more options of a limited number
10
10
 
11
11
  ### Default
12
12
 
13
- <Story
14
- packageName="@digigov/form"
15
- component="inputs/Checkboxes"
16
- story="Default.tsx"
17
- />
13
+ <code src="@digigov/form/inputs/Checkboxes/__stories__/Default.tsx" />
14
+
18
15
 
19
16
  ### Conditional
20
17
 
21
- <Story
22
- packageName="@digigov/form"
23
- component="inputs/Checkboxes"
24
- story="Conditional.tsx"
25
- />
18
+ <code src="@digigov/form/inputs/Checkboxes/__stories__/Conditional.tsx" />
19
+
26
20
 
27
21
  ### With divider
28
22
 
29
- <Story
30
- packageName="@digigov/form"
31
- component="inputs/Checkboxes"
32
- story="WithDivider.tsx"
33
- />
23
+ <code src="@digigov/form/inputs/Checkboxes/__stories__/WithDivider.tsx" />
@@ -1,28 +1,29 @@
1
1
  import React from 'react';
2
2
  import { test, expect } from '@playwright/experimental-ct-react';
3
- import TestVariant from '@digigov/ui/utils/TestVariant'
4
3
  import { Conditional } from '@digigov/form/inputs/Checkboxes/__stories__/Conditional';
5
4
  import { Default } from '@digigov/form/inputs/Checkboxes/__stories__/Default';
6
5
  import { WithDivider } from '@digigov/form/inputs/Checkboxes/__stories__/WithDivider';
6
+ import TestVariant from '@digigov/ui/utils/TestVariant';
7
7
 
8
8
  test('renders the All Checkboxes variants', async ({ mount, page }) => {
9
9
  await mount(
10
-
11
- <div>
12
- <TestVariant title="Conditional">
13
- <Conditional />
14
- </TestVariant>
15
- <TestVariant title="Default">
16
- <Default />
17
- </TestVariant>
18
- <TestVariant title="WithDivider">
19
- <WithDivider />
20
- </TestVariant>
21
- </div>
22
- )
10
+ <div>
11
+ <TestVariant title="Conditional">
12
+ <Conditional />
13
+ </TestVariant>
14
+ <TestVariant title="Default">
15
+ <Default />
16
+ </TestVariant>
17
+ <TestVariant title="WithDivider">
18
+ <WithDivider />
19
+ </TestVariant>
20
+ </div>
21
+ );
23
22
  await page.evaluate(() => document.fonts.ready);
24
23
 
25
- const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
24
+ const screenshot = await page.screenshot({
25
+ fullPage: true,
26
+ animations: 'disabled',
27
+ });
26
28
  expect(screenshot).toMatchSnapshot();
27
29
  });
28
-
@@ -1,18 +1,20 @@
1
1
  import React, { useState } from 'react';
2
2
  import { ControlledFieldProps } from '@digigov/form/Field/types';
3
3
  import { FieldOptionProps } from '@digigov/form/inputs/Label';
4
- import CoreCheckboxes from '@digigov/react-core/Checkbox';
5
- import { CheckboxConditional } from '@digigov/react-core/CheckboxConditional';
6
- import CheckboxItem from '@digigov/react-core/CheckboxItem';
7
- import Hint from '@digigov/react-core/Hint';
4
+ import {
5
+ Checkbox,
6
+ CheckboxItem,
7
+ CheckboxConditional,
8
+ } from '@digigov/ui/form/Checkbox';
8
9
  import { useTranslation } from '@digigov/ui/i18n';
10
+ import { Hint } from '@digigov/ui/typography/Hint';
9
11
 
10
12
  export interface CheckboxesProps
11
13
  extends Omit<ControlledFieldProps, 'extra' | 'value'> {
12
14
  value?: string[];
13
15
  extra: {
14
16
  className?: string;
15
- options: Array<FieldOptionProps>;
17
+ options: FieldOptionProps[];
16
18
  };
17
19
  fieldComponent: React.FC<Omit<ControlledFieldProps, 'value' | 'onChange'>>;
18
20
  }
@@ -23,7 +25,7 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
23
25
  value,
24
26
  extra: { options, className },
25
27
  disabled,
26
- fieldComponent: Field,
28
+ Field,
27
29
  ...props
28
30
  }) => {
29
31
  if (!value) value = [];
@@ -56,7 +58,7 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
56
58
  Array<boolean>(options.length).fill(false)
57
59
  );
58
60
  return (
59
- <CoreCheckboxes className={className}>
61
+ <Checkbox className={className}>
60
62
  {options.map(
61
63
  (
62
64
  {
@@ -103,7 +105,7 @@ export const Checkboxes: React.FC<CheckboxesProps> = ({
103
105
  </React.Fragment>
104
106
  )
105
107
  )}
106
- </CoreCheckboxes>
108
+ </Checkbox>
107
109
  );
108
110
  };
109
111
 
@@ -9,21 +9,16 @@ const fields = [
9
9
  required: true,
10
10
  label: {
11
11
  primary: 'Πότε εκδόθηκε το διαβατήριο σας;',
12
- secondary:
13
- 'Για παράδειγμα, 05 11 2020',
14
- }
15
- },
16
- ]
12
+ secondary: 'Για παράδειγμα, 05 11 2020',
13
+ },
14
+ } as const,
15
+ ];
17
16
 
18
17
  export const Default = () => (
19
18
  <FormBuilder onSubmit={() => console.log('kati')}>
20
- {fields.map((field) => {
21
- return (
22
- // @ts-ignore
23
- <Field {...field} name={field.key} />
24
- )
25
- }
26
- )}
19
+ {fields.map(({ key, ...field }) => {
20
+ return <Field {...field} name={key} key={key} />;
21
+ })}
27
22
  <Button type="submit">Συνέχεια</Button>
28
23
  </FormBuilder>
29
24
  );
@@ -13,11 +13,4 @@ either with a textbox that validates the input or a special date picker interfac
13
13
 
14
14
  ### Default
15
15
 
16
- <Story
17
- packageName="@digigov/form"
18
- component="inputs/DateInput"
19
- story="Default.tsx"
20
- />
21
-
22
-
23
-
16
+ <code src="@digigov/form/inputs/DateInput/__stories__/Default.tsx" />
@@ -1,20 +1,21 @@
1
1
  import React from 'react';
2
2
  import { test, expect } from '@playwright/experimental-ct-react';
3
- import TestVariant from '@digigov/ui/utils/TestVariant'
4
3
  import { Default } from '@digigov/form/inputs/DateInput/__stories__/Default';
4
+ import TestVariant from '@digigov/ui/utils/TestVariant';
5
5
 
6
6
  test('renders the All DateInput variants', async ({ mount, page }) => {
7
7
  await mount(
8
-
9
- <div>
10
- <TestVariant title="Default">
11
- <Default />
12
- </TestVariant>
13
- </div>
14
- )
8
+ <div>
9
+ <TestVariant title="Default">
10
+ <Default />
11
+ </TestVariant>
12
+ </div>
13
+ );
15
14
  await page.evaluate(() => document.fonts.ready);
16
15
 
17
- const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
16
+ const screenshot = await page.screenshot({
17
+ fullPage: true,
18
+ animations: 'disabled',
19
+ });
18
20
  expect(screenshot).toMatchSnapshot();
19
21
  });
20
-
@@ -2,8 +2,10 @@ import React, { useMemo, useState } from 'react';
2
2
  import dayjs from 'dayjs';
3
3
  import customParseFormat from 'dayjs/plugin/customParseFormat';
4
4
  import { UncontrolledFieldProps } from '@digigov/form/Field/types';
5
- import DateInputContainer from '@digigov/react-core/DateInputContainer';
6
- import CoreDateInputItem from '@digigov/react-core/DateInputItem';
5
+ import {
6
+ DateInputContainer,
7
+ DateInputItem,
8
+ } from '@digigov/ui/form/DateInputContainer';
7
9
  import { useTranslation } from '@digigov/ui/i18n';
8
10
  dayjs.extend(customParseFormat);
9
11
 
@@ -75,10 +77,10 @@ const makeDate = (val) => {
75
77
  };
76
78
 
77
79
  const DatePart = ({ label, ...props }) => {
78
- return <CoreDateInputItem {...props}>{label}</CoreDateInputItem>;
80
+ return <DateInputItem {...props}>{label}</DateInputItem>;
79
81
  };
80
82
 
81
- export const DateInput = ({ name, type, ...props }) => {
83
+ export const DateInput = ({ name, ...props }) => {
82
84
  const { t } = useTranslation();
83
85
  const [initial] = useState(props.value);
84
86
  const value = useMemo(() => {
@@ -12,8 +12,4 @@ Input element of type `file` let the user choose one or more files from their de
12
12
 
13
13
  ### Default
14
14
 
15
- <Story
16
- packageName="@digigov/form"
17
- component="inputs/FileInput"
18
- story="Default.tsx"
19
- />
15
+ <code src="@digigov/form/inputs/FileInput/__stories__/Default.tsx" />
@@ -1,20 +1,21 @@
1
1
  import React from 'react';
2
2
  import { test, expect } from '@playwright/experimental-ct-react';
3
- import TestVariant from '@digigov/ui/utils/TestVariant'
4
3
  import { Default } from '@digigov/form/inputs/FileInput/__stories__/Default';
4
+ import TestVariant from '@digigov/ui/utils/TestVariant';
5
5
 
6
6
  test('renders the All FileInput variants', async ({ mount, page }) => {
7
7
  await mount(
8
-
9
- <div>
10
- <TestVariant title="Default">
11
- <Default />
12
- </TestVariant>
13
- </div>
14
- )
8
+ <div>
9
+ <TestVariant title="Default">
10
+ <Default />
11
+ </TestVariant>
12
+ </div>
13
+ );
15
14
  await page.evaluate(() => document.fonts.ready);
16
15
 
17
- const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
16
+ const screenshot = await page.screenshot({
17
+ fullPage: true,
18
+ animations: 'disabled',
19
+ });
18
20
  expect(screenshot).toMatchSnapshot();
19
21
  });
20
-
@@ -1,11 +1,10 @@
1
1
  import React, { useState } from 'react';
2
2
  import { UncontrolledFieldProps } from '@digigov/form/Field/types';
3
- import FileUpload from '@digigov/react-core/FileUpload';
4
- import FileUploadContainer from '@digigov/react-core/FileUploadContainer';
5
- import CoreHint from '@digigov/react-core/Hint';
6
- import Button from '@digigov/ui/form/Button';
3
+ import { Button } from '@digigov/ui/form/Button';
4
+ import { FileUpload, FileUploadContainer } from '@digigov/ui/form/FileUpload';
7
5
  import { useTranslation } from '@digigov/ui/i18n';
8
- import Paragraph from '@digigov/ui/typography/Paragraph';
6
+ import { Hint } from '@digigov/ui/typography/Hint';
7
+ import { Paragraph } from '@digigov/ui/typography/Paragraph';
9
8
  export interface FileInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
10
9
  extra?: {
11
10
  className?: string;
@@ -19,11 +18,11 @@ export interface FileInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
19
18
 
20
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
20
  export const FileInput: React.FC<any> = React.forwardRef(function FileInput(
22
- { name, extra = {}, disabled, reset, onChange, ...props },
21
+ { name, disabled, reset, onChange, ...props },
23
22
  ref: any
24
23
  ) {
25
24
  const { t } = useTranslation();
26
- const [files, setFiles] = useState<Array<string> | undefined>([]);
25
+ const [files, setFiles] = useState<string[] | undefined>([]);
27
26
  const handleChange = (e) => {
28
27
  const target = e.target as HTMLInputElement;
29
28
  const selectedFiles = Array.from(
@@ -44,7 +43,7 @@ export const FileInput: React.FC<any> = React.forwardRef(function FileInput(
44
43
  </Paragraph>
45
44
  </>
46
45
  ) : (
47
- <CoreHint>{t('upload.no_file')}</CoreHint>
46
+ <Hint>{t('upload.no_file')}</Hint>
48
47
  )}
49
48
  <FileUpload
50
49
  ref={ref}
@@ -5,5 +5,5 @@ export default {
5
5
  displayName: 'ImageInput',
6
6
  };
7
7
  export { Default } from '@digigov/form/inputs/ImageInput/__stories__/Default';
8
- export { WithInvalidImageSize } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageSize';
9
8
  export { WithInvalidImageDimension } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageDimension';
9
+ export { MaxSize } from '@digigov/form/inputs/ImageInput/__stories__/MaxSize';
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import FormBuilder, { Field, Fieldset } from '@digigov/form';
3
+ import { FieldSpec } from '@digigov/form/types';
4
+ import { Button } from '@digigov/ui/form/Button';
5
+ const FIELDS: FieldSpec[] = [
6
+ {
7
+ key: 'image',
8
+ type: 'image',
9
+ required: true,
10
+ label: {
11
+ primary: 'Ανέβασμα φωτογραφίας',
12
+ secondary: 'Μέγιστο μέγεθος φωτογραφίας: 10KB.',
13
+ },
14
+ extra: {
15
+ limit: {
16
+ maxSize: 1000,
17
+ },
18
+ },
19
+ },
20
+ ];
21
+
22
+ export const MaxSize = () => (
23
+ <FormBuilder
24
+ fields={FIELDS}
25
+ onSubmit={(data) => {
26
+ console.log(data);
27
+ }}
28
+ >
29
+ <Fieldset>
30
+ {FIELDS.map((field) => (
31
+ <Field key={field.key} name={field.key} />
32
+ ))}
33
+ </Fieldset>
34
+ <Button type="submit">Συνέχεια</Button>
35
+ </FormBuilder>
36
+ );
37
+ export default MaxSize;
@@ -9,6 +9,8 @@ const FIELDS: FieldSpec[] = [
9
9
  required: true,
10
10
  label: {
11
11
  primary: 'Ανέβασμα φωτογραφίας',
12
+ secondary:
13
+ 'Οι επιτρεπόμενες διαστάσεις είναι για το ύψος από 100 μέχρι 400 και για το πλάτος από 100 μέχρι 400.',
12
14
  },
13
15
  extra: {
14
16
  limit: {
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: Image Input
3
+ ---
4
+
5
+ # Image input
6
+
7
+
8
+
9
+ Input element of type `image` defines an image as a submit button, i.e. submit buttons that take the form of an image rather than text.
10
+
11
+ ## How to use
12
+
13
+ ### Default
14
+
15
+ <code src="@digigov/form/inputs/ImageInput/__stories__/Default.tsx" />
16
+
17
+ ### Display with max size
18
+
19
+ <code src="@digigov/form/inputs/ImageInput/__stories__/MaxSize.tsx" />
20
+
21
+ ### Display with min and max image dimensions
22
+
23
+ <code src="@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx" />
@@ -1,28 +1,33 @@
1
1
  import React from 'react';
2
2
  import { test, expect } from '@playwright/experimental-ct-react';
3
- import TestVariant from '@digigov/ui/utils/TestVariant'
4
3
  import { Default } from '@digigov/form/inputs/ImageInput/__stories__/Default';
4
+ import { MaxSize } from '@digigov/form/inputs/ImageInput/__stories__/MaxSize';
5
5
  import { WithInvalidImageDimension } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageDimension';
6
6
  import { WithInvalidImageSize } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageSize';
7
+ import TestVariant from '@digigov/ui/utils/TestVariant';
7
8
 
8
9
  test('renders the All ImageInput variants', async ({ mount, page }) => {
9
10
  await mount(
10
-
11
- <div>
12
- <TestVariant title="Default">
13
- <Default />
14
- </TestVariant>
15
- <TestVariant title="WithInvalidImageDimension">
16
- <WithInvalidImageDimension />
17
- </TestVariant>
18
- <TestVariant title="WithInvalidImageSize">
19
- <WithInvalidImageSize />
20
- </TestVariant>
21
- </div>
22
- )
11
+ <div>
12
+ <TestVariant title="Default">
13
+ <Default />
14
+ </TestVariant>
15
+ <TestVariant title="MaxSize">
16
+ <MaxSize />
17
+ </TestVariant>
18
+ <TestVariant title="WithInvalidImageDimension">
19
+ <WithInvalidImageDimension />
20
+ </TestVariant>
21
+ <TestVariant title="WithInvalidImageSize">
22
+ <WithInvalidImageSize />
23
+ </TestVariant>
24
+ </div>
25
+ );
23
26
  await page.evaluate(() => document.fonts.ready);
24
27
 
25
- const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
28
+ const screenshot = await page.screenshot({
29
+ fullPage: true,
30
+ animations: 'disabled',
31
+ });
26
32
  expect(screenshot).toMatchSnapshot();
27
33
  });
28
-
@@ -1,12 +1,11 @@
1
1
  import React, { useState, useCallback } from 'react';
2
2
  import { UncontrolledFieldProps } from '@digigov/form/Field/types';
3
- import FileUpload from '@digigov/react-core/FileUpload';
4
- import FileUploadContainer from '@digigov/react-core/FileUploadContainer';
5
- import CoreHint from '@digigov/react-core/Hint';
6
- import Button, { ButtonGroup } from '@digigov/ui/form/Button';
3
+ import { Button, ButtonGroup } from '@digigov/ui/form/Button';
4
+ import { FileUpload, FileUploadContainer } from '@digigov/ui/form/FileUpload';
7
5
  import { useTranslation } from '@digigov/ui/i18n';
8
- import Paragraph from '@digigov/ui/typography/Paragraph';
9
-
6
+ import { Hint } from '@digigov/ui/typography/Hint';
7
+ import { Paragraph } from '@digigov/ui/typography/Paragraph';
8
+ import { Base } from '@digigov/ui/utils/Base';
10
9
  export interface ImageProps {
11
10
  src?: any;
12
11
  }
@@ -20,7 +19,7 @@ export interface Limit {
20
19
  }
21
20
 
22
21
  export const Image: React.FC<ImageProps> = React.memo(function Image({ src }) {
23
- return <img src={src} className="ds-image--ratio" />;
22
+ return <Base as="img" src={src} className="ds-image--ratio" />;
24
23
  });
25
24
  export interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
26
25
  extra?: {
@@ -34,10 +33,7 @@ export interface ImageInputProps extends Omit<UncontrolledFieldProps, 'extra'> {
34
33
  }
35
34
 
36
35
  export const ImageInput: React.FC<ImageInputProps> = React.forwardRef(
37
- function ImageInput(
38
- { name, extra = {}, disabled, onChange, reset, ...props },
39
- ref: any
40
- ) {
36
+ function ImageInput({ name, disabled, onChange, reset, ...props }, ref: any) {
41
37
  const { t } = useTranslation();
42
38
  const [selectedImage, setSelectedImage] = useState<File | null>(null);
43
39
  const [imageUrl, setImageUrl] = useState<string | null>(null);
@@ -72,13 +68,12 @@ export const ImageInput: React.FC<ImageInputProps> = React.forwardRef(
72
68
  {selectedImage !== null ? (
73
69
  <>
74
70
  <Paragraph>
75
- <b>{t('upload.image')}:</b> {`${selectedImage?.name}`}
71
+ <Base as="b">{t('upload.image')}:</Base>{' '}
72
+ {`${selectedImage?.name}`}
76
73
  </Paragraph>
77
74
  </>
78
75
  ) : (
79
- <CoreHint className="ds-dashed--border">
80
- {t('upload.no_image')}
81
- </CoreHint>
76
+ <Hint className="ds-dashed--border">{t('upload.no_image')}</Hint>
82
77
  )}
83
78
  <>
84
79
  {selectedImage !== null && <Image src={imageUrl} />}