@dxc-technology/halstack-react 0.0.0-74ba970 → 0.0.0-752ca0a

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 (234) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1349 -5
  4. package/HalstackContext.js +117 -77
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +14 -37
  8. package/accordion/Accordion.stories.tsx +104 -113
  9. package/accordion/Accordion.test.js +1 -1
  10. package/accordion/types.d.ts +2 -13
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +23 -44
  13. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  14. package/accordion-group/AccordionGroup.test.js +7 -17
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +2 -13
  18. package/alert/Alert.js +4 -8
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +1 -1
  21. package/bleed/Bleed.stories.tsx +1 -0
  22. package/box/Box.d.ts +1 -1
  23. package/box/Box.js +7 -26
  24. package/box/Box.stories.tsx +38 -51
  25. package/box/Box.test.js +1 -1
  26. package/box/types.d.ts +0 -11
  27. package/bulleted-list/BulletedList.js +4 -2
  28. package/bulleted-list/BulletedList.stories.tsx +7 -1
  29. package/bulleted-list/types.d.ts +31 -4
  30. package/button/Button.d.ts +1 -1
  31. package/button/Button.js +48 -60
  32. package/button/Button.stories.tsx +151 -9
  33. package/button/Button.test.js +12 -1
  34. package/button/types.d.ts +7 -3
  35. package/card/Card.d.ts +1 -1
  36. package/card/Card.js +27 -45
  37. package/card/Card.stories.tsx +12 -42
  38. package/card/Card.test.js +1 -1
  39. package/card/types.d.ts +1 -6
  40. package/checkbox/Checkbox.d.ts +2 -2
  41. package/checkbox/Checkbox.js +71 -51
  42. package/checkbox/Checkbox.stories.tsx +146 -58
  43. package/checkbox/Checkbox.test.js +84 -11
  44. package/checkbox/types.d.ts +10 -2
  45. package/chip/Chip.js +28 -49
  46. package/chip/Chip.stories.tsx +121 -26
  47. package/chip/Chip.test.js +3 -5
  48. package/common/OpenSans.css +68 -80
  49. package/common/coreTokens.d.ts +146 -0
  50. package/common/coreTokens.js +167 -0
  51. package/common/utils.d.ts +1 -0
  52. package/common/utils.js +4 -4
  53. package/common/variables.d.ts +1499 -0
  54. package/common/variables.js +1004 -1134
  55. package/date-input/Calendar.d.ts +4 -0
  56. package/date-input/Calendar.js +258 -0
  57. package/date-input/DateInput.js +138 -239
  58. package/date-input/DateInput.stories.tsx +209 -33
  59. package/date-input/DateInput.test.js +519 -149
  60. package/date-input/DatePicker.d.ts +4 -0
  61. package/date-input/DatePicker.js +146 -0
  62. package/date-input/Icons.d.ts +6 -0
  63. package/date-input/Icons.js +75 -0
  64. package/date-input/YearPicker.d.ts +4 -0
  65. package/date-input/YearPicker.js +126 -0
  66. package/date-input/types.d.ts +55 -0
  67. package/dialog/Dialog.d.ts +1 -1
  68. package/dialog/Dialog.js +54 -85
  69. package/dialog/Dialog.stories.tsx +154 -170
  70. package/dialog/Dialog.test.js +302 -3
  71. package/dialog/types.d.ts +0 -12
  72. package/dropdown/Dropdown.js +40 -39
  73. package/dropdown/Dropdown.stories.tsx +210 -84
  74. package/dropdown/Dropdown.test.js +21 -26
  75. package/dropdown/DropdownMenu.js +12 -18
  76. package/dropdown/DropdownMenuItem.js +4 -17
  77. package/dropdown/types.d.ts +3 -3
  78. package/file-input/FileInput.d.ts +2 -2
  79. package/file-input/FileInput.js +174 -220
  80. package/file-input/FileInput.stories.tsx +122 -11
  81. package/file-input/FileInput.test.js +14 -14
  82. package/file-input/FileItem.d.ts +4 -14
  83. package/file-input/FileItem.js +39 -63
  84. package/file-input/types.d.ts +18 -1
  85. package/flex/Flex.d.ts +1 -1
  86. package/flex/Flex.js +33 -19
  87. package/flex/Flex.stories.tsx +35 -26
  88. package/flex/types.d.ts +83 -7
  89. package/footer/Footer.d.ts +1 -1
  90. package/footer/Footer.js +44 -64
  91. package/footer/Footer.stories.tsx +36 -21
  92. package/footer/Footer.test.js +16 -26
  93. package/footer/types.d.ts +10 -11
  94. package/grid/Grid.d.ts +7 -0
  95. package/grid/Grid.js +91 -0
  96. package/grid/Grid.stories.tsx +219 -0
  97. package/grid/types.d.ts +115 -0
  98. package/header/Header.d.ts +4 -3
  99. package/header/Header.js +20 -49
  100. package/header/Header.stories.tsx +115 -36
  101. package/header/Header.test.js +2 -2
  102. package/header/types.d.ts +1 -14
  103. package/heading/Heading.js +1 -1
  104. package/heading/Heading.test.js +1 -1
  105. package/image/Image.d.ts +4 -0
  106. package/image/Image.js +85 -0
  107. package/image/Image.stories.tsx +127 -0
  108. package/image/types.d.ts +72 -0
  109. package/inset/Inset.stories.tsx +2 -1
  110. package/layout/ApplicationLayout.d.ts +5 -5
  111. package/layout/ApplicationLayout.js +15 -12
  112. package/layout/ApplicationLayout.stories.tsx +1 -1
  113. package/layout/Icons.d.ts +7 -4
  114. package/layout/Icons.js +52 -56
  115. package/layout/types.d.ts +2 -3
  116. package/link/Link.js +4 -4
  117. package/link/Link.stories.tsx +60 -0
  118. package/link/Link.test.js +2 -4
  119. package/link/types.d.ts +2 -2
  120. package/main.d.ts +4 -2
  121. package/main.js +17 -1
  122. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  123. package/{tabs-nav → nav-tabs}/NavTabs.js +8 -11
  124. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +110 -6
  125. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  126. package/{tabs-nav → nav-tabs}/Tab.js +48 -32
  127. package/{tabs-nav → nav-tabs}/types.d.ts +8 -9
  128. package/nav-tabs/types.js +5 -0
  129. package/number-input/NumberInput.d.ts +7 -0
  130. package/number-input/NumberInput.js +6 -4
  131. package/number-input/NumberInput.test.js +317 -98
  132. package/package.json +9 -14
  133. package/paginator/Icons.d.ts +5 -0
  134. package/paginator/Icons.js +16 -28
  135. package/paginator/Paginator.js +8 -16
  136. package/paginator/Paginator.stories.tsx +24 -0
  137. package/paginator/Paginator.test.js +58 -48
  138. package/paragraph/Paragraph.d.ts +3 -4
  139. package/paragraph/Paragraph.js +5 -5
  140. package/password-input/Icons.d.ts +6 -0
  141. package/password-input/Icons.js +39 -0
  142. package/password-input/PasswordInput.js +35 -82
  143. package/password-input/PasswordInput.stories.tsx +1 -0
  144. package/password-input/PasswordInput.test.js +34 -40
  145. package/progress-bar/ProgressBar.d.ts +2 -2
  146. package/progress-bar/ProgressBar.js +5 -5
  147. package/progress-bar/ProgressBar.stories.jsx +35 -2
  148. package/progress-bar/ProgressBar.test.js +1 -1
  149. package/progress-bar/types.d.ts +4 -3
  150. package/quick-nav/QuickNav.js +11 -12
  151. package/quick-nav/QuickNav.stories.tsx +111 -19
  152. package/radio-group/Radio.js +10 -10
  153. package/radio-group/RadioGroup.js +15 -13
  154. package/radio-group/RadioGroup.stories.tsx +131 -18
  155. package/radio-group/RadioGroup.test.js +117 -60
  156. package/resultsetTable/Icons.d.ts +7 -0
  157. package/resultsetTable/Icons.js +51 -0
  158. package/resultsetTable/ResultsetTable.js +49 -108
  159. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  160. package/resultsetTable/ResultsetTable.test.js +41 -64
  161. package/resultsetTable/types.d.ts +1 -1
  162. package/select/Listbox.d.ts +1 -1
  163. package/select/Listbox.js +5 -34
  164. package/select/Option.js +11 -24
  165. package/select/Select.js +59 -36
  166. package/select/Select.stories.tsx +497 -153
  167. package/select/Select.test.js +345 -292
  168. package/select/types.d.ts +2 -2
  169. package/sidenav/Icons.d.ts +7 -0
  170. package/sidenav/Icons.js +51 -0
  171. package/sidenav/Sidenav.d.ts +2 -2
  172. package/sidenav/Sidenav.js +66 -96
  173. package/sidenav/Sidenav.stories.tsx +165 -63
  174. package/sidenav/types.d.ts +21 -18
  175. package/slider/Slider.d.ts +2 -2
  176. package/slider/Slider.js +17 -14
  177. package/slider/Slider.stories.tsx +57 -0
  178. package/slider/Slider.test.js +1 -1
  179. package/slider/types.d.ts +6 -2
  180. package/spinner/Spinner.js +17 -23
  181. package/spinner/Spinner.stories.jsx +53 -27
  182. package/spinner/Spinner.test.js +1 -1
  183. package/switch/Switch.d.ts +3 -3
  184. package/switch/Switch.js +7 -6
  185. package/switch/Switch.stories.tsx +33 -0
  186. package/switch/Switch.test.js +1 -1
  187. package/switch/types.d.ts +8 -3
  188. package/table/Table.js +3 -3
  189. package/table/Table.stories.jsx +80 -1
  190. package/table/Table.test.js +2 -2
  191. package/tabs/Tab.js +12 -15
  192. package/tabs/Tabs.js +11 -17
  193. package/tabs/Tabs.stories.tsx +45 -5
  194. package/tabs/Tabs.test.js +4 -5
  195. package/tabs/types.d.ts +2 -2
  196. package/tag/Tag.js +7 -9
  197. package/tag/Tag.stories.tsx +14 -1
  198. package/tag/Tag.test.js +1 -1
  199. package/text-input/Suggestion.js +34 -7
  200. package/text-input/TextInput.js +224 -228
  201. package/text-input/TextInput.stories.tsx +132 -5
  202. package/text-input/TextInput.test.js +757 -658
  203. package/text-input/types.d.ts +9 -0
  204. package/textarea/Textarea.js +27 -26
  205. package/textarea/Textarea.stories.jsx +68 -1
  206. package/textarea/Textarea.test.js +61 -19
  207. package/textarea/types.d.ts +4 -0
  208. package/toggle-group/ToggleGroup.d.ts +2 -2
  209. package/toggle-group/ToggleGroup.js +85 -59
  210. package/toggle-group/ToggleGroup.stories.tsx +48 -3
  211. package/toggle-group/ToggleGroup.test.js +38 -24
  212. package/toggle-group/types.d.ts +22 -13
  213. package/typography/Typography.d.ts +2 -2
  214. package/typography/Typography.js +14 -113
  215. package/typography/Typography.stories.tsx +1 -1
  216. package/useTheme.d.ts +1251 -1
  217. package/useTheme.js +1 -1
  218. package/useTranslatedLabels.d.ts +84 -1
  219. package/utils/BaseTypography.d.ts +21 -0
  220. package/utils/BaseTypography.js +108 -0
  221. package/utils/FocusLock.d.ts +13 -0
  222. package/utils/FocusLock.js +138 -0
  223. package/wizard/Wizard.js +2 -2
  224. package/wizard/Wizard.stories.tsx +20 -0
  225. package/wizard/Wizard.test.js +1 -1
  226. package/wizard/types.d.ts +5 -6
  227. package/card/ice-cream.jpg +0 -0
  228. package/common/RequiredComponent.js +0 -32
  229. package/number-input/NumberInputContext.d.ts +0 -4
  230. package/number-input/NumberInputContext.js +0 -19
  231. package/number-input/numberInputContextTypes.d.ts +0 -19
  232. /package/{tabs-nav → grid}/types.js +0 -0
  233. /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
  234. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -23,13 +23,13 @@ var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
