@dxc-technology/halstack-react 0.0.0-1bf97dd → 0.0.0-1bfe223

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 (366) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -23
  3. package/HalstackContext.d.ts +1221 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +117 -193
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +38 -107
  13. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +23 -59
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +75 -0
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +4 -0
  28. package/badge/Badge.js +142 -40
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +54 -0
  32. package/bleed/Bleed.d.ts +3 -0
  33. package/bleed/Bleed.js +43 -0
  34. package/bleed/Bleed.stories.tsx +342 -0
  35. package/bleed/types.d.ts +37 -0
  36. package/box/Box.d.ts +1 -1
  37. package/box/Box.js +30 -81
  38. package/box/Box.stories.tsx +38 -51
  39. package/box/Box.test.js +13 -0
  40. package/box/types.d.ts +3 -14
  41. package/bulleted-list/BulletedList.d.ts +7 -0
  42. package/bulleted-list/BulletedList.js +89 -0
  43. package/bulleted-list/BulletedList.stories.tsx +115 -0
  44. package/bulleted-list/types.d.ts +38 -0
  45. package/bulleted-list/types.js +5 -0
  46. package/button/Button.d.ts +1 -1
  47. package/button/Button.js +63 -122
  48. package/button/Button.stories.tsx +164 -96
  49. package/button/Button.test.js +38 -0
  50. package/button/types.d.ts +12 -12
  51. package/card/Card.d.ts +1 -1
  52. package/card/Card.js +58 -102
  53. package/card/Card.stories.tsx +13 -43
  54. package/card/Card.test.js +39 -0
  55. package/card/types.d.ts +6 -11
  56. package/checkbox/Checkbox.d.ts +2 -2
  57. package/checkbox/Checkbox.js +144 -182
  58. package/checkbox/Checkbox.stories.tsx +166 -136
  59. package/checkbox/Checkbox.test.js +199 -0
  60. package/checkbox/types.d.ts +19 -7
  61. package/chip/Chip.d.ts +1 -1
  62. package/chip/Chip.js +47 -125
  63. package/chip/Chip.stories.tsx +123 -30
  64. package/chip/Chip.test.js +41 -0
  65. package/chip/types.d.ts +10 -18
  66. package/common/OpenSans.css +68 -80
  67. package/common/coreTokens.d.ts +237 -0
  68. package/common/coreTokens.js +184 -0
  69. package/common/utils.d.ts +1 -0
  70. package/common/utils.js +6 -12
  71. package/common/variables.d.ts +1367 -0
  72. package/common/variables.js +1001 -1340
  73. package/container/Container.d.ts +4 -0
  74. package/container/Container.js +194 -0
  75. package/container/Container.stories.tsx +214 -0
  76. package/container/types.d.ts +74 -0
  77. package/container/types.js +5 -0
  78. package/date-input/Calendar.d.ts +4 -0
  79. package/date-input/Calendar.js +214 -0
  80. package/date-input/DateInput.js +173 -308
  81. package/date-input/DateInput.stories.tsx +203 -56
  82. package/date-input/DateInput.test.js +808 -0
  83. package/date-input/DatePicker.d.ts +4 -0
  84. package/date-input/DatePicker.js +115 -0
  85. package/date-input/Icons.d.ts +6 -0
  86. package/date-input/Icons.js +58 -0
  87. package/date-input/YearPicker.d.ts +4 -0
  88. package/date-input/YearPicker.js +100 -0
  89. package/date-input/types.d.ts +86 -22
  90. package/dialog/Dialog.d.ts +1 -1
  91. package/dialog/Dialog.js +68 -129
  92. package/dialog/Dialog.stories.tsx +320 -167
  93. package/dialog/Dialog.test.js +307 -0
  94. package/dialog/types.d.ts +18 -25
  95. package/dropdown/Dropdown.d.ts +1 -1
  96. package/dropdown/Dropdown.js +244 -327
  97. package/dropdown/Dropdown.stories.tsx +438 -0
  98. package/dropdown/Dropdown.test.js +599 -0
  99. package/dropdown/DropdownMenu.d.ts +4 -0
  100. package/dropdown/DropdownMenu.js +63 -0
  101. package/dropdown/DropdownMenuItem.d.ts +4 -0
  102. package/dropdown/DropdownMenuItem.js +67 -0
  103. package/dropdown/types.d.ts +36 -27
  104. package/file-input/FileInput.d.ts +2 -2
  105. package/file-input/FileInput.js +266 -298
  106. package/file-input/FileInput.stories.tsx +618 -0
  107. package/file-input/FileInput.test.js +459 -0
  108. package/file-input/FileItem.d.ts +4 -14
  109. package/file-input/FileItem.js +51 -100
  110. package/file-input/types.d.ts +53 -11
  111. package/flex/Flex.d.ts +4 -0
  112. package/flex/Flex.js +57 -0
  113. package/flex/Flex.stories.tsx +112 -0
  114. package/flex/types.d.ts +97 -0
  115. package/flex/types.js +5 -0
  116. package/footer/Footer.d.ts +1 -1
  117. package/footer/Footer.js +72 -200
  118. package/footer/Footer.stories.tsx +57 -37
  119. package/footer/Footer.test.js +85 -0
  120. package/footer/Icons.d.ts +3 -0
  121. package/footer/Icons.js +67 -8
  122. package/footer/types.d.ts +25 -26
  123. package/grid/Grid.d.ts +7 -0
  124. package/grid/Grid.js +76 -0
  125. package/grid/Grid.stories.tsx +219 -0
  126. package/grid/types.d.ts +115 -0
  127. package/grid/types.js +5 -0
  128. package/header/Header.d.ts +4 -3
  129. package/header/Header.js +99 -203
  130. package/header/Header.stories.tsx +152 -63
  131. package/header/Header.test.js +66 -0
  132. package/header/Icons.d.ts +2 -0
  133. package/header/Icons.js +4 -9
  134. package/header/types.d.ts +5 -19
  135. package/heading/Heading.js +10 -32
  136. package/heading/Heading.stories.tsx +3 -2
  137. package/heading/Heading.test.js +169 -0
  138. package/heading/types.d.ts +7 -7
  139. package/image/Image.d.ts +4 -0
  140. package/image/Image.js +70 -0
  141. package/image/Image.stories.tsx +127 -0
  142. package/image/types.d.ts +72 -0
  143. package/image/types.js +5 -0
  144. package/inset/Inset.d.ts +3 -0
  145. package/inset/Inset.js +43 -0
  146. package/inset/Inset.stories.tsx +230 -0
  147. package/inset/types.d.ts +37 -0
  148. package/inset/types.js +5 -0
  149. package/layout/ApplicationLayout.d.ts +16 -6
  150. package/layout/ApplicationLayout.js +83 -174
  151. package/layout/ApplicationLayout.stories.tsx +85 -94
  152. package/layout/Icons.d.ts +8 -0
  153. package/layout/Icons.js +51 -48
  154. package/layout/SidenavContext.d.ts +5 -0
  155. package/layout/SidenavContext.js +13 -0
  156. package/layout/types.d.ts +19 -35
  157. package/link/Link.d.ts +3 -2
  158. package/link/Link.js +64 -110
  159. package/link/Link.stories.tsx +159 -52
  160. package/link/Link.test.js +63 -0
  161. package/link/types.d.ts +15 -35
  162. package/main.d.ts +17 -18
  163. package/main.js +68 -120
  164. package/nav-tabs/NavTabs.d.ts +8 -0
  165. package/nav-tabs/NavTabs.js +93 -0
  166. package/nav-tabs/NavTabs.stories.tsx +276 -0
  167. package/nav-tabs/NavTabs.test.js +76 -0
  168. package/nav-tabs/Tab.d.ts +4 -0
  169. package/nav-tabs/Tab.js +118 -0
  170. package/nav-tabs/types.d.ts +52 -0
  171. package/nav-tabs/types.js +5 -0
  172. package/number-input/NumberInput.d.ts +7 -0
  173. package/number-input/NumberInput.js +27 -43
  174. package/number-input/NumberInput.stories.tsx +44 -28
  175. package/number-input/NumberInput.test.js +830 -0
  176. package/number-input/types.d.ts +28 -15
  177. package/package.json +46 -45
  178. package/paginator/Icons.d.ts +5 -0
  179. package/paginator/Icons.js +21 -47
  180. package/paginator/Paginator.js +34 -91
  181. package/paginator/Paginator.stories.tsx +24 -0
  182. package/paginator/Paginator.test.js +335 -0
  183. package/paginator/types.d.ts +3 -3
  184. package/paragraph/Paragraph.d.ts +5 -0
  185. package/paragraph/Paragraph.js +22 -0
  186. package/paragraph/Paragraph.stories.tsx +27 -0
  187. package/password-input/Icons.d.ts +6 -0
  188. package/password-input/Icons.js +35 -0
  189. package/password-input/PasswordInput.js +57 -123
  190. package/password-input/PasswordInput.stories.tsx +3 -35
  191. package/password-input/PasswordInput.test.js +198 -0
  192. package/password-input/types.d.ts +21 -17
  193. package/progress-bar/ProgressBar.js +65 -91
  194. package/progress-bar/ProgressBar.stories.tsx +93 -0
  195. package/progress-bar/ProgressBar.test.js +93 -0
  196. package/progress-bar/types.d.ts +3 -3
  197. package/quick-nav/QuickNav.d.ts +4 -0
  198. package/quick-nav/QuickNav.js +94 -0
  199. package/quick-nav/QuickNav.stories.tsx +356 -0
  200. package/quick-nav/types.d.ts +21 -0
  201. package/quick-nav/types.js +5 -0
  202. package/radio-group/Radio.d.ts +4 -0
  203. package/radio-group/Radio.js +124 -0
  204. package/radio-group/RadioGroup.d.ts +4 -0
  205. package/radio-group/RadioGroup.js +235 -0
  206. package/radio-group/RadioGroup.stories.tsx +214 -0
  207. package/radio-group/RadioGroup.test.js +756 -0
  208. package/radio-group/types.d.ts +114 -0
  209. package/radio-group/types.js +5 -0
  210. package/resultset-table/Icons.d.ts +7 -0
  211. package/resultset-table/Icons.js +47 -0
  212. package/resultset-table/ResultsetTable.js +159 -0
  213. package/resultset-table/ResultsetTable.stories.tsx +300 -0
  214. package/resultset-table/ResultsetTable.test.js +305 -0
  215. package/{resultsetTable → resultset-table}/types.d.ts +8 -8
  216. package/resultset-table/types.js +5 -0
  217. package/select/Icons.d.ts +10 -0
  218. package/select/Icons.js +89 -0
  219. package/select/Listbox.d.ts +4 -0
  220. package/select/Listbox.js +143 -0
  221. package/select/Option.d.ts +4 -0
  222. package/select/Option.js +87 -0
  223. package/select/Select.d.ts +4 -0
  224. package/select/Select.js +230 -503
  225. package/select/Select.stories.tsx +603 -204
  226. package/select/Select.test.js +2370 -0
  227. package/select/types.d.ts +209 -0
  228. package/select/types.js +5 -0
  229. package/sidenav/Icons.d.ts +7 -0
  230. package/sidenav/Icons.js +47 -0
  231. package/sidenav/Sidenav.d.ts +6 -5
  232. package/sidenav/Sidenav.js +131 -71
  233. package/sidenav/Sidenav.stories.tsx +251 -134
  234. package/sidenav/Sidenav.test.js +37 -0
  235. package/sidenav/types.d.ts +52 -26
  236. package/slider/Slider.d.ts +2 -2
  237. package/slider/Slider.js +148 -180
  238. package/slider/Slider.test.js +254 -0
  239. package/slider/types.d.ts +11 -3
  240. package/spinner/Spinner.js +31 -75
  241. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  242. package/spinner/Spinner.test.js +55 -0
  243. package/spinner/types.d.ts +3 -3
  244. package/status-light/StatusLight.d.ts +4 -0
  245. package/status-light/StatusLight.js +51 -0
  246. package/status-light/StatusLight.stories.tsx +74 -0
  247. package/status-light/StatusLight.test.js +25 -0
  248. package/status-light/types.d.ts +17 -0
  249. package/status-light/types.js +5 -0
  250. package/switch/Switch.d.ts +2 -2
  251. package/switch/Switch.js +149 -114
  252. package/switch/Switch.stories.tsx +45 -68
  253. package/switch/Switch.test.js +180 -0
  254. package/switch/types.d.ts +13 -5
  255. package/table/Table.js +8 -30
  256. package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
  257. package/table/Table.test.js +21 -0
  258. package/table/types.d.ts +8 -8
  259. package/tabs/Tab.d.ts +4 -0
  260. package/tabs/Tab.js +116 -0
  261. package/tabs/Tabs.d.ts +1 -1
  262. package/tabs/Tabs.js +317 -146
  263. package/tabs/Tabs.stories.tsx +123 -18
  264. package/tabs/Tabs.test.js +294 -0
  265. package/tabs/types.d.ts +46 -24
  266. package/tag/Tag.d.ts +1 -1
  267. package/tag/Tag.js +43 -85
  268. package/tag/Tag.stories.tsx +38 -28
  269. package/tag/Tag.test.js +49 -0
  270. package/tag/types.d.ts +25 -16
  271. package/text-input/Icons.d.ts +8 -0
  272. package/text-input/Icons.js +56 -0
  273. package/text-input/Suggestion.d.ts +4 -0
  274. package/text-input/Suggestion.js +67 -0
  275. package/text-input/Suggestions.d.ts +4 -0
  276. package/text-input/Suggestions.js +84 -0
  277. package/text-input/TextInput.js +325 -539
  278. package/text-input/TextInput.stories.tsx +280 -271
  279. package/text-input/TextInput.test.js +1739 -0
  280. package/text-input/types.d.ts +71 -25
  281. package/textarea/Textarea.d.ts +4 -0
  282. package/textarea/Textarea.js +85 -165
  283. package/textarea/Textarea.stories.tsx +174 -0
  284. package/textarea/Textarea.test.js +406 -0
  285. package/textarea/types.d.ts +141 -0
  286. package/textarea/types.js +5 -0
  287. package/toggle-group/ToggleGroup.d.ts +2 -2
  288. package/toggle-group/ToggleGroup.js +95 -111
  289. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  290. package/toggle-group/ToggleGroup.test.js +137 -0
  291. package/toggle-group/types.d.ts +66 -36
  292. package/typography/Typography.d.ts +4 -0
  293. package/typography/Typography.js +23 -0
  294. package/typography/Typography.stories.tsx +198 -0
  295. package/typography/types.d.ts +18 -0
  296. package/typography/types.js +5 -0
  297. package/useTheme.d.ts +1119 -1
  298. package/useTheme.js +4 -11
  299. package/useTranslatedLabels.d.ts +85 -0
  300. package/useTranslatedLabels.js +14 -0
  301. package/utils/BaseTypography.d.ts +21 -0
  302. package/utils/BaseTypography.js +94 -0
  303. package/utils/FocusLock.d.ts +13 -0
  304. package/utils/FocusLock.js +124 -0
  305. package/wizard/Wizard.d.ts +1 -1
  306. package/wizard/Wizard.js +122 -103
  307. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  308. package/wizard/Wizard.test.js +114 -0
  309. package/wizard/types.d.ts +14 -14
  310. package/ThemeContext.d.ts +0 -15
  311. package/ThemeContext.js +0 -243
  312. package/V3Select/V3Select.js +0 -455
  313. package/V3Select/index.d.ts +0 -27
  314. package/V3Textarea/V3Textarea.js +0 -260
  315. package/V3Textarea/index.d.ts +0 -27
  316. package/card/ice-cream.jpg +0 -0
  317. package/common/RequiredComponent.js +0 -32
  318. package/date/Date.js +0 -373
  319. package/date/index.d.ts +0 -27
  320. package/input-text/Icons.js +0 -22
  321. package/input-text/InputText.js +0 -611
  322. package/input-text/index.d.ts +0 -36
  323. package/list/List.d.ts +0 -7
  324. package/list/List.js +0 -37
  325. package/list/List.stories.tsx +0 -70
  326. package/number-input/NumberInputContext.d.ts +0 -4
  327. package/number-input/NumberInputContext.js +0 -19
  328. package/number-input/numberInputContextTypes.d.ts +0 -19
  329. package/progress-bar/ProgressBar.stories.jsx +0 -58
  330. package/radio/Radio.d.ts +0 -4
  331. package/radio/Radio.js +0 -174
  332. package/radio/Radio.stories.tsx +0 -192
  333. package/radio/types.d.ts +0 -54
  334. package/resultsetTable/ResultsetTable.js +0 -251
  335. package/row/Row.d.ts +0 -11
  336. package/row/Row.js +0 -124
  337. package/row/Row.stories.tsx +0 -223
  338. package/select/index.d.ts +0 -131
  339. package/slider/Slider.stories.tsx +0 -177
  340. package/stack/Stack.d.ts +0 -10
  341. package/stack/Stack.js +0 -94
  342. package/stack/Stack.stories.tsx +0 -150
  343. package/text/Text.d.ts +0 -7
  344. package/text/Text.js +0 -30
  345. package/text/Text.stories.tsx +0 -19
  346. package/textarea/Textarea.stories.jsx +0 -135
  347. package/textarea/index.d.ts +0 -127
  348. package/toggle/Toggle.js +0 -186
  349. package/toggle/index.d.ts +0 -21
  350. package/upload/Upload.js +0 -201
  351. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  352. package/upload/buttons-upload/Icons.js +0 -40
  353. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  354. package/upload/dragAndDropArea/Icons.js +0 -39
  355. package/upload/file-upload/FileToUpload.js +0 -115
  356. package/upload/file-upload/Icons.js +0 -66
  357. package/upload/files-upload/FilesToUpload.js +0 -109
  358. package/upload/index.d.ts +0 -15
  359. package/upload/transaction/Icons.js +0 -160
  360. package/upload/transaction/Transaction.js +0 -104
  361. package/upload/transactions/Transactions.js +0 -94
  362. package/wizard/Icons.js +0 -65
  363. /package/{radio → action-icon}/types.js +0 -0
  364. /package/{resultsetTable → badge}/types.js +0 -0
  365. /package/{number-input/numberInputContextTypes.js → bleed/types.js} +0 -0
  366. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
