@dxc-technology/halstack-react 0.0.0-31c6b1f → 0.0.0-324b670

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 (311) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1235 -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 +116 -160
  8. package/accordion/Accordion.stories.tsx +103 -127
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +31 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  18. package/alert/Alert.js +23 -59
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +29 -46
  21. package/alert/types.d.ts +5 -5
  22. package/badge/Badge.d.ts +1 -1
  23. package/badge/Badge.js +8 -19
  24. package/badge/types.d.ts +2 -1
  25. package/bleed/Bleed.js +14 -55
  26. package/bleed/Bleed.stories.tsx +95 -95
  27. package/bleed/types.d.ts +2 -2
  28. package/box/Box.d.ts +1 -1
  29. package/box/Box.js +30 -81
  30. package/box/Box.stories.tsx +38 -51
  31. package/box/Box.test.js +2 -7
  32. package/box/types.d.ts +3 -14
  33. package/bulleted-list/BulletedList.d.ts +7 -0
  34. package/bulleted-list/BulletedList.js +89 -0
  35. package/bulleted-list/BulletedList.stories.tsx +115 -0
  36. package/bulleted-list/types.d.ts +38 -0
  37. package/button/Button.d.ts +1 -1
  38. package/button/Button.js +63 -115
  39. package/button/Button.stories.tsx +160 -90
  40. package/button/Button.test.js +18 -17
  41. package/button/types.d.ts +12 -8
  42. package/card/Card.d.ts +1 -1
  43. package/card/Card.js +64 -107
  44. package/card/Card.stories.tsx +12 -42
  45. package/card/Card.test.js +11 -22
  46. package/card/types.d.ts +6 -11
  47. package/checkbox/Checkbox.d.ts +2 -2
  48. package/checkbox/Checkbox.js +142 -181
  49. package/checkbox/Checkbox.stories.tsx +128 -94
  50. package/checkbox/Checkbox.test.js +160 -39
  51. package/checkbox/types.d.ts +11 -3
  52. package/chip/Chip.js +39 -79
  53. package/chip/Chip.stories.tsx +121 -26
  54. package/chip/Chip.test.js +16 -31
  55. package/chip/types.d.ts +4 -4
  56. package/common/OpenSans.css +68 -80
  57. package/common/coreTokens.d.ts +237 -0
  58. package/common/coreTokens.js +184 -0
  59. package/common/utils.d.ts +1 -0
  60. package/common/utils.js +6 -12
  61. package/common/variables.d.ts +1381 -0
  62. package/common/variables.js +998 -1117
  63. package/container/Container.d.ts +4 -0
  64. package/container/Container.js +194 -0
  65. package/container/Container.stories.tsx +214 -0
  66. package/container/types.d.ts +74 -0
  67. package/date-input/Calendar.d.ts +4 -0
  68. package/date-input/Calendar.js +214 -0
  69. package/date-input/DateInput.js +153 -299
  70. package/date-input/DateInput.stories.tsx +203 -56
  71. package/date-input/DateInput.test.js +700 -371
  72. package/date-input/DatePicker.d.ts +4 -0
  73. package/date-input/DatePicker.js +115 -0
  74. package/date-input/Icons.d.ts +6 -0
  75. package/date-input/Icons.js +58 -0
  76. package/date-input/YearPicker.d.ts +4 -0
  77. package/date-input/YearPicker.js +100 -0
  78. package/date-input/types.d.ts +72 -15
  79. package/dialog/Dialog.d.ts +1 -1
  80. package/dialog/Dialog.js +73 -107
  81. package/dialog/Dialog.stories.tsx +320 -167
  82. package/dialog/Dialog.test.js +287 -20
  83. package/dialog/types.d.ts +18 -25
  84. package/dropdown/Dropdown.d.ts +1 -1
  85. package/dropdown/Dropdown.js +243 -300
  86. package/dropdown/Dropdown.stories.tsx +245 -56
  87. package/dropdown/Dropdown.test.js +575 -165
  88. package/dropdown/DropdownMenu.d.ts +4 -0
  89. package/dropdown/DropdownMenu.js +63 -0
  90. package/dropdown/DropdownMenuItem.d.ts +4 -0
  91. package/dropdown/DropdownMenuItem.js +67 -0
  92. package/dropdown/types.d.ts +32 -14
  93. package/file-input/FileInput.d.ts +2 -2
  94. package/file-input/FileInput.js +246 -357
  95. package/file-input/FileInput.stories.tsx +123 -12
  96. package/file-input/FileInput.test.js +369 -367
  97. package/file-input/FileItem.d.ts +4 -14
  98. package/file-input/FileItem.js +50 -99
  99. package/file-input/types.d.ts +25 -8
  100. package/flex/Flex.d.ts +4 -0
  101. package/flex/Flex.js +57 -0
  102. package/flex/Flex.stories.tsx +112 -0
  103. package/flex/types.d.ts +97 -0
  104. package/footer/Footer.d.ts +1 -1
  105. package/footer/Footer.js +57 -115
  106. package/footer/Footer.stories.tsx +41 -19
  107. package/footer/Footer.test.js +33 -57
  108. package/footer/Icons.d.ts +2 -2
  109. package/footer/Icons.js +3 -8
  110. package/footer/types.d.ts +21 -28
  111. package/grid/Grid.d.ts +7 -0
  112. package/grid/Grid.js +76 -0
  113. package/grid/Grid.stories.tsx +219 -0
  114. package/grid/types.d.ts +115 -0
  115. package/header/Header.d.ts +4 -3
  116. package/header/Header.js +90 -170
  117. package/header/Header.stories.tsx +118 -39
  118. package/header/Header.test.js +13 -26
  119. package/header/Icons.d.ts +2 -2
  120. package/header/Icons.js +4 -9
  121. package/header/types.d.ts +5 -19
  122. package/heading/Heading.js +10 -32
  123. package/heading/Heading.test.js +71 -88
  124. package/heading/types.d.ts +7 -7
  125. package/image/Image.d.ts +4 -0
  126. package/image/Image.js +70 -0
  127. package/image/Image.stories.tsx +127 -0
  128. package/image/types.d.ts +72 -0
  129. package/inset/Inset.js +14 -55
  130. package/inset/Inset.stories.tsx +37 -36
  131. package/inset/types.d.ts +2 -2
  132. package/layout/ApplicationLayout.d.ts +16 -6
  133. package/layout/ApplicationLayout.js +82 -166
  134. package/layout/ApplicationLayout.stories.tsx +85 -94
  135. package/layout/Icons.d.ts +8 -0
  136. package/layout/Icons.js +51 -48
  137. package/layout/SidenavContext.d.ts +5 -0
  138. package/layout/SidenavContext.js +13 -0
  139. package/layout/types.d.ts +19 -35
  140. package/link/Link.d.ts +3 -2
  141. package/link/Link.js +61 -95
  142. package/link/Link.stories.tsx +155 -53
  143. package/link/Link.test.js +25 -53
  144. package/link/types.d.ts +15 -31
  145. package/main.d.ts +11 -12
  146. package/main.js +58 -109
  147. package/nav-tabs/NavTabs.d.ts +8 -0
  148. package/nav-tabs/NavTabs.js +90 -0
  149. package/nav-tabs/NavTabs.stories.tsx +274 -0
  150. package/nav-tabs/NavTabs.test.js +75 -0
  151. package/nav-tabs/Tab.d.ts +4 -0
  152. package/nav-tabs/Tab.js +117 -0
  153. package/nav-tabs/types.d.ts +52 -0
  154. package/number-input/NumberInput.d.ts +7 -0
  155. package/number-input/NumberInput.js +26 -35
  156. package/number-input/NumberInput.stories.tsx +42 -26
  157. package/number-input/NumberInput.test.js +701 -377
  158. package/number-input/types.d.ts +12 -6
  159. package/package.json +44 -46
  160. package/paginator/Icons.d.ts +5 -0
  161. package/paginator/Icons.js +21 -47
  162. package/paginator/Paginator.js +34 -91
  163. package/paginator/Paginator.stories.tsx +24 -0
  164. package/paginator/Paginator.test.js +280 -211
  165. package/paginator/types.d.ts +3 -3
  166. package/paragraph/Paragraph.d.ts +5 -0
  167. package/paragraph/Paragraph.js +22 -0
  168. package/paragraph/Paragraph.stories.tsx +27 -0
  169. package/password-input/Icons.d.ts +6 -0
  170. package/password-input/Icons.js +35 -0
  171. package/password-input/PasswordInput.js +57 -123
  172. package/password-input/PasswordInput.stories.tsx +1 -33
  173. package/password-input/PasswordInput.test.js +160 -143
  174. package/password-input/types.d.ts +9 -8
  175. package/progress-bar/ProgressBar.js +65 -91
  176. package/progress-bar/ProgressBar.stories.tsx +93 -0
  177. package/progress-bar/ProgressBar.test.js +72 -44
  178. package/progress-bar/types.d.ts +3 -3
  179. package/quick-nav/QuickNav.js +71 -41
  180. package/quick-nav/QuickNav.stories.tsx +146 -27
  181. package/quick-nav/types.d.ts +10 -10
  182. package/radio-group/Radio.d.ts +1 -1
  183. package/radio-group/Radio.js +59 -76
  184. package/radio-group/RadioGroup.js +71 -116
  185. package/radio-group/RadioGroup.stories.tsx +132 -18
  186. package/radio-group/RadioGroup.test.js +518 -457
  187. package/radio-group/types.d.ts +10 -10
  188. package/resultset-table/Icons.d.ts +7 -0
  189. package/resultset-table/Icons.js +47 -0
  190. package/resultset-table/ResultsetTable.js +159 -0
  191. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  192. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
  193. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  194. package/resultset-table/types.js +5 -0
  195. package/select/Icons.d.ts +7 -7
  196. package/select/Icons.js +1 -5
  197. package/select/Listbox.d.ts +1 -1
  198. package/select/Listbox.js +46 -51
  199. package/select/Option.js +20 -50
  200. package/select/Select.js +155 -228
  201. package/select/Select.stories.tsx +525 -136
  202. package/select/Select.test.js +1973 -1696
  203. package/select/types.d.ts +16 -20
  204. package/sidenav/Icons.d.ts +7 -0
  205. package/sidenav/Icons.js +47 -0
  206. package/sidenav/Sidenav.d.ts +6 -5
  207. package/sidenav/Sidenav.js +131 -71
  208. package/sidenav/Sidenav.stories.tsx +251 -151
  209. package/sidenav/Sidenav.test.js +26 -45
  210. package/sidenav/types.d.ts +52 -26
  211. package/slider/Slider.d.ts +2 -2
  212. package/slider/Slider.js +149 -181
  213. package/slider/Slider.test.js +185 -81
  214. package/slider/types.d.ts +7 -3
  215. package/spinner/Spinner.js +31 -75
  216. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  217. package/spinner/Spinner.test.js +26 -35
  218. package/spinner/types.d.ts +3 -3
  219. package/switch/Switch.d.ts +2 -2
  220. package/switch/Switch.js +147 -125
  221. package/switch/Switch.stories.tsx +37 -60
  222. package/switch/Switch.test.js +138 -56
  223. package/switch/types.d.ts +7 -3
  224. package/table/Table.js +8 -30
  225. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  226. package/table/Table.test.js +3 -8
  227. package/table/types.d.ts +8 -8
  228. package/tabs/Tab.d.ts +4 -0
  229. package/tabs/Tab.js +113 -0
  230. package/tabs/Tabs.js +315 -141
  231. package/tabs/Tabs.stories.tsx +119 -11
  232. package/tabs/Tabs.test.js +223 -69
  233. package/tabs/types.d.ts +28 -18
  234. package/tag/Tag.js +29 -61
  235. package/tag/Tag.stories.tsx +14 -1
  236. package/tag/Tag.test.js +20 -31
  237. package/tag/types.d.ts +7 -7
  238. package/text-input/Icons.d.ts +8 -0
  239. package/text-input/Icons.js +56 -0
  240. package/text-input/Suggestion.d.ts +4 -0
  241. package/text-input/Suggestion.js +67 -0
  242. package/text-input/Suggestions.d.ts +4 -0
  243. package/text-input/Suggestions.js +84 -0
  244. package/text-input/TextInput.js +309 -527
  245. package/text-input/TextInput.stories.tsx +266 -275
  246. package/text-input/TextInput.test.js +1403 -1376
  247. package/text-input/types.d.ts +53 -14
  248. package/textarea/Textarea.js +79 -131
  249. package/textarea/Textarea.stories.tsx +174 -0
  250. package/textarea/Textarea.test.js +152 -183
  251. package/textarea/types.d.ts +10 -6
  252. package/toggle-group/ToggleGroup.d.ts +2 -2
  253. package/toggle-group/ToggleGroup.js +92 -106
  254. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  255. package/toggle-group/ToggleGroup.test.js +69 -88
  256. package/toggle-group/types.d.ts +26 -17
  257. package/typography/Typography.d.ts +4 -0
  258. package/typography/Typography.js +23 -0
  259. package/typography/Typography.stories.tsx +198 -0
  260. package/typography/types.d.ts +18 -0
  261. package/typography/types.js +5 -0
  262. package/useTheme.d.ts +1133 -1
  263. package/useTheme.js +4 -11
  264. package/useTranslatedLabels.d.ts +85 -0
  265. package/useTranslatedLabels.js +14 -0
  266. package/utils/BaseTypography.d.ts +21 -0
  267. package/utils/BaseTypography.js +94 -0
  268. package/utils/FocusLock.d.ts +13 -0
  269. package/utils/FocusLock.js +121 -0
  270. package/wizard/Wizard.js +51 -91
  271. package/wizard/Wizard.stories.tsx +40 -1
  272. package/wizard/Wizard.test.js +54 -81
  273. package/wizard/types.d.ts +7 -7
  274. package/ThemeContext.d.ts +0 -10
  275. package/ThemeContext.js +0 -243
  276. package/card/ice-cream.jpg +0 -0
  277. package/common/RequiredComponent.js +0 -32
  278. package/list/List.d.ts +0 -4
  279. package/list/List.js +0 -47
  280. package/list/List.stories.tsx +0 -95
  281. package/list/types.d.ts +0 -7
  282. package/number-input/NumberInputContext.d.ts +0 -4
  283. package/number-input/NumberInputContext.js +0 -19
  284. package/number-input/numberInputContextTypes.d.ts +0 -19
  285. package/progress-bar/ProgressBar.stories.jsx +0 -58
  286. package/radio/Radio.d.ts +0 -4
  287. package/radio/Radio.js +0 -173
  288. package/radio/Radio.stories.tsx +0 -192
  289. package/radio/Radio.test.js +0 -71
  290. package/radio/types.d.ts +0 -54
  291. package/resultsetTable/ResultsetTable.js +0 -254
  292. package/row/Row.d.ts +0 -3
  293. package/row/Row.js +0 -127
  294. package/row/Row.stories.tsx +0 -237
  295. package/row/types.d.ts +0 -28
  296. package/slider/Slider.stories.tsx +0 -177
  297. package/stack/Stack.d.ts +0 -3
  298. package/stack/Stack.js +0 -97
  299. package/stack/Stack.stories.tsx +0 -164
  300. package/stack/types.d.ts +0 -24
  301. package/text/Text.d.ts +0 -7
  302. package/text/Text.js +0 -30
  303. package/text/Text.stories.tsx +0 -19
  304. package/textarea/Textarea.stories.jsx +0 -157
  305. /package/{list → bulleted-list}/types.js +0 -0
  306. /package/{radio → container}/types.js +0 -0
  307. /package/{resultsetTable → flex}/types.js +0 -0
  308. /package/{row → grid}/types.js +0 -0
  309. /package/{stack → image}/types.js +0 -0
  310. /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
  311. /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
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
  */