24
24
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
25
 
26
- var _variables = require("../common/variables.js");
26
+ var _variables = require("../common/variables");
27
27
 
28
- var _utils = require("../common/utils.js");
28
+ var _utils = require("../common/utils");
29
29
 
30
30
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
31
31
 
32
- var _NumberInputContext = _interopRequireDefault(require("../number-input/NumberInputContext"));
32
+ var _NumberInput = require("../number-input/NumberInput");
33
33
 
34
34
  var _Suggestions = _interopRequireDefault(require("./Suggestions"));
35
35
 
@@ -39,7 +39,7 @@ var _Icons = _interopRequireDefault(require("./Icons"));
39
39
 
40
40
  var _uuid = require("uuid");
41
41
 
42
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
42
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
43
43
 
44
44
  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); }
45
45
 
@@ -52,6 +52,13 @@ var sizes = {
52
52
  fillParent: "100%"
53
53
  };
54
54
 
55
+ var AutosuggestWrapper = function AutosuggestWrapper(_ref) {
56
+ var condition = _ref.condition,
57
+ wrapper = _ref.wrapper,
58
+ children = _ref.children;
59
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, condition ? wrapper(children) : children);
60
+ };
61
+
55
62
  var calculateWidth = function calculateWidth(margin, size) {
56
63
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
57
64
  };
