@dxc-technology/halstack-react 0.0.0-c9b5c13 → 0.0.0-c9efd3e

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 (396) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -6
  4. package/HalstackContext.js +126 -111
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +104 -161
  9. package/accordion/Accordion.stories.tsx +84 -140
  10. package/accordion/Accordion.test.js +25 -41
  11. package/accordion/types.d.ts +6 -17
  12. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  13. package/accordion-group/AccordionGroup.d.ts +2 -2
  14. package/accordion-group/AccordionGroup.js +31 -98
  15. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  16. package/accordion-group/AccordionGroup.test.js +52 -105
  17. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  18. package/accordion-group/AccordionGroupAccordion.js +31 -0
  19. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  20. package/accordion-group/AccordionGroupContext.js +8 -0
  21. package/accordion-group/types.d.ts +12 -17
  22. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  23. package/action-icon/ActionIcon.d.ts +4 -0
  24. package/action-icon/ActionIcon.js +48 -0
  25. package/action-icon/ActionIcon.stories.tsx +41 -0
  26. package/action-icon/ActionIcon.test.js +64 -0
  27. package/action-icon/types.d.ts +26 -0
  28. package/alert/Alert.accessibility.test.js +95 -0
  29. package/alert/Alert.js +32 -125
  30. package/alert/Alert.stories.tsx +28 -0
  31. package/alert/Alert.test.js +29 -46
  32. package/alert/types.d.ts +5 -5
  33. package/badge/Badge.accessibility.test.js +129 -0
  34. package/badge/Badge.d.ts +1 -1
  35. package/badge/Badge.js +142 -42
  36. package/badge/Badge.stories.tsx +210 -0
  37. package/badge/Badge.test.js +30 -0
  38. package/badge/types.d.ts +52 -3
  39. package/bleed/Bleed.js +14 -55
  40. package/bleed/Bleed.stories.tsx +95 -95
  41. package/bleed/types.d.ts +2 -2
  42. package/box/Box.accessibility.test.js +33 -0
  43. package/box/Box.d.ts +1 -1
  44. package/box/Box.js +19 -60
  45. package/box/Box.stories.tsx +38 -51
  46. package/box/Box.test.js +2 -7
  47. package/box/types.d.ts +3 -14
  48. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  49. package/bulleted-list/BulletedList.d.ts +7 -0
  50. package/bulleted-list/BulletedList.js +92 -0
  51. package/bulleted-list/BulletedList.stories.tsx +115 -0
  52. package/bulleted-list/types.d.ts +38 -0
  53. package/button/Button.accessibility.test.js +127 -0
  54. package/button/Button.d.ts +1 -1
  55. package/button/Button.js +64 -117
  56. package/button/Button.stories.tsx +151 -100
  57. package/button/Button.test.js +20 -17
  58. package/button/types.d.ts +12 -8
  59. package/card/Card.accessibility.test.js +36 -0
  60. package/card/Card.d.ts +1 -1
  61. package/card/Card.js +48 -89
  62. package/card/Card.stories.tsx +12 -42
  63. package/card/Card.test.js +11 -22
  64. package/card/types.d.ts +6 -11
  65. package/checkbox/Checkbox.accessibility.test.js +87 -0
  66. package/checkbox/Checkbox.d.ts +2 -2
  67. package/checkbox/Checkbox.js +140 -182
  68. package/checkbox/Checkbox.stories.tsx +128 -94
  69. package/checkbox/Checkbox.test.js +160 -39
  70. package/checkbox/types.d.ts +11 -3
  71. package/chip/Chip.accessibility.test.js +67 -0
  72. package/chip/Chip.js +43 -80
  73. package/chip/Chip.stories.tsx +102 -26
  74. package/chip/Chip.test.js +18 -33
  75. package/chip/types.d.ts +4 -4
  76. package/common/coreTokens.d.ts +237 -0
  77. package/common/coreTokens.js +184 -0
  78. package/common/utils.d.ts +1 -0
  79. package/common/utils.js +6 -12
  80. package/common/variables.d.ts +1395 -0
  81. package/common/variables.js +942 -1145
  82. package/container/Container.d.ts +4 -0
  83. package/container/Container.js +194 -0
  84. package/container/Container.stories.tsx +214 -0
  85. package/container/types.d.ts +74 -0
  86. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  87. package/contextual-menu/ContextualMenu.d.ts +7 -0
  88. package/contextual-menu/ContextualMenu.js +71 -0
  89. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  90. package/contextual-menu/ContextualMenu.test.js +71 -0
  91. package/contextual-menu/MenuItemAction.d.ts +4 -0
  92. package/contextual-menu/MenuItemAction.js +46 -0
  93. package/contextual-menu/types.d.ts +22 -0
  94. package/date-input/Calendar.d.ts +4 -0
  95. package/date-input/Calendar.js +214 -0
  96. package/date-input/DateInput.accessibility.test.js +216 -0
  97. package/date-input/DateInput.js +150 -299
  98. package/date-input/DateInput.stories.tsx +203 -56
  99. package/date-input/DateInput.test.js +700 -371
  100. package/date-input/DatePicker.d.ts +4 -0
  101. package/date-input/DatePicker.js +115 -0
  102. package/date-input/Icons.d.ts +6 -0
  103. package/date-input/Icons.js +58 -0
  104. package/date-input/YearPicker.d.ts +4 -0
  105. package/date-input/YearPicker.js +100 -0
  106. package/date-input/types.d.ts +72 -15
  107. package/dialog/Dialog.accessibility.test.js +69 -0
  108. package/dialog/Dialog.d.ts +1 -1
  109. package/dialog/Dialog.js +73 -107
  110. package/dialog/Dialog.stories.tsx +320 -167
  111. package/dialog/Dialog.test.js +287 -20
  112. package/dialog/types.d.ts +18 -25
  113. package/divider/Divider.accessibility.test.js +33 -0
  114. package/divider/Divider.d.ts +4 -0
  115. package/divider/Divider.js +36 -0
  116. package/divider/Divider.stories.tsx +223 -0
  117. package/divider/Divider.test.js +38 -0
  118. package/divider/types.d.ts +21 -0
  119. package/dropdown/Dropdown.accessibility.test.js +180 -0
  120. package/dropdown/Dropdown.d.ts +1 -1
  121. package/dropdown/Dropdown.js +231 -303
  122. package/dropdown/Dropdown.stories.tsx +235 -57
  123. package/dropdown/Dropdown.test.js +575 -165
  124. package/dropdown/DropdownMenu.d.ts +4 -0
  125. package/dropdown/DropdownMenu.js +63 -0
  126. package/dropdown/DropdownMenuItem.d.ts +4 -0
  127. package/dropdown/DropdownMenuItem.js +70 -0
  128. package/dropdown/types.d.ts +35 -19
  129. package/file-input/FileInput.accessibility.test.js +160 -0
  130. package/file-input/FileInput.d.ts +2 -2
  131. package/file-input/FileInput.js +241 -391
  132. package/file-input/FileInput.stories.tsx +123 -12
  133. package/file-input/FileInput.test.js +292 -367
  134. package/file-input/FileItem.d.ts +4 -14
  135. package/file-input/FileItem.js +52 -117
  136. package/file-input/types.d.ts +25 -8
  137. package/flex/Flex.d.ts +4 -0
  138. package/flex/Flex.js +57 -0
  139. package/flex/Flex.stories.tsx +112 -0
  140. package/flex/types.d.ts +97 -0
  141. package/footer/Footer.accessibility.test.js +117 -0
  142. package/footer/Footer.d.ts +1 -1
  143. package/footer/Footer.js +73 -118
  144. package/footer/Footer.stories.tsx +87 -21
  145. package/footer/Footer.test.js +33 -57
  146. package/footer/Icons.d.ts +3 -2
  147. package/footer/Icons.js +67 -8
  148. package/footer/types.d.ts +26 -27
  149. package/grid/Grid.d.ts +7 -0
  150. package/grid/Grid.js +76 -0
  151. package/grid/Grid.stories.tsx +219 -0
  152. package/grid/types.d.ts +115 -0
  153. package/grid/types.js +5 -0
  154. package/header/Header.accessibility.test.js +84 -0
  155. package/header/Header.d.ts +4 -3
  156. package/header/Header.js +88 -182
  157. package/header/Header.stories.tsx +118 -39
  158. package/header/Header.test.js +13 -26
  159. package/header/Icons.d.ts +2 -2
  160. package/header/Icons.js +4 -9
  161. package/header/types.d.ts +7 -21
  162. package/heading/Heading.accessibility.test.js +33 -0
  163. package/heading/Heading.js +10 -32
  164. package/heading/Heading.test.js +71 -88
  165. package/heading/types.d.ts +7 -7
  166. package/icon/Icon.accessibility.test.js +30 -0
  167. package/icon/Icon.d.ts +4 -0
  168. package/icon/Icon.js +33 -0
  169. package/icon/Icon.stories.tsx +28 -0
  170. package/icon/types.d.ts +4 -0
  171. package/icon/types.js +5 -0
  172. package/image/Image.accessibility.test.js +56 -0
  173. package/image/Image.d.ts +4 -0
  174. package/image/Image.js +70 -0
  175. package/image/Image.stories.tsx +129 -0
  176. package/image/types.d.ts +72 -0
  177. package/image/types.js +5 -0
  178. package/inset/Inset.js +14 -55
  179. package/inset/Inset.stories.tsx +37 -36
  180. package/inset/types.d.ts +2 -2
  181. package/layout/ApplicationLayout.d.ts +15 -6
  182. package/layout/ApplicationLayout.js +52 -117
  183. package/layout/ApplicationLayout.stories.tsx +81 -45
  184. package/layout/Icons.d.ts +8 -5
  185. package/layout/Icons.js +49 -59
  186. package/layout/types.d.ts +21 -32
  187. package/link/Link.accessibility.test.js +112 -0
  188. package/link/Link.js +32 -51
  189. package/link/Link.stories.tsx +74 -7
  190. package/link/Link.test.js +24 -44
  191. package/link/types.d.ts +14 -14
  192. package/main.d.ts +14 -12
  193. package/main.js +63 -99
  194. package/nav-tabs/NavTabs.accessibility.test.js +52 -0
  195. package/nav-tabs/NavTabs.d.ts +7 -0
  196. package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
  197. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  198. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  199. package/nav-tabs/NavTabsContext.d.ts +3 -0
  200. package/nav-tabs/NavTabsContext.js +8 -0
  201. package/nav-tabs/Tab.js +118 -0
  202. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  203. package/nav-tabs/types.js +5 -0
  204. package/number-input/NumberInput.accessibility.test.js +228 -0
  205. package/number-input/NumberInput.js +46 -36
  206. package/number-input/NumberInput.stories.tsx +42 -26
  207. package/number-input/NumberInput.test.js +860 -377
  208. package/number-input/NumberInputContext.d.ts +3 -4
  209. package/number-input/NumberInputContext.js +3 -14
  210. package/number-input/types.d.ts +17 -5
  211. package/package.json +49 -51
  212. package/paginator/Icons.d.ts +5 -0
  213. package/paginator/Icons.js +21 -47
  214. package/paginator/Paginator.accessibility.test.js +79 -0
  215. package/paginator/Paginator.js +23 -59
  216. package/paginator/Paginator.stories.tsx +24 -0
  217. package/paginator/Paginator.test.js +280 -211
  218. package/paginator/types.d.ts +3 -3
  219. package/paragraph/Paragraph.accessibility.test.js +28 -0
  220. package/paragraph/Paragraph.d.ts +5 -0
  221. package/paragraph/Paragraph.js +22 -0
  222. package/paragraph/Paragraph.stories.tsx +27 -0
  223. package/password-input/Icons.d.ts +6 -0
  224. package/password-input/Icons.js +35 -0
  225. package/password-input/PasswordInput.accessibility.test.js +153 -0
  226. package/password-input/PasswordInput.js +57 -126
  227. package/password-input/PasswordInput.stories.tsx +1 -33
  228. package/password-input/PasswordInput.test.js +160 -142
  229. package/password-input/types.d.ts +8 -7
  230. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  231. package/progress-bar/ProgressBar.js +65 -91
  232. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  233. package/progress-bar/ProgressBar.test.js +72 -44
  234. package/progress-bar/types.d.ts +3 -3
  235. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  236. package/quick-nav/QuickNav.js +29 -47
  237. package/quick-nav/QuickNav.stories.tsx +146 -27
  238. package/quick-nav/types.d.ts +10 -10
  239. package/radio-group/Radio.d.ts +1 -1
  240. package/radio-group/Radio.js +59 -76
  241. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  242. package/radio-group/RadioGroup.js +67 -114
  243. package/radio-group/RadioGroup.stories.tsx +132 -18
  244. package/radio-group/RadioGroup.test.js +518 -457
  245. package/radio-group/types.d.ts +10 -10
  246. package/resultset-table/Icons.d.ts +7 -0
  247. package/resultset-table/Icons.js +47 -0
  248. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  249. package/resultset-table/ResultsetTable.d.ts +7 -0
  250. package/resultset-table/ResultsetTable.js +170 -0
  251. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
  252. package/resultset-table/ResultsetTable.test.js +381 -0
  253. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  254. package/resultset-table/types.js +5 -0
  255. package/select/Icons.d.ts +7 -7
  256. package/select/Icons.js +1 -5
  257. package/select/Listbox.d.ts +1 -1
  258. package/select/Listbox.js +42 -51
  259. package/select/Option.js +27 -50
  260. package/select/Select.accessibility.test.js +217 -0
  261. package/select/Select.js +152 -207
  262. package/select/Select.stories.tsx +515 -139
  263. package/select/Select.test.js +2001 -1751
  264. package/select/types.d.ts +16 -20
  265. package/sidenav/Sidenav.accessibility.test.js +59 -0
  266. package/sidenav/Sidenav.d.ts +6 -5
  267. package/sidenav/Sidenav.js +132 -78
  268. package/sidenav/Sidenav.stories.tsx +246 -151
  269. package/sidenav/Sidenav.test.js +26 -45
  270. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  271. package/{layout → sidenav}/SidenavContext.js +3 -9
  272. package/sidenav/types.d.ts +52 -26
  273. package/slider/Slider.accessibility.test.js +104 -0
  274. package/slider/Slider.d.ts +2 -2
  275. package/slider/Slider.js +148 -181
  276. package/slider/Slider.test.js +185 -81
  277. package/slider/types.d.ts +7 -3
  278. package/spinner/Spinner.accessibility.test.js +96 -0
  279. package/spinner/Spinner.js +31 -75
  280. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  281. package/spinner/Spinner.test.js +26 -35
  282. package/spinner/types.d.ts +3 -3
  283. package/status-light/StatusLight.accessibility.test.js +157 -0
  284. package/status-light/StatusLight.d.ts +4 -0
  285. package/status-light/StatusLight.js +51 -0
  286. package/status-light/StatusLight.stories.tsx +74 -0
  287. package/status-light/StatusLight.test.js +25 -0
  288. package/status-light/types.d.ts +17 -0
  289. package/status-light/types.js +5 -0
  290. package/switch/Switch.accessibility.test.js +89 -0
  291. package/switch/Switch.d.ts +2 -2
  292. package/switch/Switch.js +145 -126
  293. package/switch/Switch.stories.tsx +37 -60
  294. package/switch/Switch.test.js +138 -56
  295. package/switch/types.d.ts +7 -3
  296. package/table/DropdownTheme.js +62 -0
  297. package/table/Table.accessibility.test.js +82 -0
  298. package/table/Table.d.ts +6 -2
  299. package/table/Table.js +78 -35
  300. package/table/Table.stories.tsx +651 -0
  301. package/table/Table.test.js +95 -8
  302. package/table/types.d.ts +34 -6
  303. package/tabs/Tab.d.ts +4 -0
  304. package/tabs/Tab.js +116 -0
  305. package/tabs/Tabs.accessibility.test.js +56 -0
  306. package/tabs/Tabs.js +314 -141
  307. package/tabs/Tabs.stories.tsx +120 -6
  308. package/tabs/Tabs.test.js +223 -69
  309. package/tabs/types.d.ts +28 -18
  310. package/tag/Tag.accessibility.test.js +69 -0
  311. package/tag/Tag.js +35 -67
  312. package/tag/Tag.stories.tsx +18 -8
  313. package/tag/Tag.test.js +18 -37
  314. package/tag/types.d.ts +9 -9
  315. package/text-input/Suggestion.js +40 -28
  316. package/text-input/Suggestions.d.ts +4 -0
  317. package/text-input/Suggestions.js +86 -0
  318. package/text-input/TextInput.accessibility.test.js +321 -0
  319. package/text-input/TextInput.js +311 -514
  320. package/text-input/TextInput.stories.tsx +266 -275
  321. package/text-input/TextInput.test.js +1419 -1375
  322. package/text-input/types.d.ts +43 -16
  323. package/textarea/Textarea.accessibility.test.js +155 -0
  324. package/textarea/Textarea.js +70 -113
  325. package/textarea/Textarea.stories.tsx +174 -0
  326. package/textarea/Textarea.test.js +152 -183
  327. package/textarea/types.d.ts +9 -5
  328. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  329. package/toggle-group/ToggleGroup.d.ts +2 -2
  330. package/toggle-group/ToggleGroup.js +92 -106
  331. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  332. package/toggle-group/ToggleGroup.test.js +69 -88
  333. package/toggle-group/types.d.ts +26 -17
  334. package/typography/Typography.accessibility.test.js +339 -0
  335. package/typography/Typography.d.ts +4 -0
  336. package/typography/Typography.js +23 -0
  337. package/typography/Typography.stories.tsx +198 -0
  338. package/typography/types.d.ts +18 -0
  339. package/typography/types.js +5 -0
  340. package/useTheme.d.ts +1147 -1
  341. package/useTheme.js +2 -9
  342. package/useTranslatedLabels.d.ts +84 -1
  343. package/useTranslatedLabels.js +1 -7
  344. package/utils/BaseTypography.d.ts +21 -0
  345. package/utils/BaseTypography.js +94 -0
  346. package/utils/FocusLock.d.ts +13 -0
  347. package/utils/FocusLock.js +124 -0
  348. package/wizard/Wizard.accessibility.test.js +55 -0
  349. package/wizard/Wizard.js +24 -66
  350. package/wizard/Wizard.stories.tsx +40 -1
  351. package/wizard/Wizard.test.js +54 -81
  352. package/wizard/types.d.ts +8 -8
  353. package/card/ice-cream.jpg +0 -0
  354. package/common/OpenSans.css +0 -81
  355. package/common/RequiredComponent.js +0 -32
  356. package/common/fonts/OpenSans-Bold.ttf +0 -0
  357. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  358. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  359. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  360. package/common/fonts/OpenSans-Italic.ttf +0 -0
  361. package/common/fonts/OpenSans-Light.ttf +0 -0
  362. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  363. package/common/fonts/OpenSans-Regular.ttf +0 -0
  364. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  365. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  366. package/list/List.d.ts +0 -4
  367. package/list/List.js +0 -47
  368. package/list/List.stories.tsx +0 -95
  369. package/list/types.d.ts +0 -7
  370. package/number-input/numberInputContextTypes.d.ts +0 -19
  371. package/resultsetTable/ResultsetTable.d.ts +0 -4
  372. package/resultsetTable/ResultsetTable.js +0 -254
  373. package/resultsetTable/ResultsetTable.test.js +0 -306
  374. package/row/Row.d.ts +0 -3
  375. package/row/Row.js +0 -127
  376. package/row/Row.stories.tsx +0 -237
  377. package/row/types.d.ts +0 -28
  378. package/slider/Slider.stories.tsx +0 -177
  379. package/stack/Stack.d.ts +0 -3
  380. package/stack/Stack.js +0 -97
  381. package/stack/Stack.stories.tsx +0 -164
  382. package/stack/types.d.ts +0 -24
  383. package/table/Table.stories.jsx +0 -277
  384. package/tabs-nav/NavTabs.d.ts +0 -8
  385. package/tabs-nav/Tab.js +0 -132
  386. package/text/Text.d.ts +0 -7
  387. package/text/Text.js +0 -30
  388. package/text/Text.stories.tsx +0 -19
  389. package/textarea/Textarea.stories.jsx +0 -157
  390. /package/{list → action-icon}/types.js +0 -0
  391. /package/{resultsetTable → bulleted-list}/types.js +0 -0
  392. /package/{row → container}/types.js +0 -0
  393. /package/{stack → contextual-menu}/types.js +0 -0
  394. /package/{tabs-nav → divider}/types.js +0 -0
  395. /package/{number-input/numberInputContextTypes.js → flex/types.js} +0 -0
  396. /package/{tabs-nav → nav-tabs}/Tab.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>;
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
@@ -159,20 +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;
166
188
  /**
167
- * Single suggestion of the Autosuggest Text Input component.
189
+ * Single suggestion of an Text Input component.
168
190
  */