@@ -47,8 +49,7 @@ declare type Props = {
47
49
  */
48
50
  placeholder?: string;
49
51
  /**
50
- * Action to be shown in the input. This is an object composed of an onClick function and an icon,
51
- * being the latter either an inline svg or a URL to the image.
52
+ * Action to be shown in the input.
52
53
  */
53
54
  action?: Action;
54
55
  /**
@@ -59,6 +60,12 @@ declare type Props = {
59
60
  * If true, the component will be disabled.
60
61
  */
61
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;
62
69
  /**
63
70
  * If true, the input will be optional, showing '(Optional)'
64
71
  * next to the label. Otherwise, the field will be considered required and an error will be
@@ -106,8 +113,9 @@ declare type Props = {
106
113
  /**
107
114
  * These are the options to be displayed as suggestions. It can be either an array or a function:
108
115
  * - Array: Array of options that will be filtered by the component.
109
- * - Function: This function will be called when the user changes the value, we will send as a parameter the new value;
110
- * 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.
111
119
  */
112
120
  suggestions?: string[] | ((value: string) => Promise<string[]>);
113
121
  /**
@@ -121,7 +129,7 @@ declare type Props = {
121
129
  */
122
130
  pattern?: string;
123
131
  /**
124
- * Specifies the minimun length allowed by the input.
132
+ * Specifies the minimum length allowed by the input.
125
133
  * This will be checked both when the input element loses the
126
134
  * focus and while typing within it. If the string entered does not
127
135
  * comply the minimum length, the onBlur and onChange functions will be called
@@ -151,7 +159,7 @@ declare type Props = {
151
159
  */
152
160
  margin?: Space | Margin;
153
161
  /**
154
- * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
162
+ * Size of the component.
155
163
  */
156
164
  size?: "small" | "medium" | "large" | "fillParent";
157
165
  /**
@@ -159,8 +167,39 @@ declare type Props = {
159
167
  */
160
168
  tabIndex?: number;
161
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
+ };
162
184
  /**
163
185
  * Reference to the component.
164
186
  */