@@ -77,142 +84,147 @@ var makeCancelable = function makeCancelable(promise) {
77
84
  };
78
85
  };
79
86
 
80
- var patternMissmatch = function patternMissmatch(pattern, value) {
81
- return pattern && !new RegExp(pattern).test(value);
87
+ var hasSuggestions = function hasSuggestions(suggestions) {
88
+ return typeof suggestions === "function" || (suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) > 0;
89
+ };
90
+
91
+ var isRequired = function isRequired(value, optional) {
92
+ return value === "" && !optional;
93
+ };
94
+
95
+ var isLengthIncorrect = function isLengthIncorrect(value, minLength, maxLength) {
96
+ return value != null && (value.length < minLength || value.length > maxLength);
97
+ };
98
+
99
+ var isNumberIncorrect = function isNumberIncorrect(value, minNumber, maxNumber) {
100
+ return value < minNumber || value > maxNumber;
82
101
  };
83
102
 
84
- var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
85
- var label = _ref.label,
86
- _ref$name = _ref.name,
87
- name = _ref$name === void 0 ? "" : _ref$name,
88
- _ref$defaultValue = _ref.defaultValue,
89
- defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
90
- value = _ref.value,
91
- helperText = _ref.helperText,
92
- _ref$placeholder = _ref.placeholder,
93
- placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
94
- action = _ref.action,
95
- _ref$clearable = _ref.clearable,
96
- clearable = _ref$clearable === void 0 ? false : _ref$clearable,
97
- _ref$disabled = _ref.disabled,
98
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
99
- _ref$optional = _ref.optional,
100
- optional = _ref$optional === void 0 ? false : _ref$optional,
101
- _ref$prefix = _ref.prefix,
102
- prefix = _ref$prefix === void 0 ? "" : _ref$prefix,
103
- _ref$suffix = _ref.suffix,
104
- suffix = _ref$suffix === void 0 ? "" : _ref$suffix,
105
- onChange = _ref.onChange,
106
- onBlur = _ref.onBlur,
107
- error = _ref.error,
108
- suggestions = _ref.suggestions,
109
- pattern = _ref.pattern,
110
- minLength = _ref.minLength,
111
- maxLength = _ref.maxLength,
112
- _ref$autocomplete = _ref.autocomplete,
113
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
114
- margin = _ref.margin,
115
- _ref$size = _ref.size,
116
- size = _ref$size === void 0 ? "medium" : _ref$size,
117
- _ref$tabIndex = _ref.tabIndex,
118
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
119
- var id = (0, _react.useState)((0, _uuid.v4)());
120
- var inputId = "input-".concat(id);
121
- var autosuggestId = "suggestions-".concat(id);
122
- var errorId = "error-".concat(id);
123
-
124
- var _useState = (0, _react.useState)(defaultValue),
125
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
126
- innerValue = _useState2[0],
127
- setInnerValue = _useState2[1];
128
-
129
- var _useState3 = (0, _react.useState)(false),
103
+ var patternMismatch = function patternMismatch(pattern, value) {
104
+ return pattern != null && !new RegExp(pattern).test(value);
105
+ };
106
+
107
+ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
108
+ var label = _ref2.label,
109
+ _ref2$name = _ref2.name,
110
+ name = _ref2$name === void 0 ? "" : _ref2$name,
111
+ _ref2$defaultValue = _ref2.defaultValue,
112
+ defaultValue = _ref2$defaultValue === void 0 ? "" : _ref2$defaultValue,
113
+ value = _ref2.value,
114
+ helperText = _ref2.helperText,
115
+ _ref2$placeholder = _ref2.placeholder,
116
+ placeholder = _ref2$placeholder === void 0 ? "" : _ref2$placeholder,
117
+ action = _ref2.action,
118
+ _ref2$clearable = _ref2.clearable,
119
+ clearable = _ref2$clearable === void 0 ? false : _ref2$clearable,
120
+ _ref2$disabled = _ref2.disabled,
121
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
122
+ _ref2$readOnly = _ref2.readOnly,
123
+ readOnly = _ref2$readOnly === void 0 ? false : _ref2$readOnly,
124
+ _ref2$optional = _ref2.optional,
125
+ optional = _ref2$optional === void 0 ? false : _ref2$optional,
126
+ _ref2$prefix = _ref2.prefix,
127
+ prefix = _ref2$prefix === void 0 ? "" : _ref2$prefix,
128
+ _ref2$suffix = _ref2.suffix,
129
+ suffix = _ref2$suffix === void 0 ? "" : _ref2$suffix,
130
+ onChange = _ref2.onChange,
131
+ onBlur = _ref2.onBlur,
132
+ error = _ref2.error,
133
+ suggestions = _ref2.suggestions,
134
+ pattern = _ref2.pattern,
135
+ minLength = _ref2.minLength,
136
+ maxLength = _ref2.maxLength,
137
+ _ref2$autocomplete = _ref2.autocomplete,
138
+ autocomplete = _ref2$autocomplete === void 0 ? "off" : _ref2$autocomplete,
139
+ margin = _ref2.margin,
140
+ _ref2$size = _ref2.size,
141
+ size = _ref2$size === void 0 ? "medium" : _ref2$size,
142
+ _ref2$tabIndex = _ref2.tabIndex,
143
+ tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;
144
+
145
+ var _useState = (0, _react.useState)("input-".concat((0, _uuid.v4)())),
146
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
147
+ inputId = _useState2[0];
148
+
149
+ var autosuggestId = "suggestions-".concat(inputId);
150
+ var errorId = "error-".concat(inputId);
151
+
152
+ var _useState3 = (0, _react.useState)(defaultValue),
130
153
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
131
- isOpen = _useState4[0],
132
- changeIsOpen = _useState4[1];
154
+ innerValue = _useState4[0],
155
+ setInnerValue = _useState4[1];
133
156
 
134
157
  var _useState5 = (0, _react.useState)(false),
135
158
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
136
- isSearching = _useState6[0],
137
- changeIsSearching = _useState6[1];
159
+ isOpen = _useState6[0],
160
+ changeIsOpen = _useState6[1];
138
161
 
139
162
  var _useState7 = (0, _react.useState)(false),
140
163
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
141
- isAutosuggestError = _useState8[0],
142
- changeIsAutosuggestError = _useState8[1];
164
+ isSearching = _useState8[0],
165
+ changeIsSearching = _useState8[1];
143
166
 
144
- var _useState9 = (0, _react.useState)([]),
167
+ var _useState9 = (0, _react.useState)(false),
145
168
  _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
146
- filteredSuggestions = _useState10[0],
147
- changeFilteredSuggestions = _useState10[1];
169
+ isAutosuggestError = _useState10[0],
170
+ changeIsAutosuggestError = _useState10[1];
148
171
 
149
- var _useState11 = (0, _react.useState)(-1),
172
+ var _useState11 = (0, _react.useState)([]),
150
173
  _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
151
- visualFocusIndex = _useState12[0],
152
- changeVisualFocusIndex = _useState12[1];
174
+ filteredSuggestions = _useState12[0],
175
+ changeFilteredSuggestions = _useState12[1];
176
+
177
+ var _useState13 = (0, _react.useState)(-1),
178
+ _useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
179
+ visualFocusIndex = _useState14[0],
180
+ changeVisualFocusIndex = _useState14[1];
153
181
 
154
- var inputContainerRef = (0, _react.useRef)(null);
155
182
  var inputRef = (0, _react.useRef)(null);
156
183
  var actionRef = (0, _react.useRef)(null);
157
184
  var colorsTheme = (0, _useTheme["default"])();
158
185
  var translatedLabels = (0, _useTranslatedLabels["default"])();
159
186
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
160
- var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
161
-
162
- var isNotOptional = function isNotOptional(value) {
163
- return value === "" && !optional;
164
- };
165
-
166
- var isLengthIncorrect = function isLengthIncorrect(value) {
167
- return value && minLength && maxLength && (value.length < minLength || value.length > maxLength);
168
- };
169
-
170
- var isNumberIncorrect = function isNumberIncorrect(value) {
171
- 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);
172
- };
173
-
174
- var isTextInputType = function isTextInputType() {
175
- var _inputRef$current, _inputRef$current2;
176
-
177
- 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";
178
- };
187
+ var numberInputContext = (0, _react.useContext)(_NumberInput.NumberInputContext);
179
188
 