169
- export declare type SuggestionProps = {
191
+ export type SuggestionProps = {
170
192
  id: string;
171
193
  value: string;
172
- onClick: () => void;
194
+ onClick: (suggestion: string) => void;
173
195
  suggestion: string;
174
196
  isLast: boolean;
175
197
  visuallyFocused: boolean;
176
198
  highlighted: boolean;
177
199
  };
200
+ export type AutosuggestWrapperProps = {
201
+ condition: boolean;
202
+ wrapper: (children: React.ReactNode) => JSX.Element;
203
+ children: React.ReactNode;
204
+ };
178
205
  export default Props;
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _jestAxe = require("jest-axe");
9
+ var _Textarea = _interopRequireDefault(require("./Textarea.tsx"));
10
+ describe("Textarea component accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, container, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
17
+ label: "Example label",
18
+ helperText: "Helper Text",
19
+ defaultValue: "Value",
20
+ margin: "medium",
21
+ placeholder: "Placeholder",
22
+ verticalGrow: "manual",
23
+ name: "Name",
24
+ autocomplete: "on",
25
+ minLength: 0,
26
+ maxLength: 100,
27
+ optional: true
28
+ })), container = _render.container;
29
+ _context.next = 3;
30
+ return (0, _jestAxe.axe)(container);
31
+ case 3:
32
+ results = _context.sent;
33
+ expect(results).toHaveNoViolations();
34
+ case 5:
35
+ case "end":
36
+ return _context.stop();
37
+ }
38
+ }, _callee);
39
+ })));
40
+ it("Should not have basic accessibility issues for pattern mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
41
+ var _render2, container, results;
42
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
43
+ while (1) switch (_context2.prev = _context2.next) {
44
+ case 0:
45
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
46
+ label: "Example label",
47
+ helperText: "Helper Text",
48
+ defaultValue: "Value",
49
+ margin: "medium",
50
+ placeholder: "Placeholder",
51
+ verticalGrow: "manual",
52
+ name: "Name",
53
+ autocomplete: "on",
54
+ minLength: 0,
55
+ maxLength: 100,
56
+ pattern: "^.*(?=.*[a-zA-Z])(?=.*)(?=.*[!&$%&? \"]).*$"
57
+ })), container = _render2.container;
58
+ _context2.next = 3;
59
+ return (0, _jestAxe.axe)(container);
60
+ case 3:
61
+ results = _context2.sent;
62
+ expect(results).toHaveNoViolations();
63
+ case 5:
64
+ case "end":
65
+ return _context2.stop();
66
+ }
67
+ }, _callee2);
68
+ })));
69
+ it("Should not have basic accessibility issues for error mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
70
+ var _render3, container, results;
71
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
72
+ while (1) switch (_context3.prev = _context3.next) {
73
+ case 0:
74
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
75
+ label: "Example label",
76
+ helperText: "Helper Text",
77
+ defaultValue: "Value",
78
+ margin: "medium",
79
+ placeholder: "Placeholder",
80
+ verticalGrow: "manual",
81
+ name: "Name",
82
+ error: "Error message.",
83
+ minLength: 0,
84
+ maxLength: 100
85
+ })), container = _render3.container;
86
+ _context3.next = 3;
87
+ return (0, _jestAxe.axe)(container);
88
+ case 3:
89
+ results = _context3.sent;
90
+ expect(results).toHaveNoViolations();
91
+ case 5:
92
+ case "end":
93
+ return _context3.stop();
94
+ }
95
+ }, _callee3);
96
+ })));
97
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
98
+ var _render4, container, results;
99
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
100
+ while (1) switch (_context4.prev = _context4.next) {
101
+ case 0:
102
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
103
+ label: "Example label",
104
+ helperText: "Helper Text",
105
+ defaultValue: "Value",
106
+ margin: "medium",
107
+ placeholder: "Placeholder",
108
+ verticalGrow: "manual",
109
+ name: "Name",
110
+ autocomplete: "on",
111
+ minLength: 0,
112
+ maxLength: 100,
113
+ disabled: true
114
+ })), container = _render4.container;
115
+ _context4.next = 3;
116
+ return (0, _jestAxe.axe)(container);
117
+ case 3:
118
+ results = _context4.sent;
119
+ expect(results).toHaveNoViolations();
120
+ case 5:
121
+ case "end":
122
+ return _context4.stop();
123
+ }
124
+ }, _callee4);
125
+ })));
126
+ it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
127
+ var _render5, container, results;
128
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
129
+ while (1) switch (_context5.prev = _context5.next) {
130
+ case 0:
131
+ _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
132
+ label: "Example label",
133
+ helperText: "Helper Text",
134
+ defaultValue: "Value",
135
+ margin: "medium",
136
+ placeholder: "Placeholder",
137
+ verticalGrow: "manual",
138
+ name: "Name",
139
+ autocomplete: "on",
140
+ minLength: 0,
141
+ maxLength: 100,
142
+ readOnly: true
143
+ })), container = _render5.container;
144
+ _context5.next = 3;
145
+ return (0, _jestAxe.axe)(container);
146
+ case 3:
147
+ results = _context5.sent;
148
+ expect(results).toHaveNoViolations();
149
+ case 5:
150
+ case "end":
151
+ return _context5.stop();
152
+ }
153
+ }, _callee5);
154
+ })));
155
+ });
@@ -1,101 +1,77 @@
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
16
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
-
28
- var _variables = require("../common/variables.js");
29
-
17
+ var _variables = require("../common/variables");
30
18
  var _uuid = require("uuid");
