@dxc-technology/halstack-react 0.0.0-e628009 → 0.0.0-e78f5f5

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 (377) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +47 -0
  3. package/ThemeContext.d.ts +10 -0
  4. package/ThemeContext.js +243 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +247 -0
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +57 -0
  9. package/accordion/types.d.ts +64 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +170 -0
  13. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  14. package/accordion-group/AccordionGroup.test.js +133 -0
  15. package/accordion-group/types.d.ts +68 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/{dist/alert → alert}/Alert.js +40 -153
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +59 -0
  25. package/badge/types.d.ts +4 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +84 -0
  29. package/bleed/Bleed.stories.tsx +342 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/{dist/box → box}/Box.js +15 -45
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +43 -0
  37. package/box/types.js +5 -0
  38. package/button/Button.d.ts +4 -0
  39. package/{dist/button → button}/Button.js +26 -93
  40. package/button/Button.stories.tsx +274 -0
  41. package/button/Button.test.js +35 -0
  42. package/button/types.d.ts +53 -0
  43. package/button/types.js +5 -0
  44. package/card/Card.d.ts +4 -0
  45. package/{dist/card → card}/Card.js +34 -124
  46. package/card/Card.stories.tsx +201 -0
  47. package/card/Card.test.js +50 -0
  48. package/card/ice-cream.jpg +0 -0
  49. package/card/types.d.ts +67 -0
  50. package/card/types.js +5 -0
  51. package/checkbox/Checkbox.d.ts +4 -0
  52. package/{dist/checkbox → checkbox}/Checkbox.js +18 -65
  53. package/checkbox/Checkbox.stories.tsx +192 -0
  54. package/checkbox/Checkbox.test.js +65 -0
  55. package/checkbox/types.d.ts +60 -0
  56. package/checkbox/types.js +5 -0
  57. package/chip/Chip.d.ts +4 -0
  58. package/chip/Chip.js +161 -0
  59. package/chip/Chip.stories.tsx +119 -0
  60. package/chip/Chip.test.js +56 -0
  61. package/chip/types.d.ts +45 -0
  62. package/chip/types.js +5 -0
  63. package/{dist/common → common}/OpenSans.css +0 -0
  64. package/{dist/common → common}/RequiredComponent.js +3 -11
  65. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  66. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  67. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  68. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  69. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  70. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  71. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  72. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  73. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  74. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  75. package/{dist/common → common}/utils.js +0 -0
  76. package/{dist/common → common}/variables.js +145 -341
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/{dist/date-input → date-input}/DateInput.js +47 -93
  79. package/date-input/DateInput.stories.tsx +138 -0
  80. package/date-input/DateInput.test.js +492 -0
  81. package/date-input/types.d.ts +104 -0
  82. package/date-input/types.js +5 -0
  83. package/dialog/Dialog.d.ts +4 -0
  84. package/{dist/dialog → dialog}/Dialog.js +24 -76
  85. package/dialog/Dialog.stories.tsx +212 -0
  86. package/dialog/Dialog.test.js +40 -0
  87. package/dialog/types.d.ts +43 -0
  88. package/dialog/types.js +5 -0
  89. package/dropdown/Dropdown.d.ts +4 -0
  90. package/{dist/dropdown → dropdown}/Dropdown.js +48 -197
  91. package/dropdown/Dropdown.stories.tsx +249 -0
  92. package/dropdown/Dropdown.test.js +189 -0
  93. package/dropdown/types.d.ts +80 -0
  94. package/dropdown/types.js +5 -0
  95. package/file-input/FileInput.d.ts +4 -0
  96. package/file-input/FileInput.js +590 -0
  97. package/file-input/FileInput.stories.tsx +507 -0
  98. package/file-input/FileInput.test.js +457 -0
  99. package/file-input/FileItem.d.ts +14 -0
  100. package/file-input/FileItem.js +184 -0
  101. package/file-input/types.d.ts +112 -0
  102. package/file-input/types.js +5 -0
  103. package/footer/Footer.d.ts +4 -0
  104. package/footer/Footer.js +258 -0
  105. package/footer/Footer.stories.tsx +130 -0
  106. package/footer/Footer.test.js +109 -0
  107. package/footer/Icons.d.ts +2 -0
  108. package/{dist/footer → footer}/Icons.js +15 -15
  109. package/footer/types.d.ts +65 -0
  110. package/footer/types.js +5 -0
  111. package/header/Header.d.ts +7 -0
  112. package/header/Header.js +324 -0
  113. package/header/Header.stories.tsx +162 -0
  114. package/header/Header.test.js +63 -0
  115. package/header/Icons.d.ts +2 -0
  116. package/{dist/header → header}/Icons.js +7 -32
  117. package/header/types.d.ts +47 -0
  118. package/header/types.js +5 -0
  119. package/heading/Heading.d.ts +4 -0
  120. package/{dist/heading → heading}/Heading.js +25 -96
  121. package/heading/Heading.stories.tsx +54 -0
  122. package/heading/Heading.test.js +186 -0
  123. package/heading/types.d.ts +33 -0
  124. package/heading/types.js +5 -0
  125. package/inset/Inset.d.ts +3 -0
  126. package/inset/Inset.js +84 -0
  127. package/inset/Inset.stories.tsx +229 -0
  128. package/inset/types.d.ts +13 -0
  129. package/inset/types.js +5 -0
  130. package/layout/ApplicationLayout.d.ts +10 -0
  131. package/{dist/layout → layout}/ApplicationLayout.js +47 -143
  132. package/layout/ApplicationLayout.stories.tsx +171 -0
  133. package/{dist/layout → layout}/Icons.js +7 -7
  134. package/layout/types.d.ts +57 -0
  135. package/layout/types.js +5 -0
  136. package/link/Link.d.ts +3 -0
  137. package/{dist/link → link}/Link.js +22 -106
  138. package/link/Link.stories.tsx +151 -0
  139. package/link/Link.test.js +91 -0
  140. package/link/types.d.ts +70 -0
  141. package/link/types.js +5 -0
  142. package/list/List.d.ts +4 -0
  143. package/list/List.js +47 -0
  144. package/list/List.stories.tsx +95 -0
  145. package/list/types.d.ts +7 -0
  146. package/list/types.js +5 -0
  147. package/main.d.ts +46 -0
  148. package/{dist/main.js → main.js} +113 -101
  149. package/number-input/NumberInput.d.ts +4 -0
  150. package/number-input/NumberInput.js +83 -0
  151. package/number-input/NumberInput.stories.tsx +115 -0
  152. package/number-input/NumberInput.test.js +508 -0
  153. package/number-input/NumberInputContext.d.ts +4 -0
  154. package/{dist/number-input → number-input}/NumberInputContext.js +5 -2
  155. package/number-input/numberInputContextTypes.d.ts +19 -0
  156. package/number-input/numberInputContextTypes.js +5 -0
  157. package/number-input/types.d.ts +117 -0
  158. package/number-input/types.js +5 -0
  159. package/package.json +34 -25
  160. package/{dist/paginator → paginator}/Icons.js +9 -9
  161. package/paginator/Paginator.d.ts +4 -0
  162. package/paginator/Paginator.js +192 -0
  163. package/paginator/Paginator.stories.tsx +63 -0
  164. package/paginator/Paginator.test.js +266 -0
  165. package/paginator/types.d.ts +38 -0
  166. package/paginator/types.js +5 -0
  167. package/password-input/PasswordInput.d.ts +4 -0
  168. package/{dist/password-input → password-input}/PasswordInput.js +43 -78
  169. package/password-input/PasswordInput.stories.tsx +131 -0
  170. package/password-input/PasswordInput.test.js +183 -0
  171. package/password-input/types.d.ts +107 -0
  172. package/password-input/types.js +5 -0
  173. package/progress-bar/ProgressBar.d.ts +4 -0
  174. package/{dist/progress-bar → progress-bar}/ProgressBar.js +22 -94
  175. package/progress-bar/ProgressBar.stories.jsx +58 -0
  176. package/progress-bar/ProgressBar.test.js +65 -0
  177. package/progress-bar/types.d.ts +37 -0
  178. package/progress-bar/types.js +5 -0
  179. package/radio/Radio.d.ts +4 -0
  180. package/{dist/radio → radio}/Radio.js +17 -52
  181. package/radio/Radio.stories.tsx +192 -0
  182. package/radio/Radio.test.js +71 -0
  183. package/radio/types.d.ts +54 -0
  184. package/radio/types.js +5 -0
  185. package/radio-group/Radio.d.ts +4 -0
  186. package/radio-group/Radio.js +141 -0
  187. package/radio-group/RadioGroup.d.ts +4 -0
  188. package/radio-group/RadioGroup.js +280 -0
  189. package/radio-group/RadioGroup.stories.tsx +100 -0
  190. package/radio-group/RadioGroup.test.js +695 -0
  191. package/radio-group/types.d.ts +114 -0
  192. package/radio-group/types.js +5 -0
  193. package/resultsetTable/ResultsetTable.d.ts +4 -0
  194. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +43 -147
  195. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  196. package/resultsetTable/ResultsetTable.test.js +306 -0
  197. package/resultsetTable/types.d.ts +67 -0
  198. package/resultsetTable/types.js +5 -0
  199. package/row/Row.d.ts +3 -0
  200. package/row/Row.js +127 -0
  201. package/row/Row.stories.tsx +237 -0
  202. package/row/types.d.ts +10 -0
  203. package/row/types.js +5 -0
  204. package/select/Icons.d.ts +10 -0
  205. package/select/Icons.js +93 -0
  206. package/select/Option.d.ts +4 -0
  207. package/select/Option.js +110 -0
  208. package/select/Select.d.ts +4 -0
  209. package/select/Select.js +740 -0
  210. package/select/Select.stories.tsx +582 -0
  211. package/select/Select.test.js +2016 -0
  212. package/select/types.d.ts +191 -0
  213. package/select/types.js +5 -0
  214. package/sidenav/Sidenav.d.ts +9 -0
  215. package/{dist/sidenav → sidenav}/Sidenav.js +21 -64
  216. package/sidenav/Sidenav.stories.tsx +182 -0
  217. package/sidenav/Sidenav.test.js +56 -0
  218. package/sidenav/types.d.ts +50 -0
  219. package/sidenav/types.js +5 -0
  220. package/slider/Slider.d.ts +4 -0
  221. package/{dist/slider → slider}/Slider.js +74 -161
  222. package/slider/Slider.stories.tsx +177 -0
  223. package/slider/Slider.test.js +129 -0
  224. package/slider/types.d.ts +78 -0
  225. package/slider/types.js +5 -0
  226. package/spinner/Spinner.d.ts +4 -0
  227. package/spinner/Spinner.js +250 -0
  228. package/spinner/Spinner.stories.jsx +103 -0
  229. package/spinner/Spinner.test.js +64 -0
  230. package/spinner/types.d.ts +32 -0
  231. package/spinner/types.js +5 -0
  232. package/stack/Stack.d.ts +3 -0
  233. package/stack/Stack.js +97 -0
  234. package/stack/Stack.stories.tsx +164 -0
  235. package/stack/types.d.ts +24 -0
  236. package/stack/types.js +5 -0
  237. package/switch/Switch.d.ts +4 -0
  238. package/{dist/switch → switch}/Switch.js +28 -71
  239. package/switch/Switch.stories.tsx +160 -0
  240. package/switch/Switch.test.js +73 -0
  241. package/switch/types.d.ts +58 -0
  242. package/switch/types.js +5 -0
  243. package/table/Table.d.ts +4 -0
  244. package/{dist/table → table}/Table.js +12 -26
  245. package/table/Table.stories.jsx +277 -0
  246. package/table/Table.test.js +26 -0
  247. package/table/types.d.ts +21 -0
  248. package/table/types.js +5 -0
  249. package/tabs/Tabs.d.ts +4 -0
  250. package/tabs/Tabs.js +213 -0
  251. package/tabs/Tabs.stories.tsx +120 -0
  252. package/tabs/Tabs.test.js +123 -0
  253. package/tabs/types.d.ts +78 -0
  254. package/tabs/types.js +5 -0
  255. package/tag/Tag.d.ts +4 -0
  256. package/tag/Tag.js +186 -0
  257. package/tag/Tag.stories.tsx +142 -0
  258. package/tag/Tag.test.js +60 -0
  259. package/tag/types.d.ts +69 -0
  260. package/tag/types.js +5 -0
  261. package/text/Text.d.ts +7 -0
  262. package/text/Text.js +30 -0
  263. package/text/Text.stories.tsx +19 -0
  264. package/text-input/TextInput.d.ts +4 -0
  265. package/{dist/text-input → text-input}/TextInput.js +286 -459
  266. package/text-input/TextInput.stories.tsx +474 -0
  267. package/text-input/TextInput.test.js +1725 -0
  268. package/text-input/types.d.ts +163 -0
  269. package/text-input/types.js +5 -0
  270. package/textarea/Textarea.d.ts +4 -0
  271. package/{dist/textarea → textarea}/Textarea.js +46 -127
  272. package/textarea/Textarea.stories.jsx +157 -0
  273. package/textarea/Textarea.test.js +447 -0
  274. package/textarea/types.d.ts +134 -0
  275. package/textarea/types.js +5 -0
  276. package/toggle-group/ToggleGroup.d.ts +4 -0
  277. package/{dist/toggle-group → toggle-group}/ToggleGroup.js +35 -148
  278. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  279. package/toggle-group/ToggleGroup.test.js +125 -0
  280. package/toggle-group/types.d.ts +97 -0
  281. package/toggle-group/types.js +5 -0
  282. package/useTheme.d.ts +2 -0
  283. package/{dist/useTheme.js → useTheme.js} +1 -1
  284. package/wizard/Wizard.d.ts +4 -0
  285. package/wizard/Wizard.js +281 -0
  286. package/wizard/Wizard.stories.tsx +224 -0
  287. package/wizard/Wizard.test.js +128 -0
  288. package/wizard/types.d.ts +60 -0
  289. package/wizard/types.js +5 -0
  290. package/README.md +0 -66
  291. package/babel.config.js +0 -8
  292. package/dist/BackgroundColorContext.js +0 -46
  293. package/dist/ThemeContext.js +0 -248
  294. package/dist/V3Textarea/V3Textarea.js +0 -264
  295. package/dist/accordion/Accordion.js +0 -353
  296. package/dist/accordion-group/AccordionGroup.js +0 -186
  297. package/dist/alert/index.d.ts +0 -51
  298. package/dist/badge/Badge.js +0 -63
  299. package/dist/chip/Chip.js +0 -265
  300. package/dist/date/Date.js +0 -379
  301. package/dist/date-input/index.d.ts +0 -95
  302. package/dist/file-input/FileInput.js +0 -644
  303. package/dist/file-input/FileItem.js +0 -280
  304. package/dist/file-input/index.d.ts +0 -81
  305. package/dist/footer/Footer.js +0 -421
  306. package/dist/header/Header.js +0 -434
  307. package/dist/input-text/Icons.js +0 -22
  308. package/dist/input-text/InputText.js +0 -705
  309. package/dist/main.d.ts +0 -8
  310. package/dist/new-select/NewSelect.js +0 -836
  311. package/dist/new-select/index.d.ts +0 -53
  312. package/dist/number-input/NumberInput.js +0 -136
  313. package/dist/number-input/index.d.ts +0 -113
  314. package/dist/paginator/Paginator.js +0 -283
  315. package/dist/password-input/index.d.ts +0 -94
  316. package/dist/select/Select.js +0 -549
  317. package/dist/spinner/Spinner.js +0 -381
  318. package/dist/tabs/Tabs.js +0 -343
  319. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  320. package/dist/tag/Tag.js +0 -282
  321. package/dist/text-input/index.d.ts +0 -135
  322. package/dist/textarea/index.d.ts +0 -117
  323. package/dist/toggle/Toggle.js +0 -220
  324. package/dist/upload/Upload.js +0 -205
  325. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  326. package/dist/upload/buttons-upload/Icons.js +0 -40
  327. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  328. package/dist/upload/dragAndDropArea/Icons.js +0 -39
  329. package/dist/upload/file-upload/FileToUpload.js +0 -189
  330. package/dist/upload/file-upload/Icons.js +0 -66
  331. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  332. package/dist/upload/transaction/Icons.js +0 -160
  333. package/dist/upload/transaction/Transaction.js +0 -148
  334. package/dist/upload/transactions/Transactions.js +0 -138
  335. package/dist/wizard/Icons.js +0 -65
  336. package/dist/wizard/Wizard.js +0 -405
  337. package/test/Accordion.test.js +0 -33
  338. package/test/AccordionGroup.test.js +0 -125
  339. package/test/Alert.test.js +0 -53
  340. package/test/Box.test.js +0 -10
  341. package/test/Button.test.js +0 -18
  342. package/test/Card.test.js +0 -30
  343. package/test/Checkbox.test.js +0 -45
  344. package/test/Chip.test.js +0 -25
  345. package/test/Date.test.js +0 -397
  346. package/test/DateInput.test.js +0 -242
  347. package/test/Dialog.test.js +0 -23
  348. package/test/Dropdown.test.js +0 -145
  349. package/test/FileInput.test.js +0 -201
  350. package/test/Footer.test.js +0 -94
  351. package/test/Header.test.js +0 -34
  352. package/test/Heading.test.js +0 -83
  353. package/test/InputText.test.js +0 -248
  354. package/test/Link.test.js +0 -43
  355. package/test/NumberInput.test.js +0 -259
  356. package/test/Paginator.test.js +0 -177
  357. package/test/PasswordInput.test.js +0 -83
  358. package/test/ProgressBar.test.js +0 -35
  359. package/test/Radio.test.js +0 -37
  360. package/test/ResultsetTable.test.js +0 -329
  361. package/test/Select.test.js +0 -212
  362. package/test/Sidenav.test.js +0 -45
  363. package/test/Slider.test.js +0 -74
  364. package/test/Spinner.test.js +0 -32
  365. package/test/Switch.test.js +0 -45
  366. package/test/Table.test.js +0 -36
  367. package/test/Tabs.test.js +0 -109
  368. package/test/TabsForSections.test.js +0 -34
  369. package/test/Tag.test.js +0 -32
  370. package/test/TextInput.test.js +0 -732
  371. package/test/Textarea.test.js +0 -193
  372. package/test/ToggleGroup.test.js +0 -85
  373. package/test/Upload.test.js +0 -60
  374. package/test/V3TextArea.test.js +0 -51
  375. package/test/Wizard.test.js +0 -130
  376. package/test/mocks/pngMock.js +0 -1
  377. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,163 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