180
189
  var getNumberErrorMessage = function getNumberErrorMessage(value) {
181
- if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(value) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) return translatedLabels.numberInput.valueGreaterThanOrEqualToErrorMessage(numberInputContext.minNumber);else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(value) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) return translatedLabels.numberInput.valueLessThanOrEqualToErrorMessage(numberInputContext.maxNumber);
190
+ if (value < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) return translatedLabels.numberInput.valueGreaterThanOrEqualToErrorMessage(numberInputContext.minNumber);else if (value > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) return translatedLabels.numberInput.valueLessThanOrEqualToErrorMessage(numberInputContext.maxNumber);
182
191
  };
183
192
 
184
- var hasSuggestions = function hasSuggestions() {
185
- return typeof suggestions === "function" || (suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) > 0;
186
- };
193
+ var getTextInputWidth = (0, _react.useCallback)(function () {
194
+ var _inputRef$current, _inputRef$current$par;
195
+
196
+ var rect = inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : (_inputRef$current$par = _inputRef$current.parentElement) === null || _inputRef$current$par === void 0 ? void 0 : _inputRef$current$par.getBoundingClientRect();
197
+ return rect === null || rect === void 0 ? void 0 : rect.width;
198
+ }, []);
187
199
 
188
200
  var openSuggestions = function openSuggestions() {
189
- hasSuggestions() && changeIsOpen(true);
201
+ hasSuggestions(suggestions) && changeIsOpen(true);
190
202
  };
191
203
 
