@dxc-technology/halstack-react 0.0.0-290c489 → 0.0.0-293a019

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 (225) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1329 -5
  4. package/HalstackContext.js +117 -77
  5. package/accordion/Accordion.js +118 -110
  6. package/accordion/Accordion.stories.tsx +103 -15
  7. package/accordion/Accordion.test.js +10 -11
  8. package/accordion/types.d.ts +2 -1
  9. package/accordion-group/AccordionGroup.js +3 -23
  10. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  11. package/accordion-group/AccordionGroup.test.js +21 -46
  12. package/accordion-group/types.d.ts +8 -1
  13. package/alert/Alert.js +5 -9
  14. package/alert/Alert.stories.tsx +28 -0
  15. package/alert/Alert.test.js +1 -1
  16. package/bleed/Bleed.stories.tsx +1 -0
  17. package/box/Box.js +4 -6
  18. package/box/Box.stories.tsx +15 -0
  19. package/box/Box.test.js +1 -1
  20. package/box/types.d.ts +1 -0
  21. package/bulleted-list/BulletedList.js +4 -2
  22. package/bulleted-list/BulletedList.stories.tsx +7 -1
  23. package/bulleted-list/types.d.ts +31 -4
  24. package/button/Button.js +52 -73
  25. package/button/Button.stories.tsx +159 -8
  26. package/button/Button.test.js +1 -1
  27. package/button/types.d.ts +5 -5
  28. package/card/Card.js +12 -13
  29. package/card/Card.stories.tsx +12 -13
  30. package/card/Card.test.js +1 -1
  31. package/card/types.d.ts +1 -0
  32. package/checkbox/Checkbox.d.ts +2 -2
  33. package/checkbox/Checkbox.js +94 -101
  34. package/checkbox/Checkbox.stories.tsx +131 -59
  35. package/checkbox/Checkbox.test.js +94 -17
  36. package/checkbox/types.d.ts +4 -0
  37. package/chip/Chip.js +28 -49
  38. package/chip/Chip.stories.tsx +121 -26
  39. package/chip/Chip.test.js +3 -5
  40. package/chip/types.d.ts +1 -1
  41. package/common/OpenSans.css +68 -80
  42. package/common/coreTokens.d.ts +146 -0
  43. package/common/coreTokens.js +167 -0
  44. package/common/utils.d.ts +1 -0
  45. package/common/utils.js +4 -4
  46. package/common/variables.d.ts +1482 -0
  47. package/common/variables.js +1001 -1135
  48. package/date-input/Calendar.d.ts +4 -0
  49. package/date-input/Calendar.js +258 -0
  50. package/date-input/DateInput.js +134 -237
  51. package/date-input/DateInput.stories.tsx +199 -33
  52. package/date-input/DateInput.test.js +494 -138
  53. package/date-input/DatePicker.d.ts +4 -0
  54. package/date-input/DatePicker.js +146 -0
  55. package/date-input/Icons.d.ts +6 -0
  56. package/date-input/Icons.js +75 -0
  57. package/date-input/YearPicker.d.ts +4 -0
  58. package/date-input/YearPicker.js +126 -0
  59. package/date-input/types.d.ts +51 -0
  60. package/dialog/Dialog.js +80 -69
  61. package/dialog/Dialog.stories.tsx +230 -123
  62. package/dialog/Dialog.test.js +334 -5
  63. package/dialog/types.d.ts +1 -0
  64. package/dropdown/Dropdown.d.ts +1 -1
  65. package/dropdown/Dropdown.js +246 -249
  66. package/dropdown/Dropdown.stories.tsx +245 -56
  67. package/dropdown/Dropdown.test.js +507 -110
  68. package/dropdown/DropdownMenu.d.ts +4 -0
  69. package/dropdown/DropdownMenu.js +74 -0
  70. package/dropdown/DropdownMenuItem.d.ts +4 -0
  71. package/dropdown/DropdownMenuItem.js +79 -0
  72. package/dropdown/types.d.ts +23 -3
  73. package/file-input/FileInput.d.ts +2 -2
  74. package/file-input/FileInput.js +174 -220
  75. package/file-input/FileInput.stories.tsx +122 -11
  76. package/file-input/FileInput.test.js +14 -14
  77. package/file-input/FileItem.d.ts +4 -14
  78. package/file-input/FileItem.js +39 -63
  79. package/file-input/types.d.ts +17 -0
  80. package/flex/Flex.d.ts +2 -1
  81. package/flex/Flex.js +39 -42
  82. package/flex/Flex.stories.tsx +35 -26
  83. package/flex/types.d.ts +85 -9
  84. package/footer/Footer.js +6 -8
  85. package/footer/Footer.stories.tsx +99 -1
  86. package/footer/Footer.test.js +14 -26
  87. package/footer/types.d.ts +2 -1
  88. package/grid/Grid.d.ts +7 -0
  89. package/grid/Grid.js +91 -0
  90. package/grid/Grid.stories.tsx +219 -0
  91. package/grid/types.d.ts +115 -0
  92. package/header/Header.d.ts +3 -2
  93. package/header/Header.js +89 -89
  94. package/header/Header.stories.tsx +152 -9
  95. package/header/Header.test.js +2 -2
  96. package/header/Icons.js +2 -2
  97. package/header/types.d.ts +1 -0
  98. package/heading/Heading.js +1 -1
  99. package/heading/Heading.test.js +1 -1
  100. package/inset/Inset.stories.tsx +2 -1
  101. package/layout/ApplicationLayout.d.ts +3 -3
  102. package/layout/ApplicationLayout.js +4 -4
  103. package/layout/ApplicationLayout.stories.tsx +1 -0
  104. package/layout/types.d.ts +2 -3
  105. package/link/Link.js +4 -4
  106. package/link/Link.stories.tsx +72 -5
  107. package/link/Link.test.js +2 -4
  108. package/link/types.d.ts +3 -3
  109. package/main.d.ts +3 -4
  110. package/main.js +9 -17
  111. package/{tabs-nav → nav-tabs}/NavTabs.js +6 -6
  112. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  113. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  114. package/{tabs-nav → nav-tabs}/Tab.js +40 -22
  115. package/{tabs-nav → nav-tabs}/types.d.ts +1 -1
  116. package/number-input/NumberInput.test.js +44 -8
  117. package/package.json +17 -22
  118. package/paginator/Icons.d.ts +5 -0
  119. package/paginator/Icons.js +16 -28
  120. package/paginator/Paginator.js +7 -15
  121. package/paginator/Paginator.stories.tsx +24 -0
  122. package/paginator/Paginator.test.js +45 -48
  123. package/paragraph/Paragraph.d.ts +3 -4
  124. package/paragraph/Paragraph.js +5 -5
  125. package/password-input/PasswordInput.test.js +14 -13
  126. package/progress-bar/ProgressBar.js +60 -54
  127. package/progress-bar/ProgressBar.stories.jsx +38 -3
  128. package/progress-bar/ProgressBar.test.js +68 -23
  129. package/quick-nav/QuickNav.js +11 -12
  130. package/quick-nav/QuickNav.stories.tsx +111 -19
  131. package/radio-group/Radio.d.ts +1 -1
  132. package/radio-group/Radio.js +43 -28
  133. package/radio-group/RadioGroup.js +24 -24
  134. package/radio-group/RadioGroup.stories.tsx +132 -18
  135. package/radio-group/RadioGroup.test.js +124 -97
  136. package/radio-group/types.d.ts +2 -2
  137. package/resultsetTable/Icons.d.ts +7 -0
  138. package/resultsetTable/Icons.js +51 -0
  139. package/resultsetTable/ResultsetTable.js +49 -108
  140. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  141. package/resultsetTable/ResultsetTable.test.js +41 -64
  142. package/resultsetTable/types.d.ts +1 -1
  143. package/select/Listbox.js +4 -10
  144. package/select/Option.js +11 -24
  145. package/select/Select.js +67 -61
  146. package/select/Select.stories.tsx +494 -149
  147. package/select/Select.test.js +393 -327
  148. package/select/types.d.ts +3 -5
  149. package/sidenav/Icons.d.ts +7 -0
  150. package/sidenav/Icons.js +51 -0
  151. package/sidenav/Sidenav.d.ts +2 -2
  152. package/sidenav/Sidenav.js +68 -86
  153. package/sidenav/Sidenav.stories.tsx +165 -63
  154. package/sidenav/types.d.ts +22 -19
  155. package/slider/Slider.d.ts +2 -2
  156. package/slider/Slider.js +121 -97
  157. package/slider/Slider.stories.tsx +64 -1
  158. package/slider/Slider.test.js +122 -22
  159. package/slider/types.d.ts +4 -0
  160. package/spinner/Spinner.js +17 -23
  161. package/spinner/Spinner.stories.jsx +53 -27
  162. package/spinner/Spinner.test.js +1 -1
  163. package/switch/Switch.d.ts +2 -2
  164. package/switch/Switch.js +137 -70
  165. package/switch/Switch.stories.tsx +41 -30
  166. package/switch/Switch.test.js +145 -18
  167. package/switch/types.d.ts +4 -0
  168. package/table/Table.js +3 -3
  169. package/table/Table.stories.jsx +80 -1
  170. package/table/Table.test.js +2 -2
  171. package/tabs/Tab.d.ts +4 -0
  172. package/tabs/Tab.js +132 -0
  173. package/tabs/Tabs.js +358 -108
  174. package/tabs/Tabs.stories.tsx +119 -5
  175. package/tabs/Tabs.test.js +220 -10
  176. package/tabs/types.d.ts +13 -3
  177. package/tag/Tag.js +8 -10
  178. package/tag/Tag.stories.tsx +14 -1
  179. package/tag/Tag.test.js +1 -1
  180. package/tag/types.d.ts +1 -1
  181. package/text-input/Icons.d.ts +8 -0
  182. package/text-input/Icons.js +60 -0
  183. package/text-input/Suggestion.js +40 -11
  184. package/text-input/Suggestions.d.ts +4 -0
  185. package/text-input/Suggestions.js +134 -0
  186. package/text-input/TextInput.js +199 -296
  187. package/text-input/TextInput.stories.tsx +280 -185
  188. package/text-input/TextInput.test.js +736 -725
  189. package/text-input/types.d.ts +22 -3
  190. package/textarea/Textarea.js +3 -4
  191. package/textarea/Textarea.stories.jsx +60 -1
  192. package/textarea/Textarea.test.js +2 -4
  193. package/toggle-group/ToggleGroup.d.ts +2 -2
  194. package/toggle-group/ToggleGroup.js +7 -4
  195. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  196. package/toggle-group/ToggleGroup.test.js +1 -1
  197. package/toggle-group/types.d.ts +2 -2
  198. package/typography/Typography.d.ts +2 -2
  199. package/typography/Typography.js +14 -113
  200. package/typography/Typography.stories.tsx +1 -1
  201. package/useTheme.d.ts +1234 -1
  202. package/useTheme.js +1 -1
  203. package/useTranslatedLabels.d.ts +84 -1
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +139 -0
  208. package/wizard/Wizard.js +2 -2
  209. package/wizard/Wizard.stories.tsx +20 -0
  210. package/wizard/Wizard.test.js +1 -1
  211. package/wizard/types.d.ts +6 -7
  212. package/common/RequiredComponent.js +0 -32
  213. package/row/Row.d.ts +0 -3
  214. package/row/Row.js +0 -127
  215. package/row/Row.stories.tsx +0 -237
  216. package/row/types.d.ts +0 -28
  217. package/stack/Stack.d.ts +0 -4
  218. package/stack/Stack.js +0 -56
  219. package/stack/Stack.stories.tsx +0 -263
  220. package/stack/types.d.ts +0 -32
  221. package/tabs-nav/types.js +0 -5
  222. /package/{row → grid}/types.js +0 -0
  223. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  224. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  225. /package/{stack → nav-tabs}/types.js +0 -0
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,36 +11,63 @@ exports["default"] = void 0;
9
11
 