@@ -1,27 +1,29 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
- declare type Action = {
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ type Action = {
11
11
  /**
12
12
  * This function will be called when the user clicks the action.
13
13
  */
14
- onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
14
+ onClick: () => void;
15
15
  /**
16
- * Icon to be shown in the action.
16
+ * Icon to be placed in the action..
17
17
  */
18
18
  icon: string | SVG;
19
19
  /**
20
- * Title of the action.
20
+ * Text representing advisory information related
21
+ * to the button's action. Under the hood, this prop also serves
22
+ * as an accessible label for the component.
21
23
  */
22
24
  title?: string;
23
25
  };
24
- declare type Props = {
26
+ type Props = {
25
27
  /**
26
28
  * Text to be placed above the input. This label will be used as the aria-label attribute of the list of suggestions.
27
29
  */
@@ -30,6 +32,10 @@ declare type Props = {
30
32
  * Name attribute of the input element.
31
33
  */
32
34
  name?: string;
35
+ /**
36
+ * Initial value of the input, only when it is uncontrolled.
37
+ */
38
+ defaultValue?: string;
33
39
  /**
34
40
  * Value of the input. If undefined, the component will be uncontrolled and the value will be managed internally by the component.
35
41
  */
@@ -43,8 +49,7 @@ declare type Props = {
43
49
  */
44
50
  placeholder?: string;
45
51
  /**
46
- * Action to be shown in the input. This is an object composed of an onClick function and an icon,
47
- * being the latter either an inline svg or a URL to the image.
52
+ * Action to be shown in the input.
48
53
  */
49
54
  action?: Action;
50
55
  /**
@@ -55,6 +60,12 @@ declare type Props = {
55
60
  * If true, the component will be disabled.
56
61
  */
57
62
  disabled?: boolean;
63
+ /**
64
+ * If true, the component will not be mutable, meaning the user can not edit the control.
65
+ * In addition, the clear action will not be displayed even if the flag is set to true
66
+ * and the custom action will not execute its onClick event.
67
+ */
68
+ readOnly?: boolean;
58
69
  /**
59
70
  * If true, the input will be optional, showing '(Optional)'
60
71
  * next to the label. Otherwise, the field will be considered required and an error will be
@@ -74,33 +85,37 @@ declare type Props = {
74
85
  * This function will be called when the user types within the input
75
86
  * element of the component. An object including the current value and
76
87
  * the error (if the value entered is not valid) will be passed to this
77
- * function. If there is no error, error will be null.
88
+ * function. If there is no error, error will not be defined.
78
89
  */
79
90
  onChange?: (val: {
80
91
  value: string;
81
- error: string | null;
92
+ error?: string;
82
93
  }) => void;
83
94
  /**
84
95
  * This function will be called when the input element loses the focus.
85
96
  * An object including the input value and the error (if the value
86
97
  * entered is not valid) will be passed to this function. If there is no error,
87
- * error will be null.
98
+ * error will not be defined.
88
99
  */
89
100
  onBlur?: (val: {
90
101
  value: string;
91
- error: string | null;
102
+ error?: string;
92
103
  }) => void;
93
104
  /**
94
- * If it is defined, the component will change its appearance, showing
95
- * the error below the input component. If it is not defined, the error
96
- * messages will be managed internally, but never displayed on its own.
105
+ * If it is a defined value and also a truthy string, the component will
106
+ * change its appearance, showing the error below the input component. If
107
+ * the defined value is an empty string, it will reserve a space below
108
+ * the component for a future error, but it would not change its look. In
109
+ * case of being undefined or null, both the appearance and the space for
110
+ * the error message would not be modified.
97
111
  */
98
112
  error?: string;
99
113
  /**
100
114
  * These are the options to be displayed as suggestions. It can be either an array or a function:
101
115
  * - Array: Array of options that will be filtered by the component.
102
- * - Function: This function will be called when the user changes the value, we will send as a parameter the new value;
103
- * apart from that this function should return one promise on which we should make 'then' to get the suggestions filtered.
116
+ * - Function: This function will be called when the user changes the value.
117
+ * It will receive the new value as a parameter and should return a promise
118
+ * that resolves to an array with the filtered options.
104
119
  */
105
120
  suggestions?: string[] | ((value: string) => Promise<string[]>);
106
121
  /**
@@ -110,17 +125,17 @@ declare type Props = {
110
125
  * pattern, the onBlur and onChange functions will be called with the
111
126
  * current value and an internal error informing that this value does not
112
127
  * match the pattern. If the pattern is met, the error parameter of both
113
- * events will be null.
128
+ * events will not be defined.
114
129
  */
115
130
  pattern?: string;
116
131
  /**
117
- * Specifies the minimun length allowed by the input.
132
+ * Specifies the minimum length allowed by the input.
118
133
  * This will be checked both when the input element loses the
119
134
  * focus and while typing within it. If the string entered does not
120
135
  * comply the minimum length, the onBlur and onChange functions will be called
121
136
  * with the current value and an internal error informing that the value
122
137
  * length does not comply the specified range. If a valid length is
123
- * reached, the error parameter of both events will be null.
138
+ * reached, the error parameter of both events will not be defined.
124
139
  */
125
140
  minLength?: number;
126
141
  /**
@@ -130,7 +145,7 @@ declare type Props = {
130
145
  * comply the maximum length, the onBlur and onChange functions will be called
131
146
  * with the current value and an internal error informing that the value
132
147
  * length does not comply the specified range. If a valid length is
133
- * reached, the error parameter of both events will be null.
148
+ * reached, the error parameter of both events will not be defined.
134
149
  */
135
150
  maxLength?: number;
136
151
  /**
@@ -144,7 +159,7 @@ declare type Props = {
144
159
  */
145
160
  margin?: Space | Margin;
146
161
  /**
147
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
162
+ * Size of the component.
148
163
  */
149
164
  size?: "small" | "medium" | "large" | "fillParent";
150
165
  /**
@@ -152,8 +167,39 @@ declare type Props = {
152
167
  */
153
168
  tabIndex?: number;
154
169
  };
170
+ /**
171
+ * List of suggestions of an Text Input component.
172
+ */
173
+ export type SuggestionsProps = {
174
+ id: string;
175
+ value: string;
176
+ suggestions: string[];
177
+ visualFocusIndex: number;
178
+ highlightedSuggestions: boolean;
179
+ searchHasErrors: boolean;
180
+ isSearching: boolean;
181
+ suggestionOnClick: (suggestion: string) => void;
182
+ styles: React.CSSProperties;
183
+ };
155
184
  /**
156
185
  * Reference to the component.
157
186
  */
158
- export declare type RefType = HTMLDivElement;
187
+ export type RefType = HTMLDivElement;
188
+ /**
189
+ * Single suggestion of an Text Input component.
190
+ */
191
+ export type SuggestionProps = {
192
+ id: string;
193
+ value: string;
194
+ onClick: (suggestion: string) => void;
195
+ suggestion: string;
196
+ isLast: boolean;
197
+ visuallyFocused: boolean;
198
+ highlighted: boolean;
199
+ };
200
+ export type AutosuggestWrapperProps = {
201
+ condition: boolean;
202
+ wrapper: (children: React.ReactNode) => JSX.Element;
203
+ children: React.ReactNode;
204
+ };
159
205
  export default Props;
@@ -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,158 +1,117 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
-
18
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
-
20
12
  var _react = _interopRequireWildcard(require("react"));
21
-
22
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
-
24
- var _utils = require("../common/utils.js");
25
-
14
+ var _utils = require("../common/utils");
26
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
27
-
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
- var _variables = require("../common/variables.js");
31
-
16
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
17
+ var _variables = require("../common/variables");
32
18
  var _uuid = require("uuid");
33
-
34
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
35
-
36
19
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
37
-
38
- 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); }
39
-
40
- 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; }
41
-
42
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
43
- return "This field is required. Please, enter a value.";
44
- };
45
-
46
- var getPatternErrorMessage = function getPatternErrorMessage() {
47
- return "Please match the format requested.";
48
- };
49
-
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
50
22
  var patternMatch = function patternMatch(pattern, value) {
51
23
  return new RegExp(pattern).test(value);
52
24
  };