165
- 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
+ };
166
205
  export default Props;
@@ -1,154 +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
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
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
31
-
32
19
  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
-
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; }
46
22
  var patternMatch = function patternMatch(pattern, value) {
47
23
  return new RegExp(pattern).test(value);
48
24
  };
49
-
50
25
  var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
51
26
  var label = _ref.label,
52
- _ref$name = _ref.name,
53
- name = _ref$name === void 0 ? "" : _ref$name,
54
- _ref$defaultValue = _ref.defaultValue,
55
- defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
56
- value = _ref.value,
57
- helperText = _ref.helperText,
58
- _ref$placeholder = _ref.placeholder,
59
- placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
60
- _ref$disabled = _ref.disabled,
61
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
62
- _ref$optional = _ref.optional,
63
- optional = _ref$optional === void 0 ? false : _ref$optional,
64
- _ref$verticalGrow = _ref.verticalGrow,
65
- verticalGrow = _ref$verticalGrow === void 0 ? "auto" : _ref$verticalGrow,
66
- _ref$rows = _ref.rows,
67
- rows = _ref$rows === void 0 ? 4 : _ref$rows,
68
- onChange = _ref.onChange,
69
- onBlur = _ref.onBlur,
70
- error = _ref.error,
71
- pattern = _ref.pattern,
72
- minLength = _ref.minLength,
73
- maxLength = _ref.maxLength,
74
- _ref$autocomplete = _ref.autocomplete,
75
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
76
- margin = _ref.margin,
77
- _ref$size = _ref.size,
78
- size = _ref$size === void 0 ? "medium" : _ref$size,
79
- _ref$tabIndex = _ref.tabIndex,
80
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
81
-
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;
82
58
  var _useState = (0, _react.useState)(defaultValue),