192
204
  var closeSuggestions = function closeSuggestions() {
193
- if (hasSuggestions()) {
205
+ if (hasSuggestions(suggestions)) {
194
206
  changeIsOpen(false);
195
207
  changeVisualFocusIndex(-1);
196
208
  }
197
209
  };
198
210
 
199
211
  var changeValue = function changeValue(newValue) {
200
- value !== null && value !== void 0 ? value : setInnerValue(newValue);
201
- var changedValue = typeof newValue === "number" ? newValue.toString() : newValue;
202
- if (isNotOptional(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
203
- value: changedValue,
212
+ var formattedValue = typeof newValue === "number" ? newValue.toString() : newValue;
213
+ value !== null && value !== void 0 ? value : setInnerValue(formattedValue);
214
+ if (isRequired(formattedValue, optional)) onChange === null || onChange === void 0 ? void 0 : onChange({
215
+ value: formattedValue,
204
216
  error: translatedLabels.formFields.requiredValueErrorMessage
205
- });else if (isLengthIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
206
- value: changedValue,
217
+ });else if (isLengthIncorrect(formattedValue, minLength, maxLength)) onChange === null || onChange === void 0 ? void 0 : onChange({
218
+ value: formattedValue,
207
219
  error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
208
- });else if (patternMissmatch(pattern, newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
209
- value: changedValue,
220
+ });else if (patternMismatch(pattern, formattedValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
221
+ value: formattedValue,
210
222
  error: translatedLabels.formFields.formatRequestedErrorMessage
211
- });else if (isNumberIncorrect(newValue)) onChange === null || onChange === void 0 ? void 0 : onChange({
212
- value: changedValue,
213
- error: getNumberErrorMessage(newValue)
223
+ });else if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && isNumberIncorrect(Number(newValue), numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber, numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) onChange === null || onChange === void 0 ? void 0 : onChange({
224
+ value: formattedValue,
225
+ error: getNumberErrorMessage(Number(newValue))
214
226
  });else onChange === null || onChange === void 0 ? void 0 : onChange({
215
- value: changedValue
227
+ value: formattedValue
216
228
  });
217
229
  };
218
230
 
@@ -225,31 +237,31 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
225
237
  document.activeElement === inputRef.current && event.preventDefault();
226
238
  };
227
239
 
228
- var handleIOnChange = function handleIOnChange(event) {
240
+ var handleInputOnChange = function handleInputOnChange(event) {
229
241
  openSuggestions();
230
242
  changeValue(event.target.value);
231
243
  };
232
244
 
233
- var handleIOnBlur = function handleIOnBlur(event) {
245
+ var handleInputOnBlur = function handleInputOnBlur(event) {
234
246
  closeSuggestions();
235
- if (isNotOptional(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
247
+ if (isRequired(event.target.value, optional)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
236
248
  value: event.target.value,
237
249
  error: translatedLabels.formFields.requiredValueErrorMessage
238
- });else if (isLengthIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
250
+ });else if (isLengthIncorrect(event.target.value, minLength, maxLength)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
239
251
  value: event.target.value,
240
252
  error: translatedLabels.formFields.lengthErrorMessage(minLength, maxLength)
241
- });else if (patternMissmatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
253
+ });else if (patternMismatch(pattern, event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
242
254
  value: event.target.value,
243
255
  error: translatedLabels.formFields.formatRequestedErrorMessage
244
- });else if (isNumberIncorrect(event.target.value)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
256
+ });else if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && isNumberIncorrect(Number(event.target.value), numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber, numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) onBlur === null || onBlur === void 0 ? void 0 : onBlur({
245
257
  value: event.target.value,
246
- error: getNumberErrorMessage(event.target.value)
258
+ error: getNumberErrorMessage(Number(event.target.value))
247
259
  });else onBlur === null || onBlur === void 0 ? void 0 : onBlur({
248
260
  value: event.target.value
249
261
  });
250
262
  };
251
263
 
252
- var handleIOnKeyDown = function handleIOnKeyDown(event) {
264
+ var handleInputOnKeyDown = function handleInputOnKeyDown(event) {
253
265
  switch (event.key) {
254
266
  case "Down":
255
267
  case "ArrowDown":
@@ -291,7 +303,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
291
303
  case "Escape":
292
304
  event.preventDefault();
293
305
 
294
- if (hasSuggestions()) {
306
+ if (hasSuggestions(suggestions)) {
295
307
  changeValue("");
296
308
  isOpen && closeSuggestions();
297
309
  }
@@ -299,7 +311,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
299
311
  break;
300
312
 
301
313
  case "Enter":
302
- if (hasSuggestions() && !isSearching) {
314
+ if (hasSuggestions(suggestions) && !isSearching) {
303
315
  var validFocusedSuggestion = filteredSuggestions.length > 0 && visualFocusIndex >= 0 && visualFocusIndex < filteredSuggestions.length;
304
316
  validFocusedSuggestion && changeValue(filteredSuggestions[visualFocusIndex]);
305
317
  isOpen && closeSuggestions();
@@ -326,60 +338,38 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
326
338
  };
327
339
 
328
340
  var setNumberProps = function setNumberProps(type, min, max, step) {
329
- var _inputRef$current3, _inputRef$current4, _inputRef$current5, _inputRef$current6;
341
+ var _inputRef$current2, _inputRef$current3, _inputRef$current4, _inputRef$current5;
330
342
 
331
- type && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.setAttribute("type", type));
332
- min && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.setAttribute("min", min));
333
- max && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.setAttribute("max", max));
334
- step && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current6 = inputRef.current) === null || _inputRef$current6 === void 0 ? void 0 : _inputRef$current6.setAttribute("step", step));
343
+ min && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.setAttribute("min", min));
344
+ max && (inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.setAttribute("max", max));
345
+ inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current4 = inputRef.current) === null || _inputRef$current4 === void 0 ? void 0 : _inputRef$current4.setAttribute("step", step);
346
+ inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current5 = inputRef.current) === null || _inputRef$current5 === void 0 ? void 0 : _inputRef$current5.setAttribute("type", type);
335
347
  };
336
348
 
337
349
  var decrementNumber = function decrementNumber() {
338
- var numberValue = value !== null && value !== void 0 ? value : innerValue;
339
-
340
- if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && parseInt(numberValue) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) {
341
- changeValue(parseInt(numberValue));
342
- } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) {
343
- changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
344
- } 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))) {
345
- changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);
346
- } 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 !== "") {
347
- changeValue(parseInt(numberValue) - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
348
- } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue == "") {
349
- changeValue(-(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
350
- } else if (numberValue === "") {
351
- changeValue(-1);
350
+ var currentValue = value !== null && value !== void 0 ? value : innerValue;
351
+ var numberValue = Number(currentValue);
352
+ var steppedValue = Math.round((numberValue - (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) + Number.EPSILON) * 100) / 100;
353
+
354
+ if (currentValue !== "") {
355
+ if (numberValue < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || steppedValue < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) changeValue(numberValue);else if (numberValue > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);else if (numberValue === (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);else changeValue(steppedValue);
352
356
  } else {
353
- changeValue(parseInt(numberValue) - 1);
357
+ if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) >= 0) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);else if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) < 0) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);else changeValue(-numberInputContext.stepNumber);
354
358
  }
