@dxc-technology/halstack-react 0.0.0-3716032 → 0.0.0-381476a

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 (340) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +6 -19
  3. package/HalstackContext.d.ts +1356 -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 -190
  8. package/accordion/Accordion.stories.tsx +103 -120
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +11 -22
  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 +17 -22
  18. package/alert/Alert.js +22 -55
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +75 -0
  21. package/alert/types.d.ts +5 -5
  22. package/badge/Badge.d.ts +4 -0
  23. package/badge/Badge.js +8 -19
  24. package/badge/types.d.ts +5 -0
  25. package/bleed/Bleed.d.ts +3 -0
  26. package/bleed/Bleed.js +43 -0
  27. package/bleed/Bleed.stories.tsx +342 -0
  28. package/bleed/types.d.ts +37 -0
  29. package/box/Box.d.ts +1 -1
  30. package/box/Box.js +29 -77
  31. package/box/Box.stories.tsx +38 -51
  32. package/box/Box.test.js +13 -0
  33. package/box/types.d.ts +3 -14
  34. package/bulleted-list/BulletedList.d.ts +7 -0
  35. package/bulleted-list/BulletedList.js +99 -0
  36. package/bulleted-list/BulletedList.stories.tsx +116 -0
  37. package/bulleted-list/types.d.ts +38 -0
  38. package/button/Button.d.ts +1 -1
  39. package/button/Button.js +61 -119
  40. package/button/Button.stories.tsx +164 -96
  41. package/button/Button.test.js +36 -0
  42. package/button/types.d.ts +12 -12
  43. package/card/Card.d.ts +1 -1
  44. package/card/Card.js +58 -102
  45. package/card/Card.stories.tsx +13 -43
  46. package/card/Card.test.js +39 -0
  47. package/card/types.d.ts +6 -11
  48. package/checkbox/Checkbox.d.ts +2 -2
  49. package/checkbox/Checkbox.js +145 -178
  50. package/checkbox/Checkbox.stories.tsx +166 -136
  51. package/checkbox/Checkbox.test.js +199 -0
  52. package/checkbox/types.d.ts +18 -6
  53. package/chip/Chip.d.ts +1 -1
  54. package/chip/Chip.js +46 -124
  55. package/chip/Chip.stories.tsx +123 -30
  56. package/chip/Chip.test.js +41 -0
  57. package/chip/types.d.ts +8 -16
  58. package/common/OpenSans.css +68 -80
  59. package/common/coreTokens.d.ts +146 -0
  60. package/common/coreTokens.js +166 -0
  61. package/common/utils.d.ts +1 -0
  62. package/common/utils.js +6 -12
  63. package/common/variables.d.ts +1499 -0
  64. package/common/variables.js +1117 -1320
  65. package/date-input/Calendar.d.ts +4 -0
  66. package/date-input/Calendar.js +214 -0
  67. package/date-input/DateInput.js +173 -308
  68. package/date-input/DateInput.stories.tsx +203 -56
  69. package/date-input/DateInput.test.js +808 -0
  70. package/date-input/DatePicker.d.ts +4 -0
  71. package/date-input/DatePicker.js +115 -0
  72. package/date-input/Icons.d.ts +6 -0
  73. package/date-input/Icons.js +58 -0
  74. package/date-input/YearPicker.d.ts +4 -0
  75. package/date-input/YearPicker.js +100 -0
  76. package/date-input/types.d.ts +86 -22
  77. package/dialog/Dialog.d.ts +1 -1
  78. package/dialog/Dialog.js +70 -129
  79. package/dialog/Dialog.stories.tsx +154 -171
  80. package/dialog/Dialog.test.js +307 -0
  81. package/dialog/types.d.ts +18 -25
  82. package/dropdown/Dropdown.d.ts +1 -1
  83. package/dropdown/Dropdown.js +244 -327
  84. package/dropdown/Dropdown.stories.tsx +255 -64
  85. package/dropdown/Dropdown.test.js +599 -0
  86. package/dropdown/DropdownMenu.d.ts +4 -0
  87. package/dropdown/DropdownMenu.js +63 -0
  88. package/dropdown/DropdownMenuItem.d.ts +4 -0
  89. package/dropdown/DropdownMenuItem.js +67 -0
  90. package/dropdown/types.d.ts +36 -27
  91. package/file-input/FileInput.d.ts +2 -2
  92. package/file-input/FileInput.js +224 -356
  93. package/file-input/FileInput.stories.tsx +123 -11
  94. package/file-input/FileInput.test.js +408 -0
  95. package/file-input/FileItem.d.ts +4 -14
  96. package/file-input/FileItem.js +50 -99
  97. package/file-input/types.d.ts +25 -8
  98. package/flex/Flex.d.ts +4 -0
  99. package/flex/Flex.js +57 -0
  100. package/flex/Flex.stories.tsx +112 -0
  101. package/flex/types.d.ts +97 -0
  102. package/flex/types.js +5 -0
  103. package/footer/Footer.d.ts +1 -1
  104. package/footer/Footer.js +54 -179
  105. package/footer/Footer.stories.tsx +41 -19
  106. package/footer/Footer.test.js +85 -0
  107. package/footer/Icons.d.ts +2 -2
  108. package/footer/Icons.js +3 -8
  109. package/footer/types.d.ts +21 -22
  110. package/grid/Grid.d.ts +7 -0
  111. package/grid/Grid.js +76 -0
  112. package/grid/Grid.stories.tsx +219 -0
  113. package/grid/types.d.ts +115 -0
  114. package/grid/types.js +5 -0
  115. package/header/Header.d.ts +4 -3
  116. package/header/Header.js +104 -197
  117. package/header/Header.stories.tsx +152 -63
  118. package/header/Header.test.js +66 -0
  119. package/header/Icons.d.ts +2 -2
  120. package/header/Icons.js +4 -9
  121. package/header/types.d.ts +5 -20
  122. package/heading/Heading.js +10 -32
  123. package/heading/Heading.stories.tsx +3 -2
  124. package/heading/Heading.test.js +169 -0
  125. package/heading/types.d.ts +7 -7
  126. package/image/Image.d.ts +4 -0
  127. package/image/Image.js +70 -0
  128. package/image/Image.stories.tsx +127 -0
  129. package/image/types.d.ts +72 -0
  130. package/image/types.js +5 -0
  131. package/inset/Inset.d.ts +3 -0
  132. package/inset/Inset.js +43 -0
  133. package/inset/Inset.stories.tsx +230 -0
  134. package/inset/types.d.ts +37 -0
  135. package/inset/types.js +5 -0
  136. package/layout/ApplicationLayout.d.ts +16 -6
  137. package/layout/ApplicationLayout.js +83 -174
  138. package/layout/ApplicationLayout.stories.tsx +85 -94
  139. package/layout/Icons.d.ts +8 -0
  140. package/layout/Icons.js +51 -48
  141. package/layout/SidenavContext.d.ts +5 -0
  142. package/layout/SidenavContext.js +13 -0
  143. package/layout/types.d.ts +19 -35
  144. package/link/Link.d.ts +3 -2
  145. package/link/Link.js +64 -110
  146. package/link/Link.stories.tsx +159 -52
  147. package/link/Link.test.js +63 -0
  148. package/link/types.d.ts +15 -35
  149. package/main.d.ts +14 -16
  150. package/main.js +61 -120
  151. package/nav-tabs/NavTabs.d.ts +8 -0
  152. package/nav-tabs/NavTabs.js +90 -0
  153. package/nav-tabs/NavTabs.stories.tsx +274 -0
  154. package/nav-tabs/NavTabs.test.js +75 -0
  155. package/nav-tabs/Tab.d.ts +4 -0
  156. package/nav-tabs/Tab.js +117 -0
  157. package/nav-tabs/types.d.ts +52 -0
  158. package/nav-tabs/types.js +5 -0
  159. package/number-input/NumberInput.d.ts +7 -0
  160. package/number-input/NumberInput.js +27 -43
  161. package/number-input/NumberInput.stories.tsx +44 -28
  162. package/number-input/NumberInput.test.js +830 -0
  163. package/number-input/types.d.ts +28 -15
  164. package/package.json +44 -43
  165. package/paginator/Icons.d.ts +5 -0
  166. package/paginator/Icons.js +21 -47
  167. package/paginator/Paginator.js +33 -87
  168. package/paginator/Paginator.stories.tsx +24 -0
  169. package/paginator/Paginator.test.js +335 -0
  170. package/paginator/types.d.ts +3 -3
  171. package/paragraph/Paragraph.d.ts +5 -0
  172. package/paragraph/Paragraph.js +27 -0
  173. package/paragraph/Paragraph.stories.tsx +27 -0
  174. package/password-input/Icons.d.ts +6 -0
  175. package/password-input/Icons.js +35 -0
  176. package/password-input/PasswordInput.js +57 -123
  177. package/password-input/PasswordInput.stories.tsx +3 -34
  178. package/password-input/PasswordInput.test.js +198 -0
  179. package/password-input/types.d.ts +21 -17
  180. package/progress-bar/ProgressBar.js +67 -87
  181. package/progress-bar/ProgressBar.stories.tsx +93 -0
  182. package/progress-bar/ProgressBar.test.js +93 -0
  183. package/progress-bar/types.d.ts +3 -3
  184. package/quick-nav/QuickNav.d.ts +4 -0
  185. package/quick-nav/QuickNav.js +94 -0
  186. package/quick-nav/QuickNav.stories.tsx +356 -0
  187. package/quick-nav/types.d.ts +21 -0
  188. package/quick-nav/types.js +5 -0
  189. package/radio-group/Radio.d.ts +4 -0
  190. package/radio-group/Radio.js +124 -0
  191. package/radio-group/RadioGroup.d.ts +4 -0
  192. package/radio-group/RadioGroup.js +235 -0
  193. package/radio-group/RadioGroup.stories.tsx +214 -0
  194. package/radio-group/RadioGroup.test.js +756 -0
  195. package/radio-group/types.d.ts +114 -0
  196. package/radio-group/types.js +5 -0
  197. package/resultset-table/Icons.d.ts +7 -0
  198. package/resultset-table/Icons.js +47 -0
  199. package/resultset-table/ResultsetTable.js +159 -0
  200. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +56 -32
  201. package/resultset-table/ResultsetTable.test.js +305 -0
  202. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  203. package/resultset-table/types.js +5 -0
  204. package/select/Icons.d.ts +10 -0
  205. package/select/Icons.js +89 -0
  206. package/select/Listbox.d.ts +4 -0
  207. package/select/Listbox.js +143 -0
  208. package/select/Option.d.ts +4 -0
  209. package/select/Option.js +80 -0
  210. package/select/Select.js +210 -491
  211. package/select/Select.stories.tsx +603 -204
  212. package/select/Select.test.js +2334 -0
  213. package/select/types.d.ts +64 -25
  214. package/sidenav/Icons.d.ts +7 -0
  215. package/sidenav/Icons.js +47 -0
  216. package/sidenav/Sidenav.d.ts +6 -5
  217. package/sidenav/Sidenav.js +133 -70
  218. package/sidenav/Sidenav.stories.tsx +251 -134
  219. package/sidenav/Sidenav.test.js +37 -0
  220. package/sidenav/types.d.ts +52 -26
  221. package/slider/Slider.d.ts +2 -2
  222. package/slider/Slider.js +145 -168
  223. package/slider/Slider.test.js +254 -0
  224. package/slider/types.d.ts +11 -3
  225. package/spinner/Spinner.js +28 -64
  226. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  227. package/spinner/Spinner.test.js +55 -0
  228. package/spinner/types.d.ts +3 -3
  229. package/switch/Switch.d.ts +2 -2
  230. package/switch/Switch.js +152 -112
  231. package/switch/Switch.stories.tsx +45 -68
  232. package/switch/Switch.test.js +180 -0
  233. package/switch/types.d.ts +13 -5
  234. package/table/Table.js +7 -26
  235. package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
  236. package/table/Table.test.js +21 -0
  237. package/table/types.d.ts +8 -8
  238. package/tabs/Tab.d.ts +4 -0
  239. package/tabs/Tab.js +113 -0
  240. package/tabs/Tabs.d.ts +1 -1
  241. package/tabs/Tabs.js +318 -146
  242. package/tabs/Tabs.stories.tsx +122 -17
  243. package/tabs/Tabs.test.js +294 -0
  244. package/tabs/types.d.ts +46 -24
  245. package/tag/Tag.d.ts +1 -1
  246. package/tag/Tag.js +43 -85
  247. package/tag/Tag.stories.tsx +38 -28
  248. package/tag/Tag.test.js +49 -0
  249. package/tag/types.d.ts +25 -16
  250. package/text-input/Icons.d.ts +8 -0
  251. package/text-input/Icons.js +56 -0
  252. package/text-input/Suggestion.d.ts +4 -0
  253. package/text-input/Suggestion.js +67 -0
  254. package/text-input/Suggestions.d.ts +4 -0
  255. package/text-input/Suggestions.js +89 -0
  256. package/text-input/TextInput.js +301 -495
  257. package/text-input/TextInput.stories.tsx +280 -271
  258. package/text-input/TextInput.test.js +1739 -0
  259. package/text-input/types.d.ts +71 -25
  260. package/textarea/Textarea.js +79 -123
  261. package/textarea/Textarea.stories.tsx +175 -0
  262. package/textarea/Textarea.test.js +406 -0
  263. package/textarea/types.d.ts +27 -16
  264. package/toggle-group/ToggleGroup.d.ts +2 -2
  265. package/toggle-group/ToggleGroup.js +95 -105
  266. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  267. package/toggle-group/ToggleGroup.test.js +137 -0
  268. package/toggle-group/types.d.ts +34 -17
  269. package/typography/Typography.d.ts +4 -0
  270. package/typography/Typography.js +23 -0
  271. package/typography/Typography.stories.tsx +198 -0
  272. package/typography/types.d.ts +18 -0
  273. package/typography/types.js +5 -0
  274. package/useTheme.d.ts +1251 -1
  275. package/useTheme.js +4 -11
  276. package/useTranslatedLabels.d.ts +85 -0
  277. package/useTranslatedLabels.js +14 -0
  278. package/utils/BaseTypography.d.ts +21 -0
  279. package/utils/BaseTypography.js +94 -0
  280. package/utils/FocusLock.d.ts +13 -0
  281. package/utils/FocusLock.js +114 -0
  282. package/wizard/Wizard.d.ts +1 -1
  283. package/wizard/Wizard.js +70 -101
  284. package/wizard/Wizard.stories.tsx +48 -19
  285. package/wizard/Wizard.test.js +114 -0
  286. package/wizard/types.d.ts +12 -8
  287. package/ThemeContext.d.ts +0 -15
  288. package/ThemeContext.js +0 -243
  289. package/V3Select/V3Select.js +0 -455
  290. package/V3Select/index.d.ts +0 -27
  291. package/V3Textarea/V3Textarea.js +0 -260
  292. package/V3Textarea/index.d.ts +0 -27
  293. package/card/ice-cream.jpg +0 -0
  294. package/common/RequiredComponent.js +0 -32
  295. package/date/Date.js +0 -373
  296. package/date/index.d.ts +0 -27
  297. package/input-text/Icons.js +0 -22
  298. package/input-text/InputText.js +0 -611
  299. package/input-text/index.d.ts +0 -36
  300. package/list/List.d.ts +0 -8
  301. package/list/List.js +0 -47
  302. package/list/List.stories.tsx +0 -85
  303. package/number-input/NumberInputContext.d.ts +0 -4
  304. package/number-input/NumberInputContext.js +0 -19
  305. package/number-input/numberInputContextTypes.d.ts +0 -19
  306. package/progress-bar/ProgressBar.stories.jsx +0 -58
  307. package/radio/Radio.d.ts +0 -4
  308. package/radio/Radio.js +0 -174
  309. package/radio/Radio.stories.tsx +0 -192
  310. package/radio/types.d.ts +0 -54
  311. package/resultsetTable/ResultsetTable.js +0 -251
  312. package/row/Row.d.ts +0 -11
  313. package/row/Row.js +0 -124
  314. package/row/Row.stories.tsx +0 -223
  315. package/slider/Slider.stories.tsx +0 -177
  316. package/stack/Stack.d.ts +0 -10
  317. package/stack/Stack.js +0 -94
  318. package/stack/Stack.stories.tsx +0 -150
  319. package/text/Text.d.ts +0 -7
  320. package/text/Text.js +0 -30
  321. package/text/Text.stories.tsx +0 -19
  322. package/textarea/Textarea.stories.jsx +0 -135
  323. package/toggle/Toggle.js +0 -186
  324. package/toggle/index.d.ts +0 -21
  325. package/upload/Upload.js +0 -201
  326. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  327. package/upload/buttons-upload/Icons.js +0 -40
  328. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  329. package/upload/dragAndDropArea/Icons.js +0 -39
  330. package/upload/file-upload/FileToUpload.js +0 -115
  331. package/upload/file-upload/Icons.js +0 -66
  332. package/upload/files-upload/FilesToUpload.js +0 -109
  333. package/upload/index.d.ts +0 -15
  334. package/upload/transaction/Icons.js +0 -160
  335. package/upload/transaction/Transaction.js +0 -104
  336. package/upload/transactions/Transactions.js +0 -94
  337. /package/{radio → badge}/types.js +0 -0
  338. /package/{resultsetTable → bleed}/types.js +0 -0
  339. /package/{number-input/numberInputContextTypes.js → bulleted-list/types.js} +0 -0
  340. /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;