83
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
- innerValue = _useState2[0],
85
- setInnerValue = _useState2[1];
86
-
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ innerValue = _useState2[0],
61
+ setInnerValue = _useState2[1];
87
62
  var _useState3 = (0, _react.useState)("textarea-".concat((0, _uuid.v4)())),
88
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
89
- textareaId = _useState4[0];
90
-
63
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
64
+ textareaId = _useState4[0];
91
65
  var colorsTheme = (0, _useTheme["default"])();
92
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
66
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
93
67
  var textareaRef = (0, _react.useRef)(null);
94
68
  var errorId = "error-".concat(textareaId);
95
-
96
- var getLengthErrorMessage = function getLengthErrorMessage() {
97
- return "Min length ".concat(minLength, ", max length ").concat(maxLength, ".");
98
- };
99
-
100
69
  var isNotOptional = function isNotOptional(value) {
101
70
  return value === "" && !optional;
102
71
  };
103
-
104
72
  var isLengthIncorrect = function isLengthIncorrect(value) {
105
73
  return value !== "" && minLength && maxLength && (value.length < minLength || value.length > maxLength);
106
74
  };
107
-
108
75
  var changeValue = function changeValue(newValue) {
109
76
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
110
77
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
111
78
  value: newValue,
112
- error: getNotOptionalErrorMessage()
79
+ error: translatedLabels.formFields.requiredValueErrorMessage
113
80
  });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