53
-
54
25
  var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
55
26
  var label = _ref.label,
56
- _ref$name = _ref.name,
57
- name = _ref$name === void 0 ? "" : _ref$name,
58
- value = _ref.value,
59
- helperText = _ref.helperText,
60
- _ref$placeholder = _ref.placeholder,
61
- placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
62
- _ref$disabled = _ref.disabled,
63
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
64
- _ref$optional = _ref.optional,
65
- optional = _ref$optional === void 0 ? false : _ref$optional,
66
- _ref$verticalGrow = _ref.verticalGrow,
67
- verticalGrow = _ref$verticalGrow === void 0 ? "auto" : _ref$verticalGrow,
68
- _ref$rows = _ref.rows,
69
- rows = _ref$rows === void 0 ? 4 : _ref$rows,
70
- onChange = _ref.onChange,
71
- onBlur = _ref.onBlur,
72
- error = _ref.error,
73
- pattern = _ref.pattern,
74
- minLength = _ref.minLength,
75
- maxLength = _ref.maxLength,
76
- _ref$autocomplete = _ref.autocomplete,
77
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
78
- margin = _ref.margin,
79
- _ref$size = _ref.size,
80
- size = _ref$size === void 0 ? "medium" : _ref$size,
81
- _ref$tabIndex = _ref.tabIndex,
82
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
83
-
84
- var _useState = (0, _react.useState)(""),
85
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
86
- innerValue = _useState2[0],
87
- setInnerValue = _useState2[1];
88
-
27
+ _ref$name = _ref.name,
28
+ name = _ref$name === void 0 ? "" : _ref$name,
29
+ _ref$defaultValue = _ref.defaultValue,
30
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
31
+ value = _ref.value,
32
+ helperText = _ref.helperText,
33
+ _ref$placeholder = _ref.placeholder,
34
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
35
+ _ref$disabled = _ref.disabled,
36
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
37
+ _ref$readOnly = _ref.readOnly,
38
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
39
+ _ref$optional = _ref.optional,
40
+ optional = _ref$optional === void 0 ? false : _ref$optional,
41
+ _ref$verticalGrow = _ref.verticalGrow,
42
+ verticalGrow = _ref$verticalGrow === void 0 ? "auto" : _ref$verticalGrow,
43
+ _ref$rows = _ref.rows,
44
+ rows = _ref$rows === void 0 ? 4 : _ref$rows,
45
+ onChange = _ref.onChange,
46
+ onBlur = _ref.onBlur,
47
+ error = _ref.error,
48
+ pattern = _ref.pattern,
49
+ minLength = _ref.minLength,
50
+ maxLength = _ref.maxLength,
51
+ _ref$autocomplete = _ref.autocomplete,
52
+ autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
53
+ margin = _ref.margin,
54
+ _ref$size = _ref.size,
55
+ size = _ref$size === void 0 ? "medium" : _ref$size,
56
+ _ref$tabIndex = _ref.tabIndex,
57
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
58
+ var _useState = (0, _react.useState)(defaultValue),
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ innerValue = _useState2[0],
61
+ setInnerValue = _useState2[1];
89
62
  var _useState3 = (0, _react.useState)("textarea-".concat((0, _uuid.v4)())),