@@ -1,154 +1,119 @@
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
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
- var _utils = require("../common/utils.js");
23
-
14
+ var _utils = require("../common/utils");
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
- var _variables = require("../common/variables.js");
27
-
16
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
17
+ var _variables = require("../common/variables");
28
18
  var _uuid = require("uuid");
29
-
30
19
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
31
-
32
20
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
33
-
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); }
35
-
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; }
37
-
38
- var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
39
- return "This field is required. Please, enter a value.";
40
- };
41
-
42
- var getPatternErrorMessage = function getPatternErrorMessage() {
43
- return "Please match the format requested.";
44
- };
45
-
21
+ 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); }
22
+ 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; }
46
23
  var patternMatch = function patternMatch(pattern, value) {
47
24
  return new RegExp(pattern).test(value);
48
25
  };
49
-
50
26
  var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
51
27
  var label = _ref.label,
52
- _ref$name = _ref.name,
53
- name = _ref$name === void 0 ? "" : _ref$name,
54
- value = _ref.value,
55
- helperText = _ref.helperText,
56
- _ref$placeholder = _ref.placeholder,
57
- placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
58
- _ref$disabled = _ref.disabled,
59
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
60
- _ref$optional = _ref.optional,
61
- optional = _ref$optional === void 0 ? false : _ref$optional,
62
- _ref$verticalGrow = _ref.verticalGrow,
63
- verticalGrow = _ref$verticalGrow === void 0 ? "auto" : _ref$verticalGrow,
64
- _ref$rows = _ref.rows,
65
- rows = _ref$rows === void 0 ? 4 : _ref$rows,
66
- onChange = _ref.onChange,
67
- onBlur = _ref.onBlur,
68
- error = _ref.error,
69
- pattern = _ref.pattern,
70
- minLength = _ref.minLength,
71
- maxLength = _ref.maxLength,
72
- _ref$autocomplete = _ref.autocomplete,
73
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
74
- margin = _ref.margin,
75
- _ref$size = _ref.size,
76
- size = _ref$size === void 0 ? "medium" : _ref$size,
77
- _ref$tabIndex = _ref.tabIndex,
78
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
79
-
80
- var _useState = (0, _react.useState)(""),
81
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
82
- innerValue = _useState2[0],
83
- setInnerValue = _useState2[1];
84
-
28
+ _ref$name = _ref.name,
29
+ name = _ref$name === void 0 ? "" : _ref$name,
30
+ _ref$defaultValue = _ref.defaultValue,
31
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
32
+ value = _ref.value,
33
+ helperText = _ref.helperText,
34
+ _ref$placeholder = _ref.placeholder,
35
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
36
+ _ref$disabled = _ref.disabled,
37
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
38
+ _ref$readOnly = _ref.readOnly,
39
+ readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
40
+ _ref$optional = _ref.optional,
41
+ optional = _ref$optional === void 0 ? false : _ref$optional,
42
+ _ref$verticalGrow = _ref.verticalGrow,
43
+ verticalGrow = _ref$verticalGrow === void 0 ? "auto" : _ref$verticalGrow,
44
+ _ref$rows = _ref.rows,
45
+ rows = _ref$rows === void 0 ? 4 : _ref$rows,
46
+ onChange = _ref.onChange,
47
+ onBlur = _ref.onBlur,
48
+ error = _ref.error,
49
+ pattern = _ref.pattern,
50
+ minLength = _ref.minLength,
51
+ maxLength = _ref.maxLength,
52
+ _ref$autocomplete = _ref.autocomplete,
53
+ autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
54
+ margin = _ref.margin,
55
+ _ref$size = _ref.size,
56
+ size = _ref$size === void 0 ? "medium" : _ref$size,
57
+ _ref$tabIndex = _ref.tabIndex,
58
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
59
+ var _useState = (0, _react.useState)(defaultValue),
60
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
61
+ innerValue = _useState2[0],
62
+ setInnerValue = _useState2[1];
85
63
  var _useState3 = (0, _react.useState)("textarea-".concat((0, _uuid.v4)())),