+ declare type Action = {
11
+ /**
12
+ * This function will be called when the user clicks the action.
13
+ */
14
+ onClick: () => void;
15
+ /**
16
+ * Icon to be shown in the action.
17
+ */
18
+ icon: string | SVG;
19
+ /**
20
+ * Title of the action.
21
+ */
22
+ title?: string;
23
+ };
24
+ declare type Props = {
25
+ /**
26
+ * Text to be placed above the input. This label will be used as the aria-label attribute of the list of suggestions.
27
+ */
28
+ label?: string;
29
+ /**
30
+ * Name attribute of the input element.
31
+ */
32
+ name?: string;
33
+ /**
34
+ * Initial value of the input, only when it is uncontrolled.
35
+ */
36
+ defaultValue?: string;
37
+ /**
38
+ * Value of the input. If undefined, the component will be uncontrolled and the value will be managed internally by the component.
39
+ */
40
+ value?: string;
41
+ /**
42
+ * Helper text to be placed above the input.
43
+ */
44
+ helperText?: string;
45
+ /**
46
+ * Text to be put as placeholder of the input.
47
+ */
48
+ placeholder?: string;
49
+ /**
50
+ * Action to be shown in the input. This is an object composed of an onClick function and an icon,
51
+ * being the latter either an inline svg or a URL to the image.
52
+ */
53
+ action?: Action;
54
+ /**
55
+ * If true, the input will have an action to clear the entered value.
56
+ */
57
+ clearable?: boolean;
58
+ /**
59
+ * If true, the component will be disabled.
60
+ */
61
+ disabled?: boolean;
62
+ /**
63
+ * If true, the input will be optional, showing '(Optional)'
64
+ * next to the label. Otherwise, the field will be considered required and an error will be
65
+ * passed as a parameter to the OnBlur and onChange functions when it has
66
+ * not been filled.
67
+ */
68
+ optional?: boolean;
69
+ /**
70
+ * Prefix to be placed before the input value.
71
+ */
72
+ prefix?: string;
73
+ /**
74
+ * Suffix to be placed after the input value.
75
+ */
76
+ suffix?: string;
77
+ /**
78
+ * This function will be called when the user types within the input
79
+ * element of the component. An object including the current value and
80
+ * the error (if the value entered is not valid) will be passed to this
81
+ * function. If there is no error, error will be null.
82
+ */
83
+ onChange?: (val: {
84
+ value: string;
85
+ error: string | null;
86
+ }) => void;
87
+ /**
88
+ * This function will be called when the input element loses the focus.
89
+ * An object including the input value and the error (if the value
90
+ * entered is not valid) will be passed to this function. If there is no error,
91
+ * error will be null.
92
+ */
93
+ onBlur?: (val: {
94
+ value: string;
95
+ error: string | null;
96
+ }) => void;
97
+ /**
98
+ * If it is defined, the component will change its appearance, showing
99
+ * the error below the input component. If it is not defined, the error
100
+ * messages will be managed internally, but never displayed on its own.
101
+ */
102
+ error?: string;
103
+ /**
104
+ * These are the options to be displayed as suggestions. It can be either an array or a function:
105
+ * - Array: Array of options that will be filtered by the component.
106
+ * - Function: This function will be called when the user changes the value, we will send as a parameter the new value;
107
+ * apart from that this function should return one promise on which we should make 'then' to get the suggestions filtered.
108
+ */
109
+ suggestions?: string[] | ((value: string) => Promise<string[]>);
110
+ /**
111
+ * Regular expression that defines the valid format allowed by the input.
112
+ * This will be checked both when the input element loses the focus and
113
+ * while typing within it. If the string entered does not match the
114
+ * pattern, the onBlur and onChange functions will be called with the
115
+ * current value and an internal error informing that this value does not
116
+ * match the pattern. If the pattern is met, the error parameter of both
117
+ * events will be null.
118
+ */
119
+ pattern?: string;
120
+ /**
121
+ * Specifies the minimun length allowed by the input.
122
+ * This will be checked both when the input element loses the
123
+ * focus and while typing within it. If the string entered does not
124
+ * comply the minimum length, the onBlur and onChange functions will be called
125
+ * with the current value and an internal error informing that the value
126
+ * length does not comply the specified range. If a valid length is
127
+ * reached, the error parameter of both events will be null.
128
+ */
129
+ minLength?: number;
130
+ /**
131
+ * Specifies the maximum length allowed by the input.
132
+ * This will be checked both when the input element loses the
133
+ * focus and while typing within it. If the string entered does not
134
+ * comply the maximum length, the onBlur and onChange functions will be called
135
+ * with the current value and an internal error informing that the value
136
+ * length does not comply the specified range. If a valid length is
137
+ * reached, the error parameter of both events will be null.
138
+ */
139
+ maxLength?: number;
140
+ /**
141
+ * HTML autocomplete attribute. Lets the user specify if any permission the user agent has to provide automated assistance in filling out the input value.
142
+ * Its value must be one of all the possible values of the HTML autocomplete attribute: 'on', 'off', 'email', 'username', 'new-password', ...
143
+ */
144
+ autocomplete?: string;
145
+ /**
146
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
147
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
148
+ */
149
+ margin?: Space | Margin;
150
+ /**
151
+ * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
152
+ */
153
+ size?: "small" | "medium" | "large" | "fillParent";
154
+ /**
155
+ * Value of the tabindex attribute.
156
+ */
157
+ tabIndex?: number;
158
+ };
159
+ /**
160
+ * Reference to the component.
161
+ */
162
+ export declare type RefType = HTMLDivElement;
163
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import TextareaPropsType from "./types";
3
+ declare const DxcTextarea: React.ForwardRefExoticComponent<TextareaPropsType & React.RefAttributes<HTMLDivElement>>;
4
+ export default DxcTextarea;
@@ -1,16 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
@@ -23,84 +21,24 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
22
  var _utils = require("../common/utils.js");
