@dxc-technology/halstack-react 0.0.0-4a5e7d8 → 0.0.0-4a67e25

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 (275) hide show
  1. package/BackgroundColorContext.js +0 -1
  2. package/HalstackContext.d.ts +12 -0
  3. package/HalstackContext.js +294 -0
  4. package/accordion/Accordion.d.ts +1 -1
  5. package/accordion/Accordion.js +122 -135
  6. package/accordion/Accordion.stories.tsx +20 -14
  7. package/accordion/Accordion.test.js +71 -0
  8. package/accordion/types.d.ts +11 -10
  9. package/accordion-group/AccordionGroup.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +15 -36
  11. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  12. package/accordion-group/AccordionGroup.test.js +126 -0
  13. package/accordion-group/types.d.ts +16 -9
  14. package/alert/Alert.js +5 -2
  15. package/alert/Alert.test.js +92 -0
  16. package/badge/Badge.d.ts +4 -0
  17. package/badge/Badge.js +5 -3
  18. package/badge/types.d.ts +5 -0
  19. package/{radio → badge}/types.js +0 -0
  20. package/bleed/Bleed.d.ts +3 -0
  21. package/bleed/Bleed.js +51 -0
  22. package/bleed/Bleed.stories.tsx +341 -0
  23. package/bleed/types.d.ts +37 -0
  24. package/bleed/types.js +5 -0
  25. package/box/Box.js +23 -33
  26. package/box/Box.test.js +18 -0
  27. package/box/types.d.ts +1 -0
  28. package/bulleted-list/BulletedList.d.ts +7 -0
  29. package/bulleted-list/BulletedList.js +123 -0
  30. package/bulleted-list/BulletedList.stories.tsx +200 -0
  31. package/bulleted-list/types.d.ts +11 -0
  32. package/bulleted-list/types.js +5 -0
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +57 -80
  35. package/button/Button.stories.tsx +15 -8
  36. package/button/Button.test.js +35 -0
  37. package/button/types.d.ts +8 -12
  38. package/card/Card.js +24 -27
  39. package/card/Card.stories.tsx +1 -1
  40. package/card/Card.test.js +50 -0
  41. package/card/types.d.ts +1 -0
  42. package/checkbox/Checkbox.d.ts +2 -2
  43. package/checkbox/Checkbox.js +106 -109
  44. package/checkbox/Checkbox.stories.tsx +146 -130
  45. package/checkbox/Checkbox.test.js +155 -0
  46. package/checkbox/types.d.ts +14 -6
  47. package/chip/Chip.d.ts +1 -1
  48. package/chip/Chip.js +14 -52
  49. package/chip/Chip.stories.tsx +6 -8
  50. package/chip/Chip.test.js +56 -0
  51. package/chip/types.d.ts +5 -13
  52. package/common/variables.js +274 -340
  53. package/date-input/DateInput.js +62 -48
  54. package/date-input/DateInput.stories.tsx +19 -8
  55. package/date-input/DateInput.test.js +543 -0
  56. package/date-input/types.d.ts +16 -9
  57. package/dialog/Dialog.js +48 -51
  58. package/dialog/Dialog.stories.tsx +57 -2
  59. package/dialog/Dialog.test.js +70 -0
  60. package/dialog/types.d.ts +3 -2
  61. package/dropdown/Dropdown.d.ts +1 -1
  62. package/dropdown/Dropdown.js +247 -273
  63. package/dropdown/Dropdown.stories.tsx +144 -79
  64. package/dropdown/Dropdown.test.js +585 -0
  65. package/dropdown/DropdownMenu.d.ts +4 -0
  66. package/dropdown/DropdownMenu.js +80 -0
  67. package/dropdown/DropdownMenuItem.d.ts +4 -0
  68. package/dropdown/DropdownMenuItem.js +92 -0
  69. package/dropdown/types.d.ts +29 -18
  70. package/file-input/FileInput.d.ts +2 -2
  71. package/file-input/FileInput.js +159 -129
  72. package/file-input/FileInput.stories.tsx +535 -0
  73. package/file-input/FileInput.test.js +498 -0
  74. package/file-input/FileItem.d.ts +4 -14
  75. package/file-input/FileItem.js +43 -66
  76. package/file-input/types.d.ts +17 -0
  77. package/flex/Flex.d.ts +4 -0
  78. package/flex/Flex.js +69 -0
  79. package/flex/Flex.stories.tsx +103 -0
  80. package/flex/types.d.ts +32 -0
  81. package/flex/types.js +5 -0
  82. package/footer/Footer.js +24 -99
  83. package/footer/Footer.stories.tsx +8 -1
  84. package/footer/Footer.test.js +109 -0
  85. package/footer/Icons.js +1 -1
  86. package/footer/types.d.ts +2 -1
  87. package/header/Header.js +95 -114
  88. package/header/Header.stories.tsx +46 -36
  89. package/header/Header.test.js +79 -0
  90. package/header/Icons.js +2 -2
  91. package/header/types.d.ts +3 -2
  92. package/heading/Heading.stories.tsx +3 -2
  93. package/heading/Heading.test.js +186 -0
  94. package/inset/Inset.d.ts +3 -0
  95. package/inset/Inset.js +51 -0
  96. package/inset/Inset.stories.tsx +229 -0
  97. package/inset/types.d.ts +37 -0
  98. package/inset/types.js +5 -0
  99. package/layout/ApplicationLayout.d.ts +16 -6
  100. package/layout/ApplicationLayout.js +71 -125
  101. package/layout/ApplicationLayout.stories.tsx +84 -93
  102. package/layout/Icons.d.ts +5 -0
  103. package/layout/Icons.js +13 -2
  104. package/layout/SidenavContext.d.ts +5 -0
  105. package/layout/SidenavContext.js +19 -0
  106. package/layout/types.d.ts +18 -33
  107. package/link/Link.d.ts +3 -2
  108. package/link/Link.js +61 -86
  109. package/link/Link.stories.tsx +99 -52
  110. package/link/Link.test.js +83 -0
  111. package/link/types.d.ts +9 -29
  112. package/main.d.ts +11 -15
  113. package/main.js +53 -79
  114. package/number-input/NumberInput.js +11 -18
  115. package/number-input/NumberInput.stories.tsx +5 -5
  116. package/number-input/NumberInput.test.js +542 -0
  117. package/number-input/types.d.ts +17 -10
  118. package/package.json +22 -16
  119. package/paginator/Paginator.js +17 -38
  120. package/paginator/Paginator.test.js +308 -0
  121. package/paragraph/Paragraph.d.ts +6 -0
  122. package/paragraph/Paragraph.js +38 -0
  123. package/paragraph/Paragraph.stories.tsx +44 -0
  124. package/password-input/PasswordInput.js +7 -4
  125. package/password-input/PasswordInput.stories.tsx +3 -3
  126. package/password-input/PasswordInput.test.js +181 -0
  127. package/password-input/types.d.ts +14 -11
  128. package/progress-bar/ProgressBar.d.ts +2 -2
  129. package/progress-bar/ProgressBar.js +57 -51
  130. package/progress-bar/ProgressBar.stories.jsx +13 -11
  131. package/progress-bar/ProgressBar.test.js +110 -0
  132. package/progress-bar/types.d.ts +3 -4
  133. package/quick-nav/QuickNav.d.ts +4 -0
  134. package/quick-nav/QuickNav.js +117 -0
  135. package/quick-nav/QuickNav.stories.tsx +342 -0
  136. package/quick-nav/types.d.ts +21 -0
  137. package/quick-nav/types.js +5 -0
  138. package/radio-group/Radio.d.ts +4 -0
  139. package/radio-group/Radio.js +156 -0
  140. package/radio-group/RadioGroup.d.ts +4 -0
  141. package/radio-group/RadioGroup.js +283 -0
  142. package/radio-group/RadioGroup.stories.tsx +101 -0
  143. package/radio-group/RadioGroup.test.js +722 -0
  144. package/radio-group/types.d.ts +114 -0
  145. package/radio-group/types.js +5 -0
  146. package/resultsetTable/ResultsetTable.js +6 -5
  147. package/resultsetTable/ResultsetTable.stories.tsx +7 -8
  148. package/resultsetTable/ResultsetTable.test.js +348 -0
  149. package/select/Icons.d.ts +10 -0
  150. package/select/Icons.js +93 -0
  151. package/select/Listbox.d.ts +4 -0
  152. package/select/Listbox.js +198 -0
  153. package/select/Option.d.ts +4 -0
  154. package/select/Option.js +110 -0
  155. package/select/Select.d.ts +4 -0
  156. package/select/Select.js +148 -366
  157. package/select/Select.stories.tsx +231 -176
  158. package/select/Select.test.js +2233 -0
  159. package/select/types.d.ts +210 -0
  160. package/select/types.js +5 -0
  161. package/sidenav/Sidenav.d.ts +6 -5
  162. package/sidenav/Sidenav.js +184 -52
  163. package/sidenav/Sidenav.stories.tsx +154 -139
  164. package/sidenav/Sidenav.test.js +44 -0
  165. package/sidenav/types.d.ts +50 -27
  166. package/slider/Slider.d.ts +2 -2
  167. package/slider/Slider.js +122 -96
  168. package/slider/Slider.stories.tsx +15 -9
  169. package/slider/Slider.test.js +250 -0
  170. package/slider/types.d.ts +10 -2
  171. package/spinner/Spinner.js +1 -1
  172. package/spinner/Spinner.stories.jsx +1 -0
  173. package/spinner/Spinner.test.js +64 -0
  174. package/switch/Switch.d.ts +2 -2
  175. package/switch/Switch.js +150 -67
  176. package/switch/Switch.stories.tsx +21 -43
  177. package/switch/Switch.test.js +225 -0
  178. package/switch/types.d.ts +12 -4
  179. package/table/Table.js +1 -1
  180. package/table/Table.stories.jsx +2 -1
  181. package/table/Table.test.js +26 -0
  182. package/tabs/Tab.d.ts +4 -0
  183. package/tabs/Tab.js +135 -0
  184. package/tabs/Tabs.d.ts +1 -1
  185. package/tabs/Tabs.js +364 -110
  186. package/tabs/Tabs.stories.tsx +81 -16
  187. package/tabs/Tabs.test.js +351 -0
  188. package/tabs/types.d.ts +39 -17
  189. package/tabs-nav/NavTabs.d.ts +8 -0
  190. package/tabs-nav/NavTabs.js +125 -0
  191. package/tabs-nav/NavTabs.stories.tsx +170 -0
  192. package/tabs-nav/NavTabs.test.js +82 -0
  193. package/tabs-nav/Tab.d.ts +4 -0
  194. package/tabs-nav/Tab.js +130 -0
  195. package/tabs-nav/types.d.ts +53 -0
  196. package/tabs-nav/types.js +5 -0
  197. package/tag/Tag.d.ts +1 -1
  198. package/tag/Tag.js +18 -28
  199. package/tag/Tag.stories.tsx +26 -29
  200. package/tag/Tag.test.js +60 -0
  201. package/tag/types.d.ts +23 -14
  202. package/text-input/Icons.d.ts +8 -0
  203. package/text-input/Icons.js +60 -0
  204. package/text-input/Suggestion.d.ts +4 -0
  205. package/text-input/Suggestion.js +57 -0
  206. package/text-input/Suggestions.d.ts +4 -0
  207. package/text-input/Suggestions.js +134 -0
  208. package/text-input/TextInput.js +213 -322
  209. package/text-input/TextInput.stories.tsx +218 -193
  210. package/text-input/TextInput.test.js +1624 -0
  211. package/text-input/types.d.ts +51 -13
  212. package/textarea/Textarea.js +20 -27
  213. package/textarea/Textarea.stories.jsx +37 -15
  214. package/textarea/Textarea.test.js +437 -0
  215. package/textarea/types.d.ts +18 -11
  216. package/toggle-group/ToggleGroup.d.ts +1 -1
  217. package/toggle-group/ToggleGroup.js +5 -4
  218. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  219. package/toggle-group/ToggleGroup.test.js +156 -0
  220. package/toggle-group/types.d.ts +9 -1
  221. package/typography/Typography.d.ts +4 -0
  222. package/typography/Typography.js +131 -0
  223. package/typography/Typography.stories.tsx +198 -0
  224. package/typography/types.d.ts +18 -0
  225. package/typography/types.js +5 -0
  226. package/useTheme.js +2 -2
  227. package/useTranslatedLabels.d.ts +2 -0
  228. package/useTranslatedLabels.js +20 -0
  229. package/wizard/Wizard.d.ts +1 -1
  230. package/wizard/Wizard.js +58 -54
  231. package/wizard/Wizard.stories.tsx +33 -24
  232. package/wizard/Wizard.test.js +141 -0
  233. package/wizard/types.d.ts +10 -5
  234. package/ThemeContext.d.ts +0 -15
  235. package/ThemeContext.js +0 -243
  236. package/V3Select/V3Select.js +0 -455
  237. package/V3Select/index.d.ts +0 -27
  238. package/V3Textarea/V3Textarea.js +0 -260
  239. package/V3Textarea/index.d.ts +0 -27
  240. package/date/Date.js +0 -373
  241. package/date/index.d.ts +0 -27
  242. package/input-text/Icons.js +0 -22
  243. package/input-text/InputText.js +0 -611
  244. package/input-text/index.d.ts +0 -36
  245. package/list/List.d.ts +0 -8
  246. package/list/List.js +0 -47
  247. package/list/List.stories.tsx +0 -85
  248. package/radio/Radio.d.ts +0 -4
  249. package/radio/Radio.js +0 -174
  250. package/radio/Radio.stories.tsx +0 -192
  251. package/radio/types.d.ts +0 -54
  252. package/row/Row.d.ts +0 -11
  253. package/row/Row.js +0 -124
  254. package/row/Row.stories.tsx +0 -223
  255. package/select/index.d.ts +0 -131
  256. package/stack/Stack.d.ts +0 -10
  257. package/stack/Stack.js +0 -94
  258. package/stack/Stack.stories.tsx +0 -150
  259. package/text/Text.d.ts +0 -7
  260. package/text/Text.js +0 -30
  261. package/text/Text.stories.tsx +0 -19
  262. package/toggle/Toggle.js +0 -186
  263. package/toggle/index.d.ts +0 -21
  264. package/upload/Upload.js +0 -201
  265. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  266. package/upload/buttons-upload/Icons.js +0 -40
  267. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  268. package/upload/dragAndDropArea/Icons.js +0 -39
  269. package/upload/file-upload/FileToUpload.js +0 -115
  270. package/upload/file-upload/Icons.js +0 -66
  271. package/upload/files-upload/FilesToUpload.js +0 -109
  272. package/upload/index.d.ts +0 -15
  273. package/upload/transaction/Icons.js +0 -160
  274. package/upload/transaction/Transaction.js +0 -104
  275. package/upload/transactions/Transactions.js +0 -94