86
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
87
- textareaId = _useState4[0];
88
-
64
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
65
+ textareaId = _useState4[0];
89
66
  var colorsTheme = (0, _useTheme["default"])();
90
67
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
68
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
91
69
  var textareaRef = (0, _react.useRef)(null);
92
- var errorId = "error-message-".concat(textareaId);
93
-
94
- var getLengthErrorMessage = function getLengthErrorMessage() {
95
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
96
- };
97
-
70
+ var errorId = "error-".concat(textareaId);
98
71
  var isNotOptional = function isNotOptional(value) {
99
72
  return value === "" && !optional;
100
73
  };
101
-
102
74
  var isLengthIncorrect = function isLengthIncorrect(value) {
103
75
  return value !== "" && minLength && maxLength && (value.length < minLength || value.length > maxLength);
104
76
  };
105
-
106
77
  var changeValue = function changeValue(newValue) {
107
78
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
108
79
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
109
80
  value: newValue,
110
- error: getNotOptionalErrorMessage()
81
+ error: translatedLabels.formFields.requiredValueErrorMessage
111
82
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
112
83
  value: newValue,
113
- error: getLengthErrorMessage()
84
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
114
85
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
115
86
  value: newValue,
116
- error: getPatternErrorMessage()
87
+ error: translatedLabels.formFields.formatRequestedErrorMessage
117
88
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
118
- value: newValue,
119
- error: null
89
+ value: newValue
120
90
  });