31
-
32
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
-
34
19
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
35
-
36
- 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); }
37
-
38
- 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; }
39
-
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; }
40
22
  var patternMatch = function patternMatch(pattern, value) {
41
23
  return new RegExp(pattern).test(value);
42
24
  };
43
-
44
25
  var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
45
26
  var label = _ref.label,
46
- _ref$name = _ref.name,
47
- name = _ref$name === void 0 ? "" : _ref$name,
48
- _ref$defaultValue = _ref.defaultValue,
49
- defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
50
- value = _ref.value,
51
- helperText = _ref.helperText,
52
- _ref$placeholder = _ref.placeholder,
53
- placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
54
- _ref$disabled = _ref.disabled,
55
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
56
- _ref$optional = _ref.optional,
57
- optional = _ref$optional === void 0 ? false : _ref$optional,
58
- _ref$verticalGrow = _ref.verticalGrow,
59
- verticalGrow = _ref$verticalGrow === void 0 ? "auto" : _ref$verticalGrow,
60
- _ref$rows = _ref.rows,
61
- rows = _ref$rows === void 0 ? 4 : _ref$rows,
62
- onChange = _ref.onChange,
63
- onBlur = _ref.onBlur,
64
- error = _ref.error,
65
- pattern = _ref.pattern,
66
- minLength = _ref.minLength,
67
- maxLength = _ref.maxLength,
68
- _ref$autocomplete = _ref.autocomplete,
69
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
70
- margin = _ref.margin,
71
- _ref$size = _ref.size,
72
- size = _ref$size === void 0 ? "medium" : _ref$size,
73
- _ref$tabIndex = _ref.tabIndex,
74
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
75
-
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;
76
58
  var _useState = (0, _react.useState)(defaultValue),