10
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
13
 
12
- var _react = _interopRequireDefault(require("react"));
14
+ var _react = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
17
 
16
18
  var _templateObject, _templateObject2;
17
19
 
20
+ 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); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
23
+
24
+ var transformSpecialChars = function transformSpecialChars(str) {
25
+ var specialCharsRegex = /[\\*()\[\]{}+?/]/;
26
+ var value = str;
27
+
28
+ if (specialCharsRegex.test(value)) {
29
+ var regexAsString = specialCharsRegex.toString().split("");
30
+ var uniqueSpecialChars = regexAsString.filter(function (item, index) {
31
+ return regexAsString.indexOf(item) === index;
32
+ });
33
+ uniqueSpecialChars.forEach(function (specialChar) {
34
+ if (str.includes(specialChar)) value = value.replace(specialChar, "\\" + specialChar);
35
+ });
36
+ }
37
+
38
+ return value;
39
+ };
40
+
18
41
  var Suggestion = function Suggestion(_ref) {
19
42
  var id = _ref.id,
20
43
  value = _ref.value,
21
- onClick = _ref.onClick,
44
+ _onClick = _ref.onClick,
22
45
  suggestion = _ref.suggestion,
23
46
  isLast = _ref.isLast,
24
47
  visuallyFocused = _ref.visuallyFocused,
25
48
  highlighted = _ref.highlighted;
26
- var regEx = new RegExp(value, "i");
27
- var matchedWords = suggestion.match(regEx);
28
- var noMatchedWords = suggestion.replace(regEx, "");
49
+ var matchedSuggestion = (0, _react.useMemo)(function () {
50
+ var regEx = new RegExp(transformSpecialChars(value), "i");
51
+ return {
52
+ matchedWords: suggestion.match(regEx),
53
+ noMatchedWords: suggestion.replace(regEx, "")
54
+ };
55
+ }, [value, suggestion]);
29
56
  return /*#__PURE__*/_react["default"].createElement(SuggestionContainer, {
30
57
  id: id,
31
- onClick: onClick,
58
+ onClick: function onClick() {
59
+ _onClick(suggestion);
60
+ },
32
61
  visuallyFocused: visuallyFocused,
33
62
  role: "option",
34
- "aria-selected": visuallyFocused ? "true" : undefined
63
+ "aria-selected": visuallyFocused ? true : undefined
35
64
  }, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
36
- last: isLast,
65
+ isLast: isLast,
37
66
  visuallyFocused: visuallyFocused
38
- }, highlighted ? suggestion : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedWords), noMatchedWords)));
67
+ }, highlighted ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedSuggestion.matchedWords), matchedSuggestion.noMatchedWords) : suggestion));
39
68
  };
