@dxc-technology/halstack-react 0.0.0-c060fff → 0.0.0-c1253f5

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 (354) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +7 -6
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +295 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +35 -162
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -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 +68 -85
  13. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  14. package/accordion-group/AccordionGroup.test.js +151 -0
  15. package/accordion-group/types.d.ts +72 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/alert/Alert.js +43 -153
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +15 -17
  25. package/badge/types.d.ts +5 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +51 -0
  29. package/bleed/Bleed.stories.tsx +341 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/box/Box.js +36 -76
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +43 -0
  37. package/box/types.js +5 -0
  38. package/bulleted-list/BulletedList.d.ts +7 -0
  39. package/bulleted-list/BulletedList.js +123 -0
  40. package/bulleted-list/BulletedList.stories.tsx +200 -0
  41. package/bulleted-list/types.d.ts +11 -0
  42. package/bulleted-list/types.js +5 -0
  43. package/button/Button.d.ts +4 -0
  44. package/button/Button.js +63 -145
  45. package/button/Button.stories.tsx +283 -0
  46. package/button/Button.test.js +35 -0
  47. package/button/types.d.ts +53 -0
  48. package/button/types.js +5 -0
  49. package/card/Card.d.ts +4 -0
  50. package/card/Card.js +44 -137
  51. package/card/Card.stories.tsx +201 -0
  52. package/card/Card.test.js +50 -0
  53. package/card/ice-cream.jpg +0 -0
  54. package/card/types.d.ts +67 -0
  55. package/card/types.js +5 -0
  56. package/checkbox/Checkbox.d.ts +4 -0
  57. package/checkbox/Checkbox.js +52 -94
  58. package/checkbox/Checkbox.stories.tsx +188 -0
  59. package/checkbox/Checkbox.test.js +78 -0
  60. package/checkbox/types.d.ts +64 -0
  61. package/checkbox/types.js +5 -0
  62. package/chip/Chip.d.ts +4 -0
  63. package/chip/Chip.js +26 -130
  64. package/chip/Chip.stories.tsx +119 -0
  65. package/chip/Chip.test.js +56 -0
  66. package/chip/types.d.ts +45 -0
  67. package/chip/types.js +5 -0
  68. package/common/RequiredComponent.js +3 -11
  69. package/common/variables.js +339 -416
  70. package/date-input/DateInput.d.ts +4 -0
  71. package/date-input/DateInput.js +80 -108
  72. package/date-input/DateInput.stories.tsx +138 -0
  73. package/date-input/DateInput.test.js +479 -0
  74. package/date-input/types.d.ts +107 -0
  75. package/date-input/types.js +5 -0
  76. package/dialog/Dialog.d.ts +4 -0
  77. package/dialog/Dialog.js +25 -105
  78. package/dialog/Dialog.stories.tsx +212 -0
  79. package/dialog/Dialog.test.js +40 -0
  80. package/dialog/types.d.ts +43 -0
  81. package/dialog/types.js +5 -0
  82. package/dropdown/Dropdown.d.ts +4 -0
  83. package/dropdown/Dropdown.js +54 -207
  84. package/dropdown/Dropdown.stories.tsx +249 -0
  85. package/dropdown/Dropdown.test.js +189 -0
  86. package/dropdown/types.d.ts +80 -0
  87. package/dropdown/types.js +5 -0
  88. package/file-input/FileInput.d.ts +4 -0
  89. package/file-input/FileInput.js +200 -251
  90. package/file-input/FileInput.stories.tsx +507 -0
  91. package/file-input/FileInput.test.js +457 -0
  92. package/file-input/FileItem.d.ts +14 -0
  93. package/file-input/FileItem.js +44 -145
  94. package/file-input/types.d.ts +112 -0
  95. package/file-input/types.js +5 -0
  96. package/flex/Flex.d.ts +4 -0
  97. package/flex/Flex.js +57 -0
  98. package/flex/Flex.stories.tsx +103 -0
  99. package/flex/types.d.ts +21 -0
  100. package/flex/types.js +5 -0
  101. package/footer/Footer.d.ts +4 -0
  102. package/footer/Footer.js +50 -286
  103. package/footer/Footer.stories.tsx +130 -0
  104. package/footer/Footer.test.js +109 -0
  105. package/footer/Icons.d.ts +2 -0
  106. package/footer/Icons.js +16 -16
  107. package/footer/types.d.ts +65 -0
  108. package/footer/types.js +5 -0
  109. package/header/Header.d.ts +7 -0
  110. package/header/Header.js +82 -249
  111. package/header/Header.stories.tsx +172 -0
  112. package/header/Header.test.js +79 -0
  113. package/header/Icons.d.ts +2 -0
  114. package/header/Icons.js +7 -32
  115. package/header/types.d.ts +47 -0
  116. package/header/types.js +5 -0
  117. package/heading/Heading.d.ts +4 -0
  118. package/heading/Heading.js +25 -96
  119. package/heading/Heading.stories.tsx +54 -0
  120. package/heading/Heading.test.js +186 -0
  121. package/heading/types.d.ts +33 -0
  122. package/heading/types.js +5 -0
  123. package/inset/Inset.d.ts +3 -0
  124. package/inset/Inset.js +51 -0
  125. package/inset/Inset.stories.tsx +229 -0
  126. package/inset/types.d.ts +37 -0
  127. package/inset/types.js +5 -0
  128. package/layout/ApplicationLayout.d.ts +20 -0
  129. package/layout/ApplicationLayout.js +76 -232
  130. package/layout/ApplicationLayout.stories.tsx +161 -0
  131. package/layout/Icons.d.ts +5 -0
  132. package/layout/Icons.js +19 -8
  133. package/layout/SidenavContext.d.ts +5 -0
  134. package/layout/SidenavContext.js +19 -0
  135. package/layout/types.d.ts +42 -0
  136. package/layout/types.js +5 -0
  137. package/link/Link.d.ts +4 -0
  138. package/link/Link.js +64 -165
  139. package/link/Link.stories.tsx +193 -0
  140. package/link/Link.test.js +83 -0
  141. package/link/types.d.ts +54 -0
  142. package/link/types.js +5 -0
  143. package/main.d.ts +44 -40
  144. package/main.js +114 -104
  145. package/number-input/NumberInput.d.ts +4 -0
  146. package/number-input/NumberInput.js +21 -81
  147. package/number-input/NumberInput.stories.tsx +115 -0
  148. package/number-input/NumberInput.test.js +506 -0
  149. package/number-input/NumberInputContext.d.ts +4 -0
  150. package/number-input/NumberInputContext.js +5 -2
  151. package/number-input/numberInputContextTypes.d.ts +19 -0
  152. package/number-input/numberInputContextTypes.js +5 -0
  153. package/number-input/types.d.ts +124 -0
  154. package/number-input/types.js +5 -0
  155. package/package.json +23 -16
  156. package/paginator/Icons.js +9 -9
  157. package/paginator/Paginator.d.ts +4 -0
  158. package/paginator/Paginator.js +32 -166
  159. package/paginator/Paginator.stories.tsx +63 -0
  160. package/paginator/Paginator.test.js +308 -0
  161. package/paginator/types.d.ts +38 -0
  162. package/paginator/types.js +5 -0
  163. package/paragraph/Paragraph.d.ts +6 -0
  164. package/paragraph/Paragraph.js +38 -0
  165. package/paragraph/Paragraph.stories.tsx +44 -0
  166. package/password-input/PasswordInput.d.ts +4 -0
  167. package/password-input/PasswordInput.js +40 -77
  168. package/password-input/PasswordInput.stories.tsx +131 -0
  169. package/password-input/PasswordInput.test.js +180 -0
  170. package/password-input/types.d.ts +110 -0
  171. package/password-input/types.js +5 -0
  172. package/progress-bar/ProgressBar.d.ts +4 -0
  173. package/progress-bar/ProgressBar.js +23 -95
  174. package/progress-bar/ProgressBar.stories.jsx +58 -0
  175. package/progress-bar/ProgressBar.test.js +65 -0
  176. package/progress-bar/types.d.ts +37 -0
  177. package/progress-bar/types.js +5 -0
  178. package/quick-nav/QuickNav.d.ts +4 -0
  179. package/quick-nav/QuickNav.js +118 -0
  180. package/quick-nav/QuickNav.stories.tsx +264 -0
  181. package/quick-nav/types.d.ts +21 -0
  182. package/quick-nav/types.js +5 -0
  183. package/radio-group/Radio.d.ts +4 -0
  184. package/radio-group/Radio.js +141 -0
  185. package/radio-group/RadioGroup.d.ts +4 -0
  186. package/radio-group/RadioGroup.js +283 -0
  187. package/radio-group/RadioGroup.stories.tsx +100 -0
  188. package/radio-group/RadioGroup.test.js +695 -0
  189. package/radio-group/types.d.ts +114 -0
  190. package/radio-group/types.js +5 -0
  191. package/resultsetTable/ResultsetTable.d.ts +4 -0
  192. package/resultsetTable/ResultsetTable.js +43 -147
  193. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  194. package/resultsetTable/ResultsetTable.test.js +348 -0
  195. package/resultsetTable/types.d.ts +67 -0
  196. package/resultsetTable/types.js +5 -0
  197. package/select/Icons.d.ts +10 -0
  198. package/select/Icons.js +93 -0
  199. package/select/Listbox.d.ts +4 -0
  200. package/select/Listbox.js +175 -0
  201. package/select/Option.d.ts +4 -0
  202. package/select/Option.js +110 -0
  203. package/select/Select.d.ts +4 -0
  204. package/select/Select.js +243 -720
  205. package/select/Select.stories.tsx +626 -0
  206. package/select/Select.test.js +2162 -0
  207. package/select/types.d.ts +212 -0
  208. package/select/types.js +5 -0
  209. package/sidenav/Sidenav.d.ts +10 -0
  210. package/sidenav/Sidenav.js +194 -105
  211. package/sidenav/Sidenav.stories.tsx +180 -0
  212. package/sidenav/Sidenav.test.js +44 -0
  213. package/sidenav/types.d.ts +73 -0
  214. package/sidenav/types.js +5 -0
  215. package/slider/Slider.d.ts +4 -0
  216. package/slider/Slider.js +76 -162
  217. package/slider/Slider.stories.tsx +177 -0
  218. package/slider/Slider.test.js +150 -0
  219. package/slider/types.d.ts +82 -0
  220. package/slider/types.js +5 -0
  221. package/spinner/Spinner.d.ts +4 -0
  222. package/spinner/Spinner.js +46 -177
  223. package/spinner/Spinner.stories.jsx +103 -0
  224. package/spinner/Spinner.test.js +64 -0
  225. package/spinner/types.d.ts +32 -0
  226. package/spinner/types.js +5 -0
  227. package/switch/Switch.d.ts +4 -0
  228. package/switch/Switch.js +55 -82
  229. package/switch/Switch.stories.tsx +160 -0
  230. package/switch/Switch.test.js +98 -0
  231. package/switch/types.d.ts +62 -0
  232. package/switch/types.js +5 -0
  233. package/table/Table.d.ts +4 -0
  234. package/table/Table.js +12 -26
  235. package/table/Table.stories.jsx +277 -0
  236. package/table/Table.test.js +26 -0
  237. package/table/types.d.ts +21 -0
  238. package/table/types.js +5 -0
  239. package/tabs/Tabs.d.ts +4 -0
  240. package/tabs/Tabs.js +43 -175
  241. package/tabs/Tabs.stories.tsx +112 -0
  242. package/tabs/Tabs.test.js +140 -0
  243. package/tabs/types.d.ts +82 -0
  244. package/tabs/types.js +5 -0
  245. package/tabs-nav/NavTabs.d.ts +8 -0
  246. package/tabs-nav/NavTabs.js +125 -0
  247. package/tabs-nav/NavTabs.stories.tsx +170 -0
  248. package/tabs-nav/NavTabs.test.js +82 -0
  249. package/tabs-nav/Tab.d.ts +4 -0
  250. package/tabs-nav/Tab.js +132 -0
  251. package/tabs-nav/types.d.ts +53 -0
  252. package/tabs-nav/types.js +5 -0
  253. package/tag/Tag.d.ts +4 -0
  254. package/tag/Tag.js +44 -143
  255. package/tag/Tag.stories.tsx +142 -0
  256. package/tag/Tag.test.js +60 -0
  257. package/tag/types.d.ts +69 -0
  258. package/tag/types.js +5 -0
  259. package/text-input/Suggestion.d.ts +4 -0
  260. package/text-input/Suggestion.js +55 -0
  261. package/text-input/TextInput.d.ts +4 -0
  262. package/text-input/TextInput.js +282 -486
  263. package/text-input/TextInput.stories.tsx +474 -0
  264. package/text-input/TextInput.test.js +1712 -0
  265. package/text-input/types.d.ts +178 -0
  266. package/text-input/types.js +5 -0
  267. package/textarea/Textarea.d.ts +4 -0
  268. package/textarea/Textarea.js +50 -142
  269. package/textarea/Textarea.stories.jsx +157 -0
  270. package/textarea/Textarea.test.js +437 -0
  271. package/textarea/types.d.ts +137 -0
  272. package/textarea/types.js +5 -0
  273. package/toggle-group/ToggleGroup.d.ts +4 -0
  274. package/toggle-group/ToggleGroup.js +36 -148
  275. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  276. package/toggle-group/ToggleGroup.test.js +156 -0
  277. package/toggle-group/types.d.ts +105 -0
  278. package/toggle-group/types.js +5 -0
  279. package/typography/Typography.d.ts +4 -0
  280. package/typography/Typography.js +131 -0
  281. package/typography/Typography.stories.tsx +198 -0
  282. package/typography/types.d.ts +18 -0
  283. package/typography/types.js +5 -0
  284. package/useTheme.d.ts +2 -0
  285. package/useTheme.js +2 -2
  286. package/useTranslatedLabels.d.ts +2 -0
  287. package/useTranslatedLabels.js +20 -0
  288. package/wizard/Wizard.d.ts +4 -0
  289. package/wizard/Wizard.js +132 -252
  290. package/wizard/Wizard.stories.tsx +233 -0
  291. package/wizard/Wizard.test.js +141 -0
  292. package/wizard/types.d.ts +65 -0
  293. package/wizard/types.js +5 -0
  294. package/ThemeContext.js +0 -250
  295. package/V3Select/V3Select.js +0 -549
  296. package/V3Select/index.d.ts +0 -27
  297. package/V3Textarea/V3Textarea.js +0 -264
  298. package/V3Textarea/index.d.ts +0 -27
  299. package/accordion/index.d.ts +0 -28
  300. package/accordion-group/index.d.ts +0 -16
  301. package/alert/index.d.ts +0 -51
  302. package/box/index.d.ts +0 -25
  303. package/button/Button.stories.js +0 -27
  304. package/button/index.d.ts +0 -24
  305. package/card/index.d.ts +0 -22
  306. package/checkbox/index.d.ts +0 -24
  307. package/chip/index.d.ts +0 -22
  308. package/date/Date.js +0 -379
  309. package/date/index.d.ts +0 -27
  310. package/date-input/index.d.ts +0 -95
  311. package/dialog/index.d.ts +0 -18
  312. package/dropdown/index.d.ts +0 -26
  313. package/file-input/index.d.ts +0 -81
  314. package/footer/index.d.ts +0 -25
  315. package/header/index.d.ts +0 -25
  316. package/heading/index.d.ts +0 -17
  317. package/input-text/Icons.js +0 -22
  318. package/input-text/InputText.js +0 -705
  319. package/input-text/index.d.ts +0 -36
  320. package/link/index.d.ts +0 -23
  321. package/number-input/index.d.ts +0 -113
  322. package/paginator/index.d.ts +0 -20
  323. package/password-input/index.d.ts +0 -94
  324. package/progress-bar/index.d.ts +0 -18
  325. package/radio/Radio.js +0 -209
  326. package/radio/index.d.ts +0 -23
  327. package/resultsetTable/index.d.ts +0 -19
  328. package/select/index.d.ts +0 -131
  329. package/sidenav/index.d.ts +0 -13
  330. package/slider/index.d.ts +0 -29
  331. package/spinner/index.d.ts +0 -17
  332. package/switch/index.d.ts +0 -24
  333. package/table/index.d.ts +0 -13
  334. package/tabs/index.d.ts +0 -19
  335. package/tag/index.d.ts +0 -24
  336. package/text-input/index.d.ts +0 -135
  337. package/textarea/index.d.ts +0 -117
  338. package/toggle/Toggle.js +0 -220
  339. package/toggle/index.d.ts +0 -21
  340. package/toggle-group/index.d.ts +0 -21
  341. package/upload/Upload.js +0 -205
  342. package/upload/buttons-upload/ButtonsUpload.js +0 -135
  343. package/upload/buttons-upload/Icons.js +0 -40
  344. package/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  345. package/upload/dragAndDropArea/Icons.js +0 -39
  346. package/upload/file-upload/FileToUpload.js +0 -189
  347. package/upload/file-upload/Icons.js +0 -66
  348. package/upload/files-upload/FilesToUpload.js +0 -123
  349. package/upload/index.d.ts +0 -15
  350. package/upload/transaction/Icons.js +0 -160
  351. package/upload/transaction/Transaction.js +0 -148
  352. package/upload/transactions/Transactions.js +0 -138
  353. package/wizard/Icons.js +0 -65
  354. package/wizard/index.d.ts +0 -18