90
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
91
- textareaId = _useState4[0];
92
-
63
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
64
+ textareaId = _useState4[0];
93
65
  var colorsTheme = (0, _useTheme["default"])();
94
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
66
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
95
67
  var textareaRef = (0, _react.useRef)(null);
96
- var errorId = "error-message-".concat(textareaId);
97
-
98
- var getLengthErrorMessage = function getLengthErrorMessage() {
99
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
100
- };
101
-
68
+ var errorId = "error-".concat(textareaId);
102
69
  var isNotOptional = function isNotOptional(value) {
103
70
  return value === "" && !optional;
104
71
  };
105
-
106
72
  var isLengthIncorrect = function isLengthIncorrect(value) {
107
73
  return value !== "" && minLength && maxLength && (value.length < minLength || value.length > maxLength);
108
74
  };
109
-
110
75
  var changeValue = function changeValue(newValue) {
111
76
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
112
77
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
113
78
  value: newValue,
114
- error: getNotOptionalErrorMessage()
79
+ error: translatedLabels.formFields.requiredValueErrorMessage
115
80
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
116
81
  value: newValue,
117
- error: getLengthErrorMessage()
82
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
118
83
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
119
84
  value: newValue,
120
- error: getPatternErrorMessage()
85
+ error: translatedLabels.formFields.formatRequestedErrorMessage
121
86
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
122
- value: newValue,
123
- error: null
87
+ value: newValue
124
88
  });