40
69
 
41
- var SuggestionContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\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) {
70
+ var SuggestionContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n box-shadow: inset 0 0 0 2px\n ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
42
71
  return props.visuallyFocused ? props.theme.focusListOptionBorderColor : "transparent";
43
72
  }, function (props) {
44
73
  return props.theme.hoverListOptionBackgroundColor;
@@ -47,7 +76,7 @@ var SuggestionContainer = _styledComponents["default"].li(_templateObject || (_t
47
76
  });
48
77
 
49
78
  var StyledSuggestion = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\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) {
50
- return props.last || props.visuallyFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
79
+ return props.isLast || props.visuallyFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
51
80
  });
52
81
 
53
82
  var _default = /*#__PURE__*/_react["default"].memo(Suggestion);
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { SuggestionsProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ id, value, suggestions, visualFocusIndex, highlightedSuggestions, searchHasErrors, isSearching, suggestionOnClick, getTextInputWidth, }: SuggestionsProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
19
+
20
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
21
+
22
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
23
+
24
+ var _Suggestion = _interopRequireDefault(require("./Suggestion"));
25
+
26
+ var _Icons = _interopRequireDefault(require("./Icons"));
27
+
28
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
29
+
30
+ 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); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(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; }
33
+
34
+ var Suggestions = function Suggestions(_ref) {
35
+ var id = _ref.id,
36
+ value = _ref.value,
37
+ suggestions = _ref.suggestions,
38
+ visualFocusIndex = _ref.visualFocusIndex,
39
+ highlightedSuggestions = _ref.highlightedSuggestions,
40
+ searchHasErrors = _ref.searchHasErrors,
41
+ isSearching = _ref.isSearching,
42
+ suggestionOnClick = _ref.suggestionOnClick,
43
+ getTextInputWidth = _ref.getTextInputWidth;
44
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
45
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
46
+ var listboxRef = (0, _react.useRef)(null);
47
+
48
+ var _useState = (0, _react.useState)(null),
49
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
50
+ styles = _useState2[0],
51
+ setStyles = _useState2[1];
52
+
53
+ (0, _react.useLayoutEffect)(function () {
54
+ var _listboxRef$current, _visualFocusedOptionE;
55
+
56
+ var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
57
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
58
+ block: "nearest",
59
+ inline: "start"
60
+ });
61
+ }, [visualFocusIndex]);
62
+
63
+ var handleResize = function handleResize() {
64
+ setStyles({
65
+ width: getTextInputWidth()
66
+ });
67
+ };
68
+
69
+ (0, _react.useLayoutEffect)(function () {
70
+ handleResize();
71
+ }, [getTextInputWidth]);
72
+ (0, _react.useEffect)(function () {
73
+ window.addEventListener("resize", handleResize);
74
+ return function () {
75
+ window.removeEventListener("resize", handleResize);
76
+ };
77
+ }, [getTextInputWidth]);
78
+ return /*#__PURE__*/_react["default"].createElement(SuggestionsContainer, {
79
+ id: id,
80
+ error: searchHasErrors ? true : false,
81
+ onMouseDown: function onMouseDown(event) {
82
+ event.preventDefault();
83
+ },
84
+ ref: listboxRef,
85
+ role: "listbox",
86
+ backgroundType: backgroundType,
87
+ style: styles
88
+ }, !isSearching && !searchHasErrors && suggestions.length > 0 && suggestions.map(function (suggestion, index) {
89
+ return /*#__PURE__*/_react["default"].createElement(_Suggestion["default"], {
90
+ key: "suggestion-".concat(index),
91
+ id: "suggestion-".concat(index),
92
+ value: value,
93
+ onClick: suggestionOnClick,
94
+ suggestion: suggestion,
95
+ isLast: index === suggestions.length - 1,
96
+ visuallyFocused: visualFocusIndex === index,
97
+ highlighted: highlightedSuggestions
98
+ });
99
+ }), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, translatedLabels.textInput.searchingMessage), searchHasErrors && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
100
+ backgroundType: backgroundType
101
+ }, _Icons["default"].error), translatedLabels.textInput.fetchingDataErrorMessage));
102
+ };
103
+
104
+ var SuggestionsContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid\n ", ";\n\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
105
+ return props.error ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
106
+ }, function (props) {
107
+ return props.error ? props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
108
+ }, function (props) {
109
+ return props.theme.listOptionFontColor;
110
+ }, function (props) {
111
+ return props.theme.fontFamily;
112
+ }, function (props) {
113
+ return props.theme.listOptionFontSize;
114
+ }, function (props) {
115
+ return props.theme.listOptionFontStyle;
116
+ }, function (props) {
117
+ return props.theme.listOptionFontWeight;
118
+ });
119
+
120
+ var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
121
+ return props.theme.systemMessageFontColor;
122
+ });
123
+
124
+ var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (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) {
125
+ return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
126
+ });
127
+
128
+ var SuggestionsError = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (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) {
129
+ return props.theme.errorListDialogFontColor;
130
+ });
131
+
132
+ var _default = /*#__PURE__*/_react["default"].memo(Suggestions);
133
+
134
+ exports["default"] = _default;