355
359
  };
356
360
 
357
361
  var incrementNumber = function incrementNumber() {
358
- var numberValue = value !== null && value !== void 0 ? value : innerValue;
359
-
360
- if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.maxNumber && parseInt(numberValue) > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) {
361
- changeValue(parseInt(numberValue));
362
- } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.minNumber && (parseInt(numberValue) < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) || numberValue === "")) {
363
- changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);
364
- } 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))) {
365
- changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);
366
- } 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 !== "") {
367
- changeValue(parseInt(numberValue) + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber));
368
- } else if (numberInputContext !== null && numberInputContext !== void 0 && numberInputContext.stepNumber && numberValue == "") {
369
- changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber);
370
- } else if (numberValue === "") {
371
- changeValue(1);
362
+ var currentValue = value !== null && value !== void 0 ? value : innerValue;
363
+ var numberValue = Number(currentValue);
364
+ var steppedValue = Math.round((numberValue + (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.stepNumber) + Number.EPSILON) * 100) / 100;
365
+
366
+ if (currentValue !== "") {
367
+ if (numberValue > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) || steppedValue > (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) changeValue(numberValue);else if (numberValue < (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber)) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);else if (numberValue === (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber)) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);else changeValue(steppedValue);
372
368
  } else {
373
- changeValue(parseInt(numberValue) + 1);
369
+ if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber) > 0) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.minNumber);else if ((numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber) <= 0) changeValue(numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.maxNumber);else changeValue(numberInputContext.stepNumber);
374
370
  }
375
371
  };
376
372
 
377
- var getTextInputWidth = (0, _react.useCallback)(function () {
378
- var _inputContainerRef$cu;
379
-
380
- var rect = inputContainerRef === null || inputContainerRef === void 0 ? void 0 : (_inputContainerRef$cu = inputContainerRef.current) === null || _inputContainerRef$cu === void 0 ? void 0 : _inputContainerRef$cu.getBoundingClientRect();
381
- return rect === null || rect === void 0 ? void 0 : rect.width;
382
- }, []);
383
373
  (0, _react.useEffect)(function () {
384
374
  if (typeof suggestions === "function") {
385
375
  changeIsSearching(true);
@@ -406,7 +396,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
406
396
  changeVisualFocusIndex(-1);
407
397
  }
408
398
 
409
- (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
399
+ numberInputContext != null && setNumberProps(numberInputContext.typeNumber, numberInputContext.minNumber, numberInputContext.maxNumber, numberInputContext.stepNumber);
410
400
  }, [value, innerValue, suggestions, numberInputContext]);
411
401
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
412
402
  theme: colorsTheme.textInput
@@ -422,33 +412,63 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
422
412
  }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(OptionalLabel, null, translatedLabels.formFields.optionalLabel)), helperText && /*#__PURE__*/_react["default"].createElement(HelperText, {
423
413
  disabled: disabled,
424
414
  backgroundType: backgroundType
425
- }, helperText), /*#__PURE__*/_react["default"].createElement(Popover.Root, {
426
- open: isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError)
427
- }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
428
- asChild: true
429
- }, /*#__PURE__*/_react["default"].createElement(InputContainer, {
415
+ }, helperText), /*#__PURE__*/_react["default"].createElement(InputContainer, {
430
416
  error: error ? true : false,
431
417
  disabled: disabled,
418
+ readOnly: readOnly,
432
419
  backgroundType: backgroundType,
433
420
  onClick: handleInputContainerOnClick,
434
- onMouseDown: handleInputContainerOnMouseDown,
435
- ref: inputContainerRef
421
+ onMouseDown: handleInputContainerOnMouseDown
436
422
  }, prefix && /*#__PURE__*/_react["default"].createElement(Prefix, {
437
423
  disabled: disabled,
438
424
  backgroundType: backgroundType
439
- }, prefix), /*#__PURE__*/_react["default"].createElement(Input, {
425
+ }, prefix), /*#__PURE__*/_react["default"].createElement(AutosuggestWrapper, {
426
+ condition: hasSuggestions(suggestions),
427
+ wrapper: function wrapper(children) {
428
+ return /*#__PURE__*/_react["default"].createElement(Popover.Root, {
429
+ open: isOpen && (filteredSuggestions.length > 0 || isSearching || isAutosuggestError)
430
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
431
+ asChild: true,
432
+ "aria-controls": undefined
433
+ }, children), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
434
+ sideOffset: 5,
435
+ onOpenAutoFocus: function onOpenAutoFocus(event) {
436
+ // Avoid select to lose focus when the list is opened
437
+ event.preventDefault();
438
+ },
439
+ onCloseAutoFocus: function onCloseAutoFocus(event) {
440
+ // Avoid select to lose focus when the list is closed
441
+ event.preventDefault();
442
+ }
443
+ }, /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
444
+ id: autosuggestId,
445
+ value: value !== null && value !== void 0 ? value : innerValue,
446
+ suggestions: filteredSuggestions,
447
+ visualFocusIndex: visualFocusIndex,
448
+ highlightedSuggestions: typeof suggestions !== "function",
449
+ searchHasErrors: isAutosuggestError,
450
+ isSearching: isSearching,
451
+ suggestionOnClick: function suggestionOnClick(suggestion) {
452
+ changeValue(suggestion);
453
+ closeSuggestions();
454
+ },
455
+ getTextInputWidth: getTextInputWidth
456
+ })));
457
+ }
458
+ }, /*#__PURE__*/_react["default"].createElement(Input, {
440
459
  id: inputId,
441
460
  name: name,
442
461
  value: value !== null && value !== void 0 ? value : innerValue,
443
462
  placeholder: placeholder,
444
- onBlur: handleIOnBlur,
445
- onChange: handleIOnChange,
463
+ onBlur: handleInputOnBlur,
464
+ onChange: handleInputOnChange,
446
465
  onFocus: openSuggestions,
447
- onKeyDown: handleIOnKeyDown,
466
+ onKeyDown: handleInputOnKeyDown,
448
467
  onMouseDown: function onMouseDown(event) {
449
468
  event.stopPropagation();
450
469
  },
451
470
  disabled: disabled,
471
+ readOnly: readOnly,
452
472
  ref: inputRef,
453
473
  backgroundType: backgroundType,
454
474
  pattern: pattern,
@@ -456,96 +476,78 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
456
476
  maxLength: maxLength,
457
477
  autoComplete: autocomplete === "off" ? "nope" : autocomplete,
458
478
  tabIndex: tabIndex,
459
- role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
460
- "aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
461
- "aria-controls": isTextInputType() && hasSuggestions() ? autosuggestId : undefined,
462
- "aria-disabled": disabled,
463
- "aria-expanded": isTextInputType() && hasSuggestions() ? isOpen : undefined,
464
- "aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusIndex !== -1 ? "suggestion-".concat(visualFocusIndex) : undefined,
479
+ type: "text",
480
+ role: hasSuggestions(suggestions) ? "combobox" : undefined,
481
+ "aria-autocomplete": hasSuggestions(suggestions) ? "list" : undefined,
482
+ "aria-controls": hasSuggestions(suggestions) ? autosuggestId : undefined,
483
+ "aria-expanded": hasSuggestions(suggestions) ? isOpen : undefined,
484
+ "aria-haspopup": hasSuggestions(suggestions) ? "listbox" : undefined,
485
+ "aria-activedescendant": hasSuggestions(suggestions) && isOpen && visualFocusIndex !== -1 ? "suggestion-".concat(visualFocusIndex) : undefined,
465
486
  "aria-invalid": error ? true : false,
466
487
  "aria-errormessage": error ? errorId : undefined,
467
- "aria-required": optional ? false : true
468
- }), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
488
+ "aria-required": !disabled && !optional
489
+ })), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
469
490
  backgroundType: backgroundType,
