@dxc-technology/halstack-react 0.0.0-0f1b72b → 0.0.0-100df21

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 (304) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1229 -6
  4. package/HalstackContext.js +125 -110
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +116 -160
  8. package/accordion/Accordion.stories.tsx +102 -126
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +31 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  18. package/alert/Alert.js +20 -59
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +29 -46
  21. package/alert/types.d.ts +5 -5
  22. package/badge/Badge.js +4 -17
  23. package/badge/types.d.ts +1 -1
  24. package/bleed/Bleed.js +13 -21
  25. package/bleed/Bleed.stories.tsx +64 -63
  26. package/bleed/types.d.ts +2 -2
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +19 -60
  29. package/box/Box.stories.tsx +38 -51
  30. package/box/Box.test.js +2 -7
  31. package/box/types.d.ts +3 -14
  32. package/bulleted-list/BulletedList.d.ts +7 -0
  33. package/bulleted-list/BulletedList.js +89 -0
  34. package/bulleted-list/BulletedList.stories.tsx +115 -0
  35. package/bulleted-list/types.d.ts +38 -0
  36. package/button/Button.d.ts +1 -1
  37. package/button/Button.js +63 -117
  38. package/button/Button.stories.tsx +160 -90
  39. package/button/Button.test.js +18 -17
  40. package/button/types.d.ts +12 -8
  41. package/card/Card.d.ts +1 -1
  42. package/card/Card.js +48 -89
  43. package/card/Card.stories.tsx +12 -42
  44. package/card/Card.test.js +11 -22
  45. package/card/types.d.ts +6 -11
  46. package/checkbox/Checkbox.d.ts +2 -2
  47. package/checkbox/Checkbox.js +140 -182
  48. package/checkbox/Checkbox.stories.tsx +128 -94
  49. package/checkbox/Checkbox.test.js +160 -39
  50. package/checkbox/types.d.ts +11 -3
  51. package/chip/Chip.js +39 -79
  52. package/chip/Chip.stories.tsx +121 -26
  53. package/chip/Chip.test.js +16 -31
  54. package/chip/types.d.ts +4 -4
  55. package/common/OpenSans.css +68 -80
  56. package/common/coreTokens.d.ts +237 -0
  57. package/common/coreTokens.js +184 -0
  58. package/common/utils.d.ts +1 -0
  59. package/common/utils.js +6 -12
  60. package/common/variables.d.ts +1381 -0
  61. package/common/variables.js +914 -1131
  62. package/container/Container.d.ts +4 -0
  63. package/container/Container.js +194 -0
  64. package/container/Container.stories.tsx +214 -0
  65. package/container/types.d.ts +74 -0
  66. package/date-input/Calendar.d.ts +4 -0
  67. package/date-input/Calendar.js +214 -0
  68. package/date-input/DateInput.js +150 -299
  69. package/date-input/DateInput.stories.tsx +203 -56
  70. package/date-input/DateInput.test.js +700 -371
  71. package/date-input/DatePicker.d.ts +4 -0
  72. package/date-input/DatePicker.js +115 -0
  73. package/date-input/Icons.d.ts +6 -0
  74. package/date-input/Icons.js +58 -0
  75. package/date-input/YearPicker.d.ts +4 -0
  76. package/date-input/YearPicker.js +100 -0
  77. package/date-input/types.d.ts +72 -15
  78. package/dialog/Dialog.d.ts +1 -1
  79. package/dialog/Dialog.js +73 -107
  80. package/dialog/Dialog.stories.tsx +320 -167
  81. package/dialog/Dialog.test.js +287 -20
  82. package/dialog/types.d.ts +18 -25
  83. package/dropdown/Dropdown.d.ts +1 -1
  84. package/dropdown/Dropdown.js +243 -300
  85. package/dropdown/Dropdown.stories.tsx +245 -56
  86. package/dropdown/Dropdown.test.js +575 -165
  87. package/dropdown/DropdownMenu.d.ts +4 -0
  88. package/dropdown/DropdownMenu.js +63 -0
  89. package/dropdown/DropdownMenuItem.d.ts +4 -0
  90. package/dropdown/DropdownMenuItem.js +67 -0
  91. package/dropdown/types.d.ts +32 -14
  92. package/file-input/FileInput.d.ts +2 -2
  93. package/file-input/FileInput.js +241 -355
  94. package/file-input/FileInput.stories.tsx +123 -12
  95. package/file-input/FileInput.test.js +369 -367
  96. package/file-input/FileItem.d.ts +4 -14
  97. package/file-input/FileItem.js +45 -96
  98. package/file-input/types.d.ts +25 -8
  99. package/flex/Flex.d.ts +4 -0
  100. package/flex/Flex.js +57 -0
  101. package/flex/Flex.stories.tsx +112 -0
  102. package/flex/types.d.ts +97 -0
  103. package/footer/Footer.d.ts +1 -1
  104. package/footer/Footer.js +55 -115
  105. package/footer/Footer.stories.tsx +41 -19
  106. package/footer/Footer.test.js +33 -57
  107. package/footer/Icons.d.ts +2 -2
  108. package/footer/Icons.js +3 -8
  109. package/footer/types.d.ts +21 -28
  110. package/grid/Grid.d.ts +7 -0
  111. package/grid/Grid.js +76 -0
  112. package/grid/Grid.stories.tsx +219 -0
  113. package/grid/types.d.ts +115 -0
  114. package/header/Header.d.ts +4 -3
  115. package/header/Header.js +85 -168
  116. package/header/Header.stories.tsx +118 -39
  117. package/header/Header.test.js +13 -26
  118. package/header/Icons.d.ts +2 -2
  119. package/header/Icons.js +4 -9
  120. package/header/types.d.ts +5 -19
  121. package/heading/Heading.js +10 -32
  122. package/heading/Heading.test.js +71 -88
  123. package/heading/types.d.ts +7 -7
  124. package/image/Image.d.ts +4 -0
  125. package/image/Image.js +70 -0
  126. package/image/Image.stories.tsx +127 -0
  127. package/image/types.d.ts +72 -0
  128. package/inset/Inset.js +13 -21
  129. package/inset/Inset.stories.tsx +5 -4
  130. package/inset/types.d.ts +2 -2
  131. package/layout/ApplicationLayout.d.ts +15 -6
  132. package/layout/ApplicationLayout.js +51 -116
  133. package/layout/ApplicationLayout.stories.tsx +81 -45
  134. package/layout/Icons.d.ts +8 -5
  135. package/layout/Icons.js +51 -59
  136. package/layout/SidenavContext.d.ts +1 -1
  137. package/layout/SidenavContext.js +3 -9
  138. package/layout/types.d.ts +21 -32
  139. package/link/Link.js +25 -46
  140. package/link/Link.stories.tsx +73 -6
  141. package/link/Link.test.js +24 -44
  142. package/link/types.d.ts +14 -14
  143. package/main.d.ts +10 -12
  144. package/main.js +41 -106
  145. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  146. package/{tabs-nav → nav-tabs}/NavTabs.js +22 -57
  147. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +111 -7
  148. package/{tabs-nav → nav-tabs}/NavTabs.test.js +37 -44
  149. package/nav-tabs/Tab.js +117 -0
  150. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  151. package/number-input/NumberInput.d.ts +7 -0
  152. package/number-input/NumberInput.js +26 -35
  153. package/number-input/NumberInput.stories.tsx +42 -26
  154. package/number-input/NumberInput.test.js +701 -377
  155. package/number-input/types.d.ts +11 -5
  156. package/package.json +43 -46
  157. package/paginator/Icons.d.ts +5 -0
  158. package/paginator/Icons.js +21 -47
  159. package/paginator/Paginator.js +23 -59
  160. package/paginator/Paginator.stories.tsx +24 -0
  161. package/paginator/Paginator.test.js +253 -226
  162. package/paginator/types.d.ts +3 -3
  163. package/paragraph/Paragraph.d.ts +5 -0
  164. package/paragraph/Paragraph.js +22 -0
  165. package/paragraph/Paragraph.stories.tsx +27 -0
  166. package/password-input/Icons.d.ts +6 -0
  167. package/password-input/Icons.js +35 -0
  168. package/password-input/PasswordInput.js +57 -126
  169. package/password-input/PasswordInput.stories.tsx +1 -33
  170. package/password-input/PasswordInput.test.js +160 -142
  171. package/password-input/types.d.ts +8 -7
  172. package/progress-bar/ProgressBar.js +65 -91
  173. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
  174. package/progress-bar/ProgressBar.test.js +72 -44
  175. package/progress-bar/types.d.ts +3 -3
  176. package/quick-nav/QuickNav.js +27 -45
  177. package/quick-nav/QuickNav.stories.tsx +146 -27
  178. package/quick-nav/types.d.ts +10 -10
  179. package/radio-group/Radio.d.ts +1 -1
  180. package/radio-group/Radio.js +59 -76
  181. package/radio-group/RadioGroup.js +67 -114
  182. package/radio-group/RadioGroup.stories.tsx +132 -18
  183. package/radio-group/RadioGroup.test.js +518 -457
  184. package/radio-group/types.d.ts +10 -10
  185. package/resultset-table/Icons.d.ts +7 -0
  186. package/resultset-table/Icons.js +47 -0
  187. package/resultset-table/ResultsetTable.js +159 -0
  188. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  189. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +101 -144
  190. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  191. package/select/Icons.d.ts +7 -7
  192. package/select/Icons.js +1 -5
  193. package/select/Listbox.js +17 -49
  194. package/select/Option.js +20 -50
  195. package/select/Select.js +119 -198
  196. package/select/Select.stories.tsx +497 -152
  197. package/select/Select.test.js +1966 -1758
  198. package/select/types.d.ts +16 -19
  199. package/sidenav/Icons.d.ts +7 -0
  200. package/sidenav/Icons.js +47 -0
  201. package/sidenav/Sidenav.d.ts +6 -5
  202. package/sidenav/Sidenav.js +127 -78
  203. package/sidenav/Sidenav.stories.tsx +251 -151
  204. package/sidenav/Sidenav.test.js +26 -45
  205. package/sidenav/types.d.ts +52 -26
  206. package/slider/Slider.d.ts +2 -2
  207. package/slider/Slider.js +148 -181
  208. package/slider/Slider.test.js +185 -81
  209. package/slider/types.d.ts +7 -3
  210. package/spinner/Spinner.js +31 -75
  211. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  212. package/spinner/Spinner.test.js +26 -35
  213. package/spinner/types.d.ts +3 -3
  214. package/switch/Switch.d.ts +2 -2
  215. package/switch/Switch.js +145 -126
  216. package/switch/Switch.stories.tsx +37 -60
  217. package/switch/Switch.test.js +138 -56
  218. package/switch/types.d.ts +7 -3
  219. package/table/Table.js +8 -30
  220. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  221. package/table/Table.test.js +3 -8
  222. package/table/types.d.ts +8 -8
  223. package/tabs/Tab.d.ts +4 -0
  224. package/tabs/Tab.js +113 -0
  225. package/tabs/Tabs.js +315 -141
  226. package/tabs/Tabs.stories.tsx +119 -5
  227. package/tabs/Tabs.test.js +223 -69
  228. package/tabs/types.d.ts +28 -18
  229. package/tag/Tag.js +29 -61
  230. package/tag/Tag.stories.tsx +14 -1
  231. package/tag/Tag.test.js +20 -31
  232. package/tag/types.d.ts +7 -7
  233. package/text-input/Icons.d.ts +8 -0
  234. package/text-input/Icons.js +56 -0
  235. package/text-input/Suggestion.js +40 -28
  236. package/text-input/Suggestions.d.ts +4 -0
  237. package/text-input/Suggestions.js +84 -0
  238. package/text-input/TextInput.js +291 -483
  239. package/text-input/TextInput.stories.tsx +266 -275
  240. package/text-input/TextInput.test.js +1402 -1375
  241. package/text-input/types.d.ts +43 -16
  242. package/textarea/Textarea.js +70 -113
  243. package/textarea/Textarea.stories.tsx +174 -0
  244. package/textarea/Textarea.test.js +152 -183
  245. package/textarea/types.d.ts +9 -5
  246. package/toggle-group/ToggleGroup.d.ts +2 -2
  247. package/toggle-group/ToggleGroup.js +92 -106
  248. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  249. package/toggle-group/ToggleGroup.test.js +69 -88
  250. package/toggle-group/types.d.ts +26 -17
  251. package/typography/Typography.d.ts +4 -0
  252. package/typography/Typography.js +23 -0
  253. package/typography/Typography.stories.tsx +198 -0
  254. package/typography/types.d.ts +18 -0
  255. package/typography/types.js +5 -0
  256. package/useTheme.d.ts +1133 -1
  257. package/useTheme.js +2 -9
  258. package/useTranslatedLabels.d.ts +84 -1
  259. package/useTranslatedLabels.js +1 -7
  260. package/utils/BaseTypography.d.ts +21 -0
  261. package/utils/BaseTypography.js +94 -0
  262. package/utils/FocusLock.d.ts +13 -0
  263. package/utils/FocusLock.js +121 -0
  264. package/wizard/Wizard.js +24 -66
  265. package/wizard/Wizard.stories.tsx +40 -1
  266. package/wizard/Wizard.test.js +54 -81
  267. package/wizard/types.d.ts +7 -7
  268. package/card/ice-cream.jpg +0 -0
  269. package/common/RequiredComponent.js +0 -32
  270. package/inline/Inline.d.ts +0 -4
  271. package/inline/Inline.js +0 -54
  272. package/inline/Inline.stories.tsx +0 -240
  273. package/inline/types.d.ts +0 -32
  274. package/list/List.d.ts +0 -4
  275. package/list/List.js +0 -47
  276. package/list/List.stories.tsx +0 -95
  277. package/list/types.d.ts +0 -7
  278. package/number-input/NumberInputContext.d.ts +0 -4
  279. package/number-input/NumberInputContext.js +0 -19
  280. package/number-input/numberInputContextTypes.d.ts +0 -19
  281. package/resultsetTable/ResultsetTable.js +0 -254
  282. package/row/Row.d.ts +0 -3
  283. package/row/Row.js +0 -127
  284. package/row/Row.stories.tsx +0 -237
  285. package/row/types.d.ts +0 -28
  286. package/slider/Slider.stories.tsx +0 -177
  287. package/stack/Stack.d.ts +0 -3
  288. package/stack/Stack.js +0 -97
  289. package/stack/Stack.stories.tsx +0 -164
  290. package/stack/types.d.ts +0 -24
  291. package/tabs-nav/Tab.js +0 -132
  292. package/text/Text.d.ts +0 -7
  293. package/text/Text.js +0 -30
  294. package/text/Text.stories.tsx +0 -19
  295. package/textarea/Textarea.stories.jsx +0 -157
  296. /package/{inline → bulleted-list}/types.js +0 -0
  297. /package/{list → container}/types.js +0 -0
  298. /package/{resultsetTable → flex}/types.js +0 -0
  299. /package/{row → grid}/types.js +0 -0
  300. /package/{stack → image}/types.js +0 -0
  301. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  302. /package/{tabs-nav → nav-tabs}/types.js +0 -0
  303. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
  304. /package/{number-input/numberInputContextTypes.js → resultset-table/types.js} +0 -0