114
81
  value: newValue,
115
- error: getLengthErrorMessage()
82
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
116
83
  });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
117
84
  value: newValue,
118
- error: getPatternErrorMessage()
85
+ error: translatedLabels.formFields.formatRequestedErrorMessage
119
86
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
120
87
  value: newValue
121
88
  });
122
89
  };
123
-
124
- 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) {
125
98
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
126
99
  value: event.target.value,
127
- error: getNotOptionalErrorMessage()
100
+ error: translatedLabels.formFields.requiredValueErrorMessage
128
101
  });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
129
102
  value: event.target.value,
130
- error: getLengthErrorMessage()
103
+ error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
131
104
  });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
132
105
  value: event.target.value,
133
- error: getPatternErrorMessage()
106
+ error: translatedLabels.formFields.formatRequestedErrorMessage
134
107
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
135
108
  value: event.target.value
136
109
  });
137
110
  };
138
-
139
- var handleTOnChange = function handleTOnChange(event) {
111
+ var handleOnChange = function handleOnChange(event) {
140
112
  changeValue(event.target.value);
113
+ verticalGrow === "auto" && autoVerticalGrow();
141
114
  };
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
115
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
153
116
  theme: colorsTheme.textarea
154
117
  }, /*#__PURE__*/_react["default"].createElement(TextareaContainer, {
@@ -158,11 +121,9 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
158
121
  }, label && /*#__PURE__*/_react["default"].createElement(Label, {
159
122
  htmlFor: textareaId,
160
123
  disabled: disabled,
161
- backgroundType: backgroundType,
162
124
  helperText: helperText
163
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
164
- disabled: disabled,
165
- backgroundType: backgroundType
125
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
126
+ disabled: disabled
166
127
  }, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
167
128
  id: textareaId,
168
129
  name: name,
@@ -170,39 +131,34 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
170
131
  placeholder: placeholder,
171
132
  verticalGrow: verticalGrow,
172
133
  rows: rows,
173
- onChange: handleTOnChange,
174
- onBlur: handleTOnBlur,
134
+ onChange: handleOnChange,
135
+ onBlur: handleOnBlur,
175
136
  disabled: disabled,
137
+ readOnly: readOnly,
176
138
  error: error,
177
139
  minLength: minLength,
178
140
  maxLength: maxLength,
179
141
  autoComplete: autocomplete,
180
- backgroundType: backgroundType,
181
142
  ref: textareaRef,
182
143
  tabIndex: tabIndex,
183
- "aria-disabled": disabled,
184
- "aria-invalid": error ? "true" : "false",
144
+ "aria-invalid": error ? true : false,
185
145
  "aria-errormessage": error ? errorId : undefined,
186
- "aria-required": optional ? "false" : "true"
146
+ "aria-required": !disabled && !optional
187
147
  }), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