125
89
  };
126
-
127
- var handleTOnBlur = function handleTOnBlur(event) {
90
+ var autoVerticalGrow = function autoVerticalGrow() {
91
+ var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
92
+ var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
93
+ textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
94
+ var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
95
+ textareaRef.current.style.height = "".concat(newHeight, "px");
96
+ };
97
+ var handleOnBlur = function handleOnBlur(event) {
128
98
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
129
99
  value: event.target.value,
130
- error: getNotOptionalErrorMessage()
100
+ error: translatedLabels.formFields.requiredValueErrorMessage
131
101
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
132
102
  value: event.target.value,
133
- error: getLengthErrorMessage()
103
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
134
104
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
135
105
  value: event.target.value,
136
- error: getPatternErrorMessage()
106
+ error: translatedLabels.formFields.formatRequestedErrorMessage
137
107
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
138
- value: event.target.value,
139
- error: null
108
+ value: event.target.value
140
109
  });
141
110
  };
142
-
143
- var handleTOnChange = function handleTOnChange(event) {
111
+ var handleOnChange = function handleOnChange(event) {
144
112
  changeValue(event.target.value);
113
+ verticalGrow === "auto" && autoVerticalGrow();
145
114
  };
146
-
147
- (0, _react.useLayoutEffect)(function () {
148
- if (verticalGrow === "auto") {
149
- var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
150
- var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
151
- textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
152
- var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
153
- textareaRef.current.style.height = "".concat(newHeight, "px");
154
- }
155
- }, [value, verticalGrow, rows, innerValue]);
156
115
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
157
116
  theme: colorsTheme.textarea
158
117
  }, /*#__PURE__*/_react["default"].createElement(TextareaContainer, {
@@ -162,11 +121,9 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
162
121
  }, label && /*#__PURE__*/_react["default"].createElement(Label, {
163
122
  htmlFor: textareaId,
164
123
  disabled: disabled,
165
- backgroundType: backgroundType,
166
124
  helperText: helperText
167
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
168
- disabled: disabled,
169
- backgroundType: backgroundType
125
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
126
+ disabled: disabled
170
127
  }, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
171
128
  id: textareaId,
172
129
  name: name,
@@ -174,37 +131,34 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
174
131
  placeholder: placeholder,
175
132
  verticalGrow: verticalGrow,
176
133
  rows: rows,
177
- onChange: handleTOnChange,
178
- onBlur: handleTOnBlur,
134
+ onChange: handleOnChange,
135
+ onBlur: handleOnBlur,
179
136
  disabled: disabled,
137
+ readOnly: readOnly,
180
138
  error: error,
181
139
  minLength: minLength,
182
140
  maxLength: maxLength,
183
141
  autoComplete: autocomplete,
184
- backgroundType: backgroundType,
185
142
  ref: textareaRef,
186
143
  tabIndex: tabIndex,
187
- "aria-invalid": error ? "true" : "false",
188
- "aria-describedby": error ? errorId : undefined,
189
- "aria-required": optional ? "false" : "true"
144
+ "aria-invalid": error ? true : false,
145
+ "aria-errormessage": error ? errorId : undefined,
146
+ "aria-required": !disabled && !optional
190
147
  }), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