package/button/Button.js CHANGED
@@ -1,129 +1,84 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
19
-
11
+ var _react = _interopRequireDefault(require("react"));
20
12
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
- var _variables = require("../common/variables.js");
23
-
24
- var _utils = require("../common/utils.js");
25
-
13
+ var _variables = require("../common/variables");
14
+ var _utils = require("../common/utils");
26
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
27
-
28
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
29
-
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
31
-
32
- 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); }
33
-
34
- 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; }
35
-
16
+ var _templateObject, _templateObject2, _templateObject3;
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
36
19
  var DxcButton = function DxcButton(_ref) {
37
20
  var _ref$label = _ref.label,
38
- label = _ref$label === void 0 ? "" : _ref$label,
39
- _ref$mode = _ref.mode,
40
- mode = _ref$mode === void 0 ? "primary" : _ref$mode,
41
- _ref$disabled = _ref.disabled,
42
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
43
- _ref$iconPosition = _ref.iconPosition,
44
- iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
45
- _ref$type = _ref.type,
46
- type = _ref$type === void 0 ? "button" : _ref$type,
47
- icon = _ref.icon,
48
- _ref$onClick = _ref.onClick,
49
- _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
50
- margin = _ref.margin,
51
- _ref$size = _ref.size,
52
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
53
- _ref$tabIndex = _ref.tabIndex,
54
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
55
-
21
+ label = _ref$label === void 0 ? "" : _ref$label,
22
+ _ref$mode = _ref.mode,
23
+ mode = _ref$mode === void 0 ? "primary" : _ref$mode,
24
+ _ref$disabled = _ref.disabled,
25
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
26
+ _ref$iconPosition = _ref.iconPosition,
27
+ iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
28
+ title = _ref.title,
29
+ _ref$type = _ref.type,
30
+ type = _ref$type === void 0 ? "button" : _ref$type,
31
+ icon = _ref.icon,
32
+ _ref$onClick = _ref.onClick,
33
+ _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
34
+ margin = _ref.margin,
35
+ _ref$size = _ref.size,
36
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
37
+ _ref$tabIndex = _ref.tabIndex,
38
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
56
39
  var colorsTheme = (0, _useTheme["default"])();
57
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
58
-
59
- var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
60
- icon: icon,
61
- iconPosition: iconPosition
62
- }, label);
63
-
64
40
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
65
41
  theme: colorsTheme.button