25
23
 
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
27
-
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
29
25
 
30
26
  var _variables = require("../common/variables.js");
31
27
 
32
28
  var _uuid = require("uuid");
33
29
 
34
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
35
-
36
- function _templateObject6() {
37
- var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n min-height: 1.5em;\n line-height: 1.5em;\n"]);
38
-
39
- _templateObject6 = function _templateObject6() {
40
- return data;
41
- };
42
-
43
- return data;
44
- }
45
-
46
- function _templateObject5() {
47
- var data = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n\n margin: calc(1rem * 0.25) 0;\n padding: calc(1rem * 0.5) calc(1rem * 1);\n box-shadow: 0 0 0 2px transparent;\n border-radius: calc(1rem * 0.25);\n border: 1px solid\n ", ";\n ", "\n\n ", ";\n ", ";\n\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n\n ::placeholder {\n color: ", ";\n }\n"]);
30
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
48
31
 
49
- _templateObject5 = function _templateObject5() {
50
- return data;
51
- };
52
-
53
- return data;
54
- }
55
-
56
- function _templateObject4() {
57
- var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
58
-
59
- _templateObject4 = function _templateObject4() {
60
- return data;
61
- };
62
-
63
- return data;
64
- }
65
-
66
- function _templateObject3() {
67
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"]);
68
-
69
- _templateObject3 = function _templateObject3() {
70
- return data;
71
- };
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
72
33
 
73
- return data;
74
- }
34
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
75
35
 