191
148
  id: errorId,
192
- backgroundType: backgroundType
149
+ "aria-live": error ? "assertive" : "off"
193
150
  }, error)));
194
151
  });
195
-
196
152
  var sizes = {
197
153
  small: "240px",
198
154
  medium: "360px",
199
155
  large: "480px",
200
156
  fillParent: "100%"
201
157
  };
202
-
203
158
  var calculateWidth = function calculateWidth(margin, size) {
204
159
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
205
160
  };
206
-
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) {
161
+ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
208
162
  return calculateWidth(props.margin, props.size);
209
163
  }, function (props) {
210
164
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -217,9 +171,8 @@ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_te
217
171
  }, function (props) {
218
172
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
219
173
  });
220
-
221
174
  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) {
222
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
175
+ return props.disabled ? props.theme.disabledLabelFontColor : props.theme.labelFontColor;
223
176
  }, function (props) {
224
177
  return props.theme.fontFamily;
225
178
  }, function (props) {
@@ -233,13 +186,11 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
233
186
  }, function (props) {
234
187
  return !props.helperText && "margin-bottom: 0.25rem";
235
188
  });
236
-
237
189
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
238
190
  return props.theme.optionalLabelFontWeight;
239
191
  });
240
-
241
192
  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) {
242
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
193
+ return props.disabled ? props.theme.disabledHelperTextFontColor : props.theme.helperTextFontColor;
243
194
  }, function (props) {
244
195
  return props.theme.fontFamily;
245
196
  }, function (props) {
@@ -251,21 +202,19 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
251
202
  }, function (props) {
252
203
  return props.theme.helperTextLineHeight;
253
204
  });