66
- }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
67
- type: type,
68
- margin: margin,
69
- mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
70
- disabled: disabled,
71
- iconPosition: iconPosition,
72
- size: size,
73
- backgroundType: backgroundType,
74
- icon: icon
75
- }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
76
- type: type,
42
+ }, /*#__PURE__*/_react["default"].createElement(Button, {
43
+ "aria-label": title,
77
44
  disabled: disabled,
78
- disableRipple: true,
79
- "aria-disabled": disabled,
80
- tabIndex: disabled ? -1 : tabIndex,
81
45
  onClick: function onClick() {
82
46
  _onClick();
83
- }
84
- }, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
85
- label: label,
86
- iconPosition: iconPosition
87
- }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
47
+ },
48
+ tabIndex: disabled ? -1 : tabIndex,
49
+ title: title,
50
+ type: type,
51
+ $mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
52
+ hasLabel: label ? true : false,
53
+ hasIcon: icon ? true : false,
54
+ iconPosition: iconPosition,
55
+ size: size,
56
+ margin: margin
57
+ }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
88
58
  src: icon
89
- }) : icon), label && iconPosition === "before" && labelComponent)));
59
+ }) : icon)));
90
60
  };
91
-
92
61
  var sizes = {
93
62
  small: "42px",
94
63
  medium: "120px",
95
64
  large: "240px",
96
65
  fillParent: "100%",
97
- fitContent: "unset"
66
+ fitContent: "fit-content"
98
67
  };