470
491
  "aria-label": "Error"
471
- }, _Icons["default"].error), !disabled && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
492
+ }, _Icons["default"].error), !disabled && !readOnly && clearable && (value !== null && value !== void 0 ? value : innerValue).length > 0 && /*#__PURE__*/_react["default"].createElement(Action, {
493
+ "aria-label": translatedLabels.textInput.clearFieldActionTitle,
472
494
  onClick: handleClearActionOnClick,
473
495
  onMouseDown: function onMouseDown(event) {
474
496
  event.stopPropagation();
475
497
  },
476
- backgroundType: backgroundType,
477
498
  tabIndex: tabIndex,
478
499
  title: translatedLabels.textInput.clearFieldActionTitle,
479
- "aria-label": translatedLabels.textInput.clearFieldActionTitle
500
+ type: "button",
501
+ backgroundType: backgroundType
480
502
  }, _Icons["default"].clear), (numberInputContext === null || numberInputContext === void 0 ? void 0 : numberInputContext.typeNumber) === "number" && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Action, {
481
- ref: actionRef,
503
+ "aria-label": translatedLabels.numberInput.decrementValueTitle,
482
504
  disabled: disabled,
483
505
  onClick: handleDecrementActionOnClick,
484
506
  onMouseDown: function onMouseDown(event) {
485
507
  event.stopPropagation();
486
508
  },
487
- backgroundType: backgroundType,
509
+ ref: actionRef,
488
510
  tabIndex: tabIndex,
489
511
  title: translatedLabels.numberInput.decrementValueTitle,
490
- "aria-label": translatedLabels.numberInput.decrementValueTitle
512
+ type: "button",
513
+ backgroundType: backgroundType
491
514
  }, _Icons["default"].decrement), /*#__PURE__*/_react["default"].createElement(Action, {
492
- ref: actionRef,
515
+ "aria-label": translatedLabels.numberInput.incrementValueTitle,
493
516
  disabled: disabled,
494
517
  onClick: handleIncrementActionOnClick,
495
518
  onMouseDown: function onMouseDown(event) {
496
519
  event.stopPropagation();
497
520
  },
498
- backgroundType: backgroundType,
521
+ ref: actionRef,
499
522
  tabIndex: tabIndex,
500
523
  title: translatedLabels.numberInput.incrementValueTitle,
501
- "aria-label": translatedLabels.numberInput.incrementValueTitle
524
+ type: "button",
525
+ backgroundType: backgroundType
502
526
  }, _Icons["default"].increment)), action && /*#__PURE__*/_react["default"].createElement(Action, {
503
- ref: actionRef,
527
+ "aria-label": action.title,
504
528
  disabled: disabled,
505
- onClick: action.onClick,
529
+ onClick: !readOnly ? action.onClick : undefined,
506
530
  onMouseDown: function onMouseDown(event) {
507
531
  event.stopPropagation();
508
532
  },
533
+ ref: actionRef,
534
+ tabIndex: tabIndex,
509
535
  title: action.title,
510
- "aria-label": action.title,
511
- backgroundType: backgroundType,
512
- tabIndex: tabIndex
513
- }, typeof action.icon === "string" ? /*#__PURE__*/_react["default"].createElement(ActionIcon, {
536
+ type: "button",
537
+ backgroundType: backgroundType
538
+ }, typeof action.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
514
539
  src: action.icon
515
540
  }) : action.icon), suffix && /*#__PURE__*/_react["default"].createElement(Suffix, {
516
541
  disabled: disabled,
517
542
  backgroundType: backgroundType
518
- }, suffix))), /*#__PURE__*/_react["default"].createElement(Popover.Content, {
519
- sideOffset: 4,
520
- onOpenAutoFocus: function onOpenAutoFocus(event) {
521
- // Avoid select to lose focus when the list is opened
522
- event.preventDefault();
523
- },
524
- onCloseAutoFocus: function onCloseAutoFocus(event) {
525
- // Avoid select to lose focus when the list is closed
526
- event.preventDefault();
527
- }
528
- }, /*#__PURE__*/_react["default"].createElement(_Suggestions["default"], {
529
- id: autosuggestId,
530
- value: value !== null && value !== void 0 ? value : innerValue,
531
- suggestions: filteredSuggestions,
532
- visualFocusIndex: visualFocusIndex,
533
- highlightedSuggestions: typeof suggestions !== "function",
534
- searchHasErrors: isAutosuggestError,
535
- isSearching: isSearching,
536
- suggestionOnClick: function suggestionOnClick(suggestion) {
537
- changeValue(suggestion);
538
- closeSuggestions();
539
- },
540
- getTextInputWidth: getTextInputWidth
541
- }))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
543
+ }, suffix)), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
542
544
  id: errorId,