254
-
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) {
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;";
257
- }, function (props) {
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;";
205
+ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\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 (_ref2) {
206
+ var verticalGrow = _ref2.verticalGrow;
207
+ if (verticalGrow === "none") return "resize: none;";else if (verticalGrow === "auto") return "resize: none; overflow: hidden;";else if (verticalGrow === "manual") return "resize: vertical;";else return "resize: none;";
259
208
  }, function (props) {
260
- if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
209
+ return props.disabled ? "background-color: ".concat(props.theme.disabledContainerFillColor, ";") : "background-color: transparent;";
261
210
  }, function (props) {
262
- return props.error && !props.disabled && "border-color: transparent;\n box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorBorderColor, ";\n ");
211
+ if (props.disabled) return props.theme.disabledBorderColor;else if (props.error) return "transparent";else if (props.readOnly) return props.theme.readOnlyBorderColor;else props.theme.enabledBorderColor;
263
212
  }, function (props) {
264
- return props.disabled && "cursor: not-allowed;";
213
+ return props.error && !props.disabled && "box-shadow: 0 0 0 2px ".concat(props.theme.errorBorderColor, ";\n ");
265
214
  }, function (props) {
266
- return !props.disabled && "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:focus-within {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ");
215
+ return !props.disabled ? "&:hover {\n border-color: ".concat(props.error ? "transparent" : props.readOnly ? props.theme.hoverReadOnlyBorderColor : props.theme.hoverBorderColor, ";\n ").concat(props.error && "box-shadow: 0 0 0 2px ".concat(props.theme.hoverErrorBorderColor, ";"), "\n }\n &:focus, &:focus-within {\n outline: none;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.theme.focusBorderColor, ";\n }") : "cursor: not-allowed;";
267
216
  }, function (props) {
268
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledValueFontColorOnDark : props.theme.disabledValueFontColor : props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
217
+ return props.disabled ? props.theme.disabledValueFontColor : props.theme.valueFontColor;
269
218
  }, function (props) {
270
219
  return props.theme.fontFamily;
271
220
  }, function (props) {
@@ -275,40 +224,11 @@ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templ
275
224
  }, function (props) {
276
225
  return props.theme.valueFontWeight;
277
226
  }, function (props) {
278
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPlaceholderFontColorOnDark : props.theme.disabledPlaceholderFontColor : props.backgroundType === "dark" ? props.theme.placeholderFontColorOnDark : props.theme.placeholderFontColor;
227
+ return props.disabled ? props.theme.disabledPlaceholderFontColor : props.theme.placeholderFontColor;
279
228
  });