@@ -0,0 +1,198 @@
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 = _interopRequireWildcard(require("styled-components"));
19
+
20
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
21
+
22
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
+
24
+ var _Option = _interopRequireDefault(require("./Option"));
25
+
26
+ var _Icons = _interopRequireDefault(require("./Icons"));
27
+
28
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
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 groupsHaveOptions = function groupsHaveOptions(options) {
35
+ return options !== null && options !== void 0 && options[0].options ? options.some(function (groupOption) {
36
+ var _groupOption$options;
37
+
38
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
39
+ }) : true;
40
+ };
41
+
42
+ var Listbox = function Listbox(_ref) {
43
+ var id = _ref.id,
44
+ currentValue = _ref.currentValue,
45
+ options = _ref.options,
46
+ visualFocusIndex = _ref.visualFocusIndex,
47
+ lastOptionIndex = _ref.lastOptionIndex,
48
+ multiple = _ref.multiple,
49
+ optional = _ref.optional,
50
+ optionalItem = _ref.optionalItem,
51
+ searchable = _ref.searchable,
52
+ handleOptionOnClick = _ref.handleOptionOnClick,
53
+ getSelectWidth = _ref.getSelectWidth;
54
+ var colorsTheme = (0, _useTheme["default"])();
55
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
56
+ var listboxRef = (0, _react.useRef)(null);
57
+
58
+ var _useState = (0, _react.useState)(null),
59
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
+ styles = _useState2[0],
61
+ setStyles = _useState2[1];
62
+
63
+ var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
64
+
65
+ var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
66
+ if (option.options) {
67
+ var groupId = "group-".concat(mapIndex);
68
+ return option.options.length > 0 && /*#__PURE__*/_react["default"].createElement("li", {
69
+ key: "group-".concat(mapIndex)
70
+ }, /*#__PURE__*/_react["default"].createElement(GroupList, {
71
+ role: "group",
72
+ "aria-labelledby": groupId
73
+ }, /*#__PURE__*/_react["default"].createElement(GroupLabel, {
74
+ role: "presentation",
75
+ id: groupId
76
+ }, option.label), option.options.map(function (singleOption) {
77
+ globalIndex++;
78
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
79
+ key: "option-".concat(singleOption.value),
80
+ id: "option-".concat(globalIndex),
81
+ option: singleOption,
82
+ onClick: handleOptionOnClick,
83
+ multiple: multiple,
84
+ visualFocused: visualFocusIndex === globalIndex,
85
+ isGroupedOption: true,
86
+ isLastOption: lastOptionIndex === globalIndex,
87
+ isSelected: multiple ? currentValue.includes(singleOption.value) : currentValue === singleOption.value
88
+ });
89
+ })));
90
+ } else {
91
+ globalIndex++;
92
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
93
+ key: "option-".concat(option.value),
94
+ id: "option-".concat(globalIndex),
95
+ option: option,
96
+ onClick: handleOptionOnClick,
97
+ multiple: multiple,
98
+ visualFocused: visualFocusIndex === globalIndex,
99
+ isLastOption: lastOptionIndex === globalIndex,
100
+ isSelected: multiple ? currentValue.includes(option.value) : currentValue === option.value
101
+ });
102
+ }
103
+ };
104
+
105
+ (0, _react.useLayoutEffect)(function () {
106
+ if (currentValue && !multiple) {
107
+ var _listEl$scrollTo;
108
+
109
+ var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
110
+ var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
111
+ listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
112
+ top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
113
+ });
114
+ }
115
+ }, [currentValue, multiple]);
116
+ (0, _react.useLayoutEffect)(function () {
117
+ var _listboxRef$current, _visualFocusedOptionE;
118
+
119
+ 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];
120
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
121
+ block: "nearest",
122
+ inline: "start"
123
+ });
124
+ }, [visualFocusIndex]);
125
+
126
+ var handleResize = function handleResize() {
127
+ setStyles({
128
+ width: getSelectWidth()
129
+ });
130
+ };
131
+
132
+ (0, _react.useLayoutEffect)(function () {
133
+ handleResize();
134
+ }, [getSelectWidth]);
135
+ (0, _react.useEffect)(function () {
136
+ window.addEventListener("resize", handleResize);
137
+ return function () {
138
+ window.removeEventListener("resize", handleResize);
139
+ };
140
+ }, [getSelectWidth]);
141
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
142
+ theme: colorsTheme.select
143
+ }, /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
144
+ id: id,
145
+ onClick: function onClick(event) {
146
+ event.stopPropagation();
147
+ },
148
+ onMouseDown: function onMouseDown(event) {
149
+ event.preventDefault();
150
+ },
151
+ ref: listboxRef,
152
+ role: "listbox",
153
+ "aria-multiselectable": multiple,
154
+ style: styles
155
+ }, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff), translatedLabels.select.noMatchesErrorMessage) : optional && !multiple && /*#__PURE__*/_react["default"].createElement(_Option["default"], {
156
+ key: "option-".concat(optionalItem.value),
157
+ id: "option-".concat(0),
158
+ option: optionalItem,
159
+ onClick: handleOptionOnClick,
160
+ multiple: multiple,
161
+ visualFocused: visualFocusIndex === 0,
162
+ isGroupedOption: false,
163
+ isLastOption: lastOptionIndex === 0,
164
+ isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
165
+ }), options.map(mapOptionFunc)));
166
+ };
167
+
168
+ var ListboxContainer = _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 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) {
169
+ return props.theme.listDialogBackgroundColor;
170
+ }, function (props) {
171
+ return props.theme.listDialogBorderColor;
172
+ }, function (props) {
173
+ return props.theme.listOptionFontColor;
174
+ }, function (props) {
175
+ return props.theme.fontFamily;
176
+ }, function (props) {
177
+ return props.theme.listOptionFontSize;
178
+ }, function (props) {
179
+ return props.theme.listOptionFontStyle;
180
+ }, function (props) {
181
+ return props.theme.listOptionFontWeight;
182
+ });
183
+
184
+ var OptionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
185
+ return props.theme.systemMessageFontColor;
186
+ });
187
+
188
+ var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: 0.25rem;\n"])));
189
+
190
+ var GroupList = _styledComponents["default"].ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
191
+
192
+ var GroupLabel = _styledComponents["default"].li(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
193
+ return props.theme.listGroupLabelFontWeight;
194
+ });
195
+
196
+ var _default = /*#__PURE__*/_react["default"].memo(Listbox);
197
+
198
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { OptionProps } from "../select/types";
3
+ declare const _default: React.MemoExoticComponent<({ id, option, onClick, multiple, visualFocused, isGroupedOption, isLastOption, isSelected, }: OptionProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,110 @@
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 _react = _interopRequireDefault(require("react"));
15
+
16
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
+
18
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
19
+
20
+ var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
21
+
22
+ var _Icons = _interopRequireDefault(require("./Icons"));
23
+
24
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
25
+
26
+ 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); }
27
+
28
+ 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; }
29
+
30
+ var Option = function Option(_ref) {
31
+ var id = _ref.id,
32
+ option = _ref.option,
33
+ _onClick = _ref.onClick,
34
+ multiple = _ref.multiple,
35
+ visualFocused = _ref.visualFocused,
36
+ _ref$isGroupedOption = _ref.isGroupedOption,
37
+ isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
38
+ isLastOption = _ref.isLastOption,
39
+ isSelected = _ref.isSelected;
40
+ var colorsTheme = (0, _useTheme["default"])();
41
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
42
+ theme: colorsTheme.select
43
+ }, /*#__PURE__*/_react["default"].createElement(OptionItem, {
44
+ id: id,
45
+ onClick: function onClick() {
46
+ _onClick(option);
47
+ },
48
+ visualFocused: visualFocused,
49
+ selected: isSelected,
50
+ role: "option",
51
+ "aria-selected": isSelected
52
+ }, /*#__PURE__*/_react["default"].createElement(StyledOption, {
53
+ visualFocused: visualFocused,
54
+ selected: isSelected,
55
+ last: isLastOption,
56
+ grouped: isGroupedOption,
57
+ multiple: multiple
58
+ }, multiple && /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
59
+ checked: isSelected,
60
+ tabIndex: -1
61
+ }), option.icon && /*#__PURE__*/_react["default"].createElement(OptionIcon, {
62
+ grouped: isGroupedOption,
63
+ multiple: multiple,
64
+ role: !(typeof option.icon === "string") ? "img" : undefined
65
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(OptionIconImg, {
66
+ src: option.icon
67
+ }) : option.icon), /*#__PURE__*/_react["default"].createElement(OptionContent, {
68
+ grouped: isGroupedOption,
69
+ hasIcon: option.icon ? true : false,
70
+ multiple: multiple
71
+ }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected)))));
72
+ };
73
+
74
+ var OptionItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
75
+ return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
76
+ }, function (props) {
77
+ return props.selected && "background-color: ".concat(props.theme.selectedListOptionBackgroundColor);
78
+ }, function (props) {
79
+ return props.selected ? "background-color: ".concat(props.theme.selectedHoverListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedHoverListOptionBackgroundColor, ";");
80
+ }, function (props) {
81
+ return props.selected ? "background-color: ".concat(props.theme.selectedActiveListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListOptionBackgroundColor, ";");
82
+ });
83
+
84
+ var StyledOption = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 0.5rem 0.188rem 0;\n min-height: 24px;\n ", "\n ", ";\n"])), function (props) {
85
+ return props.grouped && props.multiple && "padding-left: 16px;";
86
+ }, function (props) {
87
+ return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
88
+ });
89
+
90
+ var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n ", "\n color: ", ";\n"])), function (props) {
91
+ return props.grouped && !props.multiple ? "padding-left: 16px;" : "padding-left: 8px;";
92
+ }, function (props) {
93
+ return props.theme.listOptionIconColor;
94
+ });
95
+
96
+ var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n ", "\n"])), function (props) {
97
+ return props.grouped && !props.multiple && !props.hasIcon ? "padding-left: 16px;" : "padding-left: 8px;";
98
+ });
99
+
100
+ var OptionIconImg = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
101
+
102
+ var OptionLabel = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
103
+
104
+ var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 16px;\n width: 16px;\n margin-left: 4px;\n color: ", ";\n"])), function (props) {
105
+ return props.theme.selectedListOptionIconColor;
106
+ });
107
+
108
+ var _default = /*#__PURE__*/_react["default"].memo(Option);
109
+
110
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import SelectPropsType from "./types";
3
+ declare const DxcSelect: React.ForwardRefExoticComponent<SelectPropsType & React.RefAttributes<HTMLDivElement>>;
4
+ export default DxcSelect;