package/button/Button.js CHANGED
@@ -1,75 +1,51 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
-
18
16
  var _react = _interopRequireWildcard(require("react"));
19
17
 
20
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
21
-
22
- var _propTypes = _interopRequireDefault(require("prop-types"));
23
-
24
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
25
19
 
26
20
  var _variables = require("../common/variables.js");
27
21
 
28
22
  var _utils = require("../common/utils.js");
29
23
 
30
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
31
-
32
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
33
-
34
- function _templateObject4() {
35
- var data = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n\n .MuiButton-label {\n display: flex;\n flex-direction: ", ";\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"]);
36
-
37
- _templateObject4 = function _templateObject4() {
38
- return data;
39
- };
40
-
41
- return data;
42
- }
43
-
44
- function _templateObject3() {
45
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n"]);
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
46
25
 
47
- _templateObject3 = function _templateObject3() {
48
- return data;
49
- };
26
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
50
27
 
51
- return data;
52
- }
28
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
53
29
 
54
- function _templateObject2() {
55
- var data = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
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); }
56
31
 
57
- _templateObject2 = function _templateObject2() {
58
- return data;
59
- };
32
+ 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; }
60
33
 
61
- return data;
62
- }
63
-
64
- function _templateObject() {
65
- var data = (0, _taggedTemplateLiteral2["default"])(["\n line-height: ", ";\n font-size: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n text-transform: none;\n margin-right: ", ";\n margin-left: ", ";\n"]);
34
+ var sizes = {
35
+ small: "42px",
36
+ medium: "120px",
37
+ large: "240px",
38
+ fillParent: "100%",
39
+ fitContent: "fit-content"
40
+ };
66
41
 
67
- _templateObject = function _templateObject() {
68
- return data;
69
- };
42
+ var calculateWidth = function calculateWidth(margin, size) {
43
+ if (size === "fillParent") {
44
+ return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
45
+ }
70
46
 
71
- return data;
72
- }
47
+ return sizes[size];
48
+ };
73
49
 