280
-
281
229
  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) {
282
- return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
230
+ return props.theme.errorMessageColor;
283
231
  }, function (props) {
284
232
  return props.theme.fontFamily;
285
233
  });
286
-
287
- DxcTextarea.propTypes = {
288
- label: _propTypes["default"].string,
289
- name: _propTypes["default"].string,
290
- value: _propTypes["default"].string,
291
- helperText: _propTypes["default"].string,
292
- placeholder: _propTypes["default"].string,
293
- verticalGrow: _propTypes["default"].oneOf(["auto", "none", "manual"]),
294
- rows: _propTypes["default"].number,
295
- minLength: _propTypes["default"].number,
296
- maxLength: _propTypes["default"].number,
297
- pattern: _propTypes["default"].string,
298
- disabled: _propTypes["default"].bool,
299
- optional: _propTypes["default"].bool,
300
- onChange: _propTypes["default"].func,
301
- onBlur: _propTypes["default"].func,
302
- error: _propTypes["default"].string,
303
- autocomplete: _propTypes["default"].string,
304
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
305
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
306
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
307
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
308
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
309
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
310
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
311
- tabIndex: _propTypes["default"].number
312
- };
313
- var _default = DxcTextarea;
314
- exports["default"] = _default;
234
+ var _default = exports["default"] = DxcTextarea;