99
-
100
68
  var calculateWidth = function calculateWidth(margin, size) {
101
- if (size === "fillParent") {
102
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
103
- }
104
-
105
- return sizes[size];
69
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
106
70
  };
107
-
108
- var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (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) {
109
- return props.theme.labelFontLineHeight;
110
- }, function (props) {
111
- return props.theme.fontSize;
112
- }, function (props) {
113
- return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
71
+ var getButtonStyles = function getButtonStyles($mode, theme) {
72
+ return "\n border-color: ".concat($mode === "secondary" ? theme.secondaryBorderColor : "", ";\n border-radius: ").concat($mode === "primary" ? theme.primaryBorderRadius : $mode === "secondary" ? theme.secondaryBorderRadius : theme.textBorderRadius, ";\n border-width: ").concat($mode === "primary" ? theme.primaryBorderThickness : $mode === "secondary" ? theme.secondaryBorderThickness : theme.textBorderThickness, ";\n border-style: ").concat($mode === "primary" ? theme.primaryBorderStyle : $mode === "secondary" ? theme.secondaryBorderStyle : theme.textBorderStyle, ";\n font-family: ").concat($mode === "primary" ? theme.primaryFontFamily : $mode === "secondary" ? theme.secondaryFontFamily : theme.textFontFamily, ";\n font-size: ").concat($mode === "primary" ? theme.primaryFontSize : $mode === "secondary" ? theme.secondaryFontSize : theme.textFontSize, ";\n font-weight: ").concat($mode === "primary" ? theme.primaryFontWeight : $mode === "secondary" ? theme.secondaryFontWeight : theme.textFontWeight, ";\n background-color: ").concat($mode === "primary" ? theme.primaryBackgroundColor : $mode === "secondary" ? theme.secondaryBackgroundColor : theme.textBackgroundColor, ";\n color: ").concat($mode === "primary" ? theme.primaryFontColor : $mode === "secondary" ? theme.secondaryFontColor : theme.textFontColor, ";\n ");
73
+ };
74
+ var getButtonStates = function getButtonStates(disabled, $mode, theme) {
75
+ return "\n &:hover {\n background-color: ".concat($mode === "primary" ? theme.primaryHoverBackgroundColor : $mode === "secondary" ? theme.secondaryHoverBackgroundColor : theme.textHoverBackgroundColor, ";\n color: ").concat($mode === "secondary" ? theme.secondaryHoverFontColor : "", ";\n }\n &:focus {\n border-color: ").concat($mode === "secondary" ? "transparent" : "", ";\n }\n &:active {\n background-color: ").concat($mode === "primary" ? theme.primaryActiveBackgroundColor : $mode === "secondary" ? theme.secondaryActiveBackgroundColor : theme.textActiveBackgroundColor, ";\n color: ").concat($mode === "secondary" ? theme.secondaryHoverFontColor : "", ";\n border-color: ").concat($mode === "secondary" ? "transparent" : "", ";\n outline: none;\n box-shadow: ").concat(!disabled ? "0 0 0 2px ".concat(theme.focusBorderColor) : "", ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat($mode === "primary" ? theme.primaryDisabledBackgroundColor : $mode === "secondary" ? theme.secondaryDisabledBackgroundColor : theme.textDisabledBackgroundColor, ";\n color: ").concat($mode === "primary" ? theme.primaryDisabledFontColor : $mode === "secondary" ? theme.secondaryDisabledFontColor : theme.textDisabledFontColor, ";\n border-color: ").concat($mode === "secondary" ? theme.secondaryDisabledBorderColor : "", ";\n }\n");
76
+ };
77
+ var Button = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: ", ";\n gap: 0.5rem;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: 40px;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n cursor: pointer;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n\n ", "\n ", "\n"])), function (props) {
78
+ return props.iconPosition === "after" ? "row" : "row-reverse";
114
79
  }, function (props) {
115
- return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
116
- });
117
-
118
- var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (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) {
119
- return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
80
+ return calculateWidth(props.margin, props.size);
120
81
  }, function (props) {
121
- return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
122
- });
123
-
124
- var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
125
-
126
- var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (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 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"])), function (props) {
127
82
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
128
83
  }, function (props) {
129
84
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -133,18 +88,14 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
133
88
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
134
89
  }, function (props) {
135
90
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
136
- }, function (props) {
137
- return calculateWidth(props.margin, props.size);
138
- }, function (props) {
139
- return props.disabled && "not-allowed" || "pointer";
140
- }, function (props) {
141
- return props.theme.paddingLeft;
142
- }, function (props) {
143
- return props.theme.paddingRight;
144
91
  }, function (props) {
145
92
  return props.theme.paddingTop;
146
93
  }, function (props) {
147
94
  return props.theme.paddingBottom;
95
+ }, function (props) {
96
+ return props.hasIcon && !props.hasLabel ? props.theme.paddingLeft : "calc(".concat(props.theme.paddingLeft, " + 8px)");
97
+ }, function (props) {
98
+ return props.hasIcon && !props.hasLabel ? props.theme.paddingRight : "calc(".concat(props.theme.paddingRight, " + 8px)");
148
99
  }, function (props) {
149
100
  return props.theme.fontFamily;
150
101
  }, function (props) {
@@ -154,21 +105,16 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
154
105
  }, function (props) {
155
106
  return props.theme.labelLetterSpacing;
156
107
  }, function (props) {
157
- return props.size === "small" && "calc(100% - 22px)" || "unset";
108
+ return props.theme.focusBorderColor;
158
109
  }, function (props) {
159
- return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
110
+ return getButtonStyles(props.$mode, props.theme);
160
111
  }, function (props) {
161
- var mode = props.mode,
162
- backgroundType = props.backgroundType;
163
-
164
- if (mode === "primary") {
165
- 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 ");
166
- } else if (mode === "secondary") {
167
- 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 ");
168
- } else if (mode === "text") {
169
- 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 ");
170
- }
112
+ return getButtonStates(props.disabled, props.$mode, props.theme);
171
113
  });