74
50
  var DxcButton = function DxcButton(_ref) {
75
51
  var _ref$label = _ref.label,
@@ -82,92 +58,46 @@ var DxcButton = function DxcButton(_ref) {
82
58
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
83
59
  _ref$type = _ref.type,
84
60
  type = _ref$type === void 0 ? "button" : _ref$type,
85
- _ref$iconSrc = _ref.iconSrc,
86
- iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
87
61
  icon = _ref.icon,
88
62
  _ref$onClick = _ref.onClick,
89
- _onClick = _ref$onClick === void 0 ? "" : _ref$onClick,
63
+ _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
90
64
  margin = _ref.margin,
91
- size = _ref.size,
65
+ _ref$size = _ref.size,
66
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
92
67
  _ref$tabIndex = _ref.tabIndex,
93
68
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
94
69
 
95
70
  var colorsTheme = (0, _useTheme["default"])();
96
71
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
97
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
72
+
73
+ var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
74
+ icon: icon,
75
+ iconPosition: iconPosition
76
+ }, label);
77
+
78
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
98
79
  theme: colorsTheme.button
99
- }, _react["default"].createElement(DxCButton, {
80
+ }, /*#__PURE__*/_react["default"].createElement(Button, {
100
81
  type: type,
101
- margin: margin,
102
82
  mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
103
83
  disabled: disabled,
104
- iconPosition: iconPosition,
105
- size: size,
106
- backgroundType: backgroundType,
107
- icon: icon
108
- }, _react["default"].createElement(_Button["default"], {
109
- disabled: disabled,
110
- type: type,
111
- disableRipple: true,
112
- "aria-disabled": disabled ? true : false,
84
+ "aria-disabled": disabled,
113
85
  tabIndex: disabled ? -1 : tabIndex,
86
+ backgroundType: backgroundType,
87
+ size: size,
88
+ margin: margin,
114
89
  onClick: function onClick() {
115
- if (_onClick) {
116
- _onClick();
117
- }
90
+ _onClick();
118
91
  }
119
- }, label && _react["default"].createElement(LabelContainer, {
120
- icon: icon,
121
- iconPosition: iconPosition
122
- }, label), icon ? _react["default"].createElement(IconContainer, {
92
+ }, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
123
93
  label: label,
124
94
  iconPosition: iconPosition
125
- }, (0, _typeof2["default"])(icon) === "object" ? icon : _react["default"].createElement(icon)) : iconSrc && _react["default"].createElement(ButtonIcon, {
126
- label: label,
127
- iconPosition: iconPosition,
128
- src: iconSrc
129
- }))));
130
- };
131
-
132
- var sizes = {
133
- small: "42px",
134
- medium: "120px",
135
- large: "240px",
136
- fillParent: "100%",
137
- fitContent: "unset"
138
- };
139
-
140
- var calculateWidth = function calculateWidth(margin, size) {
141
- if (size === "fillParent") {
142
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
143
- }
144
-
145
- return sizes[size];
95
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
96
+ src: icon
97
+ }) : icon), label && iconPosition === "before" && labelComponent));
146
98
  };
