@dxc-technology/halstack-react 0.0.0-5205f47 → 0.0.0-522074c

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 (312) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/V3Select/V3Select.js +455 -0
  4. package/V3Select/index.d.ts +27 -0
  5. package/V3Textarea/V3Textarea.js +260 -0
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/accordion/Accordion.d.ts +4 -0
  8. package/accordion/Accordion.js +258 -0
  9. package/accordion/types.d.ts +68 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +170 -0
  13. package/accordion-group/types.d.ts +72 -0
  14. package/accordion-group/types.js +5 -0
  15. package/alert/Alert.d.ts +4 -0
  16. package/alert/Alert.js +290 -0
  17. package/alert/types.d.ts +49 -0
  18. package/alert/types.js +5 -0
  19. package/badge/Badge.js +59 -0
  20. package/{dist/box → box}/Box.js +38 -34
  21. package/box/index.d.ts +25 -0
  22. package/button/Button.d.ts +4 -0
  23. package/button/Button.js +182 -0
  24. package/button/Button.stories.tsx +293 -0
  25. package/button/types.d.ts +57 -0
  26. package/button/types.js +5 -0
  27. package/card/Card.d.ts +4 -0
  28. package/card/Card.js +165 -0
  29. package/card/types.d.ts +69 -0
  30. package/card/types.js +5 -0
  31. package/checkbox/Checkbox.d.ts +4 -0
  32. package/checkbox/Checkbox.js +253 -0
  33. package/checkbox/types.d.ts +60 -0
  34. package/checkbox/types.js +5 -0
  35. package/chip/Chip.js +221 -0
  36. package/chip/index.d.ts +22 -0
  37. package/{dist/common → common}/OpenSans.css +0 -0
  38. package/{dist/common → common}/RequiredComponent.js +5 -19
  39. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  40. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  41. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  42. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  43. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  44. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  45. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  46. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  47. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  48. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  49. package/common/utils.js +22 -0
  50. package/common/variables.js +1569 -0
  51. package/{dist/date → date}/Date.js +87 -71
  52. package/date/index.d.ts +27 -0
  53. package/date-input/DateInput.d.ts +4 -0
  54. package/date-input/DateInput.js +361 -0
  55. package/date-input/types.d.ts +100 -0
  56. package/date-input/types.js +5 -0
  57. package/dialog/Dialog.js +184 -0
  58. package/dialog/index.d.ts +18 -0
  59. package/dropdown/Dropdown.d.ts +4 -0
  60. package/dropdown/Dropdown.js +417 -0
  61. package/dropdown/types.d.ts +89 -0
  62. package/dropdown/types.js +5 -0
  63. package/file-input/FileInput.js +532 -0
  64. package/file-input/FileItem.js +193 -0
  65. package/file-input/index.d.ts +81 -0
  66. package/footer/Footer.js +297 -0
  67. package/footer/Icons.js +77 -0
  68. package/footer/index.d.ts +25 -0
  69. package/header/Header.js +326 -0
  70. package/header/Icons.js +59 -0
  71. package/header/index.d.ts +25 -0
  72. package/heading/Heading.js +176 -0
  73. package/heading/index.d.ts +17 -0
  74. package/input-text/Icons.js +22 -0
  75. package/input-text/InputText.js +611 -0
  76. package/input-text/index.d.ts +36 -0
  77. package/layout/ApplicationLayout.js +235 -0
  78. package/layout/Icons.js +55 -0
  79. package/link/Link.js +183 -0
  80. package/link/index.d.ts +23 -0
  81. package/main.d.ts +44 -0
  82. package/{dist/main.js → main.js} +143 -43
  83. package/number-input/NumberInput.js +128 -0
  84. package/{dist/ThemeContext.js → number-input/NumberInputContext.js} +3 -2
  85. package/number-input/index.d.ts +113 -0
  86. package/package.json +38 -23
  87. package/paginator/Icons.js +66 -0
  88. package/paginator/Paginator.d.ts +4 -0
  89. package/paginator/Paginator.js +198 -0
  90. package/paginator/types.d.ts +38 -0
  91. package/paginator/types.js +5 -0
  92. package/password-input/PasswordInput.js +199 -0
  93. package/password-input/PasswordInput.stories.jsx +131 -0
  94. package/password-input/index.d.ts +94 -0
  95. package/progress-bar/ProgressBar.d.ts +4 -0
  96. package/progress-bar/ProgressBar.js +170 -0
  97. package/progress-bar/types.d.ts +37 -0
  98. package/progress-bar/types.js +5 -0
  99. package/radio/Radio.d.ts +4 -0
  100. package/radio/Radio.js +174 -0
  101. package/radio/types.d.ts +54 -0
  102. package/radio/types.js +5 -0
  103. package/resultsetTable/ResultsetTable.js +274 -0
  104. package/resultsetTable/index.d.ts +19 -0
  105. package/select/Select.js +865 -0
  106. package/select/index.d.ts +131 -0
  107. package/sidenav/Sidenav.js +145 -0
  108. package/sidenav/index.d.ts +13 -0
  109. package/slider/Slider.d.ts +4 -0
  110. package/slider/Slider.js +306 -0
  111. package/slider/types.d.ts +83 -0
  112. package/slider/types.js +5 -0
  113. package/spinner/Spinner.js +267 -0
  114. package/spinner/index.d.ts +17 -0
  115. package/switch/Switch.d.ts +4 -0
  116. package/switch/Switch.js +179 -0
  117. package/switch/types.d.ts +58 -0
  118. package/switch/types.js +5 -0
  119. package/table/Table.js +118 -0
  120. package/table/index.d.ts +13 -0
  121. package/tabs/Tabs.js +259 -0
  122. package/tabs/index.d.ts +19 -0
  123. package/tag/Tag.js +208 -0
  124. package/tag/index.d.ts +24 -0
  125. package/text-input/TextInput.js +825 -0
  126. package/text-input/index.d.ts +135 -0
  127. package/textarea/Textarea.js +317 -0
  128. package/textarea/Textarea.stories.jsx +135 -0
  129. package/textarea/index.d.ts +117 -0
  130. package/{dist/toggle → toggle}/Toggle.js +30 -67
  131. package/toggle/index.d.ts +21 -0
  132. package/toggle-group/ToggleGroup.js +243 -0
  133. package/toggle-group/index.d.ts +21 -0
  134. package/{dist/upload → upload}/Upload.js +23 -22
  135. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  136. package/upload/buttons-upload/Icons.js +40 -0
  137. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  138. package/upload/dragAndDropArea/Icons.js +39 -0
  139. package/upload/file-upload/FileToUpload.js +115 -0
  140. package/upload/file-upload/Icons.js +66 -0
  141. package/upload/files-upload/FilesToUpload.js +109 -0
  142. package/upload/index.d.ts +15 -0
  143. package/upload/transaction/Icons.js +160 -0
  144. package/upload/transaction/Transaction.js +104 -0
  145. package/upload/transactions/Transactions.js +94 -0
  146. package/useTheme.js +22 -0
  147. package/wizard/Icons.js +65 -0
  148. package/wizard/Wizard.js +271 -0
  149. package/wizard/index.d.ts +18 -0
  150. package/README.md +0 -66
  151. package/babel.config.js +0 -4
  152. package/dist/accordion/Accordion.js +0 -248
  153. package/dist/accordion/Accordion.stories.js +0 -207
  154. package/dist/accordion/readme.md +0 -96
  155. package/dist/alert/Alert.js +0 -304
  156. package/dist/alert/Alert.stories.js +0 -158
  157. package/dist/alert/close.svg +0 -4
  158. package/dist/alert/error.svg +0 -4
  159. package/dist/alert/info.svg +0 -4
  160. package/dist/alert/readme.md +0 -43
  161. package/dist/alert/success.svg +0 -4
  162. package/dist/alert/warning.svg +0 -4
  163. package/dist/button/Button.js +0 -181
  164. package/dist/button/Button.stories.js +0 -224
  165. package/dist/button/readme.md +0 -93
  166. package/dist/card/Card.js +0 -217
  167. package/dist/checkbox/Checkbox.js +0 -240
  168. package/dist/checkbox/Checkbox.stories.js +0 -144
  169. package/dist/checkbox/readme.md +0 -116
  170. package/dist/chip/Chip.js +0 -173
  171. package/dist/common/services/example-service.js +0 -10
  172. package/dist/common/services/example-service.test.js +0 -12
  173. package/dist/common/utils.js +0 -42
  174. package/dist/common/variables.js +0 -413
  175. package/dist/date/Date.stories.js +0 -205
  176. package/dist/date/calendar.svg +0 -1
  177. package/dist/date/calendar_dark.svg +0 -1
  178. package/dist/date/readme.md +0 -73
  179. package/dist/dialog/Dialog.js +0 -197
  180. package/dist/dialog/Dialog.stories.js +0 -217
  181. package/dist/dialog/readme.md +0 -32
  182. package/dist/dropdown/Dropdown.js +0 -416
  183. package/dist/dropdown/Dropdown.stories.js +0 -249
  184. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  185. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  186. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  187. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  188. package/dist/dropdown/readme.md +0 -69
  189. package/dist/footer/Footer.js +0 -346
  190. package/dist/footer/Footer.stories.js +0 -94
  191. package/dist/footer/dxc_logo_wht.png +0 -0
  192. package/dist/footer/readme.md +0 -41
  193. package/dist/header/Header.js +0 -360
  194. package/dist/header/Header.stories.js +0 -176
  195. package/dist/header/close_icon.svg +0 -1
  196. package/dist/header/dxc_logo_black.png +0 -0
  197. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  198. package/dist/header/dxc_logo_white.png +0 -0
  199. package/dist/header/hamb_menu_black.svg +0 -1
  200. package/dist/header/hamb_menu_white.svg +0 -1
  201. package/dist/header/readme.md +0 -33
  202. package/dist/heading/Heading.js +0 -153
  203. package/dist/input-text/InputText.js +0 -519
  204. package/dist/input-text/InputText.stories.js +0 -209
  205. package/dist/input-text/error.svg +0 -1
  206. package/dist/input-text/readme.md +0 -91
  207. package/dist/link/Link.js +0 -136
  208. package/dist/link/readme.md +0 -51
  209. package/dist/paginator/Paginator.js +0 -196
  210. package/dist/paginator/images/next.svg +0 -3
  211. package/dist/paginator/images/nextPage.svg +0 -3
  212. package/dist/paginator/images/previous.svg +0 -3
  213. package/dist/paginator/images/previousPage.svg +0 -3
  214. package/dist/paginator/readme.md +0 -50
  215. package/dist/progress-bar/ProgressBar.js +0 -185
  216. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  217. package/dist/progress-bar/readme.md +0 -63
  218. package/dist/radio/Radio.js +0 -195
  219. package/dist/radio/Radio.stories.js +0 -166
  220. package/dist/radio/readme.md +0 -70
  221. package/dist/resultsetTable/ResultsetTable.js +0 -333
  222. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  223. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  224. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  225. package/dist/select/Select.js +0 -451
  226. package/dist/select/Select.stories.js +0 -235
  227. package/dist/select/readme.md +0 -72
  228. package/dist/sidenav/Sidenav.js +0 -222
  229. package/dist/sidenav/arrow_icon.svg +0 -3
  230. package/dist/slider/Slider.js +0 -258
  231. package/dist/slider/Slider.stories.js +0 -241
  232. package/dist/slider/readme.md +0 -64
  233. package/dist/spinner/Spinner.js +0 -193
  234. package/dist/spinner/Spinner.stories.js +0 -183
  235. package/dist/spinner/readme.md +0 -65
  236. package/dist/switch/Switch.js +0 -199
  237. package/dist/switch/Switch.stories.js +0 -134
  238. package/dist/switch/readme.md +0 -133
  239. package/dist/table/Table.js +0 -93
  240. package/dist/tabs/Tabs.js +0 -172
  241. package/dist/tabs/Tabs.stories.js +0 -130
  242. package/dist/tabs/readme.md +0 -78
  243. package/dist/tabs-for-sections/TabsForSections.js +0 -107
  244. package/dist/tabs-for-sections/readme.md +0 -78
  245. package/dist/tag/Tag.js +0 -217
  246. package/dist/textarea/Textarea.js +0 -227
  247. package/dist/toggle/Toggle.stories.js +0 -297
  248. package/dist/toggle/readme.md +0 -80
  249. package/dist/upload/Upload.stories.js +0 -72
  250. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -122
  251. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  252. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  253. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -279
  254. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  255. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  256. package/dist/upload/file-upload/FileToUpload.js +0 -158
  257. package/dist/upload/file-upload/audio-icon.svg +0 -4
  258. package/dist/upload/file-upload/close.svg +0 -4
  259. package/dist/upload/file-upload/file-icon.svg +0 -4
  260. package/dist/upload/file-upload/video-icon.svg +0 -4
  261. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  262. package/dist/upload/readme.md +0 -37
  263. package/dist/upload/transaction/Transaction.js +0 -155
  264. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  265. package/dist/upload/transaction/audio-icon.svg +0 -4
  266. package/dist/upload/transaction/error-icon.svg +0 -4
  267. package/dist/upload/transaction/file-icon-err.svg +0 -4
  268. package/dist/upload/transaction/file-icon.svg +0 -4
  269. package/dist/upload/transaction/image-icon-err.svg +0 -4
  270. package/dist/upload/transaction/image-icon.svg +0 -4
  271. package/dist/upload/transaction/success-icon.svg +0 -4
  272. package/dist/upload/transaction/video-icon-err.svg +0 -4
  273. package/dist/upload/transaction/video-icon.svg +0 -4
  274. package/dist/upload/transactions/Transactions.js +0 -120
  275. package/dist/wizard/Wizard.js +0 -327
  276. package/dist/wizard/invalid_icon.svg +0 -6
  277. package/dist/wizard/valid_icon.svg +0 -6
  278. package/dist/wizard/validation-wrong.svg +0 -6
  279. package/test/Accordion.test.js +0 -33
  280. package/test/Alert.test.js +0 -53
  281. package/test/Box.test.js +0 -10
  282. package/test/Button.test.js +0 -18
  283. package/test/Card.test.js +0 -30
  284. package/test/Checkbox.test.js +0 -45
  285. package/test/Chip.test.js +0 -25
  286. package/test/Date.test.js +0 -393
  287. package/test/Dialog.test.js +0 -23
  288. package/test/Dropdown.test.js +0 -130
  289. package/test/Footer.test.js +0 -99
  290. package/test/Header.test.js +0 -39
  291. package/test/Heading.test.js +0 -35
  292. package/test/InputText.test.js +0 -236
  293. package/test/Link.test.js +0 -25
  294. package/test/Paginator.test.js +0 -165
  295. package/test/ProgressBar.test.js +0 -35
  296. package/test/Radio.test.js +0 -37
  297. package/test/ResultsetTable.test.js +0 -282
  298. package/test/Select.test.js +0 -191
  299. package/test/Sidenav.test.js +0 -87
  300. package/test/Slider.test.js +0 -65
  301. package/test/Spinner.test.js +0 -27
  302. package/test/Switch.test.js +0 -45
  303. package/test/Table.test.js +0 -36
  304. package/test/Tabs.test.js +0 -88
  305. package/test/TabsForSections.test.js +0 -34
  306. package/test/Tag.test.js +0 -32
  307. package/test/TextArea.test.js +0 -52
  308. package/test/Toggle.test.js +0 -43
  309. package/test/Upload.test.js +0 -60
  310. package/test/Wizard.test.js +0 -130
  311. package/test/mocks/pngMock.js +0 -1
  312. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,417 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