77
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
78
- innerValue = _useState2[0],
79
- setInnerValue = _useState2[1];
80
-
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ innerValue = _useState2[0],
61
+ setInnerValue = _useState2[1];
81
62
  var _useState3 = (0, _react.useState)("textarea-".concat((0, _uuid.v4)())),
82
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
83
- textareaId = _useState4[0];
84
-
63
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
64
+ textareaId = _useState4[0];
85
65
  var colorsTheme = (0, _useTheme["default"])();
86
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
87
66
  var translatedLabels = (0, _useTranslatedLabels["default"])();
88
67
  var textareaRef = (0, _react.useRef)(null);
89
68
  var errorId = "error-".concat(textareaId);
90
-
91
69
  var isNotOptional = function isNotOptional(value) {
92
70
  return value === "" && !optional;
93
71
  };
94
-
95
72
  var isLengthIncorrect = function isLengthIncorrect(value) {
96
73
  return value !== "" && minLength && maxLength && (value.length < minLength || value.length > maxLength);
97
74
  };
98
-
99
75
  var changeValue = function changeValue(newValue) {
100
76
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
101
77
  if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
@@ -111,8 +87,14 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
111
87
  value: newValue
112
88
  });
113
89
  };
114
-
115
- 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) {
116
98
  if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
117
99
  value: event.target.value,
118
100
  error: translatedLabels.formFields.requiredValueErrorMessage
@@ -126,20 +108,10 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
126
108
  value: event.target.value
127
109
  });