147
99
 
148
- var LabelContainer = _styledComponents["default"].span(_templateObject(), function (props) {
149
- return props.theme.labelFontLineHeight;
150
- }, function (props) {
151
- return props.theme.fontSize;
152
- }, function (props) {
153
- return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
154
- }, function (props) {
155
- return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
156
- });
157
-
158
- var IconContainer = _styledComponents["default"].div(_templateObject2(), function (props) {
159
- return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
160
- }, function (props) {
161
- return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
162
- });
163
-
164
- var ButtonIcon = _styledComponents["default"].img(_templateObject3(), function (props) {
165
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
166
- }, function (props) {
167
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
168
- });
169
-
170
- var DxCButton = _styledComponents["default"].div(_templateObject4(), function (props) {
100
+ var Button = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-flex;\n width: ", ";\n height: 40px;\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n cursor: pointer;\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px\n ", ";\n }\n ", "\n"])), function (props) {
171
101
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
172
102
  }, function (props) {
173
103
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -179,8 +109,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4(), function (p
179
109
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
180
110
  }, function (props) {
181
111
  return calculateWidth(props.margin, props.size);
182
- }, function (props) {
183
- return props.disabled && "not-allowed" || "pointer";
184
112
  }, function (props) {
185
113
  return props.theme.paddingLeft;
186
114
  }, function (props) {
@@ -189,8 +117,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4(), function (p
189
117
  return props.theme.paddingTop;
190
118
  }, function (props) {
191
119
  return props.theme.paddingBottom;
192
- }, function (props) {
193
- return props.iconPosition === "after" && "row" || "row-reverse";
194
120
  }, function (props) {
195
121
  return props.theme.fontFamily;
196
122
  }, function (props) {
@@ -199,40 +125,32 @@ var DxCButton = _styledComponents["default"].div(_templateObject4(), function (p
199
125
  return props.theme.fontWeight;
200
126
  }, function (props) {
201
127
  return props.theme.labelLetterSpacing;
202
- }, function (props) {
203
- return props.size === "small" && "calc(100% - 22px)" || "unset";
204
128
  }, function (props) {
205
129
  return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
206
130
  }, function (props) {
207
131
  var mode = props.mode,
208
- backgroundType = props.backgroundType;
209
-
210
- if (mode === "primary") {
211
- return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, "!important; \n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
212
- } else if (mode === "secondary") {
213
- return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
214
- } else if (mode === "text") {
215
- return "\n border-radius: ".concat(props.theme.textBorderRadius, ";\n border-width: ").concat(props.theme.textBorderThickness, ";\n border-style: ").concat(props.theme.textBorderStyle, ";\n font-family: ").concat(props.theme.textFontFamily, ";\n font-size: ").concat(props.theme.textFontSize, ";\n font-weight: ").concat(props.theme.textFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor:not-allowed;\n color: ").concat(backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, " !important;\n background-color: ").concat(backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n }\n ");
216
- }
132
+ backgroundType = props.backgroundType,
133
+ disabled = props.disabled;
134
+ return "\n border-radius: ".concat(props.mode === "primary" ? props.theme.primaryBorderRadius : props.mode === "secondary" ? props.theme.secondaryBorderRadius : props.theme.textBorderRadius, ";\n border-width: ").concat(props.mode === "primary" ? props.theme.primaryBorderThickness : props.mode === "secondary" ? props.theme.secondaryBorderThickness : props.theme.textBorderThickness, ";\n border-style: ").concat(mode === "primary" ? props.theme.primaryBorderStyle : mode === "secondary" ? props.theme.secondaryBorderStyle : props.theme.textBorderStyle, ";\n font-family: ").concat(mode === "primary" ? props.theme.primaryFontFamily : mode === "secondary" ? props.theme.secondaryFontFamily : props.theme.textFontFamily, ";\n font-size: ").concat(mode === "primary" ? props.theme.primaryFontSize : mode === "secondary" ? props.theme.secondaryFontSize : props.theme.textFontSize, ";\n font-weight: ").concat(mode === "primary" ? props.theme.primaryFontWeight : mode === "secondary" ? props.theme.secondaryFontWeight : props.theme.textFontWeight, ";\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor : backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor : backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, ";\n border-color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor : "", ";\n &:hover {\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor : backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n }\n &:focus {\n border-color: ").concat(mode === "secondary" ? "transparent" : "", ";\n }\n &:active {\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor : backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, ";\n color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n border-color: ").concat(mode === "secondary" ? "transparent" : "", ";\n outline: none;\n box-shadow: ").concat(!disabled ? "0 0 0 2px ".concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor) : "", ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor : backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor : backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, ";\n border-color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor : "", ";\n }\n ");
217
135
  });
218
136
 
219
- DxcButton.propTypes = {
220
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
221
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
222
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
223
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
224
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
225
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
226
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
227
- label: _propTypes["default"].string,
228
- mode: _propTypes["default"].oneOf(["primary", "secondary", "text"]),
229
- disabled: _propTypes["default"].bool,
230
- iconPosition: _propTypes["default"].oneOf(["after", "before"]),
231
- onClick: _propTypes["default"].func,
232
- iconSrc: _propTypes["default"].string,
233
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
234
- type: _propTypes["default"].oneOf(["button", "reset", "submit"]),
235
- tabIndex: _propTypes["default"].number
236
- };
137
+ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n line-height: ", ";\n font-size: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n text-transform: none;\n white-space: nowrap;\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
138
+ return props.theme.labelFontLineHeight;
139
+ }, function (props) {
140
+ return props.theme.fontSize;
141
+ }, function (props) {
142
+ return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
143
+ }, function (props) {
144
+ return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
145
+ });
146
+
147
+ var IconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
148
+ return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
149
+ }, function (props) {
150
+ return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
151
+ });
152
+
153
+ var ButtonIcon = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])));
154
+
237
155
  var _default = DxcButton;