76
- function _templateObject2() {
77
- var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n"]);
78
-
79
- _templateObject2 = function _templateObject2() {
80
- return data;
81
- };
82
-
83
- return data;
84
- }
85
-
86
- function _templateObject() {
87
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
88
-
89
- _templateObject = function _templateObject() {
90
- return data;
91
- };
92
-
93
- return data;
94
- }
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
95
37
 
96
38
  var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
97
39
  return "This field is required. Please, enter a value.";
98
40
  };
99
41
 
100
- var getLengthErrorMessage = function getLengthErrorMessage(length) {
101
- return "Min length ".concat(length.min, ", max length ").concat(length.max, ".");
102
- };
103
-
104
42
  var getPatternErrorMessage = function getPatternErrorMessage() {
105
43
  return "Please match the format requested.";
106
44
  };
@@ -109,14 +47,14 @@ var patternMatch = function patternMatch(pattern, value) {
109
47
  return new RegExp(pattern).test(value);
110
48
  };
111
49
 
112
- var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
113
- var _ref$label = _ref.label,
114
- label = _ref$label === void 0 ? "" : _ref$label,
50
+ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
51
+ var label = _ref.label,
115
52
  _ref$name = _ref.name,
116
53
  name = _ref$name === void 0 ? "" : _ref$name,