172
-
173
- var _default = DxcButton;
174
- exports["default"] = _default;
114
+ 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"])), function (props) {
115
+ return props.theme.labelFontLineHeight;
116
+ }, function (props) {
117
+ return props.theme.fontSize;
118
+ });
119
+ var IconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n\n img,\n svg {\n height: 24px;\n width: 24px;\n }\n"])));
120
+ var _default = exports["default"] = DxcButton;
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
2
  import DxcButton from "./Button";
3
- import { BackgroundColorProvider } from "../BackgroundColorContext";
3
+ import DxcFlex from "./../flex/Flex";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
- import DarkContainer from "../../.storybook/components/DarkSection";
6
+ import { HalstackProvider } from "../HalstackContext";
7
7
 
8
8
  export default {
9
9
  title: "Button",
@@ -11,11 +11,50 @@ export default {
11
11
  };
12
12
 
13
13
  const iconSVG = (
14
- <svg viewBox="0 0 24 24" fill="currentColor">
14
+ <svg width="24px" height="24px" viewBox="0 0 24 24" fill="currentColor">
15
15
  <path d="M0 0h24v24H0z" fill="none" />
16
16
  <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" />
17
17
  </svg>
18
18
  );
19
+
20
+ const facebookIcon = (
21
+ <svg
22
+ version="1.1"
23
+ id="Capa_1"
24
+ x="0px"
25
+ y="0px"
26
+ width="438.536px"
27
+ height="438.536px"
28
+ viewBox="0 0 438.536 438.536"
29
+ fill="currentColor"
30
+ >
31
+ <g>
32
+ <path
33
+ d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
34
+ C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
35
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
36
+ C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
37
+ c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
38
+ c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
39
+ />
40
+ </g>
41
+ </svg>
42
+ );
43
+
44
+ const smallIcon = (
45
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" height="20" width="20" fill="currentColor">
46
+ <path d="m7.646 18.333-.313-2.625q-.208-.125-.458-.27-.25-.146-.458-.271l-2.438 1.021-2.354-4.063 2.083-1.583V9.458L1.625 7.875l2.354-4.063 2.438 1.021q.208-.125.458-.27.25-.146.458-.271l.313-2.625h4.708l.313 2.625q.208.125.458.271.25.145.458.27l2.438-1.021 2.354 4.063-2.063 1.583v1.084l2.063 1.583-2.354 4.063-2.438-1.021q-.208.125-.458.271-.25.145-.458.27l-.313 2.625ZM10 12.979q1.229 0 2.104-.875T12.979 10q0-1.229-.875-2.104T10 7.021q-1.229 0-2.104.875T7.021 10q0 1.229.875 2.104t2.104.875Zm0-1.75q-.5 0-.865-.364-.364-.365-.364-.865t.364-.865q.365-.364.865-.364t.865.364q.364.365.364.865t-.364.865q-.365.364-.865.364ZM10.021 10Zm-.854 6.583h1.666l.25-2.166q.605-.167 1.167-.5.562-.334 1.021-.792l2.021.854.833-1.375-1.771-1.354q.104-.292.146-.604.042-.313.042-.646 0-.292-.042-.594t-.125-.635l1.771-1.375-.834-1.375-2.02.875q-.48-.479-1.032-.802-.552-.323-1.156-.49l-.271-2.187H9.167l-.271 2.187q-.604.167-1.156.49-.552.323-1.011.781l-2.021-.854-.833 1.375 1.75 1.354q-.083.333-.125.646-.042.312-.042.604t.042.594q.042.302.125.635l-1.75 1.375.833 1.375 2.021-.854q.459.458 1.011.781.552.323 1.156.49Z" />
47
+ </svg>
48
+ );
49
+
50
+ const opinionatedTheme = {
51
+ button: {
52
+ baseColor: "#5f249f",
53
+ primaryFontColor: "#ffffff",
54
+ secondaryHoverFontColor: "#ffffff",
55
+ },
56
+ };
57
+
19
58
  export const Chromatic = () => (
20
59
  <>
21
60
  <Title title="Primary" theme="light" level={2} />
@@ -37,7 +76,7 @@ export const Chromatic = () => (
37
76
  </ExampleContainer>
38
77
  <ExampleContainer>
39
78
  <Title title="Disabled" theme="light" level={4} />
40
- <DxcButton label="Primary disabled" disabled />
79
+ <DxcButton label="Primary disabled" disabled icon={iconSVG} />
41
80
  </ExampleContainer>
42
81
  <ExampleContainer>
43
82
  <Title title="With left icon" theme="light" level={4} />
@@ -51,6 +90,18 @@ export const Chromatic = () => (
51
90
  <Title title="Only icon" theme="light" level={4} />
52
91
  <DxcButton icon={iconSVG} />
53
92
  </ExampleContainer>
93
+ <ExampleContainer>
94
+ <Title title="Big icon (SVG)" theme="light" level={4} />
95
+ <DxcButton icon={facebookIcon} />
96
+ </ExampleContainer>
97
+ <ExampleContainer>
98
+ <Title title="Big icon (image)" theme="light" level={4} />
99
+ <DxcButton icon="https://www.freepnglogos.com/uploads/facebook-logo-design-1.png" />
100
+ </ExampleContainer>
101
+ <ExampleContainer>
102
+ <Title title="Small icon" theme="light" level={4} />
103
+ <DxcButton icon={smallIcon} />
104
+ </ExampleContainer>
54
105
  <Title title="Secondary" theme="light" level={2} />
55
106
  <ExampleContainer>
56
107
  <Title title="Enabled" theme="light" level={4} />
@@ -70,12 +121,19 @@ export const Chromatic = () => (
70
121
  </ExampleContainer>
71
122
  <ExampleContainer>
72
123
  <Title title="Disabled" theme="light" level={4} />
73
- <DxcButton mode="secondary" disabled label="Secondary disabled" />
124
+ <DxcButton mode="secondary" disabled label="Secondary disabled" icon={iconSVG} />
74
125
  </ExampleContainer>
75
126
  <ExampleContainer>
76
127
  <Title title="With icon" theme="light" level={4} />
77
128
  <DxcButton mode="secondary" label="Secondary" icon={iconSVG} />
78
129
  </ExampleContainer>
130
+ <ExampleContainer>
131
+ <Title title="Only icon (image)" theme="light" level={4} />
132
+ <DxcButton
133
+ mode="secondary"
134
+ icon="https://www.freepnglogos.com/uploads/facebook-logo-design-1.png"
135
+ />
136
+ </ExampleContainer>
79
137
  <Title title="Text" theme="light" level={2} />
80
138
  <ExampleContainer>
81
139
  <Title title="Enabled" theme="light" level={4} />
@@ -95,91 +153,19 @@ export const Chromatic = () => (
95
153
  </ExampleContainer>
96
154
  <ExampleContainer>
97
155
  <Title title="Disabled" theme="light" level={4} />
98
- <DxcButton mode="text" label="Text disabled" disabled />
156
+ <DxcButton mode="text" label="Text disabled" disabled icon={iconSVG} />
99
157
  </ExampleContainer>
100
158
  <ExampleContainer>
101
159
  <Title title="With icon" theme="light" level={4} />
102
160
  <DxcButton label="Text" mode="text" icon={iconSVG} />
103
161
  </ExampleContainer>
104
- <BackgroundColorProvider color="#333333">
105
- <DarkContainer>
106
- <Title title="Primary" theme="dark" level={2} />
107
- <ExampleContainer>
108
- <Title title="Enabled" theme="dark" level={4} />
109
- <DxcButton label="Primary enabled" />
110
- </ExampleContainer>
111
- <ExampleContainer pseudoState="pseudo-hover">
112
- <Title title="Hovered" theme="dark" level={4} />
113
- <DxcButton label="Primary hovered" />
114
- </ExampleContainer>
115
- <ExampleContainer pseudoState="pseudo-focus">
116
- <Title title="Focused" theme="dark" level={4} />
117
- <DxcButton label="Primary focused" />
118
- </ExampleContainer>
119
- <ExampleContainer pseudoState="pseudo-active">
120
- <Title title="Actived" theme="dark" level={4} />
121
- <DxcButton label="Primary actived" />
122
- </ExampleContainer>
123
- <ExampleContainer>
124
- <Title title="Disabled" theme="dark" level={4} />
125
- <DxcButton label="Primary disabled" disabled />
126
- </ExampleContainer>
127
- <ExampleContainer>
128
- <Title title="With icon" theme="dark" level={4} />
129
- <DxcButton label="Primary" icon={iconSVG} />
130
- </ExampleContainer>
131
- <Title title="Secondary" theme="dark" level={2} />
132
- <ExampleContainer>
133
- <Title title="Enabled" theme="dark" level={4} />
134
- <DxcButton mode="secondary" label="Secondary enabled" />
135
- </ExampleContainer>
136
- <ExampleContainer pseudoState="pseudo-hover">
137
- <Title title="Hovered" theme="dark" level={4} />
138
- <DxcButton mode="secondary" label="Secondary hovered" />
139
- </ExampleContainer>
140
- <ExampleContainer pseudoState="pseudo-focus">
141
- <Title title="Focused" theme="dark" level={4} />
142
- <DxcButton mode="secondary" label="Secondary focused" />
143
- </ExampleContainer>
144
- <ExampleContainer pseudoState="pseudo-active">
145
- <Title title="Actived" theme="dark" level={4} />
146
- <DxcButton mode="secondary" label="Secondary actived" />
147
- </ExampleContainer>
148
- <ExampleContainer>
149
- <Title title="Disabled" theme="dark" level={4} />
150
- <DxcButton mode="secondary" disabled label="Secondary disabled" />
151
- </ExampleContainer>
152
- <ExampleContainer>
153
- <Title title="With icon" theme="dark" level={4} />
154
- <DxcButton mode="secondary" label="Primary" icon={iconSVG} />
155
- </ExampleContainer>
156
- <Title title="Text" theme="dark" level={2} />
157
- <ExampleContainer>
158
- <Title title="Enabled" theme="dark" level={4} />
159
- <DxcButton mode="text" label="Text enabled" />
160
- </ExampleContainer>
161
- <ExampleContainer pseudoState="pseudo-hover">
162
- <Title title="Hovered" theme="dark" level={4} />
163
- <DxcButton mode="text" label="Text hovered" />
164
- </ExampleContainer>
165
- <ExampleContainer pseudoState="pseudo-focus">
166
- <Title title="Focused" theme="dark" level={4} />
167
- <DxcButton mode="text" label="Text focused" />
168
- </ExampleContainer>
169
- <ExampleContainer pseudoState="pseudo-active">
170
- <Title title="Actived" theme="dark" level={4} />
171
- <DxcButton mode="text" label="Text actived" />
172
- </ExampleContainer>
173
- <ExampleContainer>
174
- <Title title="Disabled" theme="dark" level={4} />
175
- <DxcButton mode="text" label="Text disabled" disabled />
176
- </ExampleContainer>
177
- <ExampleContainer>
178
- <Title title="With icon" theme="dark" level={4} />
179
- <DxcButton mode="text" label="Primary" icon={iconSVG} />
180
- </ExampleContainer>
181
- </DarkContainer>
182
- </BackgroundColorProvider>
162
+ <ExampleContainer>
163
+ <Title title="Only icon (image)" theme="light" level={4} />
164
+ <DxcButton
165
+ mode="text"
166
+ icon="https://www.freepnglogos.com/uploads/facebook-logo-design-1.png"
167
+ />
168
+ </ExampleContainer>
183
169
  <Title title="Sizes" theme="light" level={2} />
184
170
  <ExampleContainer>
185
171
  <Title title="Small size" theme="light" level={4} />
@@ -187,7 +173,7 @@ export const Chromatic = () => (
187
173
  </ExampleContainer>
188
174
  <ExampleContainer>
189
175
  <Title title="Medium size" theme="light" level={4} />
190
- <DxcButton label="MediumSiz" size="medium" />
176
+ <DxcButton label="MediumSize" size="medium" />
191
177
  </ExampleContainer>
192
178
  <ExampleContainer>
193
179
  <Title title="Medium size with ellipsis" theme="light" level={4} />
@@ -195,11 +181,11 @@ export const Chromatic = () => (
195
181
  </ExampleContainer>
196
182
  <ExampleContainer>
197
183
  <Title title="Medium size icon after" theme="light" level={4} />
198
- <DxcButton label="Mediu" iconPosition="after" icon={iconSVG} size="medium" />
184
+ <DxcButton label="Medium" iconPosition="after" icon={iconSVG} size="medium" />
199
185
  </ExampleContainer>
200
186
  <ExampleContainer>
201
187
  <Title title="Medium size icon before" theme="light" level={4} />
202
- <DxcButton label="Mediu" iconPosition="before" icon={iconSVG} size="medium" />
188
+ <DxcButton label="Medium" iconPosition="before" icon={iconSVG} size="medium" />
203
189
  </ExampleContainer>
204
190
  <ExampleContainer>
205
191
  <Title title="Medium size icon after with ellipsis" theme="light" level={4} />
@@ -219,11 +205,11 @@ export const Chromatic = () => (
219
205
  </ExampleContainer>
220
206
  <ExampleContainer>
221
207
  <Title title="Large size icon after" theme="light" level={4} />
222
- <DxcButton label="LargeSizePrimaryButto" iconPosition="after" icon={iconSVG} size="large" />
208
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="after" icon={iconSVG} size="large" />
223
209
  </ExampleContainer>
224
210
  <ExampleContainer>
225
211
  <Title title="Large size icon before" theme="light" level={4} />
226
- <DxcButton label="LargeSizePrimaryButto" iconPosition="before" icon={iconSVG} size="large" />
212
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="before" icon={iconSVG} size="large" />
227
213
  </ExampleContainer>
228
214
  <ExampleContainer>
229
215
  <Title title="Large size icon after with ellipsis" theme="light" level={4} />
@@ -270,5 +256,89 @@ export const Chromatic = () => (
270
256
  <Title title="Xxlarge margin" theme="light" level={4} />
271
257
  <DxcButton label="Xxlarge margin" margin="xxlarge" />
272
258
  </ExampleContainer>
259
+ <Title title="Inside a flex" theme="light" level={2} />
260
+ <ExampleContainer>
261
+ <DxcFlex direction="column" gap="1rem">
262
+ <DxcButton label="Button" />
263
+ <DxcButton label="Button" />
264
+ <DxcButton label="Button" />
265
+ </DxcFlex>
266
+ </ExampleContainer>
267
+ <Title title="Opinionated theme" theme="light" level={2} />
268
+ <Title title="Primary" theme="light" level={3} />
269
+ <ExampleContainer>
270
+ <Title title="Enabled" theme="light" level={4} />
271
+ <HalstackProvider theme={opinionatedTheme}>
272
+ <DxcButton label="Primary" icon={iconSVG} />
273
+ </HalstackProvider>
274
+ </ExampleContainer>
275
+ <ExampleContainer pseudoState="pseudo-hover">
276
+ <Title title="Hovered" theme="light" level={4} />
277
+ <DxcButton label="Primary hovered" icon={iconSVG} />
278
+ </ExampleContainer>
279
+ <ExampleContainer pseudoState="pseudo-focus">
280
+ <Title title="Focused" theme="light" level={4} />
281
+ <DxcButton label="Primary focused" icon={iconSVG} />
282
+ </ExampleContainer>
283
+ <ExampleContainer pseudoState="pseudo-active">
284
+ <Title title="Actived" theme="light" level={4} />
285
+ <DxcButton label="Primary actived" icon={iconSVG} />
286
+ </ExampleContainer>
287
+ <ExampleContainer>
288
+ <Title title="Disabled" theme="light" level={4} />
289
+ <HalstackProvider theme={opinionatedTheme}>
290
+ <DxcButton label="Primary" icon={iconSVG} disabled />
291
+ </HalstackProvider>
292
+ </ExampleContainer>
293
+ <Title title="Secondary" theme="light" level={3} />
294
+ <ExampleContainer>
295
+ <Title title="Enabled" theme="light" level={4} />
296
+ <HalstackProvider theme={opinionatedTheme}>
297
+ <DxcButton mode="secondary" label="Secondary" icon={iconSVG} />
298
+ </HalstackProvider>
299
+ </ExampleContainer>
300
+ <ExampleContainer pseudoState="pseudo-hover">
301
+ <Title title="Hovered" theme="light" level={4} />
302
+ <DxcButton mode="secondary" label="Secondary hovered" icon={iconSVG} />
303
+ </ExampleContainer>
304
+ <ExampleContainer pseudoState="pseudo-focus">
305
+ <Title title="Focused" theme="light" level={4} />
306
+ <DxcButton mode="secondary" label="Secondary focused" icon={iconSVG} />
307
+ </ExampleContainer>
308
+ <ExampleContainer pseudoState="pseudo-active">
309
+ <Title title="Actived" theme="light" level={4} />
310
+ <DxcButton mode="secondary" label="Secondary actived" icon={iconSVG} />
311
+ </ExampleContainer>
312
+ <ExampleContainer>
313
+ <Title title="Disabled" theme="light" level={4} />
314
+ <HalstackProvider theme={opinionatedTheme}>
315
+ <DxcButton mode="secondary" label="Secondary" icon={iconSVG} disabled />
316
+ </HalstackProvider>
317
+ </ExampleContainer>
318
+ <Title title="Text" theme="light" level={3} />
319
+ <ExampleContainer>
320
+ <Title title="Enabled" theme="light" level={4} />
321
+ <HalstackProvider theme={opinionatedTheme}>
322
+ <DxcButton mode="text" label="Text" icon={iconSVG} />
323
+ </HalstackProvider>
324
+ </ExampleContainer>
325
+ <ExampleContainer pseudoState="pseudo-hover">
326
+ <Title title="Hovered" theme="light" level={4} />
327
+ <DxcButton mode="text" label="Text hovered" icon={iconSVG} />
328
+ </ExampleContainer>
329
+ <ExampleContainer pseudoState="pseudo-focus">
330
+ <Title title="Focused" theme="light" level={4} />
331
+ <DxcButton mode="text" label="Text focused" icon={iconSVG} />
332
+ </ExampleContainer>
333
+ <ExampleContainer pseudoState="pseudo-active">
334
+ <Title title="Actived" theme="light" level={4} />
335
+ <DxcButton mode="text" label="Text actived" icon={iconSVG} />
336
+ </ExampleContainer>
337
+ <ExampleContainer>
338
+ <Title title="Disabled" theme="light" level={4} />
339
+ <HalstackProvider theme={opinionatedTheme}>
340
+ <DxcButton mode="text" label="Text disabled" icon={iconSVG} disabled />
341
+ </HalstackProvider>
342
+ </ExampleContainer>
273
343
  </>
274
344
  );