128
110
  };
129
-
130
- var handleTOnChange = function handleTOnChange(event) {
111
+ var handleOnChange = function handleOnChange(event) {
131
112
  changeValue(event.target.value);
113
+ verticalGrow === "auto" && autoVerticalGrow();
132
114
  };
133
-
134
- (0, _react.useLayoutEffect)(function () {
135
- if (verticalGrow === "auto") {
136
- var textareaLineHeight = parseInt(window.getComputedStyle(textareaRef.current)["line-height"]);
137
- var textareaPaddingTopBottom = parseInt(window.getComputedStyle(textareaRef.current)["padding-top"]) * 2;
138
- textareaRef.current.style.height = "".concat(textareaLineHeight * rows, "px");
139
- var newHeight = textareaRef.current.scrollHeight - textareaPaddingTopBottom;
140
- textareaRef.current.style.height = "".concat(newHeight, "px");
141
- }
142
- }, [value, verticalGrow, rows, innerValue]);
143
115
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
144
116
  theme: colorsTheme.textarea
145
117
  }, /*#__PURE__*/_react["default"].createElement(TextareaContainer, {
@@ -149,11 +121,9 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
149
121
  }, label && /*#__PURE__*/_react["default"].createElement(Label, {
150
122
  htmlFor: textareaId,
151
123
  disabled: disabled,
152
- backgroundType: backgroundType,
153
124
  helperText: helperText
154
125
  }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
155
- disabled: disabled,
156
- backgroundType: backgroundType
126
+ disabled: disabled
157
127
  }, helperText), /*#__PURE__*/_react["default"].createElement(Textarea, {
158
128
  id: textareaId,
159
129
  name: name,
@@ -161,39 +131,34 @@ var DxcTextarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
161
131
  placeholder: placeholder,
162
132
  verticalGrow: verticalGrow,
163
133
  rows: rows,
164
- onChange: handleTOnChange,
165
- onBlur: handleTOnBlur,
134
+ onChange: handleOnChange,
135
+ onBlur: handleOnBlur,
166
136
  disabled: disabled,
137
+ readOnly: readOnly,
167
138
  error: error,
168
139
  minLength: minLength,
169
140
  maxLength: maxLength,
170
141
  autoComplete: autocomplete,
171
- backgroundType: backgroundType,
172
142
  ref: textareaRef,
173
143
  tabIndex: tabIndex,
174
- "aria-disabled": disabled,
175
- "aria-invalid": error ? "true" : "false",
144
+ "aria-invalid": error ? true : false,
176
145
  "aria-errormessage": error ? errorId : undefined,
177
- "aria-required": optional ? "false" : "true"
146
+ "aria-required": !disabled && !optional
178
147
  }), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