22
+ var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
23
+
24
+ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
25
+
26
+ var _core = require("@material-ui/core");
27
+
28
+ var _Grow = _interopRequireDefault(require("@material-ui/core/Grow"));
29
+
30
+ var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
31
+
32
+ var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
33
+
34
+ var _variables = require("../common/variables.js");
35
+
36
+ var _utils = require("../common/utils.js");
37
+
38
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
39
+
40
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
41
+
42
+ 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); }
43
+
44
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
+
46
+ var DxcDropdown = function DxcDropdown(_ref) {
47
+ var options = _ref.options,
48
+ _ref$optionsIconPosit = _ref.optionsIconPosition,
49
+ optionsIconPosition = _ref$optionsIconPosit === void 0 ? "before" : _ref$optionsIconPosit,
50
+ icon = _ref.icon,
51
+ _ref$iconSrc = _ref.iconSrc,
52
+ iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
53
+ _ref$iconPosition = _ref.iconPosition,
54
+ iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
55
+ _ref$label = _ref.label,
56
+ label = _ref$label === void 0 ? "" : _ref$label,
57
+ _ref$caretHidden = _ref.caretHidden,
58
+ caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
59
+ onSelectOption = _ref.onSelectOption,
60
+ _ref$expandOnHover = _ref.expandOnHover,
61
+ expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
62
+ margin = _ref.margin,
63
+ _ref$size = _ref.size,
64
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
65
+ _ref$tabIndex = _ref.tabIndex,
66
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
67
+ _ref$disabled = _ref.disabled,
68
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled;
69
+
70
+ var _useState = (0, _react.useState)(),
71
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
72
+ width = _useState2[0],
73
+ setWidth = _useState2[1];
74
+
75
+ var colorsTheme = (0, _useTheme["default"])();
76
+ var ref = (0, _react.useRef)(null);
77
+
78
+ var handleResize = function handleResize() {
79
+ if (ref.current) setWidth(ref.current.offsetWidth);
80
+ };
81
+
82
+ (0, _react.useEffect)(function () {
83
+ if (ref.current) {
84
+ ref.current.addEventListener("resize", handleResize);
85
+ handleResize();
86
+ }
87
+
88
+ return function () {
89
+ if (ref.current) ref.current.removeEventListener("resize", handleResize);
90
+ };
91
+ }, []);
92
+
93
+ var _useState3 = (0, _react.useState)(null),
94
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
95
+ anchorEl = _useState4[0],
96
+ setAnchorEl = _useState4[1];
97
+
98
+ function handleClickListItem(event) {
99
+ setAnchorEl(event.currentTarget);
100
+ }
101
+
102
+ function handleMenuItemClick(option) {
103
+ setAnchorEl(null);
104
+ onSelectOption(option.value);
105
+ }
106
+
107
+ function handleClose() {
108
+ setAnchorEl(null);
109
+ }
110
+
111
+ var handleCloseOver = expandOnHover ? handleClose : undefined;
112
+
113
+ var UpArrowIcon = function UpArrowIcon() {
114
+ return /*#__PURE__*/_react["default"].createElement("svg", {
115
+ xmlns: "http://www.w3.org/2000/svg",
116
+ width: "24",
117
+ height: "24",
118
+ viewBox: "0 0 24 24",
119
+ fill: "currentColor"
120
+ }, /*#__PURE__*/_react["default"].createElement("path", {
121
+ d: "M7 14l5-5 5 5z"
122
+ }), /*#__PURE__*/_react["default"].createElement("path", {
123
+ d: "M0 0h24v24H0z",
124
+ fill: "none"
125
+ }));
126
+ };
127
+
128
+ var DownArrowIcon = function DownArrowIcon() {
129
+ return /*#__PURE__*/_react["default"].createElement("svg", {
130
+ xmlns: "http://www.w3.org/2000/svg",
131
+ width: "24",
132
+ height: "24",
133
+ viewBox: "0 0 24 24",
134
+ fill: "currentColor"
135
+ }, /*#__PURE__*/_react["default"].createElement("path", {
136
+ d: "M7 10l5 5 5-5z"
137
+ }), /*#__PURE__*/_react["default"].createElement("path", {
138
+ d: "M0 0h24v24H0z",
139
+ fill: "none"
140
+ }));
141
+ };
142
+
143
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
144
+ theme: colorsTheme.dropdown
145
+ }, /*#__PURE__*/_react["default"].createElement(DXCDropdownContainer, {
146
+ margin: margin,
147
+ size: size,
148
+ disabled: disabled
149
+ }, /*#__PURE__*/_react["default"].createElement("div", {
150
+ onMouseOver: expandOnHover && !disabled ? handleClickListItem : undefined,
151
+ onMouseOut: handleCloseOver,
152
+ onFocus: handleCloseOver,
153
+ onBlur: handleCloseOver
154
+ }, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
155
+ opened: anchorEl === null ? false : true,
156
+ onClick: handleClickListItem,
157
+ disabled: disabled,
158
+ label: label,
159
+ caretHidden: caretHidden,
160
+ margin: margin,
161
+ size: size,
162
+ ref: ref,
163
+ tabIndex: tabIndex
164
+ }, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContainer, {
165
+ iconPosition: iconPosition,
166
+ caretHidden: caretHidden
167
+ }, icon ? /*#__PURE__*/_react["default"].createElement(ButtonIconContainer, {
168
+ label: label,
169
+ iconPosition: iconPosition,
170
+ disabled: disabled
171
+ }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
172
+ label: label,
173
+ src: iconSrc,
174
+ iconPosition: iconPosition
175
+ }), /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, {
176
+ iconPosition: iconPosition,
177
+ label: label
178
+ }, label)), /*#__PURE__*/_react["default"].createElement(CaretIconContainer, {
179
+ caretHidden: caretHidden,
180
+ disabled: disabled
181
+ }, !caretHidden && (anchorEl === null ? /*#__PURE__*/_react["default"].createElement(DownArrowIcon, null) : /*#__PURE__*/_react["default"].createElement(UpArrowIcon, null)))), /*#__PURE__*/_react["default"].createElement(DXCMenu, {
182
+ anchorEl: anchorEl,
183
+ open: Boolean(anchorEl),
184
+ onClose: handleClose,
185
+ getContentAnchorEl: null,
186
+ anchorOrigin: {
187
+ vertical: "bottom",
188
+ horizontal: "left"
189
+ },
190
+ transformOrigin: {
191
+ vertical: "top",
192
+ horizontal: "left"
193
+ },
194
+ optionsIconPosition: optionsIconPosition,
195
+ size: size,
196
+ width: width,
197
+ role: undefined,
198
+ transition: true,
199
+ disablePortal: true,
200
+ placement: "bottom-start"
201
+ }, function (_ref2) {
202
+ var TransitionProps = _ref2.TransitionProps;
203
+ return /*#__PURE__*/_react["default"].createElement(_Grow["default"], TransitionProps, /*#__PURE__*/_react["default"].createElement(_Paper["default"], null, /*#__PURE__*/_react["default"].createElement(_core.ClickAwayListener, {
204
+ onClickAway: handleClose
205
+ }, /*#__PURE__*/_react["default"].createElement(_MenuList["default"], {
206
+ autoFocusItem: Boolean(anchorEl),
207
+ id: "menu-list-grow"
208
+ }, options.map(function (option) {
209
+ return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
210
+ key: option.value,
211
+ value: option.value,
212
+ disableRipple: true,
213
+ onClick: function onClick(event) {
214
+ return handleMenuItemClick(option);
215
+ }
216
+ }, option.icon ? /*#__PURE__*/_react["default"].createElement(ListIconContainer, {
217
+ label: option.label,
218
+ iconPosition: optionsIconPosition
219
+ }, (0, _typeof2["default"])(option.icon) === "object" ? option.icon : /*#__PURE__*/_react["default"].createElement(option.icon)) : option.iconSrc && /*#__PURE__*/_react["default"].createElement(ListIcon, {
220
+ label: option.label,
221
+ src: option.iconSrc,
222
+ iconPosition: optionsIconPosition
223
+ }), /*#__PURE__*/_react["default"].createElement("span", {
224
+ className: "optionLabel"
225
+ }, option.label));
226
+ })))));
227
+ }))));
228
+ };
229
+
230
+ var sizes = {
231
+ small: "60px",
232
+ medium: "240px",
233
+ large: "480px",
234
+ fillParent: "100%",
235
+ fitContent: "unset"
236
+ };
237
+
238
+ var calculateWidth = function calculateWidth(margin, size) {
239
+ if (size === "fillParent") {
240
+ return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
241
+ }
242
+
243
+ return sizes[size];
244
+ };
245
+
246
+ var DXCDropdownContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-block;\n"])), function (props) {
247
+ return calculateWidth(props.margin, props.size);
248
+ }, function (props) {
249
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
250
+ }, function (props) {
251
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
252
+ }, function (props) {
253
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
254
+ }, function (props) {
255
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
256
+ }, function (props) {
257
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
258
+ });
259
+
260
+ var DXCMenu = (0, _styledComponents["default"])(_Popper["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 1;\n\n .MuiMenuItem-gutters {\n width: ", ";\n }\n .MuiMenuItem-root {\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n height: auto;\n }\n .MuiPaper-root {\n min-width: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n border-bottom-left-radius: ", ";\n border-bottom-right-radius: ", ";\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n max-height: 230px;\n overflow-y: auto;\n\n ::-webkit-scrollbar {\n width: 3px;\n }\n ::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 3px;\n }\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n\n .MuiList-padding {\n padding-top: 0px;\n padding-bottom: 0px;\n }\n .MuiListItem-button {\n display: flex;\n flex-direction: ", ";\n justify-content: ", ";\n background-color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n cursor: pointer;\n }\n .MuiListItem-button:focus {\n outline: ", " solid 2px;\n outline-offset: -2px;\n }\n .MuiListItem-button:hover {\n background-color: ", ";\n }\n .MuiListItem-button:active {\n background-color: ", ";\n outline: ", " solid 2px;\n outline-offset: -2px;\n }\n }\n"])), function (props) {
261
+ return calculateWidth(props.margin, props.size);
262
+ }, function (props) {
263
+ return props.theme.optionPaddingTop;
264
+ }, function (props) {
265
+ return props.theme.optionPaddingBottom;
266
+ }, function (props) {
267
+ return props.theme.optionPaddingLeft;
268
+ }, function (props) {
269
+ return props.theme.optionPaddingRight;
270
+ }, function (props) {
271
+ return "".concat(props.width, "px");
272
+ }, function (props) {
273
+ return props.theme.borderThickness;
274
+ }, function (props) {
275
+ return props.theme.borderStyle;
276
+ }, function (props) {
277
+ return props.theme.borderColor;
278
+ }, function (props) {
279
+ return props.theme.borderRadius;
280
+ }, function (props) {
281
+ return props.theme.borderRadius;
282
+ }, function (props) {
283
+ return props.theme.scrollBarTrackColor;
284
+ }, function (props) {
285
+ return props.theme.scrollBarThumbColor;
286
+ }, function (props) {
287
+ return props.optionsIconPosition === "after" && "row-reverse" || "row";
288
+ }, function (props) {
289
+ return props.optionsIconPosition === "after" && "flex-end" || "";
290
+ }, function (props) {
291
+ return props.theme.optionBackgroundColor;
292
+ }, function (props) {
293
+ return props.theme.optionFontFamily;
294
+ }, function (props) {
295
+ return props.theme.optionFontSize;
296
+ }, function (props) {
297
+ return props.theme.optionFontStyle;
298
+ }, function (props) {
299
+ return props.theme.optionFontWeight;
300
+ }, function (props) {
301
+ return props.theme.optionFontColor;
302
+ }, function (props) {
303
+ return props.theme.focusColor;
304
+ }, function (props) {
305
+ return props.theme.hoverOptionBackgroundColor;
306
+ }, function (props) {
307
+ return props.theme.activeOptionBackgroundColor;
308
+ }, function (props) {
309
+ return props.theme.focusColor;
310
+ });
311
+
312
+ var DropdownTrigger = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: auto;\n min-height: 40px;\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n min-width: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n background-color: ", ";\n color: ", ";\n border-bottom-right-radius: ", ";\n border-bottom-left-radius: ", ";\n\n ", ";\n"])), function (props) {
313
+ return props.disabled ? "not-allowed" : "pointer";
314
+ }, function (props) {
315
+ return props.theme.buttonFontFamily;
316
+ }, function (props) {
317
+ return props.theme.buttonFontSize;
318
+ }, function (props) {
319
+ return props.theme.buttonFontStyle;
320
+ }, function (props) {
321
+ return props.theme.buttonFontWeight;
322
+ }, function (props) {
323
+ return props.theme.borderRadius;
324
+ }, function (props) {
325
+ return props.theme.borderThickness;
326
+ }, function (props) {
327
+ return props.theme.borderStyle;
328
+ }, function (props) {
329
+ return props.disabled ? props.theme.disabledBorderColor : props.theme.borderColor;
330
+ }, function (props) {
331
+ return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
332
+ }, function (props) {
333
+ return props.theme.buttonPaddingTop;
334
+ }, function (props) {
335
+ return props.theme.buttonPaddingBottom;
336
+ }, function (props) {
337
+ return props.theme.buttonPaddingLeft;
338
+ }, function (props) {
339
+ return props.theme.buttonPaddingRight;
340
+ }, function (props) {
341
+ return props.disabled ? props.theme.disabledButtonBackgroundColor : props.theme.buttonBackgroundColor;
342
+ }, function (props) {
343
+ return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
344
+ }, function (props) {
345
+ return props.opened ? "0px" : props.theme.borderRadius;
346
+ }, function (props) {
347
+ return props.opened ? "0px" : props.theme.borderRadius;
348
+ }, function (props) {
349
+ return !props.disabled && " \n &:focus {\n outline: none;\n }\n &:focus-visible {\n outline: ".concat(props.theme.focusColor, " solid 2px;\n outline-offset: -2px;\n }\n &:hover {\n background-color: ").concat(props.theme.hoverButtonBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeButtonBackgroundColor, ";\n }\n ");
350
+ });
351
+
352
+ var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
353
+
354
+ var DropdownTriggerContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n flex-direction: ", ";\n margin-left: 0px;\n margin-right: 0px;\n width: ", ";\n white-space: nowrap;\n"])), function (props) {
355
+ return props.iconPosition === "after" && "row-reverse" || "row";
356
+ }, function (props) {
357
+ return props.caretHidden ? "100%" : "calc(100% - 36px)";
358
+ });
359
+
360
+ var ButtonIcon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
361
+ return props.theme.buttonIconSize;
362
+ }, function (props) {
363
+ return props.theme.buttonIconSize;
364
+ }, function (props) {
365
+ return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
366
+ }, function (props) {
367
+ return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
368
+ });
369
+
370
+ var ButtonIconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
371
+ return props.theme.buttonIconSize;
372
+ }, function (props) {
373
+ return props.theme.buttonIconSize;
374
+ }, function (props) {
375
+ return props.iconPosition === "after" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
376
+ }, function (props) {
377
+ return props.iconPosition === "before" && props.label !== "" && props.theme.buttonIconSpacing || "0px";
378
+ }, function (props) {
379
+ return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
380
+ });
381
+
382
+ var ListIcon = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
383
+ return props.theme.optionIconSize;
384
+ }, function (props) {
385
+ return props.theme.optionIconSize;
386
+ }, function (props) {
387
+ return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
388
+ }, function (props) {
389
+ return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
390
+ });
391
+
392
+ var ListIconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n width: ", ";\n height: ", ";\n margin-left: ", ";\n margin-right: ", ";\n color: ", ";\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
393
+ return props.theme.optionIconSize;
394
+ }, function (props) {
395
+ return props.theme.optionIconSize;
396
+ }, function (props) {
397
+ return props.iconPosition === "after" && props.label !== "" && props.theme.optionIconSpacing || "0px";
398
+ }, function (props) {
399
+ return props.iconPosition === "before" && props.label !== "" && props.theme.optionIconSpacing || "0px";
400
+ }, function (props) {
401
+ return props.theme.optionIconColor;
402
+ });
403
+
404
+ var CaretIconContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: ", ";\n margin-left: ", ";\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
405
+ return props.caretHidden ? "none" : "inline-flex";
406
+ }, function (props) {
407
+ return props.theme.caretIconSpacing;
408
+ }, function (props) {
409
+ return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
410
+ }, function (props) {
411
+ return props.theme.caretIconSize;
412
+ }, function (props) {
413
+ return props.theme.caretIconSize;
414
+ });
415
+
416
+ var _default = DxcDropdown;
417
+ exports["default"] = _default;
@@ -0,0 +1,89 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
+ declare type Option = {
11
+ /**
12
+ * Option display value.
13
+ */
14
+ label?: string;
15
+ /**
16
+ * Element used as the icon that will be placed next to the
17
+ * option label.
18
+ */
19
+ icon?: SVG;
20
+ /**
21
+ * @deprecated URL of the icon that will be placed next to the option label.
22
+ */
23
+ iconSrc?: string;
24
+ /**
25
+ * Option inner value.
26
+ */
27
+ value: string;
28
+ };
29
+ declare type Props = {
30
+ /**
31
+ * An array of objects representing the options.
32
+ */
33
+ options: [Option, ...Option[]];
34
+ /**
35
+ * In case options include icons, whether the icon should appear
36
+ * after or before the label.
37
+ */
38
+ optionsIconPosition?: "before" | "after";
39
+ /**
40
+ * Element used as the icon that will be placed next to the
41
+ * dropdown label.
42
+ */
43
+ icon?: SVG;
44
+ /**
45
+ * @deprecated URL of the icon that will be placed next to the
46
+ * dropdown label.
47
+ */
48
+ iconSrc?: string;
49
+ /**
50
+ * Whether the icon should appear after or before the label.
51
+ */
52
+ iconPosition?: "before" | "after";
53
+ /**
54
+ * Text to be placed within the dropdown.
55
+ */
56
+ label?: string;
57
+ /**
58
+ * Whether the arrow next to the label must be displayed or not.
59
+ */
60
+ caretHidden?: boolean;
61
+ /**
62
+ * This function will be called every time the selection changes.
63
+ * The value of the selected option will be passed as a parameter.
64
+ */
65
+ onSelectOption: (value: string) => void;
66
+ /**
67
+ * If true, the options are showed when the dropdown is hover.
68
+ */
69
+ expandOnHover?: boolean;
70
+ /**
71
+ * Size of the margin to be applied to the component.
72
+ * You can pass an object with 'top', 'bottom', 'left' and 'right'
73
+ * properties in order to specify different margin sizes.
74
+ */
75
+ margin?: Space | Margin;
76
+ /**
77
+ * Size of the component.
78
+ */
79
+ size?: "small" | "medium" | "large" | "fillParent" | "fitContent";
80
+ /**
81
+ * Value of the tabindex.
82
+ */
83
+ tabIndex?: number;
84
+ /**
85
+ * If true, the component will be disabled.
86
+ */
87
+ disabled?: boolean;
88
+ };
89
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });