@dxc-technology/halstack-react 0.0.0-fce22b8 → 0.0.0-ff99b25

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 (316) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/V3Select/V3Select.js +455 -0
  4. package/V3Select/index.d.ts +27 -0
  5. package/{dist/textarea/Textarea.js → V3Textarea/V3Textarea.js} +39 -39
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/accordion/Accordion.d.ts +4 -0
  8. package/accordion/Accordion.js +258 -0
  9. package/accordion/types.d.ts +68 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +170 -0
  13. package/accordion-group/types.d.ts +72 -0
  14. package/accordion-group/types.js +5 -0
  15. package/alert/Alert.d.ts +4 -0
  16. package/alert/Alert.js +290 -0
  17. package/alert/types.d.ts +49 -0
  18. package/alert/types.js +5 -0
  19. package/badge/Badge.js +59 -0
  20. package/{dist/box → box}/Box.js +9 -21
  21. package/box/Box.stories.jsx +132 -0
  22. package/box/index.d.ts +25 -0
  23. package/button/Button.d.ts +4 -0
  24. package/button/Button.js +182 -0
  25. package/button/Button.stories.tsx +293 -0
  26. package/button/types.d.ts +57 -0
  27. package/button/types.js +5 -0
  28. package/card/Card.d.ts +4 -0
  29. package/{dist/card → card}/Card.js +32 -123
  30. package/card/types.d.ts +69 -0
  31. package/card/types.js +5 -0
  32. package/checkbox/Checkbox.d.ts +4 -0
  33. package/{dist/checkbox → checkbox}/Checkbox.js +44 -82
  34. package/checkbox/types.d.ts +60 -0
  35. package/checkbox/types.js +5 -0
  36. package/{dist/chip → chip}/Chip.js +42 -84
  37. package/chip/index.d.ts +22 -0
  38. package/{dist/common → common}/OpenSans.css +0 -0
  39. package/{dist/common → common}/RequiredComponent.js +3 -11
  40. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  41. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  42. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  43. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  44. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  45. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  46. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  47. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  48. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  49. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  50. package/{dist/common → common}/utils.js +0 -0
  51. package/common/variables.js +1569 -0
  52. package/{dist/date → date}/Date.js +33 -51
  53. package/date/index.d.ts +27 -0
  54. package/date-input/DateInput.d.ts +4 -0
  55. package/date-input/DateInput.js +361 -0
  56. package/date-input/types.d.ts +100 -0
  57. package/date-input/types.js +5 -0
  58. package/dialog/Dialog.d.ts +4 -0
  59. package/{dist/dialog → dialog}/Dialog.js +29 -100
  60. package/dialog/types.d.ts +43 -0
  61. package/dialog/types.js +5 -0
  62. package/dropdown/Dropdown.d.ts +4 -0
  63. package/dropdown/Dropdown.js +417 -0
  64. package/dropdown/types.d.ts +89 -0
  65. package/dropdown/types.js +5 -0
  66. package/file-input/FileInput.js +532 -0
  67. package/file-input/FileItem.js +193 -0
  68. package/file-input/index.d.ts +81 -0
  69. package/footer/Footer.d.ts +4 -0
  70. package/footer/Footer.js +266 -0
  71. package/footer/Footer.stories.jsx +151 -0
  72. package/footer/Icons.js +77 -0
  73. package/footer/types.d.ts +61 -0
  74. package/footer/types.js +5 -0
  75. package/header/Header.js +326 -0
  76. package/header/Icons.js +59 -0
  77. package/header/index.d.ts +25 -0
  78. package/{dist/heading → heading}/Heading.js +30 -76
  79. package/heading/index.d.ts +17 -0
  80. package/input-text/Icons.js +22 -0
  81. package/{dist/input-text → input-text}/InputText.js +120 -178
  82. package/input-text/index.d.ts +36 -0
  83. package/{dist/layout → layout}/ApplicationLayout.js +35 -131
  84. package/layout/Icons.js +55 -0
  85. package/link/Link.js +183 -0
  86. package/link/index.d.ts +23 -0
  87. package/main.d.ts +44 -0
  88. package/{dist/main.js → main.js} +121 -69
  89. package/number-input/NumberInput.js +128 -0
  90. package/number-input/NumberInput.stories.jsx +115 -0
  91. package/number-input/NumberInputContext.js +16 -0
  92. package/number-input/index.d.ts +113 -0
  93. package/package.json +34 -25
  94. package/paginator/Icons.js +66 -0
  95. package/paginator/Paginator.d.ts +4 -0
  96. package/paginator/Paginator.js +198 -0
  97. package/paginator/types.d.ts +38 -0
  98. package/paginator/types.js +5 -0
  99. package/password-input/PasswordInput.js +199 -0
  100. package/password-input/PasswordInput.stories.jsx +131 -0
  101. package/password-input/index.d.ts +94 -0
  102. package/progress-bar/ProgressBar.d.ts +4 -0
  103. package/progress-bar/ProgressBar.js +170 -0
  104. package/progress-bar/types.d.ts +37 -0
  105. package/progress-bar/types.js +5 -0
  106. package/radio/Radio.d.ts +4 -0
  107. package/{dist/radio → radio}/Radio.js +15 -50
  108. package/radio/types.d.ts +54 -0
  109. package/radio/types.js +5 -0
  110. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +35 -136
  111. package/resultsetTable/index.d.ts +19 -0
  112. package/select/Select.js +865 -0
  113. package/select/index.d.ts +131 -0
  114. package/{dist/sidenav → sidenav}/Sidenav.js +20 -58
  115. package/sidenav/index.d.ts +13 -0
  116. package/slider/Slider.d.ts +4 -0
  117. package/slider/Slider.js +306 -0
  118. package/slider/types.d.ts +83 -0
  119. package/slider/types.js +5 -0
  120. package/spinner/Spinner.js +267 -0
  121. package/spinner/index.d.ts +17 -0
  122. package/switch/Switch.d.ts +4 -0
  123. package/{dist/switch → switch}/Switch.js +28 -71
  124. package/switch/types.d.ts +58 -0
  125. package/switch/types.js +5 -0
  126. package/table/Table.js +118 -0
  127. package/table/index.d.ts +13 -0
  128. package/tabs/Tabs.d.ts +4 -0
  129. package/tabs/Tabs.js +211 -0
  130. package/tabs/types.d.ts +71 -0
  131. package/tabs/types.js +5 -0
  132. package/{dist/tag → tag}/Tag.js +50 -122
  133. package/tag/index.d.ts +24 -0
  134. package/text-input/TextInput.js +825 -0
  135. package/text-input/index.d.ts +135 -0
  136. package/textarea/Textarea.js +317 -0
  137. package/textarea/Textarea.stories.jsx +135 -0
  138. package/textarea/index.d.ts +117 -0
  139. package/{dist/toggle → toggle}/Toggle.js +15 -49
  140. package/toggle/index.d.ts +21 -0
  141. package/toggle-group/ToggleGroup.js +243 -0
  142. package/toggle-group/index.d.ts +21 -0
  143. package/{dist/upload → upload}/Upload.js +11 -15
  144. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  145. package/upload/buttons-upload/Icons.js +40 -0
  146. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  147. package/upload/dragAndDropArea/Icons.js +39 -0
  148. package/upload/file-upload/FileToUpload.js +115 -0
  149. package/upload/file-upload/Icons.js +66 -0
  150. package/{dist/upload → upload}/files-upload/FilesToUpload.js +12 -26
  151. package/upload/index.d.ts +15 -0
  152. package/upload/transaction/Icons.js +160 -0
  153. package/upload/transaction/Transaction.js +104 -0
  154. package/upload/transactions/Transactions.js +94 -0
  155. package/{dist/useTheme.js → useTheme.js} +0 -0
  156. package/wizard/Icons.js +65 -0
  157. package/wizard/Wizard.js +271 -0
  158. package/wizard/index.d.ts +18 -0
  159. package/README.md +0 -66
  160. package/babel.config.js +0 -8
  161. package/dist/BackgroundColorContext.js +0 -46
  162. package/dist/ThemeContext.js +0 -216
  163. package/dist/accordion/Accordion.js +0 -340
  164. package/dist/accordion/Accordion.stories.js +0 -207
  165. package/dist/accordion/readme.md +0 -96
  166. package/dist/accordion-group/AccordionGroup.js +0 -188
  167. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  168. package/dist/accordion-group/readme.md +0 -70
  169. package/dist/alert/Alert.js +0 -388
  170. package/dist/alert/Alert.stories.js +0 -158
  171. package/dist/alert/close.svg +0 -4
  172. package/dist/alert/error.svg +0 -4
  173. package/dist/alert/info.svg +0 -4
  174. package/dist/alert/readme.md +0 -43
  175. package/dist/alert/success.svg +0 -4
  176. package/dist/alert/warning.svg +0 -4
  177. package/dist/badge/Badge.js +0 -61
  178. package/dist/button/Button.js +0 -228
  179. package/dist/button/Button.stories.js +0 -224
  180. package/dist/button/readme.md +0 -93
  181. package/dist/checkbox/Checkbox.stories.js +0 -144
  182. package/dist/checkbox/readme.md +0 -116
  183. package/dist/common/variables.js +0 -1154
  184. package/dist/date/Date.stories.js +0 -205
  185. package/dist/date/calendar.svg +0 -1
  186. package/dist/date/calendar_dark.svg +0 -1
  187. package/dist/date/readme.md +0 -73
  188. package/dist/dialog/Dialog.stories.js +0 -217
  189. package/dist/dialog/readme.md +0 -32
  190. package/dist/dropdown/Dropdown.js +0 -492
  191. package/dist/dropdown/Dropdown.stories.js +0 -249
  192. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  193. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  194. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  195. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  196. package/dist/dropdown/readme.md +0 -69
  197. package/dist/footer/Footer.js +0 -405
  198. package/dist/footer/Footer.stories.js +0 -94
  199. package/dist/footer/dxc_logo_wht.png +0 -0
  200. package/dist/footer/readme.md +0 -41
  201. package/dist/header/Header.js +0 -431
  202. package/dist/header/Header.stories.js +0 -176
  203. package/dist/header/close_icon.svg +0 -1
  204. package/dist/header/dxc_logo_black.png +0 -0
  205. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  206. package/dist/header/dxc_logo_white.png +0 -0
  207. package/dist/header/hamb_menu_black.svg +0 -1
  208. package/dist/header/hamb_menu_white.svg +0 -1
  209. package/dist/header/readme.md +0 -33
  210. package/dist/input-text/InputText.stories.js +0 -209
  211. package/dist/input-text/error.svg +0 -1
  212. package/dist/input-text/readme.md +0 -91
  213. package/dist/layout/facebook.svg +0 -45
  214. package/dist/layout/linkedin.svg +0 -50
  215. package/dist/layout/twitter.svg +0 -53
  216. package/dist/link/Link.js +0 -212
  217. package/dist/link/readme.md +0 -51
  218. package/dist/paginator/Paginator.js +0 -283
  219. package/dist/paginator/images/next.svg +0 -3
  220. package/dist/paginator/images/nextPage.svg +0 -3
  221. package/dist/paginator/images/previous.svg +0 -3
  222. package/dist/paginator/images/previousPage.svg +0 -3
  223. package/dist/paginator/readme.md +0 -50
  224. package/dist/progress-bar/ProgressBar.js +0 -206
  225. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  226. package/dist/progress-bar/readme.md +0 -63
  227. package/dist/radio/Radio.stories.js +0 -166
  228. package/dist/radio/readme.md +0 -70
  229. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  230. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  231. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  232. package/dist/select/Select.js +0 -525
  233. package/dist/select/Select.stories.js +0 -235
  234. package/dist/select/readme.md +0 -72
  235. package/dist/slider/Slider.js +0 -315
  236. package/dist/slider/Slider.stories.js +0 -241
  237. package/dist/slider/readme.md +0 -64
  238. package/dist/spinner/Spinner.js +0 -214
  239. package/dist/spinner/Spinner.stories.js +0 -183
  240. package/dist/spinner/readme.md +0 -65
  241. package/dist/switch/Switch.stories.js +0 -134
  242. package/dist/switch/readme.md +0 -133
  243. package/dist/table/Table.js +0 -122
  244. package/dist/tabs/Tabs.js +0 -347
  245. package/dist/tabs/Tabs.stories.js +0 -130
  246. package/dist/tabs/readme.md +0 -78
  247. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  248. package/dist/tabs-for-sections/readme.md +0 -78
  249. package/dist/toggle/Toggle.stories.js +0 -297
  250. package/dist/toggle/readme.md +0 -80
  251. package/dist/toggle-group/ToggleGroup.js +0 -241
  252. package/dist/toggle-group/readme.md +0 -82
  253. package/dist/upload/Upload.stories.js +0 -72
  254. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  255. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  256. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  257. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -325
  258. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  259. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  260. package/dist/upload/file-upload/FileToUpload.js +0 -184
  261. package/dist/upload/file-upload/audio-icon.svg +0 -4
  262. package/dist/upload/file-upload/close.svg +0 -4
  263. package/dist/upload/file-upload/file-icon.svg +0 -4
  264. package/dist/upload/file-upload/video-icon.svg +0 -4
  265. package/dist/upload/readme.md +0 -37
  266. package/dist/upload/transaction/Transaction.js +0 -171
  267. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  268. package/dist/upload/transaction/audio-icon.svg +0 -4
  269. package/dist/upload/transaction/error-icon.svg +0 -4
  270. package/dist/upload/transaction/file-icon-err.svg +0 -4
  271. package/dist/upload/transaction/file-icon.svg +0 -4
  272. package/dist/upload/transaction/image-icon-err.svg +0 -4
  273. package/dist/upload/transaction/image-icon.svg +0 -4
  274. package/dist/upload/transaction/success-icon.svg +0 -4
  275. package/dist/upload/transaction/video-icon-err.svg +0 -4
  276. package/dist/upload/transaction/video-icon.svg +0 -4
  277. package/dist/upload/transactions/Transactions.js +0 -138
  278. package/dist/wizard/Wizard.js +0 -383
  279. package/dist/wizard/invalid_icon.svg +0 -6
  280. package/dist/wizard/valid_icon.svg +0 -6
  281. package/dist/wizard/validation-wrong.svg +0 -6
  282. package/test/Accordion.test.js +0 -33
  283. package/test/AccordionGroup.test.js +0 -125
  284. package/test/Alert.test.js +0 -53
  285. package/test/Box.test.js +0 -10
  286. package/test/Button.test.js +0 -18
  287. package/test/Card.test.js +0 -30
  288. package/test/Checkbox.test.js +0 -45
  289. package/test/Chip.test.js +0 -25
  290. package/test/Date.test.js +0 -393
  291. package/test/Dialog.test.js +0 -23
  292. package/test/Dropdown.test.js +0 -130
  293. package/test/Footer.test.js +0 -99
  294. package/test/Header.test.js +0 -39
  295. package/test/Heading.test.js +0 -35
  296. package/test/InputText.test.js +0 -240
  297. package/test/Link.test.js +0 -42
  298. package/test/Paginator.test.js +0 -177
  299. package/test/ProgressBar.test.js +0 -35
  300. package/test/Radio.test.js +0 -37
  301. package/test/ResultsetTable.test.js +0 -330
  302. package/test/Select.test.js +0 -192
  303. package/test/Sidenav.test.js +0 -45
  304. package/test/Slider.test.js +0 -82
  305. package/test/Spinner.test.js +0 -27
  306. package/test/Switch.test.js +0 -45
  307. package/test/Table.test.js +0 -36
  308. package/test/Tabs.test.js +0 -109
  309. package/test/TabsForSections.test.js +0 -34
  310. package/test/Tag.test.js +0 -32
  311. package/test/TextArea.test.js +0 -52
  312. package/test/ToggleGroup.test.js +0 -81
  313. package/test/Upload.test.js +0 -60
  314. package/test/Wizard.test.js +0 -130
  315. package/test/mocks/pngMock.js +0 -1
  316. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,825 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
+
16
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
+
24
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
25
+
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _variables = require("../common/variables.js");
29
+
30
+ var _utils = require("../common/utils.js");
31
+
32
+ var _uuid = require("uuid");
33
+
34
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
35
+
36
+ var _NumberInputContext = _interopRequireDefault(require("../number-input/NumberInputContext.js"));
37
+
38
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18;
39
+
40
+ 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); }
41
+
42
+ 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; }
43
+
44
+ var textInputIcons = {
45
+ error: /*#__PURE__*/_react["default"].createElement("svg", {
46
+ xmlns: "http://www.w3.org/2000/svg",
47
+ height: "24px",
48
+ viewBox: "0 0 24 24",
49
+ width: "24px",
50
+ fill: "currentColor"
51
+ }, /*#__PURE__*/_react["default"].createElement("path", {
52
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
53
+ })),
54
+ clear: /*#__PURE__*/_react["default"].createElement("svg", {
55
+ xmlns: "http://www.w3.org/2000/svg",
56
+ width: "24",
57
+ height: "24",
58
+ viewBox: "0 0 24 24",
59
+ fill: "currentColor"
60
+ }, /*#__PURE__*/_react["default"].createElement("path", {
61
+ d: "M0 0h24v24H0V0z",
62
+ fill: "none"
63
+ }), /*#__PURE__*/_react["default"].createElement("path", {
64
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
65
+ })),
66
+ increment: /*#__PURE__*/_react["default"].createElement("svg", {
67
+ xmlns: "http://www.w3.org/2000/svg",
68
+ height: "24px",
69
+ viewBox: "0 0 24 24",
70
+ width: "24px",
71
+ fill: "currentColor"
72
+ }, /*#__PURE__*/_react["default"].createElement("path", {
73
+ d: "M0 0h24v24H0z",
74
+ fill: "none"
75
+ }), /*#__PURE__*/_react["default"].createElement("path", {
76
+ d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
77
+ })),
78
+ decrement: /*#__PURE__*/_react["default"].createElement("svg", {
79
+ xmlns: "http://www.w3.org/2000/svg",
80
+ height: "24px",
81
+ viewBox: "0 0 24 24",
82
+ width: "24px",
83
+ fill: "currentColor"
84
+ }, /*#__PURE__*/_react["default"].createElement("path", {
85
+ d: "M0 0h24v24H0z",
86
+ fill: "none"
87
+ }), /*#__PURE__*/_react["default"].createElement("path", {
88
+ d: "M19 13H5v-2h14v2z"
89
+ }))
90
+ };
91
+
92
+ var makeCancelable = function makeCancelable(promise) {
93
+ var hasCanceled_ = false;
94
+ var wrappedPromise = new Promise(function (resolve, reject) {
95
+ promise.then(function (val) {
96
+ return hasCanceled_ ? reject({
97
+ isCanceled: true
98
+ }) : resolve(val);
99
+ }, function (promiseError) {
100
+ return hasCanceled_ ? reject({
101
+ isCanceled: true
102
+ }) : reject(promiseError);
103
+ });
104
+ });
105
+ return {
106
+ promise: wrappedPromise,
107
+ cancel: function cancel() {
108
+ hasCanceled_ = true;
109
+ }
110
+ };
111
+ };
112
+
113
+ var getNotOptionalErrorMessage = function getNotOptionalErrorMessage() {
114
+ return "This field is required. Please, enter a value.";
115
+ };
116
+
117
+ var getLengthErrorMessage = function getLengthErrorMessage(length) {
118
+ return "Min length ".concat(length.min, ", max length ").concat(length.max, ".");
119
+ };
120
+
121
+ var getPatternErrorMessage = function getPatternErrorMessage() {
122
+ return "Please match the format requested.";
123
+ };
124
+
125
+ var patternMatch = function patternMatch(pattern, value) {
126
+ return new RegExp(pattern).test(value);
127
+ };
128
+
129
+ var getLastOptionIndex = function getLastOptionIndex(filteredSuggestions) {
130
+ var last = 0;
131
+
132
+ var reducer = function reducer(acc, current) {
133
+ var _current$options;
134
+
135
+ return acc + ((_current$options = current.options) === null || _current$options === void 0 ? void 0 : _current$options.length);
136
+ };
137
+
138
+ if (filteredSuggestions.length > 0) filteredSuggestions[0].options ? last = filteredSuggestions.reduce(reducer, 0) - 1 : last = filteredSuggestions.length - 1;
139
+ return last;
140
+ };
141
+
142
+ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
143
+ var _action$title;
144
+
145
+ var _ref$label = _ref.label,
146
+ label = _ref$label === void 0 ? "" : _ref$label,
147
+ _ref$name = _ref.name,
148
+ name = _ref$name === void 0 ? "" : _ref$name,
149
+ value = _ref.value,
150
+ _ref$helperText = _ref.helperText,
151
+ helperText = _ref$helperText === void 0 ? "" : _ref$helperText,
152
+ _ref$placeholder = _ref.placeholder,
153
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
154
+ action = _ref.action,
155
+ _ref$clearable = _ref.clearable,
156
+ clearable = _ref$clearable === void 0 ? false : _ref$clearable,
157
+ _ref$disabled = _ref.disabled,
158
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
159
+ _ref$optional = _ref.optional,
160
+ optional = _ref$optional === void 0 ? false : _ref$optional,
161
+ _ref$prefix = _ref.prefix,
162
+ prefix = _ref$prefix === void 0 ? "" : _ref$prefix,
163
+ _ref$suffix = _ref.suffix,
164
+ suffix = _ref$suffix === void 0 ? "" : _ref$suffix,
165
+ onChange = _ref.onChange,
166
+ onBlur = _ref.onBlur,
167
+ _ref$error = _ref.error,
168
+ error = _ref$error === void 0 ? "" : _ref$error,
169
+ suggestions = _ref.suggestions,
170
+ pattern = _ref.pattern,
171
+ length = _ref.length,
172
+ _ref$autocomplete = _ref.autocomplete,
173
+ autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
174
+ margin = _ref.margin,
175
+ _ref$size = _ref.size,
176
+ size = _ref$size === void 0 ? "medium" : _ref$size,
177
+ _ref$tabIndex = _ref.tabIndex,
178
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
179
+
180
+ var _useState = (0, _react.useState)("input-".concat((0, _uuid.v4)())),
181
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
182
+ inputId = _useState2[0];
183
+
184
+ var _useState3 = (0, _react.useState)(""),
185
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
186
+ innerValue = _useState4[0],
187
+ setInnerValue = _useState4[1];
188
+
189
+ var _useState5 = (0, _react.useState)(false),
190
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
191
+ isOpen = _useState6[0],
192
+ changeIsOpen = _useState6[1];
193
+
194
+ var _useState7 = (0, _react.useState)(false),
195
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
196
+ isSearching = _useState8[0],
197
+ changeIsSearching = _useState8[1];
198
+
199
+ var _useState9 = (0, _react.useState)(false),
200
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
201
+ isAutosuggestError = _useState10[0],
202
+ changeIsAutosuggestError = _useState10[1];
203
+
204
+ var _useState11 = (0, _react.useState)([]),
205
+ _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
206
+ filteredSuggestions = _useState12[0],
207
+ changeFilteredSuggestions = _useState12[1];
208
+
209
+ var _useState13 = (0, _react.useState)(-1),
210
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
211
+ visualFocusedSuggIndex = _useState14[0],
212
+ changeVisualFocusedSuggIndex = _useState14[1];
213
+
214
+ var suggestionsRef = (0, _react.useRef)(null);
215
+ var inputRef = (0, _react.useRef)(null);
216
+ var actionRef = (0, _react.useRef)(null);
217
+ var colorsTheme = (0, _useTheme["default"])();
218
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
219
+ var autosuggestId = "".concat(inputId, "-listBox");
220
+ var errorId = "error-message-".concat(inputId);
221
+ var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
222
+ var lastOptionIndex = (0, _react.useMemo)(function () {
223
+ return getLastOptionIndex(filteredSuggestions);
224
+ }, [filteredSuggestions]);
225
+
226
+ var isNotOptional = function isNotOptional(value) {
227
+ return value === "" && !optional;
228
+ };
229
+
230
+ var isLengthIncorrect = function isLengthIncorrect(value) {
231
+ return value && (length === null || length === void 0 ? void 0 : length.min) && (length === null || length === void 0 ? void 0 : length.max) && (value.length < length.min || value.length > length.max);
232
+ };
233
+
234
+ var isNumberIncorrect = function isNumberIncorrect(value) {
235
+ return (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
236
+ };
237
+
238
+ var isTextInputType = function isTextInputType() {
239
+ var _inputRef$current, _inputRef$current2;
240
+
241
+ return !(inputRef !== null && inputRef !== void 0 && (_inputRef$current = inputRef.current) !== null && _inputRef$current !== void 0 && _inputRef$current.getAttribute("type")) || (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.getAttribute("type")) === "text";
242
+ };
243
+
244
+ var getNumberErrorMessage = function getNumberErrorMessage(value) {
245
+ if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) return "Value must be greater than or equal to ".concat(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber, ".");else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) return "Value must be less than or equal to ".concat(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber, ".");
246
+ };
247
+
248
+ var hasSuggestions = function hasSuggestions() {
249
+ return typeof suggestions === "function" || (suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) > 0;
250
+ };
251
+
252
+ var openSuggestions = function openSuggestions() {
253
+ hasSuggestions() && changeIsOpen(true);
254
+ };
255
+
256
+ var closeSuggestions = function closeSuggestions() {
257
+ changeIsOpen(false);
258
+ changeVisualFocusedSuggIndex(-1);
259
+ };
260
+
261
+ var changeValue = function changeValue(newValue) {
262
+ value !== null && value !== void 0 ? value : setInnerValue(newValue);
263
+ var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
264
+ if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
265
+ value: changedValue,
266
+ error: getNotOptionalErrorMessage()
267
+ });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
268
+ value: changedValue,
269
+ error: getLengthErrorMessage(length)
270
+ });else if (newValue && pattern && !patternMatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
271
+ value: changedValue,
272
+ error: getPatternErrorMessage()
273
+ });else if (newValue && isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
274
+ value: changedValue,
275
+ error: getNumberErrorMessage(newValue)
276
+ });else onChange === null || onChange === void 0 ? void 0 : onChange({
277
+ value: changedValue,
278
+ error: null
279
+ });
280
+ };
281
+
282
+ var handleInputContainerOnClick = function handleInputContainerOnClick() {
283
+ document.activeElement !== actionRef.current && inputRef.current.focus();
284
+ };
285
+
286
+ var handleInputContainerOnMouseDown = function handleInputContainerOnMouseDown(event) {
287
+ // Avoid input to lose the focus when the container is pressed
288
+ document.activeElement === inputRef.current && event.preventDefault();
289
+ };
290
+
291
+ var handleIOnChange = function handleIOnChange(event) {
292
+ openSuggestions();
293
+ changeValue(event.target.value);
294
+ };
295
+
296
+ var handleIOnBlur = function handleIOnBlur(event) {
297
+ suggestions && closeSuggestions();
298
+ if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
299
+ value: event.target.value,
300
+ error: getNotOptionalErrorMessage()
301
+ });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
302
+ value: event.target.value,
303
+ error: getLengthErrorMessage(length)
304
+ });else if (event.target.value && pattern && !patternMatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
305
+ value: event.target.value,
306
+ error: getPatternErrorMessage()
307
+ });else if (event.target.value && isNumberIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
308
+ value: event.target.value,
309
+ error: getNumberErrorMessage(event.target.value)
310
+ });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
311
+ value: event.target.value,
312
+ error: null
313
+ });
314
+ };
315
+
316
+ var handleIOnKeyDown = function handleIOnKeyDown(event) {
317
+ switch (event.keyCode) {
318
+ case 40:
319
+ // Arrow Down
320
+ if (numberInputContext) {
321
+ decrementNumber();
322
+ event.preventDefault();
323
+ } else {
324
+ event.preventDefault();
325
+ openSuggestions();
326
+
327
+ if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
328
+ changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
329
+ if (visualFocusedSuggIndex < filteredSuggestions.length - 1) return visualFocusedSuggIndex + 1;else if (visualFocusedSuggIndex === filteredSuggestions.length - 1) return 0;
330
+ });
331
+ }
332
+ }
333
+
334
+ break;
335
+
336
+ case 38:
337
+ // Arrow Up
338
+ if (numberInputContext) {
339
+ incrementNumber();
340
+ event.preventDefault();
341
+ } else {
342
+ event.preventDefault();
343
+ openSuggestions();
344
+
345
+ if (!isAutosuggestError && !isSearching && filteredSuggestions.length > 0) {
346
+ changeVisualFocusedSuggIndex(function (visualFocusedSuggIndex) {
347
+ if (visualFocusedSuggIndex === 0 || visualFocusedSuggIndex === -1) return filteredSuggestions.length > 0 ? filteredSuggestions.length - 1 : suggestions.length - 1;else return visualFocusedSuggIndex - 1;
348
+ });
349
+ }
350
+ }
351
+
352
+ break;
353
+
354
+ case 27:
355
+ // Esc
356
+ event.preventDefault();
357
+
358
+ if (hasSuggestions()) {
359
+ changeValue("");
360
+ isOpen && closeSuggestions();
361
+ }
362
+
363
+ break;
364
+
365
+ case 13:
366
+ // Enter
367
+ if (hasSuggestions() && !isSearching) {
368
+ var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusedSuggIndex >= 0 && visualFocusedSuggIndex < filteredSuggestions.length;
369
+ validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusedSuggIndex]);
370
+ isOpen && closeSuggestions();
371
+ }
372
+
373
+ break;
374
+ }
375
+ };
376
+
377
+ var handleClearActionOnClick = function handleClearActionOnClick() {
378
+ changeValue("");
379
+ inputRef.current.focus();
380
+ suggestions && closeSuggestions();
381
+ };
382
+
383
+ var handleDecrementActionOnClick = function handleDecrementActionOnClick() {
384
+ decrementNumber();
385
+ inputRef.current.focus();
386
+ };
387
+
388
+ var handleIncrementActionOnClick = function handleIncrementActionOnClick() {
389
+ incrementNumber();
390
+ inputRef.current.focus();
391
+ };
392
+
393
+ var setNumberProps = function setNumberProps(type, min, max, step) {
394
+ var _inputRef$current3, _inputRef$current4, _inputRef$current5, _inputRef$current6;
395
+
396
+ type && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.setAttribute("type", type));
397
+ min && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.setAttribute("min", min));
398
+ max && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.setAttribute("max", max));
399
+ step && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current6 = inputRef.current) === null || _inputRef$current6 === void 0 ? void 0 : _inputRef$current6.setAttribute("step", step));
400
+ };
401
+
402
+ var decrementNumber = function decrementNumber() {
403
+ var numberValue = value !== null && value !== void 0 ? value : innerValue;
404
+
405
+ if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(numberValue) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) {
406
+ changeValue(parseInt(numberValue));
407
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) {
408
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
409
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && (parseInt(numberValue) === (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || numberValue === "" || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && parseInt(numberValue) - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber))) {
410
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);
411
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(numberValue) - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) >= (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue !== "") {
412
+ changeValue(parseInt(numberValue) - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
413
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue == "") {
414
+ changeValue(-(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
415
+ } else if (numberValue === "") {
416
+ changeValue(-1);
417
+ } else {
418
+ changeValue(parseInt(numberValue) - 1);
419
+ }
420
+ };
421
+
422
+ var incrementNumber = function incrementNumber() {
423
+ var numberValue = value !== null && value !== void 0 ? value : innerValue;
424
+
425
+ if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) {
426
+ changeValue(parseInt(numberValue));
427
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && (parseInt(numberValue) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || numberValue === "")) {
428
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);
429
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && (parseInt(numberValue) === (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && parseInt(numberValue) + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber))) {
430
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
431
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) <= (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) || numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue !== "") {
432
+ changeValue(parseInt(numberValue) + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
433
+ } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue == "") {
434
+ changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber);
435
+ } else if (numberValue === "") {
436
+ changeValue(1);
437
+ } else {
438
+ changeValue(parseInt(numberValue) + 1);
439
+ }
440
+ };
441
+
442
+ (0, _react.useLayoutEffect)(function () {
443
+ var _suggestionsRef$curre, _visualFocusedOptionE;
444
+
445
+ var visualFocusedOptionEl = suggestionsRef === null || suggestionsRef === void 0 ? void 0 : (_suggestionsRef$curre = suggestionsRef.current) === null || _suggestionsRef$curre === void 0 ? void 0 : _suggestionsRef$curre.querySelectorAll("[role='option']")[visualFocusedSuggIndex];
446
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
447
+ block: "nearest",
448
+ inline: "start"
449
+ });
450
+ }, [visualFocusedSuggIndex]);
451
+ (0, _react.useEffect)(function () {
452
+ if (typeof suggestions === "function") {
453
+ changeIsSearching(true);
454
+ changeIsAutosuggestError(false);
455
+ changeFilteredSuggestions([]);
456
+ var cancelablePromise = makeCancelable(suggestions(value !== null && value !== void 0 ? value : innerValue));
457
+ cancelablePromise.promise.then(function (promiseResponse) {
458
+ changeIsSearching(false);
459
+ changeIsAutosuggestError(false);
460
+ changeFilteredSuggestions(promiseResponse);
461
+ })["catch"](function (err) {
462
+ if (!err.isCanceled) {
463
+ changeIsSearching(false);
464
+ changeIsAutosuggestError(true);
465
+ }
466
+ });
467
+ return function () {
468
+ cancelablePromise.cancel();
469
+ };
470
+ } else if ((suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) > 0) {
471
+ changeFilteredSuggestions(suggestions.filter(function (suggestion) {
472
+ return suggestion.toUpperCase().startsWith((value !== null && value !== void 0 ? value : innerValue).toUpperCase());
473
+ }));
474
+ changeVisualFocusedSuggIndex(-1);
475
+ }
476
+
477
+ numberInputContext && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
478
+ }, [value, innerValue, suggestions, numberInputContext]);
479
+
480
+ var HighlightedSuggestion = function HighlightedSuggestion(_ref2) {
481
+ var suggestion = _ref2.suggestion,
482
+ index = _ref2.index;
483
+ var regEx = new RegExp(value !== null && value !== void 0 ? value : innerValue, "i");
484
+ var matchedWords = suggestion.match(regEx);
485
+ var noMatchedWords = suggestion.replace(regEx, "");
486
+ var isLastOption = index === lastOptionIndex;
487
+ return /*#__PURE__*/_react["default"].createElement(Suggestion, {
488
+ id: "suggestion-".concat(index),
489
+ onClick: function onClick() {
490
+ changeValue(suggestion);
491
+ closeSuggestions();
492
+ },
493
+ visualFocused: visualFocusedSuggIndex === index,
494
+ role: "option",
495
+ "aria-selected": visualFocusedSuggIndex === index && "true"
496
+ }, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
497
+ last: isLastOption,
498
+ visualFocused: visualFocusedSuggIndex === index
499
+ }, typeof suggestions === "function" ? suggestion : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedWords), noMatchedWords)));
500
+ };
501
+
502
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
503
+ theme: colorsTheme.textInput
504
+ }, /*#__PURE__*/_react["default"].createElement(DxcInput, {
505
+ margin: margin,
506
+ ref: ref,
507
+ size: size
508
+ }, /*#__PURE__*/_react["default"].createElement(Label, {
509
+ htmlFor: inputId,
510
+ disabled: disabled,
511
+ backgroundType: backgroundType
512
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, "(Optional)")), /*#__PURE__*/_react["default"].createElement(HelperText, {
513
+ disabled: disabled,
514
+ backgroundType: backgroundType
515
+ }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
516
+ error: error,
517
+ disabled: disabled,
518
+ backgroundType: backgroundType,
519
+ onClick: handleInputContainerOnClick,
520
+ onMouseDown: handleInputContainerOnMouseDown
521
+ }, prefix && /*#__PURE__*/_react["default"].createElement(Prefix, {
522
+ disabled: disabled,
523
+ backgroundType: backgroundType
524
+ }, prefix), /*#__PURE__*/_react["default"].createElement(Input, {
525
+ id: inputId,
526
+ name: name,
527
+ value: value !== null && value !== void 0 ? value : innerValue,
528
+ placeholder: placeholder,
529
+ onBlur: handleIOnBlur,
530
+ onChange: handleIOnChange,
531
+ onFocus: function onFocus() {
532
+ openSuggestions();
533
+ },
534
+ onKeyDown: handleIOnKeyDown,
535
+ onMouseDown: function onMouseDown(event) {
536
+ event.stopPropagation();
537
+ },
538
+ disabled: disabled,
539
+ ref: inputRef,
540
+ backgroundType: backgroundType,
541
+ pattern: pattern,
542
+ minLength: length === null || length === void 0 ? void 0 : length.min,
543
+ maxLength: length === null || length === void 0 ? void 0 : length.max,
544
+ autoComplete: autocomplete,
545
+ tabIndex: tabIndex,
546
+ role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
547
+ "aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
548
+ "aria-controls": isTextInputType() && hasSuggestions() ? autosuggestId : undefined,
549
+ "aria-expanded": isTextInputType() && hasSuggestions() ? isOpen ? "true" : "false" : undefined,
550
+ "aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusedSuggIndex !== -1 ? "suggestion-".concat(visualFocusedSuggIndex) : undefined,
551
+ "aria-invalid": error ? "true" : "false",
552
+ "aria-describedby": error ? errorId : undefined,
553
+ "aria-required": optional ? "false" : "true"
554
+ }), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
555
+ backgroundType: backgroundType,
556
+ "aria-label": "Error"
557
+ }, textInputIcons.error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
558
+ onClick: handleClearActionOnClick,
559
+ onMouseDown: function onMouseDown(event) {
560
+ event.stopPropagation();
561
+ },
562
+ backgroundType: backgroundType,
563
+ tabIndex: tabIndex,
564
+ "aria-label": "Clear"
565
+ }, textInputIcons.clear), (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Action, {
566
+ ref: actionRef,
567
+ disabled: disabled,
568
+ onClick: handleDecrementActionOnClick,
569
+ onMouseDown: function onMouseDown(event) {
570
+ event.stopPropagation();
571
+ },
572
+ backgroundType: backgroundType,
573
+ tabIndex: tabIndex,
574
+ "aria-label": "Decrement"
575
+ }, textInputIcons.decrement), /*#__PURE__*/_react["default"].createElement(Action, {
576
+ ref: actionRef,
577
+ disabled: disabled,
578
+ onClick: handleIncrementActionOnClick,
579
+ onMouseDown: function onMouseDown(event) {
580
+ event.stopPropagation();
581
+ },
582
+ backgroundType: backgroundType,
583
+ tabIndex: tabIndex,
584
+ "aria-label": "Increment"
585
+ }, textInputIcons.increment)) : action && /*#__PURE__*/_react["default"].createElement(Action, {
586
+ ref: actionRef,
587
+ disabled: disabled,
588
+ onClick: action.onClick,
589
+ onMouseDown: function onMouseDown(event) {
590
+ event.stopPropagation();
591
+ },
592
+ title: (_action$title = action.title) !== null && _action$title !== void 0 ? _action$title : action.title,
593
+ backgroundType: backgroundType,
594
+ tabIndex: tabIndex
595
+ }, typeof action.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ActionIcon, {
596
+ src: action.icon
597
+ }) : action.icon), suffix && /*#__PURE__*/_react["default"].createElement(Suffix, {
598
+ disabled: disabled,
599
+ backgroundType: backgroundType
600
+ }, suffix), isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError) && /*#__PURE__*/_react["default"].createElement(Suggestions, {
601
+ id: autosuggestId,
602
+ isError: isAutosuggestError,
603
+ onMouseDown: function onMouseDown(event) {
604
+ event.preventDefault();
605
+ },
606
+ ref: suggestionsRef,
607
+ role: "listbox",
608
+ "aria-label": label
609
+ }, !isSearching && !isAutosuggestError && filteredSuggestions.length > 0 && filteredSuggestions.map(function (suggestion, index) {
610
+ return /*#__PURE__*/_react["default"].createElement(HighlightedSuggestion, {
611
+ key: "suggestion-".concat((0, _uuid.v4)()),
612
+ suggestion: suggestion,
613
+ index: index
614
+ });
615
+ }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, "Searching..."), isAutosuggestError && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
616
+ backgroundType: backgroundType
617
+ }, textInputIcons.error), "Error fetching data"))), !disabled && /*#__PURE__*/_react["default"].createElement(Error, {
618
+ id: errorId,
619
+ backgroundType: backgroundType
620
+ }, error)));
621
+ });
622
+
623
+ var sizes = {
624
+ small: "240px",
625
+ medium: "360px",
626
+ large: "480px",
627
+ fillParent: "100%"
628
+ };
629
+
630
+ var calculateWidth = function calculateWidth(margin, size) {
631
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
632
+ };
633
+
634
+ var DxcInput = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
635
+ return calculateWidth(props.margin, props.size);
636
+ }, function (props) {
637
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
638
+ }, function (props) {
639
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
640
+ }, function (props) {
641
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
642
+ }, function (props) {
643
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
644
+ }, function (props) {
645
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
646
+ });
647
+
648
+ 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"])), function (props) {
649
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
650
+ }, function (props) {
651
+ return props.theme.fontFamily;
652
+ }, function (props) {
653
+ return props.theme.labelFontSize;
654
+ }, function (props) {
655
+ return props.theme.labelFontStyle;
656
+ }, function (props) {
657
+ return props.theme.labelFontWeight;
658
+ }, function (props) {
659
+ return props.theme.labelLineHeight;
660
+ });
661
+
662
+ var OptionalLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: ", ";\n"])), function (props) {
663
+ return props.theme.optionalLabelFontWeight;
664
+ });
665
+
666
+ 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"])), function (props) {
667
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledHelperTextFontColorOnDark : props.theme.disabledHelperTextFontColor : props.backgroundType === "dark" ? props.theme.helperTextFontColorOnDark : props.theme.helperTextFontColor;
668
+ }, function (props) {
669
+ return props.theme.fontFamily;
670
+ }, function (props) {
671
+ return props.theme.helperTextFontSize;
672
+ }, function (props) {
673
+ return props.theme.helperTextFontStyle;
674
+ }, function (props) {
675
+ return props.theme.helperTextFontWeight;
676
+ }, function (props) {
677
+ return props.theme.helperTextLineHeight;
678
+ });
679
+
680
+ var InputContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n align-items: center;\n height: calc(2.5rem - 2px);\n margin: ", ";\n padding: 0 0.5rem;\n\n ", "\n box-shadow: 0 0 0 2px transparent;\n border-radius: 4px;\n border: 1px solid\n ", ";\n ", "\n ", ";\n\n ", ";\n"])), function (props) {
681
+ return "".concat(props.theme.inputMarginTop, " 0 ").concat(props.theme.inputMarginBottom, " 0");
682
+ }, function (props) {
683
+ if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");
684
+ }, function (props) {
685
+ if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
686
+ }, function (props) {
687
+ 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 ");
688
+ }, function (props) {
689
+ return props.disabled && "cursor: not-allowed;";
690
+ }, function (props) {
691
+ 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-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ");
692
+ });
693
+
694
+ var Input = _styledComponents["default"].input(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n height: calc(2.5rem - 2px);\n width: 100%;\n background: none;\n border: none;\n outline: none;\n padding: 0 0.5rem;\n\n color: ", ";\n\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5em;\n ", "\n\n ::placeholder {\n color: ", ";\n }\n"])), function (props) {
695
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledValueFontColorOnDark : props.theme.disabledValueFontColor : props.backgroundType === "dark" ? props.theme.valueFontColorOnDark : props.theme.valueFontColor;
696
+ }, function (props) {
697
+ return props.theme.fontFamily;
698
+ }, function (props) {
699
+ return props.theme.valueFontSize;
700
+ }, function (props) {
701
+ return props.theme.valueFontStyle;
702
+ }, function (props) {
703
+ return props.theme.valueFontWeight;
704
+ }, function (props) {
705
+ return props.disabled && "cursor: not-allowed;";
706
+ }, function (props) {
707
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPlaceholderFontColorOnDark : props.theme.disabledPlaceholderFontColor : props.backgroundType === "dark" ? props.theme.placeholderFontColorOnDark : props.theme.placeholderFontColor;
708
+ });
709
+
710
+ var ActionIcon = _styledComponents["default"].img(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
711
+
712
+ var Action = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 2px;\n padding: 3px;\n margin-left: 0.25rem;\n ", "\n\n box-shadow: 0 0 0 2px transparent;\n background-color: ", ";\n\n color: ", ";\n\n ", "\n\n svg {\n line-height: 18px;\n }\n"])), function (props) {
713
+ return props.theme.fontFamily;
714
+ }, function (props) {
715
+ return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
716
+ }, function (props) {
717
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledActionBackgroundColorOnDark : props.theme.disabledActionBackgroundColor : props.backgroundType === "dark" ? props.theme.actionBackgroundColorOnDark : props.theme.actionBackgroundColor;
718
+ }, function (props) {
719
+ return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledActionIconColorOnDark : props.theme.disabledActionIconColor : props.backgroundType === "dark" ? props.theme.actionIconColorOnDark : props.theme.actionIconColor;
720
+ }, function (props) {
721
+ return !props.disabled && "\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.focusActionBorderColorOnDark : props.theme.focusActionBorderColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.focusActionIconColorOnDark : props.theme.focusActionIconColor, ";\n }\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusActionBorderColorOnDark : props.theme.focusActionBorderColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.focusActionIconColorOnDark : props.theme.focusActionIconColor, ";\n }\n &:hover {\n background-color: ").concat(props.backgroundType === "dark" ? props.theme.hoverActionBackgroundColorOnDark : props.theme.hoverActionBackgroundColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.hoverActionIconColorOnDark : props.theme.hoverActionIconColor, ";\n }\n &:active {\n background-color: ").concat(props.backgroundType === "dark" ? props.theme.activeActionBackgroundColorOnDark : props.theme.activeActionBackgroundColor, ";\n color: ").concat(props.backgroundType === "dark" ? props.theme.activeActionIconColorOnDark : props.theme.activeActionIconColor, ";\n }\n ");
722
+ });
723
+
724
+ var Prefix = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n height: 1.5rem;\n line-height: 1.5rem;\n margin-left: 0.25rem;\n padding: 0 0.5rem 0 0;\n ", ";\n font-family: ", ";\n font-size: 1rem;\n pointer-events: none;\n"])), function (props) {
725
+ var color = props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPrefixColorOnDark : props.theme.disabledPrefixColor : props.backgroundType === "dark" ? props.theme.prefixColorOnDark : props.theme.prefixColor;
726
+ return "color: ".concat(color, "; border-right: 1px solid ").concat(color, ";");
727
+ }, function (props) {
728
+ return props.theme.fontFamily;
729
+ });
730
+
731
+ var Suffix = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n height: 1.5rem;\n line-height: 1.5rem;\n margin: 0 0.25rem;\n padding: 0 0 0 0.5rem;\n ", ";\n font-family: ", ";\n font-size: 1rem;\n pointer-events: none;\n"])), function (props) {
732
+ var color = props.disabled ? props.backgroundType === "dark" ? props.theme.disabledSuffixColorOnDark : props.theme.disabledSuffixColor : props.backgroundType === "dark" ? props.theme.suffixColorOnDark : props.theme.suffixColor;
733
+ return "color: ".concat(color, "; border-left: 1px solid ").concat(color, ";");
734
+ }, function (props) {
735
+ return props.theme.fontFamily;
736
+ });
737
+
738
+ var ErrorIcon = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n padding: 3px;\n height: 18px;\n width: 18px;\n margin-left: 0.25rem;\n color: ", ";\n\n svg {\n line-height: 18px;\n font-size: 1.25rem;\n }\n"])), function (props) {
739
+ return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
740
+ });
741
+
742
+ var Error = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 1.5em;\n color: ", ";\n font-family: ", ";\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1.5em;\n"])), function (props) {
743
+ return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
744
+ }, function (props) {
745
+ return props.theme.fontFamily;
746
+ });
747
+
748
+ var Suggestions = _styledComponents["default"].ul(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n z-index: 1;\n max-height: 304px;\n overflow-y: auto;\n top: calc(100% + 4px);\n left: 0;\n margin: 0;\n padding: 0.25rem 0;\n width: 100%;\n background-color: ", ";\n border: 1px solid\n ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
749
+ return props.isError ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
750
+ }, function (props) {
751
+ return props.isError ? props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
752
+ }, function (props) {
753
+ return props.theme.listOptionFontColor;
754
+ }, function (props) {
755
+ return props.theme.fontFamily;
756
+ }, function (props) {
757
+ return props.theme.listOptionFontSize;
758
+ }, function (props) {
759
+ return props.theme.listOptionFontStyle;
760
+ }, function (props) {
761
+ return props.theme.listOptionFontWeight;
762
+ });
763
+
764
+ var Suggestion = _styledComponents["default"].li(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n\n box-shadow: inset 0 0 0 2px\n ", ";\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
765
+ return props.visualFocused ? props.theme.focusListOptionBorderColor : "transparent";
766
+ }, function (props) {
767
+ return props.theme.hoverListOptionBackgroundColor;
768
+ }, function (props) {
769
+ return props.theme.activeListOptionBackgroundColor;
770
+ });
771
+
772
+ var StyledSuggestion = _styledComponents["default"].span(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.25rem 0.5rem 0.188rem 0.5rem;\n ", ";\n"])), function (props) {
773
+ return props.last || props.visualFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
774
+ });
775
+
776
+ var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
777
+ return props.theme.systemMessageFontColor;
778
+ });
779
+
780
+ var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n color: ", ";\n"])), function (props) {
781
+ return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
782
+ });
783
+
784
+ var SuggestionsError = _styledComponents["default"].span(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
785
+ return props.theme.errorListDialogFontColor;
786
+ });
787
+
788
+ DxcTextInput.propTypes = {
789
+ label: _propTypes["default"].string,
790
+ name: _propTypes["default"].string,
791
+ value: _propTypes["default"].string,
792
+ helperText: _propTypes["default"].string,
793
+ placeholder: _propTypes["default"].string,
794
+ action: _propTypes["default"].shape({
795
+ onClick: _propTypes["default"].func.isRequired,
796
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].shape({
797
+ type: _propTypes["default"].oneOf(["svg"])
798
+ }), _propTypes["default"].string]).isRequired
799
+ }),
800
+ clearable: _propTypes["default"].bool,
801
+ disabled: _propTypes["default"].bool,
802
+ optional: _propTypes["default"].bool,
803
+ prefix: _propTypes["default"].string,
804
+ suffix: _propTypes["default"].string,
805
+ onChange: _propTypes["default"].func,
806
+ onBlur: _propTypes["default"].func,
807
+ error: _propTypes["default"].string,
808
+ autocomplete: _propTypes["default"].string,
809
+ margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
810
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
811
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
812
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
813
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
814
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
815
+ size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
816
+ suggestions: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].array]),
817
+ pattern: _propTypes["default"].string,
818
+ length: _propTypes["default"].shape({
819
+ min: _propTypes["default"].number,
820
+ max: _propTypes["default"].number
821
+ }),
822
+ tabIndex: _propTypes["default"].number
823
+ };
824
+ var _default = DxcTextInput;
825
+ exports["default"] = _default;