188
148
  id: errorId,
189
- backgroundType: backgroundType,
190
149
  "aria-live": error ? "assertive" : "off"
191
150
  }, error)));
192
151
  });
193
-
194
152
  var sizes = {
195
153
  small: "240px",
196
154
  medium: "360px",
197
155
  large: "480px",
198
156
  fillParent: "100%"
199
157
  };
200
-
201
158
  var calculateWidth = function calculateWidth(margin, size) {
202
159
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
203
160
  };
204
-
205
- 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) {
206
162
  return calculateWidth(props.margin, props.size);
207
163
  }, function (props) {
208
164
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -215,9 +171,8 @@ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_te
215
171
  }, function (props) {
216
172
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
217
173
  });
218
-
219
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) {
220
- 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;
221
176
  }, function (props) {
222
177
  return props.theme.fontFamily;
223
178
  }, function (props) {
@@ -231,13 +186,11 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
231
186
  }, function (props) {
232
187
  return !props.helperText && "margin-bottom: 0.25rem";
233
188
  });
234
-
235
189
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
236
190
  return props.theme.optionalLabelFontWeight;
237
191
  });
238
-
239
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) {
240
- 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;
241
194
  }, function (props) {
242
195
  return props.theme.fontFamily;
243
196
  }, function (props) {
@@ -249,21 +202,19 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
249
202
  }, function (props) {
250
203
  return props.theme.helperTextLineHeight;
251
204
  });
252
-
253
- 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) {
254
- 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;";
255
- }, function (props) {
256
- 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;";
257
208
  }, function (props) {
258
- 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;";
259
210
  }, function (props) {
260
- 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;
261
212
  }, function (props) {
262
- return props.disabled && "cursor: not-allowed;";
213
+ return props.error && !props.disabled && "box-shadow: 0 0 0 2px ".concat(props.theme.errorBorderColor, ";\n ");
263
214
  }, function (props) {
264
- 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;";
265
216
  }, function (props) {
266
- 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;
267
218
  }, function (props) {
268
219
  return props.theme.fontFamily;
269
220
  }, function (props) {
@@ -273,14 +224,11 @@ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templ
273
224
  }, function (props) {
274
225
  return props.theme.valueFontWeight;
275
226
  }, function (props) {
276
- 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;
277
228
  });
278
-
279
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) {
280
- return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
230
+ return props.theme.errorMessageColor;
281
231
  }, function (props) {
282
232
  return props.theme.fontFamily;
283
233
  });
284
-
285
- var _default = DxcTextarea;
286
- exports["default"] = _default;
234
+ var _default = exports["default"] = DxcTextarea;