179
148
  id: errorId,
180
- backgroundType: backgroundType,
181
149
  "aria-live": error ? "assertive" : "off"
182
150
  }, error)));
183
151
  });
184
-
185
152
  var sizes = {
186
153
  small: "240px",
187
154
  medium: "360px",
188
155
  large: "480px",
189
156
  fillParent: "100%"
190
157
  };
191
-
192
158
  var calculateWidth = function calculateWidth(margin, size) {
193
159
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
194
160
  };
195
-
196
- 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) {
197
162
  return calculateWidth(props.margin, props.size);
198
163
  }, function (props) {
199
164
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -206,9 +171,8 @@ var TextareaContainer = _styledComponents["default"].div(_templateObject || (_te
206
171
  }, function (props) {
207
172
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
208
173
  });
209
-
210
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) {
211
- 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;
212
176
  }, function (props) {
213
177
  return props.theme.fontFamily;
214
178
  }, function (props) {
@@ -222,13 +186,11 @@ var Label = _styledComponents["default"].label(_templateObject2 || (_templateObj
222
186
  }, function (props) {
223
187
  return !props.helperText && "margin-bottom: 0.25rem";
224
188
  });
225
-
226
189
  var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
227
190
  return props.theme.optionalLabelFontWeight;
228
191
  });