238
156
  exports["default"] = _default;
@@ -0,0 +1,283 @@
1
+ import React from "react";
2
+ import DxcButton from "./Button";
3
+ import DxcFlex from "./../flex/Flex";
4
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
5
+ import Title from "../../.storybook/components/Title";
6
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
7
+ import DarkContainer from "../../.storybook/components/DarkSection";
8
+
9
+ export default {
10
+ title: "Button",
11
+ component: DxcButton,
12
+ };
13
+
14
+ const iconSVG = (
15
+ <svg viewBox="0 0 24 24" fill="currentColor">
16
+ <path d="M0 0h24v24H0z" fill="none" />
17
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
18
+ </svg>
19
+ );
20
+ export const Chromatic = () => (
21
+ <>
22
+ <Title title="Primary" theme="light" level={2} />
23
+ <ExampleContainer>
24
+ <Title title="Enabled" theme="light" level={4} />
25
+ <DxcButton label="Primary enabled" />
26
+ </ExampleContainer>
27
+ <ExampleContainer pseudoState="pseudo-hover">
28
+ <Title title="Hovered" theme="light" level={4} />
29
+ <DxcButton label="Primary hovered" />
30
+ </ExampleContainer>
31
+ <ExampleContainer pseudoState="pseudo-focus">
32
+ <Title title="Focused" theme="light" level={4} />
33
+ <DxcButton label="Primary focused" />
34
+ </ExampleContainer>
35
+ <ExampleContainer pseudoState="pseudo-active">
36
+ <Title title="Actived" theme="light" level={4} />
37
+ <DxcButton label="Primary actived" />
38
+ </ExampleContainer>
39
+ <ExampleContainer>
40
+ <Title title="Disabled" theme="light" level={4} />
41
+ <DxcButton label="Primary disabled" disabled />
42
+ </ExampleContainer>
43
+ <ExampleContainer>
44
+ <Title title="With left icon" theme="light" level={4} />
45
+ <DxcButton label="Primary" icon={iconSVG} />
46
+ </ExampleContainer>
47
+ <ExampleContainer>
48
+ <Title title="With right icon" theme="light" level={4} />
49
+ <DxcButton label="Primary" icon={iconSVG} iconPosition="after" />
50
+ </ExampleContainer>
51
+ <ExampleContainer>
52
+ <Title title="Only icon" theme="light" level={4} />
53
+ <DxcButton icon={iconSVG} />
54
+ </ExampleContainer>
55
+ <Title title="Secondary" theme="light" level={2} />
56
+ <ExampleContainer>
57
+ <Title title="Enabled" theme="light" level={4} />
58
+ <DxcButton mode="secondary" label="Secondary enabled" />
59
+ </ExampleContainer>
60
+ <ExampleContainer pseudoState="pseudo-hover">
61
+ <Title title="Hovered" theme="light" level={4} />
62
+ <DxcButton mode="secondary" label="Secondary hovered" />
63
+ </ExampleContainer>
64
+ <ExampleContainer pseudoState="pseudo-focus">
65
+ <Title title="Focused" theme="light" level={4} />
66
+ <DxcButton mode="secondary" label="Secondary focused" />
67
+ </ExampleContainer>
68
+ <ExampleContainer pseudoState="pseudo-active">
69
+ <Title title="Actived" theme="light" level={4} />
70
+ <DxcButton mode="secondary" label="Secondary actived" />
71
+ </ExampleContainer>
72
+ <ExampleContainer>
73
+ <Title title="Disabled" theme="light" level={4} />
74
+ <DxcButton mode="secondary" disabled label="Secondary disabled" />
75
+ </ExampleContainer>
76
+ <ExampleContainer>
77
+ <Title title="With icon" theme="light" level={4} />
78
+ <DxcButton mode="secondary" label="Secondary" icon={iconSVG} />
79
+ </ExampleContainer>
80
+ <Title title="Text" theme="light" level={2} />
81
+ <ExampleContainer>
82
+ <Title title="Enabled" theme="light" level={4} />
83
+ <DxcButton mode="text" label="Text enabled" />
84
+ </ExampleContainer>
85
+ <ExampleContainer pseudoState="pseudo-hover">
86
+ <Title title="Hovered" theme="light" level={4} />
87
+ <DxcButton mode="text" label="Text hovered" />
88
+ </ExampleContainer>
89
+ <ExampleContainer pseudoState="pseudo-focus">
90
+ <Title title="Focused" theme="light" level={4} />
91
+ <DxcButton mode="text" label="Text focused" />
92
+ </ExampleContainer>
93
+ <ExampleContainer pseudoState="pseudo-active">
94
+ <Title title="Actived" theme="light" level={4} />
95
+ <DxcButton mode="text" label="Text actived" />
96
+ </ExampleContainer>
97
+ <ExampleContainer>
98
+ <Title title="Disabled" theme="light" level={4} />
99
+ <DxcButton mode="text" label="Text disabled" disabled />
100
+ </ExampleContainer>
101
+ <ExampleContainer>
102
+ <Title title="With icon" theme="light" level={4} />
103
+ <DxcButton label="Text" mode="text" icon={iconSVG} />
104
+ </ExampleContainer>
105
+ <BackgroundColorProvider color="#333333">
106
+ <DarkContainer>
107
+ <Title title="Primary" theme="dark" level={2} />
108
+ <ExampleContainer>
109
+ <Title title="Enabled" theme="dark" level={4} />
110
+ <DxcButton label="Primary enabled" />
111
+ </ExampleContainer>
112
+ <ExampleContainer pseudoState="pseudo-hover">
113
+ <Title title="Hovered" theme="dark" level={4} />
114
+ <DxcButton label="Primary hovered" />
115
+ </ExampleContainer>
116
+ <ExampleContainer pseudoState="pseudo-focus">
117
+ <Title title="Focused" theme="dark" level={4} />
118
+ <DxcButton label="Primary focused" />
119
+ </ExampleContainer>
120
+ <ExampleContainer pseudoState="pseudo-active">
121
+ <Title title="Actived" theme="dark" level={4} />
122
+ <DxcButton label="Primary actived" />
123
+ </ExampleContainer>
124
+ <ExampleContainer>
125
+ <Title title="Disabled" theme="dark" level={4} />
126
+ <DxcButton label="Primary disabled" disabled />
127
+ </ExampleContainer>
128
+ <ExampleContainer>
129
+ <Title title="With icon" theme="dark" level={4} />
130
+ <DxcButton label="Primary" icon={iconSVG} />
131
+ </ExampleContainer>
132
+ <Title title="Secondary" theme="dark" level={2} />
133
+ <ExampleContainer>
134
+ <Title title="Enabled" theme="dark" level={4} />
135
+ <DxcButton mode="secondary" label="Secondary enabled" />
136
+ </ExampleContainer>
137
+ <ExampleContainer pseudoState="pseudo-hover">
138
+ <Title title="Hovered" theme="dark" level={4} />
139
+ <DxcButton mode="secondary" label="Secondary hovered" />
140
+ </ExampleContainer>
141
+ <ExampleContainer pseudoState="pseudo-focus">
142
+ <Title title="Focused" theme="dark" level={4} />
143
+ <DxcButton mode="secondary" label="Secondary focused" />
144
+ </ExampleContainer>
145
+ <ExampleContainer pseudoState="pseudo-active">
146
+ <Title title="Actived" theme="dark" level={4} />
147
+ <DxcButton mode="secondary" label="Secondary actived" />
148
+ </ExampleContainer>
149
+ <ExampleContainer>
150
+ <Title title="Disabled" theme="dark" level={4} />
151
+ <DxcButton mode="secondary" disabled label="Secondary disabled" />
152
+ </ExampleContainer>
153
+ <ExampleContainer>
154
+ <Title title="With icon" theme="dark" level={4} />
155
+ <DxcButton mode="secondary" label="Primary" icon={iconSVG} />
156
+ </ExampleContainer>
157
+ <Title title="Text" theme="dark" level={2} />
158
+ <ExampleContainer>
159
+ <Title title="Enabled" theme="dark" level={4} />
160
+ <DxcButton mode="text" label="Text enabled" />
161
+ </ExampleContainer>
162
+ <ExampleContainer pseudoState="pseudo-hover">
163
+ <Title title="Hovered" theme="dark" level={4} />
164
+ <DxcButton mode="text" label="Text hovered" />
165
+ </ExampleContainer>
166
+ <ExampleContainer pseudoState="pseudo-focus">
167
+ <Title title="Focused" theme="dark" level={4} />
168
+ <DxcButton mode="text" label="Text focused" />
169
+ </ExampleContainer>
170
+ <ExampleContainer pseudoState="pseudo-active">
171
+ <Title title="Actived" theme="dark" level={4} />
172
+ <DxcButton mode="text" label="Text actived" />
173
+ </ExampleContainer>
174
+ <ExampleContainer>
175
+ <Title title="Disabled" theme="dark" level={4} />
176
+ <DxcButton mode="text" label="Text disabled" disabled />
177
+ </ExampleContainer>
178
+ <ExampleContainer>
179
+ <Title title="With icon" theme="dark" level={4} />
180
+ <DxcButton mode="text" label="Primary" icon={iconSVG} />
181
+ </ExampleContainer>
182
+ </DarkContainer>
183
+ </BackgroundColorProvider>
184
+ <Title title="Sizes" theme="light" level={2} />
185
+ <ExampleContainer>
186
+ <Title title="Small size" theme="light" level={4} />
187
+ <DxcButton label="Small" size="small" />
188
+ </ExampleContainer>
189
+ <ExampleContainer>
190
+ <Title title="Medium size" theme="light" level={4} />
191
+ <DxcButton label="MediumSiz" size="medium" />
192
+ </ExampleContainer>
193
+ <ExampleContainer>
194
+ <Title title="Medium size with ellipsis" theme="light" level={4} />
195
+ <DxcButton label="MediumSize" size="medium" />
196
+ </ExampleContainer>
197
+ <ExampleContainer>
198
+ <Title title="Medium size icon after" theme="light" level={4} />
199
+ <DxcButton label="Mediu" iconPosition="after" icon={iconSVG} size="medium" />
200
+ </ExampleContainer>
201
+ <ExampleContainer>
202
+ <Title title="Medium size icon before" theme="light" level={4} />
203
+ <DxcButton label="Mediu" iconPosition="before" icon={iconSVG} size="medium" />
204
+ </ExampleContainer>
205
+ <ExampleContainer>
206
+ <Title title="Medium size icon after with ellipsis" theme="light" level={4} />
207
+ <DxcButton label="Medium" iconPosition="after" icon={iconSVG} size="medium" />
208
+ </ExampleContainer>
209
+ <ExampleContainer>
210
+ <Title title="Medium size icon before with ellipsis" theme="light" level={4} />
211
+ <DxcButton label="Medium" iconPosition="before" icon={iconSVG} size="medium" />
212
+ </ExampleContainer>
213
+ <ExampleContainer>
214
+ <Title title="Large size" theme="light" level={4} />
215
+ <DxcButton label="LargeSizePrimaryButtonEx" size="large" />
216
+ </ExampleContainer>
217
+ <ExampleContainer>
218
+ <Title title="Large size with ellipsis" theme="light" level={4} />
219
+ <DxcButton label="LargeSizePrimaryButtonExa" size="large" />
220
+ </ExampleContainer>
221
+ <ExampleContainer>
222
+ <Title title="Large size icon after" theme="light" level={4} />
223
+ <DxcButton label="LargeSizePrimaryButto" iconPosition="after" icon={iconSVG} size="large" />
224
+ </ExampleContainer>
225
+ <ExampleContainer>
226
+ <Title title="Large size icon before" theme="light" level={4} />
227
+ <DxcButton label="LargeSizePrimaryButto" iconPosition="before" icon={iconSVG} size="large" />
228
+ </ExampleContainer>
229
+ <ExampleContainer>
230
+ <Title title="Large size icon after with ellipsis" theme="light" level={4} />
231
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="after" icon={iconSVG} size="large" />
232
+ </ExampleContainer>
233
+ <ExampleContainer>
234
+ <Title title="Large size icon before with ellipsis" theme="light" level={4} />
235
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="before" icon={iconSVG} size="large" />
236
+ </ExampleContainer>
237
+ <ExampleContainer>
238
+ <Title title="FillParent size" theme="light" level={4} />
239
+ <DxcButton label="FillParent" size="fillParent" />
240
+ </ExampleContainer>
241
+ <ExampleContainer>
242
+ <Title title="FitContent size" theme="light" level={4} />
243
+ <DxcButton label="FitContent" size="fitContent" />
244
+ </ExampleContainer>
245
+ <Title title="Margins" theme="light" level={2} />
246
+ <ExampleContainer>
247
+ <Title title="Xxsmall margin" theme="light" level={4} />
248
+ <DxcButton label="Xxsmall margin" margin="xxsmall" />
249
+ </ExampleContainer>
250
+ <ExampleContainer>
251
+ <Title title="Xsmall margin" theme="light" level={4} />
252
+ <DxcButton label="Xsmall margin" margin="xsmall" />
253
+ </ExampleContainer>
254
+ <ExampleContainer>
255
+ <Title title="Small margin" theme="light" level={4} />
256
+ <DxcButton label="Small margin" margin="small" />
257
+ </ExampleContainer>
258
+ <ExampleContainer>
259
+ <Title title="Medium margin" theme="light" level={4} />
260
+ <DxcButton label="Medium margin" margin="medium" />
261
+ </ExampleContainer>
262
+ <ExampleContainer>
263
+ <Title title="Large margin" theme="light" level={4} />
264
+ <DxcButton label="Large margin" margin="large" />
265
+ </ExampleContainer>
266
+ <ExampleContainer>
267
+ <Title title="Xlarge margin" theme="light" level={4} />
268
+ <DxcButton label="Xlarge margin" margin="xlarge" />
269
+ </ExampleContainer>
270
+ <ExampleContainer>
271
+ <Title title="Xxlarge margin" theme="light" level={4} />
272
+ <DxcButton label="Xxlarge margin" margin="xxlarge" />
273
+ </ExampleContainer>
274
+ <Title title="Inside a flex" theme="light" level={2} />
275
+ <ExampleContainer>
276
+ <DxcFlex direction="column" gap="0.75rem">
277
+ <DxcButton label="Button" />
278
+ <DxcButton label="Button" />
279
+ <DxcButton label="Button" />
280
+ </DxcFlex>
281
+ </ExampleContainer>
282
+ </>
283
+ );
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Button = _interopRequireDefault(require("./Button"));
10
+
11
+ describe("Button component tests", function () {
12
+ test("Button renders with correct text", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
14
+ label: "Button"
15
+ })),
16
+ getByText = _render.getByText;
17
+
18
+ expect(getByText("Button")).toBeTruthy();
19
+ });
20
+ test("Calls correct function on click", function () {
21
+ var onClick = jest.fn();
22
+
23
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
24
+ label: "Button",
25
+ onClick: onClick
26
+ })),
27
+ getByText = _render2.getByText;
28
+
29
+ var button = getByText("Button");
30
+
31
+ _react2.fireEvent.click(button);
32
+
33
+ expect(onClick).toHaveBeenCalled();
34
+ });
35
+ });