121
91
  };
122
-
123
- var handleTOnBlur = function handleTOnBlur(event) {
92
+ var autoVerticalGrow = function autoVerticalGrow() {
93
+ var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
94
+ var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
95
+ textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
96
+ var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
97
+ textareaRef.current.style.height = "".concat(newHeight, "px");
98
+ };
99
+ var handleOnBlur = function handleOnBlur(event) {
124
100
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
125
101
  value: event.target.value,
126
- error: getNotOptionalErrorMessage()
102
+ error: translatedLabels.formFields.requiredValueErrorMessage
127
103
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
128
104
  value: event.target.value,
129
- error: getLengthErrorMessage()
105
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
130
106
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
131
107
  value: event.target.value,
132
- error: getPatternErrorMessage()
108
+ error: translatedLabels.formFields.formatRequestedErrorMessage
133
109
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
134
- value: event.target.value,
135
- error: null
110
+ value: event.target.value
136
111
  });
137
112
  };
138
-
139
- var handleTOnChange = function handleTOnChange(event) {
113
+ var handleOnChange = function handleOnChange(event) {
140
114
  changeValue(event.target.value);
115
+ verticalGrow === "auto" && autoVerticalGrow();
141
116
  };
142
-
143
- (0, _react.useLayoutEffect)(function () {
144
- if (verticalGrow === "auto") {
145
- var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
146
- var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
147
- textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
148
- var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
149
- textareaRef.current.style.height = "".concat(newHeight, "px");
150
- }
151
- }, [value, verticalGrow, rows, innerValue]);
152
117
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
153
118
  theme: colorsTheme.textarea
154
119
  }, /*#__PURE__*/_react["default"].createElement(TextareaContainer, {
@@ -160,7 +125,7 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
160
125
  disabled: disabled,
161
126
  backgroundType: backgroundType,
162
127
  helperText: helperText
163
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
128
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
164
129
  disabled: disabled,
165
130
  backgroundType: backgroundType
166
131
  }, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
@@ -170,9 +135,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
170
135
  placeholder: placeholder,
171
136
  verticalGrow: verticalGrow,
172
137
  rows: rows,
173
- onChange: handleTOnChange,
174
- onBlur: handleTOnBlur,
138
+ onChange: handleOnChange,
139
+ onBlur: handleOnBlur,
175
140
  disabled: disabled,
141
+ readOnly: readOnly,
176
142
  error: error,
177
143
  minLength: minLength,
178
144
  maxLength: maxLength,
@@ -180,27 +146,25 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
180
146
  backgroundType: backgroundType,
181
147
  ref: textareaRef,
182
148
  tabIndex: tabIndex,
183
- "aria-invalid": error ? "true" : "false",
184
- "aria-describedby": error ? errorId : undefined,
185
- "aria-required": optional ? "false" : "true"
149
+ "aria-invalid": error ? true : false,
150
+ "aria-errormessage": error ? errorId : undefined,
151
+ "aria-required": !disabled && !optional
186
152
  }), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
187
153
  id: errorId,
188
- backgroundType: backgroundType
154
+ backgroundType: backgroundType,
155
+ "aria-live": error ? "assertive" : "off"
189
156
  }, error)));
190
157
  });
191
-
192
158
  var sizes = {
193
159
  small: "240px",
194
160
  medium: "360px",
195
161
  large: "480px",
196
162
  fillParent: "100%"
197
163
  };
198
-
199
164
  var calculateWidth = function calculateWidth(margin, size) {
200
165
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
201
166
  };
202
-
203
- 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) {
167
+ 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) {
204
168
  return calculateWidth(props.margin, props.size);
205
169
  }, function (props) {
206
170
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -213,7 +177,6 @@ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_te
213
177
  }, function (props) {
214
178
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
215
179
  });
216
-
217
180
  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) {
218
181
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
219
182
  }, function (props) {
@@ -229,11 +192,9 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
229
192
  }, function (props) {
230
193
  return !props.helperText && "margin-bottom: 0.25rem";
231
194
  });
232
-
233
195
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
234
196
  return props.theme.optionalLabelFontWeight;
235
197
  });
236
-
237
198
  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) {
238
199
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
239
200
  }, function (props) {
@@ -247,19 +208,17 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
247
208
  }, function (props) {
248
209
  return props.theme.helperTextLineHeight;
249
210
  });