54
+ _ref$defaultValue = _ref.defaultValue,
55
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
117
56
  value = _ref.value,
118
- _ref$helperText = _ref.helperText,
119
- helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
57
+ helperText = _ref.helperText,
120
58
  _ref$placeholder = _ref.placeholder,
121
59
  placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
122
60
  _ref$disabled = _ref.disabled,
@@ -129,10 +67,10 @@ var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
129
67
  rows = _ref$rows === void 0 ? 4 : _ref$rows,
130
68
  onChange = _ref.onChange,
131
69
  onBlur = _ref.onBlur,
132
- _ref$error = _ref.error,
133
- error = _ref$error === void 0 ? "" : _ref$error,
70
+ error = _ref.error,
134
71
  pattern = _ref.pattern,
135
- length = _ref.length,
72
+ minLength = _ref.minLength,
73
+ maxLength = _ref.maxLength,
136
74
  _ref$autocomplete = _ref.autocomplete,
137
75
  autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
138
76
  margin = _ref.margin,
@@ -141,7 +79,7 @@ var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
141
79
  _ref$tabIndex = _ref.tabIndex,
142
80
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
143
81
 
144
- var _useState = (0, _react.useState)(""),
82
+ var _useState = (0, _react.useState)(defaultValue),
145
83
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
146
84
  innerValue = _useState2[0],
147
85
  setInnerValue = _useState2[1];
@@ -153,14 +91,18 @@ var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
153
91
  var colorsTheme = (0, _useTheme["default"])();
154
92
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
155
93
  var textareaRef = (0, _react.useRef)(null);
156
- var errorId = "error-message-".concat(textareaId);
94
+ var errorId = "error-".concat(textareaId);
95
+
96
+ var getLengthErrorMessage = function getLengthErrorMessage() {
97
+ return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
98
+ };
157
99
 
158
100
  var isNotOptional = function isNotOptional(value) {
159
101
  return value === "" && !optional;
160
102
  };
161
103
 
162
104
  var isLengthIncorrect = function isLengthIncorrect(value) {
163
- return value !== "" && length && length.min && length.max && (value.length < length.min || value.length > length.max);
105
+ return value !== "" && minLength && maxLength && (value.length < minLength || value.length > maxLength);
164
106
  };
165
107
 
166
108
  var changeValue = function changeValue(newValue) {
@@ -170,7 +112,7 @@ var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
170
112
  error: getNotOptionalErrorMessage()
171
113
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
172
114
  value: newValue,
173
- error: getLengthErrorMessage(length)
115
+ error: getLengthErrorMessage()
174
116
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
175
117
  value: newValue,
176
118
  error: getPatternErrorMessage()
@@ -186,7 +128,7 @@ var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
186
128
  error: getNotOptionalErrorMessage()
187
129
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
188
130
  value: event.target.value,
189
- error: getLengthErrorMessage(length)
131
+ error: getLengthErrorMessage()
190
132
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
191
133
  value: event.target.value,
192
134
  error: getPatternErrorMessage()
@@ -209,20 +151,21 @@ var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
209
151
  textareaRef.current.style.height = "".concat(newHeight, "px");
210
152
  }
211
153
  }, [value, verticalGrow, rows, innerValue]);
212
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
154
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
213
155
  theme: colorsTheme.textarea
214
- }, _react["default"].createElement(TextareaContainer, {
156
+ }, /*#__PURE__*/_react["default"].createElement(TextareaContainer, {
215
157
  margin: margin,
216
158
  size: size,
217
159
  ref: ref
218
- }, _react["default"].createElement(Label, {
160
+ }, label && /*#__PURE__*/_react["default"].createElement(Label, {
219
161
  htmlFor: textareaId,
220
162
  disabled: disabled,
221
- backgroundType: backgroundType
222
- }, label, " ", optional && _react["default"].createElement(OptionalLabel, null, "(Optional)")), _react["default"].createElement(HelperText, {
163
+ backgroundType: backgroundType,
164
+ helperText: helperText
165
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
223
166
  disabled: disabled,
224
167
  backgroundType: backgroundType
225
- }, helperText), _react["default"].createElement(Textarea, {
168
+ }, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
226
169
  id: textareaId,
227
170
  name: name,
228
171
  value: value !== null && value !== void 0 ? value : innerValue,
@@ -233,18 +176,20 @@ var DxcTextarea = _react["default"].forwardRef(function (_ref, ref) {
233
176
  onBlur: handleTOnBlur,
234
177
  disabled: disabled,
235
178
  error: error,
236
- minLength: length === null || length === void 0 ? void 0 : length.min,
237
- maxLength: length === null || length === void 0 ? void 0 : length.max,
179
+ minLength: minLength,
180
+ maxLength: maxLength,
238
181
  autoComplete: autocomplete,
239
182
  backgroundType: backgroundType,
240
183
  ref: textareaRef,
241
184
  tabIndex: tabIndex,
185
+ "aria-disabled": disabled,
242
186
  "aria-invalid": error ? "true" : "false",
243
- "aria-describedby": error ? errorId : undefined,
187
+ "aria-errormessage": error ? errorId : undefined,
244
188
  "aria-required": optional ? "false" : "true"
245
- }), !disabled && _react["default"].createElement(Error, {
189
+ }), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
246
190
  id: errorId,
247
- backgroundType: backgroundType
191
+ backgroundType: backgroundType,
192
+ "aria-live": error ? "assertive" : "off"
248
193
  }, error)));
