@digigov/form 2.0.0-113e6661 → 2.0.0-2177f152

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 (280) hide show
  1. package/Field/FieldBaseContainer/index.js +1 -1
  2. package/Field/FieldBaseContainer.js.map +2 -2
  3. package/Field/FieldConditional.js.map +1 -1
  4. package/Field/types.d.ts +6 -7
  5. package/FieldArray/index.js +4 -5
  6. package/FieldArray/index.js.map +2 -2
  7. package/FieldObject/index.js +2 -2
  8. package/FieldObject/index.js.map +2 -2
  9. package/Fieldset/index.d.ts +1 -1
  10. package/Fieldset/index.js +5 -5
  11. package/Fieldset/index.js.map +2 -2
  12. package/Fieldset/types.d.ts +2 -2
  13. package/FormBuilder/index.js +4 -4
  14. package/FormBuilder/index.js.map +2 -2
  15. package/FormContext.js.map +2 -2
  16. package/MultiplicityField/add-objects/index.js +8 -6
  17. package/MultiplicityField/add-objects.js.map +2 -2
  18. package/MultiplicityField/index.js +12 -10
  19. package/MultiplicityField/index.js.map +2 -2
  20. package/MultiplicityField/types.d.ts +1 -2
  21. package/Questions/Questions/index.js +5 -4
  22. package/Questions/Questions.js.map +2 -2
  23. package/Questions/Step/StepArrayReview.js.map +2 -2
  24. package/Questions/Step/StepTitle/index.js +4 -3
  25. package/Questions/Step/StepTitle.d.ts +1 -1
  26. package/Questions/Step/StepTitle.js.map +2 -2
  27. package/cjs/Field/FieldBaseContainer/index.js +2 -2
  28. package/cjs/Field/FieldBaseContainer.js.map +3 -3
  29. package/cjs/Field/FieldConditional.js.map +1 -1
  30. package/cjs/Field/types.js.map +1 -1
  31. package/cjs/FieldArray/index.js +5 -6
  32. package/cjs/FieldArray/index.js.map +3 -3
  33. package/cjs/FieldObject/index.js +3 -3
  34. package/cjs/FieldObject/index.js.map +3 -3
  35. package/cjs/Fieldset/index.js +10 -10
  36. package/cjs/Fieldset/index.js.map +3 -3
  37. package/cjs/Fieldset/types.js.map +1 -1
  38. package/cjs/FormBuilder/index.js +6 -6
  39. package/cjs/FormBuilder/index.js.map +3 -3
  40. package/cjs/FormContext/index.js +2 -2
  41. package/cjs/FormContext.js.map +3 -3
  42. package/cjs/MultiplicityField/add-objects/index.js +12 -10
  43. package/cjs/MultiplicityField/add-objects.js.map +3 -3
  44. package/cjs/MultiplicityField/index.js +11 -14
  45. package/cjs/MultiplicityField/index.js.map +3 -3
  46. package/cjs/MultiplicityField/types.js.map +1 -1
  47. package/cjs/Questions/Questions/index.js +5 -4
  48. package/cjs/Questions/Questions.js.map +2 -2
  49. package/cjs/Questions/Step/StepArrayReview.js.map +2 -2
  50. package/cjs/Questions/Step/StepTitle/index.js +5 -5
  51. package/cjs/Questions/Step/StepTitle.js.map +3 -3
  52. package/cjs/inputs/AutoCompleteInput/__stories__/Default/index.js +1 -7
  53. package/cjs/inputs/AutoCompleteInput/__stories__/Default.js.map +2 -2
  54. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple/index.js +1 -8
  55. package/cjs/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  56. package/cjs/inputs/AutoCompleteInput/index.js +9 -8
  57. package/cjs/inputs/AutoCompleteInput/index.js.map +3 -3
  58. package/cjs/inputs/Checkboxes/index.js +6 -8
  59. package/cjs/inputs/Checkboxes/index.js.map +3 -3
  60. package/cjs/inputs/DateInput/__stories__/Default/index.js +3 -8
  61. package/cjs/inputs/DateInput/__stories__/Default.js.map +2 -2
  62. package/cjs/inputs/DateInput/index.js +4 -5
  63. package/cjs/inputs/DateInput/index.js.map +3 -3
  64. package/cjs/inputs/FileInput/index.js +8 -9
  65. package/cjs/inputs/FileInput/index.js.map +3 -3
  66. package/cjs/inputs/ImageInput/ImageInput.stories/index.js +4 -4
  67. package/cjs/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  68. package/cjs/inputs/ImageInput/__stories__/MaxSize/index.js +69 -0
  69. package/cjs/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  70. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +2 -1
  71. package/cjs/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +2 -2
  72. package/cjs/inputs/ImageInput/index.js +8 -9
  73. package/cjs/inputs/ImageInput/index.js.map +3 -3
  74. package/cjs/inputs/Input/__stories__/LandlineNumber/index.js +1 -0
  75. package/cjs/inputs/Input/__stories__/LandlineNumber.js.map +2 -2
  76. package/cjs/inputs/Input/__stories__/MobilePhone/index.js +1 -0
  77. package/cjs/inputs/Input/__stories__/MobilePhone.js.map +2 -2
  78. package/cjs/inputs/Input/__stories__/PhoneNumber/index.js +1 -0
  79. package/cjs/inputs/Input/__stories__/PhoneNumber.js.map +2 -2
  80. package/cjs/inputs/Input/__stories__/PostalCode/index.js +1 -0
  81. package/cjs/inputs/Input/__stories__/PostalCode.js.map +2 -2
  82. package/cjs/inputs/Input/index.js +3 -3
  83. package/cjs/inputs/Input/index.js.map +2 -2
  84. package/cjs/inputs/Input/inputsInputScenarios.js.map +2 -2
  85. package/cjs/inputs/Label/index.js +3 -3
  86. package/cjs/inputs/Label/index.js.map +3 -3
  87. package/cjs/inputs/OtpInput/index.js.map +2 -2
  88. package/cjs/inputs/Radio/index.js +11 -13
  89. package/cjs/inputs/Radio/index.js.map +3 -3
  90. package/cjs/inputs/Select/index.js +3 -4
  91. package/cjs/inputs/Select/index.js.map +3 -3
  92. package/cjs/inputs/inputsScenarios/index.js +4 -11
  93. package/cjs/inputs/inputsScenarios.js.map +2 -2
  94. package/cjs/lazy/index.js +320 -61
  95. package/cjs/lazy.js.map +2 -2
  96. package/cjs/locales/el.js.map +1 -1
  97. package/cjs/registry/index.js +118 -38
  98. package/cjs/registry.js.map +2 -2
  99. package/cjs/types.js.map +1 -1
  100. package/cjs/utils/index.js +2 -1
  101. package/cjs/utils.js.map +2 -2
  102. package/cjs/validators/index.js +16 -66
  103. package/cjs/validators/index.js.map +3 -3
  104. package/cjs/validators/utils/date/index.js +138 -0
  105. package/cjs/validators/utils/date.js.map +7 -0
  106. package/cjs/validators/utils/file/index.js +1 -1
  107. package/cjs/validators/utils/file.js.map +2 -2
  108. package/cjs/validators/utils/index.js +3 -1
  109. package/cjs/validators/utils/index.js.map +2 -2
  110. package/cjs/validators/utils/phone.js.map +2 -2
  111. package/cjs/validators/utils/postal_code.js.map +1 -1
  112. package/cjs/validators/utils/uuid4.js.map +2 -2
  113. package/index.js +1 -1
  114. package/inputs/AutoCompleteInput/__stories__/Default/index.js +1 -7
  115. package/inputs/AutoCompleteInput/__stories__/Default.js.map +2 -2
  116. package/inputs/AutoCompleteInput/__stories__/Multiple/index.js +1 -8
  117. package/inputs/AutoCompleteInput/__stories__/Multiple.js.map +2 -2
  118. package/inputs/AutoCompleteInput/index.d.ts +1 -1
  119. package/inputs/AutoCompleteInput/index.js +11 -8
  120. package/inputs/AutoCompleteInput/index.js.map +2 -2
  121. package/inputs/Checkboxes/index.d.ts +1 -1
  122. package/inputs/Checkboxes/index.js +7 -5
  123. package/inputs/Checkboxes/index.js.map +2 -2
  124. package/inputs/DateInput/__stories__/Default/index.js +3 -8
  125. package/inputs/DateInput/__stories__/Default.js.map +2 -2
  126. package/inputs/DateInput/index.d.ts +1 -2
  127. package/inputs/DateInput/index.js +6 -4
  128. package/inputs/DateInput/index.js.map +2 -2
  129. package/inputs/FileInput/index.js +6 -7
  130. package/inputs/FileInput/index.js.map +2 -2
  131. package/inputs/ImageInput/ImageInput.stories/index.js +2 -2
  132. package/inputs/ImageInput/ImageInput.stories.d.ts +1 -1
  133. package/inputs/ImageInput/ImageInput.stories.js.map +2 -2
  134. package/inputs/ImageInput/__stories__/MaxSize/index.js +36 -0
  135. package/inputs/ImageInput/__stories__/MaxSize/package.json +6 -0
  136. package/inputs/ImageInput/__stories__/MaxSize.d.ts +3 -0
  137. package/inputs/ImageInput/__stories__/MaxSize.js.map +7 -0
  138. package/inputs/ImageInput/__stories__/WithInvalidImageDimension/index.js +2 -1
  139. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.js.map +2 -2
  140. package/inputs/ImageInput/index.js +7 -8
  141. package/inputs/ImageInput/index.js.map +2 -2
  142. package/inputs/Input/__stories__/LandlineNumber/index.js +1 -0
  143. package/inputs/Input/__stories__/LandlineNumber.js.map +2 -2
  144. package/inputs/Input/__stories__/MobilePhone/index.js +1 -0
  145. package/inputs/Input/__stories__/MobilePhone.js.map +2 -2
  146. package/inputs/Input/__stories__/PhoneNumber/index.js +1 -0
  147. package/inputs/Input/__stories__/PhoneNumber.js.map +2 -2
  148. package/inputs/Input/__stories__/PostalCode/index.js +1 -0
  149. package/inputs/Input/__stories__/PostalCode.js.map +2 -2
  150. package/inputs/Input/index.js +3 -3
  151. package/inputs/Input/index.js.map +2 -2
  152. package/inputs/Input/inputsInputScenarios.js.map +2 -2
  153. package/inputs/Label/index.d.ts +0 -2
  154. package/inputs/Label/index.js +2 -2
  155. package/inputs/Label/index.js.map +2 -2
  156. package/inputs/OtpInput/index.js.map +2 -2
  157. package/inputs/Radio/index.d.ts +1 -1
  158. package/inputs/Radio/index.js +7 -5
  159. package/inputs/Radio/index.js.map +2 -2
  160. package/inputs/Select/index.d.ts +1 -1
  161. package/inputs/Select/index.js +4 -2
  162. package/inputs/Select/index.js.map +2 -2
  163. package/inputs/inputsScenarios/index.js +4 -11
  164. package/inputs/inputsScenarios.d.ts +0 -42
  165. package/inputs/inputsScenarios.js.map +2 -2
  166. package/lazy/index.js +320 -61
  167. package/lazy.d.ts +4 -2
  168. package/lazy.js.map +2 -2
  169. package/locales/el.js.map +1 -1
  170. package/package.json +4 -4
  171. package/registry/index.js +118 -38
  172. package/registry.d.ts +1 -0
  173. package/registry.js.map +2 -2
  174. package/src/Field/FieldBaseContainer.tsx +2 -2
  175. package/src/Field/FieldConditional.tsx +2 -2
  176. package/src/Field/types.tsx +25 -26
  177. package/src/FieldArray/index.test.tsx +14 -13
  178. package/src/FieldArray/index.tsx +9 -9
  179. package/src/FieldObject/index.tsx +2 -2
  180. package/src/Fieldset/index.tsx +5 -5
  181. package/src/Fieldset/types.tsx +2 -2
  182. package/src/FormBuilder/{FormBuilder.mdx → doc.mdx} +20 -33
  183. package/src/FormBuilder/index.test.tsx +11 -10
  184. package/src/FormBuilder/index.tsx +4 -5
  185. package/src/FormBuilder/scenarios.test.tsx +2 -2
  186. package/src/FormContext.tsx +1 -2
  187. package/src/MultiplicityField/add-objects.tsx +9 -9
  188. package/src/MultiplicityField/{MultiplicityField.mdx → doc.mdx} +12 -16
  189. package/src/MultiplicityField/index.test.tsx +26 -25
  190. package/src/MultiplicityField/index.tsx +13 -12
  191. package/src/MultiplicityField/types.ts +1 -2
  192. package/src/Questions/Questions.tsx +4 -4
  193. package/src/Questions/Step/StepArrayReview.tsx +1 -1
  194. package/src/Questions/Step/StepTitle.tsx +4 -3
  195. package/src/Questions/__snapshots__/index.spec.tsx.snap +8 -4
  196. package/src/Questions/{index.mdx → doc.mdx} +9 -12
  197. package/src/Questions/index.spec.tsx +6 -2
  198. package/src/Questions/index.test.tsx +11 -10
  199. package/src/create-simple-form.mdx +2 -6
  200. package/src/{index.mdx → doc.mdx} +4 -8
  201. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +2 -10
  202. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -8
  203. package/src/inputs/AutoCompleteInput/{index.mdx → doc.mdx} +2 -13
  204. package/src/inputs/AutoCompleteInput/index.test.tsx +14 -13
  205. package/src/inputs/AutoCompleteInput/index.tsx +34 -30
  206. package/src/inputs/Checkboxes/{index.mdx → doc.mdx} +5 -15
  207. package/src/inputs/Checkboxes/index.test.tsx +17 -16
  208. package/src/inputs/Checkboxes/index.tsx +30 -28
  209. package/src/inputs/DateInput/__stories__/Default.tsx +7 -12
  210. package/src/inputs/DateInput/{index.mdx → doc.mdx} +1 -8
  211. package/src/inputs/DateInput/index.test.tsx +11 -10
  212. package/src/inputs/DateInput/index.tsx +6 -4
  213. package/src/inputs/FileInput/{index.mdx → doc.mdx} +1 -5
  214. package/src/inputs/FileInput/index.test.tsx +11 -10
  215. package/src/inputs/FileInput/index.tsx +7 -8
  216. package/src/inputs/ImageInput/ImageInput.stories.js +1 -1
  217. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +37 -0
  218. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +2 -0
  219. package/src/inputs/ImageInput/doc.mdx +23 -0
  220. package/src/inputs/ImageInput/index.test.tsx +21 -16
  221. package/src/inputs/ImageInput/index.tsx +10 -15
  222. package/src/inputs/Input/__stories__/LandlineNumber.tsx +2 -1
  223. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -0
  224. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -0
  225. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -0
  226. package/src/inputs/Input/doc.mdx +56 -0
  227. package/src/inputs/Input/index.test.tsx +38 -37
  228. package/src/inputs/Input/index.tsx +18 -10
  229. package/src/inputs/Input/inputsInputScenarios.ts +244 -245
  230. package/src/inputs/Label/doc.mdx +14 -0
  231. package/src/inputs/Label/index.test.tsx +11 -10
  232. package/src/inputs/Label/index.tsx +2 -6
  233. package/src/inputs/OtpInput/{index.mdx → doc.mdx} +1 -8
  234. package/src/inputs/OtpInput/index.test.tsx +11 -10
  235. package/src/inputs/OtpInput/index.tsx +2 -1
  236. package/src/inputs/Radio/{index.mdx → doc.mdx} +5 -15
  237. package/src/inputs/Radio/index.test.tsx +17 -16
  238. package/src/inputs/Radio/index.tsx +58 -56
  239. package/src/inputs/Select/{index.mdx → doc.mdx} +1 -5
  240. package/src/inputs/Select/index.test.tsx +11 -10
  241. package/src/inputs/Select/index.tsx +5 -3
  242. package/src/inputs/inputsScenarios.ts +174 -181
  243. package/src/installation.mdx +2 -5
  244. package/src/lazy.js +322 -64
  245. package/src/locales/el.ts +1 -1
  246. package/src/registry.js +121 -45
  247. package/src/types.tsx +2 -2
  248. package/src/utils.ts +2 -2
  249. package/src/validators/index.ts +33 -71
  250. package/src/validators/utils/date.ts +107 -0
  251. package/src/validators/utils/file.ts +5 -3
  252. package/src/validators/utils/index.ts +1 -0
  253. package/src/validators/utils/phone.ts +1 -1
  254. package/src/validators/utils/postal_code.ts +1 -1
  255. package/src/validators/utils/uuid4.ts +2 -1
  256. package/src/validators/validators.spec.ts +3 -3
  257. package/types.d.ts +2 -2
  258. package/types.js.map +1 -1
  259. package/utils/index.js +2 -1
  260. package/utils.js.map +2 -2
  261. package/validators/index.js +20 -67
  262. package/validators/index.js.map +2 -2
  263. package/validators/utils/date/index.js +103 -0
  264. package/validators/utils/date/package.json +6 -0
  265. package/validators/utils/date.d.ts +9 -0
  266. package/validators/utils/date.js.map +7 -0
  267. package/validators/utils/file/index.js +1 -1
  268. package/validators/utils/file.js.map +2 -2
  269. package/validators/utils/index.d.ts +1 -0
  270. package/validators/utils/index.js +1 -0
  271. package/validators/utils/index.js.map +2 -2
  272. package/validators/utils/phone.d.ts +1 -1
  273. package/validators/utils/phone.js.map +2 -2
  274. package/validators/utils/postal_code.d.ts +1 -1
  275. package/validators/utils/postal_code.js.map +1 -1
  276. package/validators/utils/uuid4.js.map +2 -2
  277. package/src/inputs/ImageInput/index.mdx +0 -19
  278. package/src/inputs/Input/index.mdx +0 -95
  279. package/src/inputs/Label/index.mdx +0 -0
  280. /package/src/Field/{index.mdx → doc.mdx} +0 -0