543
545
  backgroundType: backgroundType,
544
546
  "aria-live": error ? "assertive" : "off"
545
547
  }, error)));
546
548
  });
547
549
 
548
- var TextInputContainer = _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) {
550
+ var TextInputContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\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) {
549
551
  return calculateWidth(props.margin, props.size);
550
552
  }, function (props) {
551
553
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -593,16 +595,14 @@ var HelperText = _styledComponents["default"].span(_templateObject4 || (_templat
593
595
  return props.theme.helperTextLineHeight;
594
596
  });
595
597
 
596
- 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 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) {
598
+ var InputContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n display: flex;\n align-items: center;\n height: calc(2.5rem - 2px);\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"])), function (props) {
597
599
  if (props.disabled) return props.backgroundType === "dark" ? "background-color: ".concat(props.theme.disabledContainerFillColorOnDark, ";") : "background-color: ".concat(props.theme.disabledContainerFillColor, ";");
598
600
  }, function (props) {
599
- if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
601
+ if (props.disabled) return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;else if (props.readOnly) return props.theme.readOnlyBorderColor;else return props.backgroundType === "dark" ? props.theme.enabledBorderColorOnDark : props.theme.enabledBorderColor;
600
602
  }, function (props) {
601
603
  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 ");
602
604
  }, function (props) {
603
- return props.disabled && "cursor: not-allowed;";
604
- }, function (props) {
605
- 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 ");
605
+ return !props.disabled ? "\n &:hover {\n border-color: ".concat(props.error ? "transparent" : props.readOnly ? props.theme.hoverReadOnlyBorderColor : props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor, ";\n ").concat(props.error ? "box-shadow: 0 0 0 2px ".concat(props.backgroundType === "dark" ? props.theme.hoverErrorBorderColorOnDark : props.theme.hoverErrorBorderColor, ";") : "", "\n }\n &:focus-within {\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n ") : "cursor: not-allowed;";
606
606
  });
607
607
 
608
608
  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 overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\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) {
@@ -621,39 +621,35 @@ var Input = _styledComponents["default"].input(_templateObject6 || (_templateObj
621
621
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPlaceholderFontColorOnDark : props.theme.disabledPlaceholderFontColor : props.backgroundType === "dark" ? props.theme.placeholderFontColorOnDark : props.theme.placeholderFontColor;
622
622
  });
623
623
 
624
- var ActionIcon = _styledComponents["default"].img(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
625
-
626
- 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) {
627
- return props.theme.fontFamily;
628
- }, function (props) {
624
+ var Action = _styledComponents["default"].button(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border: 1px solid transparent;\n border-radius: 2px;\n width: 24px;\n height: 24px;\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 img, svg {\n width: 16px;\n height: 16px;\n }\n"])), function (props) {
629
625
  return props.disabled ? "cursor: not-allowed;" : "cursor: pointer;";
630
626
  }, function (props) {
631
627
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledActionBackgroundColorOnDark : props.theme.disabledActionBackgroundColor : props.backgroundType === "dark" ? props.theme.actionBackgroundColorOnDark : props.theme.actionBackgroundColor;
632
628
  }, function (props) {
633
629
  return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledActionIconColorOnDark : props.theme.disabledActionIconColor : props.backgroundType === "dark" ? props.theme.actionIconColorOnDark : props.theme.actionIconColor;
634
630
  }, function (props) {
635
- 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 ");
631
+ return !props.disabled && "\n &:focus, \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 ");
636
632
  });
637
633
 
638
- 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) {
634
+ var Prefix = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (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) {
639
635
  var color = props.disabled ? props.backgroundType === "dark" ? props.theme.disabledPrefixColorOnDark : props.theme.disabledPrefixColor : props.backgroundType === "dark" ? props.theme.prefixColorOnDark : props.theme.prefixColor;
640
636
  return "color: ".concat(color, "; border-right: 1px solid ").concat(color, ";");
641
637
  }, function (props) {
642
638
  return props.theme.fontFamily;
643
639
  });
644
640
 
645
- 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) {
641
+ var Suffix = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (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) {
646
642
  var color = props.disabled ? props.backgroundType === "dark" ? props.theme.disabledSuffixColorOnDark : props.theme.disabledSuffixColor : props.backgroundType === "dark" ? props.theme.suffixColorOnDark : props.theme.suffixColor;
647
643
  return "color: ".concat(color, "; border-left: 1px solid ").concat(color, ";");
648
644
  }, function (props) {
649
645
  return props.theme.fontFamily;
650
646
  });
651
647
 
652
- 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) {
648
+ var ErrorIcon = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (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) {
653
649
  return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
654
650
  });
655
651
 
656
- 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 margin-top: 0.25rem;\n"])), function (props) {
652
+ var Error = _styledComponents["default"].span(_templateObject11 || (_templateObject11 = (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 margin-top: 0.25rem;\n"])), function (props) {
657
653
  return props.backgroundType === "dark" ? props.theme.errorMessageColorOnDark : props.theme.errorMessageColor;
658
654
  }, function (props) {
659
655
  return props.theme.fontFamily;