249
194
  });
250
195
 
@@ -259,7 +204,7 @@ var calculateWidth = function calculateWidth(margin, size) {
259
204
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
260
205
  };
261
206
 
262
- var TextareaContainer = _styledComponents["default"].div(_templateObject(), function (props) {
207
+ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
263
208
  return calculateWidth(props.margin, props.size);
264
209
  }, function (props) {
265
210
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -273,7 +218,7 @@ var TextareaContainer = _styledComponents["default"].div(_templateObject(), func
273
218
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
274
219
  });
275
220
 
276
- var Label = _styledComponents["default"].label(_templateObject2(), function (props) {
221
+ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
277
222
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
278
223
  }, function (props) {
279
224
  return props.theme.fontFamily;
@@ -285,13 +230,15 @@ var Label = _styledComponents["default"].label(_templateObject2(), function (pro
285
230
  return props.theme.labelFontWeight;
286
231
  }, function (props) {
287
232
  return props.theme.labelLineHeight;
233
+ }, function (props) {
234
+ return !props.helperText && "margin-bottom: 0.25rem";
288
235
  });
289
236
 
290
- var OptionalLabel = _styledComponents["default"].span(_templateObject3(), function (props) {
237
+ var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
291
238
  return props.theme.optionalLabelFontWeight;
292
239
  });
293
240
 
294
- var HelperText = _styledComponents["default"].span(_templateObject4(), function (props) {
241
+ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n margin-bottom: 0.25rem;\n"])), function (props) {
295
242
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
296
243
  }, function (props) {
297
244
  return props.theme.fontFamily;
@@ -305,7 +252,7 @@ var HelperText = _styledComponents["default"].span(_templateObject4(), function
305
252
  return props.theme.helperTextLineHeight;
306
253
  });
307
254
 
308
- var Textarea = _styledComponents["default"].textarea(_templateObject5(), function (props) {
255
+ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n\n padding: 0.5rem 1rem;\n box-shadow: 0 0 0 2px transparent;\n border-radius: 0.25rem;\n border: 1px solid\n ", ";\n ", "\n\n ", ";\n ", ";\n\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
309
256
  if (props.verticalGrow === "none") return "resize: none;";else if (props.verticalGrow === "auto") return "resize: none; overflow: hidden;";else if (props.verticalGrow === "manual") return "resize: vertical;";else return "resize: none;";
310
257
  }, function (props) {
311
258
  if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");else return "background-color: transparent;";
@@ -331,39 +278,11 @@ var Textarea = _styledComponents["default"].textarea(_templateObject5(), functio
331
278
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPlaceholderFontColorOnDark : props.theme.disabledPlaceholderFontColor : props.backgroundType === "dark" ? props.theme.placeholderFontColorOnDark : props.theme.placeholderFontColor;
332
279
  });
333
280
 
334
- var Error = _styledComponents["default"].span(_templateObject6(), function (props) {
281
+ var Error = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n min-height: 1.5em;\n line-height: 1.5em;\n margin-top: 0.25rem;\n"])), function (props) {
335
282
  return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
336
283
  }, function (props) {
337
284
  return props.theme.fontFamily;
338
285
  });
339
286
 
340
- DxcTextarea.propTypes = {
341
- label: _propTypes["default"].string,
342
- name: _propTypes["default"].string,
343
- value: _propTypes["default"].string,
344
- helperText: _propTypes["default"].string,
345
- placeholder: _propTypes["default"].string,
346
- verticalGrow: _propTypes["default"].oneOf(["auto", "none", "manual"]),
347
- rows: _propTypes["default"].number,
348
- length: _propTypes["default"].shape({
349
- min: _propTypes["default"].number,
350
- max: _propTypes["default"].number
351
- }),
352
- pattern: _propTypes["default"].string,
353
- disabled: _propTypes["default"].bool,
354
- optional: _propTypes["default"].bool,
355
- onChange: _propTypes["default"].func,
356
- onBlur: _propTypes["default"].func,
357
- error: _propTypes["default"].string,
358
- autocomplete: _propTypes["default"].string,
359
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
360
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
361
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
362
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
363
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
364
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
365
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
366
- tabIndex: _propTypes["default"].number
367
- };
368
287
  var _default = DxcTextarea;
369
288
  exports["default"] = _default;
@@ -0,0 +1,157 @@
1
+ import React from "react";
2
+ import DxcTextarea from "./Textarea";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
6
+ import DarkContainer from "../../.storybook/components/DarkSection";
7
+
8
+ export default {
9
+ title: "Textarea",
10
+ component: DxcTextarea,
11
+ };
12
+
13
+ export const Chromatic = () => (
14
+ <>
15
+ <>
16
+ <ExampleContainer pseudoState="pseudo-hover">
17
+ <Title title="Hovered" theme="light" level={4} />
18
+ <DxcTextarea label="Hovered" />
19
+ </ExampleContainer>
20
+ <ExampleContainer pseudoState="pseudo-focus">
21
+ <Title title="Focused" theme="light" level={4} />
22
+ <DxcTextarea label="Focused" />
23
+ </ExampleContainer>
24
+ <ExampleContainer>
25
+ <Title title="Disabled" theme="light" level={4} />
26
+ <DxcTextarea
27
+ label="Disabled"
28
+ optional
29
+ helperText="Sample text"
30
+ placeholder="Enter your text here..."
31
+ disabled
32
+ />
33
+ </ExampleContainer>
34
+ <ExampleContainer>
35
+ <Title title="Disabled with value" theme="light" level={4} />
36
+ <DxcTextarea label="Disabled" defaultValue="Example text" disabled />
37
+ </ExampleContainer>
38
+ <ExampleContainer>
39
+ <Title title="With error" theme="light" level={4} />
40
+ <DxcTextarea
41
+ label="Textarea with error"
42
+ helperText="Helper text"
43
+ placeholder="Enter your text here..."
44
+ error="Error message."
45
+ />
46
+ </ExampleContainer>
47
+ <ExampleContainer pseudoState="pseudo-hover">
48
+ <Title title="Hovered with error" theme="light" level={4} />
49
+ <DxcTextarea
50
+ label="Hovered textarea with error"
51
+ helperText="Helper text"
52
+ placeholder="Enter your text here..."
53
+ error="Error message."
54
+ />
55
+ </ExampleContainer>
56
+ <ExampleContainer>
57
+ <Title title="Helper text and optional with value" theme="light" level={4} />
58
+ <DxcTextarea label="Helper & optional" defaultValue="Some text" helperText="Sample text" optional />
59
+ </ExampleContainer>
60
+ <ExampleContainer>
61
+ <Title title="Resizable" theme="light" level={4} />
62
+ <DxcTextarea label="With resizer" helperText="Helper text" verticalGrow="manual" />
63
+ </ExampleContainer>
64
+ <ExampleContainer>
65
+ <Title title="Grow manual" theme="light" level={4} />
66
+ <DxcTextarea
67
+ label="Manual vertical grow"
68
+ verticalGrow="manual"
69
+ defaultValue="Long textttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
70
+ />
71
+ </ExampleContainer>
72
+ </>
73
+ <BackgroundColorProvider color="#333333">
74
+ <DarkContainer>
75
+ <ExampleContainer>
76
+ <Title title="Helper text and optional with value" theme="dark" level={4} />
77
+ <DxcTextarea label="Helper & optional" defaultValue="Some text" helperText="Sample text" optional />
78
+ </ExampleContainer>
79
+ <ExampleContainer>
80
+ <Title title="Disabled" theme="dark" level={4} />
81
+ <DxcTextarea
82
+ label="Disabled"
83
+ optional
84
+ helperText="Sample text"
85
+ placeholder="Enter your text here..."
86
+ disabled
87
+ />
88
+ </ExampleContainer>
89
+ <ExampleContainer>
90
+ <Title title="Disabled with value" theme="dark" level={4} />
91
+ <DxcTextarea label="Disabled" defaultValue="Example text" disabled />
92
+ </ExampleContainer>
93
+ <ExampleContainer>
94
+ <Title title="With error" theme="dark" level={4} />
95
+ <DxcTextarea
96
+ label="Textarea with error"
97
+ helperText="Helper text"
98
+ placeholder="Enter your text here..."
99
+ error="Error message."
100
+ />
101
+ </ExampleContainer>
102
+ <ExampleContainer pseudoState="pseudo-hover">
103
+ <Title title="Hovered with error" theme="dark" level={4} />
104
+ <DxcTextarea
105
+ label="Hovered textarea with error"
106
+ helperText="Helper text"
107
+ placeholder="Enter your text here..."
108
+ error="Error message."
109
+ />
110
+ </ExampleContainer>
111
+ </DarkContainer>
112
+ </BackgroundColorProvider>
113
+ <Title title="Sizes" theme="light" level={2} />
114
+ <ExampleContainer>
115
+ <DxcTextarea label="Small" size="small" />
116
+ </ExampleContainer>
117
+ <ExampleContainer>
118
+ <DxcTextarea label="Medium" size="medium" />
119
+ </ExampleContainer>
120
+ <ExampleContainer>
121
+ <DxcTextarea label="Large" size="large" />
122
+ </ExampleContainer>
123
+ <ExampleContainer>
124
+ <DxcTextarea label="Fill parent" size="fillParent" />
125
+ </ExampleContainer>
126
+ <Title title="Margins" theme="light" level={2} />
127
+ <ExampleContainer>
128
+ <Title title="Xxsmall margin" theme="light" level={4} />
129
+ <DxcTextarea label="Xxsmall" margin="xxsmall" />
130
+ </ExampleContainer>
131
+ <ExampleContainer>
132
+ <Title title="Xsmall margin" theme="light" level={4} />
133
+ <DxcTextarea label="xsmall" margin="xsmall" />
134
+ </ExampleContainer>
135
+ <ExampleContainer>
136
+ <Title title="Small margin" theme="light" level={4} />
137
+ <DxcTextarea label="small" margin="small" />
138
+ </ExampleContainer>
139
+ <ExampleContainer>
140
+ <Title title="Medium margin" theme="light" level={4} />
141
+ <DxcTextarea label="medium" margin="medium" />
142
+ </ExampleContainer>
143
+ <ExampleContainer>
144
+ <Title title="Large margin" theme="light" level={4} />
145
+ <DxcTextarea label="Large" margin="large" />
146
+ </ExampleContainer>
147
+ <ExampleContainer>
148
+ <Title title="Xlarge margin" theme="light" level={4} />
149
+ <DxcTextarea label="Xlarge" margin="xlarge" />
150
+ </ExampleContainer>
151
+ <ExampleContainer>
152
+ <Title title="Xxlarge margin" theme="light" level={4} />
153
+ <DxcTextarea label="Xxlarge" margin="xxlarge" />
154
+ <hr />
155
+ </ExampleContainer>
156
+ </>
157
+ );