250
-
251
- 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) {
252
- 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;";
211
+ 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) {
212
+ var verticalGrow = _ref2.verticalGrow;
213
+ 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;";
253
214
  }, function (props) {
254
215
  if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");else return "background-color: transparent;";
255
216
  }, function (props) {
256
- if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
257
- }, function (props) {
258
- 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 ");
217
+ if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else if (props.error) return "transparent";else if (props.readOnly) return props.theme.readOnlyBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
259
218
  }, function (props) {
260
- return props.disabled && "cursor: not-allowed;";
219
+ return props.error && !props.disabled && "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorBorderColor, ";\n ");
261
220
  }, function (props) {
262
- 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 ");
221
+ return !props.disabled ? "&:hover {\n border-color: ".concat(props.error ? "transparent" : props.readOnly ? props.theme.hoverReadOnlyBorderColor : 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, &: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 }") : "cursor: not-allowed;";
263
222
  }, function (props) {
264
223
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledValueFontColorOnDark : props.theme.disabledValueFontColor : props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
265
224
  }, function (props) {
@@ -273,12 +232,9 @@ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templ
273
232
  }, function (props) {
274
233
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPlaceholderFontColorOnDark : props.theme.disabledPlaceholderFontColor : props.backgroundType === "dark" ? props.theme.placeholderFontColorOnDark : props.theme.placeholderFontColor;
275
234
  });
276
-
277
235
  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) {
278
236
  return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
279
237
  }, function (props) {
280
238
  return props.theme.fontFamily;
281
239
  });
282
-
283
- var _default = DxcTextarea;
284
- exports["default"] = _default;
240
+ var _default = exports["default"] = DxcTextarea;