@@ -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
- import { Base } from '@digigov/react-core/Base';
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 <Base as='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
- <Base as='b'>{t('upload.image')}:</Base> {`${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} />}
@@ -12,12 +12,13 @@ export const LandlineNumber = () => (
12
12
  key="phone-number"
13
13
  name="phone-number"
14
14
  type="phone_number"
15
+ autoComplete="tel"
15
16
  label={{
16
17
  primary: 'Σταθερό τηλέφωνο',
17
18
  }}
18
19
  extra={{
19
20
  countries: ['gr'],
20
- phoneType:'landline',
21
+ phoneType: 'landline',
21
22
  }}
22
23
  required
23
24
  />
@@ -12,6 +12,7 @@ export const MobilePhone = () => (
12
12
  key="mobile-phone"
13
13
  name="mobile-phone"
14
14
  type="mobile_phone"
15
+ autoComplete="tel"
15
16
  label={{
16
17
  primary: 'Κινητό τηλέφωνο',
17
18
  }}
@@ -12,6 +12,7 @@ export const PhoneNumber = () => (
12
12
  key="phone-number"
13
13
  name="phone-number"
14
14
  type="phone_number"
15
+ autoComplete="tel"
15
16
  label={{
16
17
  primary: 'Tηλέφωνο',
17
18
  }}
@@ -12,6 +12,7 @@ export const PostalCode = () => (
12
12
  key="postal-code"
13
13
  name="postal-code"
14
14
  type="postal_code"
15
+ autoComplete="postal-code"
15
16
  label={{
16
17
  primary: 'Ταχυδρομικός κωδικός',
17
18
  }}
@@ -0,0 +1,56 @@
1
+ ---
2
+ title: Input
3
+ ---
4
+
5
+ # Input
6
+
7
+ The input element of type `string` is used to create interactive controls for web-based forms in order to accept data from the user;
8
+ a wide variety of types of input data and control widgets are available, depending on the device and user agent. The input element is one of the most powerful and complex in all of HTML due to the sheer number of combinations of input types and attributes.
9
+
10
+ ## How to use
11
+
12
+ ### String
13
+
14
+ <code src="@digigov/form/inputs/Input/__stories__/String.tsx" />
15
+
16
+ ### Boolean
17
+
18
+ <code src="@digigov/form/inputs/Input/__stories__/Boolean.tsx" />
19
+
20
+ ### AFM
21
+
22
+ <code src="@digigov/form/inputs/Input/__stories__/AFM.tsx" />
23
+
24
+
25
+ ### IBAN
26
+
27
+ <code src="@digigov/form/inputs/Input/__stories__/IBAN.tsx" />
28
+
29
+
30
+ ### Integer
31
+
32
+ <code src="@digigov/form/inputs/Input/__stories__/Integer.tsx" />
33
+
34
+
35
+ ### Landline number
36
+
37
+ <code src="@digigov/form/inputs/Input/__stories__/LandlineNumber.tsx" />
38
+
39
+
40
+ ### Mobile phone
41
+
42
+ <code src="@digigov/form/inputs/Input/__stories__/MobilePhone.tsx" />
43
+
44
+
45
+ ### Phone number
46
+
47
+ <code src="@digigov/form/inputs/Input/__stories__/PhoneNumber.tsx" />
48
+
49
+
50
+ ### Postal code
51
+
52
+ <code src="@digigov/form/inputs/Input/__stories__/PostalCode.tsx" />
53
+
54
+ ### Text with character limit
55
+
56
+ <code src="@digigov/form/inputs/Input/__stories__/TextWithLimit.tsx" />
@@ -1,6 +1,5 @@
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 { AFM } from '@digigov/form/inputs/Input/__stories__/AFM';
5
4
  import { Boolean } from '@digigov/form/inputs/Input/__stories__/Boolean';
6
5
  import { IBAN } from '@digigov/form/inputs/Input/__stories__/IBAN';
@@ -11,46 +10,48 @@ import { PhoneNumber } from '@digigov/form/inputs/Input/__stories__/PhoneNumber'
11
10
  import { PostalCode } from '@digigov/form/inputs/Input/__stories__/PostalCode';
12
11
  import { String } from '@digigov/form/inputs/Input/__stories__/String';
13
12
  import { TextWithLimit } from '@digigov/form/inputs/Input/__stories__/TextWithLimit';
13
+ import TestVariant from '@digigov/ui/utils/TestVariant';
14
14
 
15
15
  test('renders the All Input variants', async ({ mount, page }) => {
16
16
  await mount(
17
-
18
- <div>
19
- <TestVariant title="AFM">
20
- <AFM />
21
- </TestVariant>
22
- <TestVariant title="Boolean">
23
- <Boolean />
24
- </TestVariant>
25
- <TestVariant title="IBAN">
26
- <IBAN />
27
- </TestVariant>
28
- <TestVariant title="Integer">
29
- <Integer />
30
- </TestVariant>
31
- <TestVariant title="LandlineNumber">
32
- <LandlineNumber />
33
- </TestVariant>
34
- <TestVariant title="MobilePhone">
35
- <MobilePhone />
36
- </TestVariant>
37
- <TestVariant title="PhoneNumber">
38
- <PhoneNumber />
39
- </TestVariant>
40
- <TestVariant title="PostalCode">
41
- <PostalCode />
42
- </TestVariant>
43
- <TestVariant title="String">
44
- <String />
45
- </TestVariant>
46
- <TestVariant title="TextWithLimit">
47
- <TextWithLimit />
48
- </TestVariant>
49
- </div>
50
- )
17
+ <div>
18
+ <TestVariant title="AFM">
19
+ <AFM />
20
+ </TestVariant>
21
+ <TestVariant title="Boolean">
22
+ <Boolean />
23
+ </TestVariant>
24
+ <TestVariant title="IBAN">
25
+ <IBAN />
26
+ </TestVariant>
27
+ <TestVariant title="Integer">
28
+ <Integer />
29
+ </TestVariant>
30
+ <TestVariant title="LandlineNumber">
31
+ <LandlineNumber />
32
+ </TestVariant>
33
+ <TestVariant title="MobilePhone">
34
+ <MobilePhone />
35
+ </TestVariant>
36
+ <TestVariant title="PhoneNumber">
37
+ <PhoneNumber />
38
+ </TestVariant>
39
+ <TestVariant title="PostalCode">
40
+ <PostalCode />
41
+ </TestVariant>
42
+ <TestVariant title="String">
43
+ <String />
44
+ </TestVariant>
45
+ <TestVariant title="TextWithLimit">
46
+ <TextWithLimit />
47
+ </TestVariant>
48
+ </div>
49
+ );
51
50
  await page.evaluate(() => document.fonts.ready);
52
51
 
53
- const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
52
+ const screenshot = await page.screenshot({
53
+ fullPage: true,
54
+ animations: 'disabled',
55
+ });
54
56
  expect(screenshot).toMatchSnapshot();
55
57
  });
56
-
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { useWatch } from 'react-hook-form';
3
3
  import { UncontrolledFieldProps } from '@digigov/form/Field/types';
4
- import { Hint } from '@digigov/react-core/Hint';
5
- import { TextArea } from '@digigov/react-core/TextArea';
6
- import { TextInput } from '@digigov/react-core/TextInput';
4
+ import { TextArea } from '@digigov/ui/form/TextArea';
5
+ import { TextInput } from '@digigov/ui/form/TextInput';
7
6
  import { useTranslation } from '@digigov/ui/i18n';
7
+ import { Hint } from '@digigov/ui/typography/Hint';
8
+
8
9
  const TYPES_MAP = {
9
10
  string: 'text',
10
11
  int: 'text',
@@ -42,17 +43,23 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
42
43
 
43
44
  const getRemainingChars = (currentValue, limit) => {
44
45
  if (currentValue) {
45
- return limit?.max - currentValue.length
46
+ return limit?.max - currentValue.length;
46
47
  }
47
48
  return limit?.max;
48
- }
49
+ };
49
50
 
50
51
  const constructRemainingText = (currentValue, limit) => {
51
52
  const remainingChars = getRemainingChars(currentValue, limit);
52
- let remainingText = Math.abs(remainingChars) === 1 ? t('form.info.text.character') : t('form.info.text.characters');
53
- remainingText += remainingChars > 0 ? ` ${t('form.info.text.remaining')}.` : ` ${t('form.info.text.too_many')}.`;
53
+ let remainingText =
54
+ Math.abs(remainingChars) === 1
55
+ ? t('form.info.text.character')
56
+ : t('form.info.text.characters');
57
+ remainingText +=
58
+ remainingChars > 0
59
+ ? ` ${t('form.info.text.remaining')}.`
60
+ : ` ${t('form.info.text.too_many')}.`;
54
61
  return remainingText;
55
- }
62
+ };
56
63
 
57
64
  if (multiline === true) {
58
65
  return (
@@ -72,8 +79,9 @@ export const Input: React.ExoticComponent<InputProps> = React.forwardRef(
72
79
  {limit?.max && (
73
80
  <Hint display={'flex'}>
74
81
  {t('form.info.text.you_have')}
75
- <Hint fontWeight='bold'>
76
- &nbsp;{`${Math.abs(getRemainingChars(currentValue, limit))}`}&nbsp;
82
+ <Hint fontWeight="bold">
83
+ &nbsp;{`${Math.abs(getRemainingChars(currentValue, limit))}`}
84
+ &nbsp;
77
85
  </Hint>
78
86
  {constructRemainingText(currentValue, limit)}
79
87
  </Hint>