229
-
230
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) {
231
- 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;
232
194
  }, function (props) {
233
195
  return props.theme.fontFamily;
234
196
  }, function (props) {
@@ -240,21 +202,19 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
240
202
  }, function (props) {
241
203
  return props.theme.helperTextLineHeight;
242
204
  });
243
-
244
- 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) {
245
- 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;";
246
- }, function (props) {
247
- 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;";
248
208
  }, function (props) {
249
- 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;";
250
210
  }, function (props) {
251
- 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;
252
212
  }, function (props) {
253
- return props.disabled && "cursor: not-allowed;";
213
+ return props.error && !props.disabled && "box-shadow: 0 0 0 2px ".concat(props.theme.errorBorderColor, ";\n ");
254
214
  }, function (props) {
255
- 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;";
256
216
  }, function (props) {
257
- 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;
258
218
  }, function (props) {
259
219
  return props.theme.fontFamily;
260
220
  }, function (props) {
@@ -264,14 +224,11 @@ var Textarea = _styledComponents["default"].textarea(_templateObject5 || (_templ
264
224
  }, function (props) {
265
225
  return props.theme.valueFontWeight;
266
226
  }, function (props) {
267
- 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;
268
228
  });
269
-
270
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) {
271
- return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
230
+ return props.theme.errorMessageColor;
272
231
  }, function (props) {
273
232
  return props.theme.fontFamily;
274
233
  });
275
-
276
- var _default = DxcTextarea;
277
- exports["default"] = _default;
234
+ var _default = exports["default"] = DxcTextarea;