@dxc-technology/halstack-react 0.0.0-31c6b1f → 0.0.0-324b670

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 (311) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1235 -0
  4. package/HalstackContext.js +310 -0
  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 +103 -127
  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 +23 -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.d.ts +1 -1
  23. package/badge/Badge.js +8 -19
  24. package/badge/types.d.ts +2 -1
  25. package/bleed/Bleed.js +14 -55
  26. package/bleed/Bleed.stories.tsx +95 -95
  27. package/bleed/types.d.ts +2 -2
  28. package/box/Box.d.ts +1 -1
  29. package/box/Box.js +30 -81
  30. package/box/Box.stories.tsx +38 -51
  31. package/box/Box.test.js +2 -7
  32. package/box/types.d.ts +3 -14
  33. package/bulleted-list/BulletedList.d.ts +7 -0
  34. package/bulleted-list/BulletedList.js +89 -0
  35. package/bulleted-list/BulletedList.stories.tsx +115 -0
  36. package/bulleted-list/types.d.ts +38 -0
  37. package/button/Button.d.ts +1 -1
  38. package/button/Button.js +63 -115
  39. package/button/Button.stories.tsx +160 -90
  40. package/button/Button.test.js +18 -17
  41. package/button/types.d.ts +12 -8
  42. package/card/Card.d.ts +1 -1
  43. package/card/Card.js +64 -107
  44. package/card/Card.stories.tsx +12 -42
  45. package/card/Card.test.js +11 -22
  46. package/card/types.d.ts +6 -11
  47. package/checkbox/Checkbox.d.ts +2 -2
  48. package/checkbox/Checkbox.js +142 -181
  49. package/checkbox/Checkbox.stories.tsx +128 -94
  50. package/checkbox/Checkbox.test.js +160 -39
  51. package/checkbox/types.d.ts +11 -3
  52. package/chip/Chip.js +39 -79
  53. package/chip/Chip.stories.tsx +121 -26
  54. package/chip/Chip.test.js +16 -31
  55. package/chip/types.d.ts +4 -4
  56. package/common/OpenSans.css +68 -80
  57. package/common/coreTokens.d.ts +237 -0
  58. package/common/coreTokens.js +184 -0
  59. package/common/utils.d.ts +1 -0
  60. package/common/utils.js +6 -12
  61. package/common/variables.d.ts +1381 -0
  62. package/common/variables.js +998 -1117
  63. package/container/Container.d.ts +4 -0
  64. package/container/Container.js +194 -0
  65. package/container/Container.stories.tsx +214 -0
  66. package/container/types.d.ts +74 -0
  67. package/date-input/Calendar.d.ts +4 -0
  68. package/date-input/Calendar.js +214 -0
  69. package/date-input/DateInput.js +153 -299
  70. package/date-input/DateInput.stories.tsx +203 -56
  71. package/date-input/DateInput.test.js +700 -371
  72. package/date-input/DatePicker.d.ts +4 -0
  73. package/date-input/DatePicker.js +115 -0
  74. package/date-input/Icons.d.ts +6 -0
  75. package/date-input/Icons.js +58 -0
  76. package/date-input/YearPicker.d.ts +4 -0
  77. package/date-input/YearPicker.js +100 -0
  78. package/date-input/types.d.ts +72 -15
  79. package/dialog/Dialog.d.ts +1 -1
  80. package/dialog/Dialog.js +73 -107
  81. package/dialog/Dialog.stories.tsx +320 -167
  82. package/dialog/Dialog.test.js +287 -20
  83. package/dialog/types.d.ts +18 -25
  84. package/dropdown/Dropdown.d.ts +1 -1
  85. package/dropdown/Dropdown.js +243 -300
  86. package/dropdown/Dropdown.stories.tsx +245 -56
  87. package/dropdown/Dropdown.test.js +575 -165
  88. package/dropdown/DropdownMenu.d.ts +4 -0
  89. package/dropdown/DropdownMenu.js +63 -0
  90. package/dropdown/DropdownMenuItem.d.ts +4 -0
  91. package/dropdown/DropdownMenuItem.js +67 -0
  92. package/dropdown/types.d.ts +32 -14
  93. package/file-input/FileInput.d.ts +2 -2
  94. package/file-input/FileInput.js +246 -357
  95. package/file-input/FileInput.stories.tsx +123 -12
  96. package/file-input/FileInput.test.js +369 -367
  97. package/file-input/FileItem.d.ts +4 -14
  98. package/file-input/FileItem.js +50 -99
  99. package/file-input/types.d.ts +25 -8
  100. package/flex/Flex.d.ts +4 -0
  101. package/flex/Flex.js +57 -0
  102. package/flex/Flex.stories.tsx +112 -0
  103. package/flex/types.d.ts +97 -0
  104. package/footer/Footer.d.ts +1 -1
  105. package/footer/Footer.js +57 -115
  106. package/footer/Footer.stories.tsx +41 -19
  107. package/footer/Footer.test.js +33 -57
  108. package/footer/Icons.d.ts +2 -2
  109. package/footer/Icons.js +3 -8
  110. package/footer/types.d.ts +21 -28
  111. package/grid/Grid.d.ts +7 -0
  112. package/grid/Grid.js +76 -0
  113. package/grid/Grid.stories.tsx +219 -0
  114. package/grid/types.d.ts +115 -0
  115. package/header/Header.d.ts +4 -3
  116. package/header/Header.js +90 -170
  117. package/header/Header.stories.tsx +118 -39
  118. package/header/Header.test.js +13 -26
  119. package/header/Icons.d.ts +2 -2
  120. package/header/Icons.js +4 -9
  121. package/header/types.d.ts +5 -19
  122. package/heading/Heading.js +10 -32
  123. package/heading/Heading.test.js +71 -88
  124. package/heading/types.d.ts +7 -7
  125. package/image/Image.d.ts +4 -0
  126. package/image/Image.js +70 -0
  127. package/image/Image.stories.tsx +127 -0
  128. package/image/types.d.ts +72 -0
  129. package/inset/Inset.js +14 -55
  130. package/inset/Inset.stories.tsx +37 -36
  131. package/inset/types.d.ts +2 -2
  132. package/layout/ApplicationLayout.d.ts +16 -6
  133. package/layout/ApplicationLayout.js +82 -166
  134. package/layout/ApplicationLayout.stories.tsx +85 -94
  135. package/layout/Icons.d.ts +8 -0
  136. package/layout/Icons.js +51 -48
  137. package/layout/SidenavContext.d.ts +5 -0
  138. package/layout/SidenavContext.js +13 -0
  139. package/layout/types.d.ts +19 -35
  140. package/link/Link.d.ts +3 -2
  141. package/link/Link.js +61 -95
  142. package/link/Link.stories.tsx +155 -53
  143. package/link/Link.test.js +25 -53
  144. package/link/types.d.ts +15 -31
  145. package/main.d.ts +11 -12
  146. package/main.js +58 -109
  147. package/nav-tabs/NavTabs.d.ts +8 -0
  148. package/nav-tabs/NavTabs.js +90 -0
  149. package/nav-tabs/NavTabs.stories.tsx +274 -0
  150. package/nav-tabs/NavTabs.test.js +75 -0
  151. package/nav-tabs/Tab.d.ts +4 -0
  152. package/nav-tabs/Tab.js +117 -0
  153. package/nav-tabs/types.d.ts +52 -0
  154. package/number-input/NumberInput.d.ts +7 -0
  155. package/number-input/NumberInput.js +26 -35
  156. package/number-input/NumberInput.stories.tsx +42 -26
  157. package/number-input/NumberInput.test.js +701 -377
  158. package/number-input/types.d.ts +12 -6
  159. package/package.json +44 -46
  160. package/paginator/Icons.d.ts +5 -0
  161. package/paginator/Icons.js +21 -47
  162. package/paginator/Paginator.js +34 -91
  163. package/paginator/Paginator.stories.tsx +24 -0
  164. package/paginator/Paginator.test.js +280 -211
  165. package/paginator/types.d.ts +3 -3
  166. package/paragraph/Paragraph.d.ts +5 -0
  167. package/paragraph/Paragraph.js +22 -0
  168. package/paragraph/Paragraph.stories.tsx +27 -0
  169. package/password-input/Icons.d.ts +6 -0
  170. package/password-input/Icons.js +35 -0
  171. package/password-input/PasswordInput.js +57 -123
  172. package/password-input/PasswordInput.stories.tsx +1 -33
  173. package/password-input/PasswordInput.test.js +160 -143
  174. package/password-input/types.d.ts +9 -8
  175. package/progress-bar/ProgressBar.js +65 -91
  176. package/progress-bar/ProgressBar.stories.tsx +93 -0
  177. package/progress-bar/ProgressBar.test.js +72 -44
  178. package/progress-bar/types.d.ts +3 -3
  179. package/quick-nav/QuickNav.js +71 -41
  180. package/quick-nav/QuickNav.stories.tsx +146 -27
  181. package/quick-nav/types.d.ts +10 -10
  182. package/radio-group/Radio.d.ts +1 -1
  183. package/radio-group/Radio.js +59 -76
  184. package/radio-group/RadioGroup.js +71 -116
  185. package/radio-group/RadioGroup.stories.tsx +132 -18
  186. package/radio-group/RadioGroup.test.js +518 -457
  187. package/radio-group/types.d.ts +10 -10
  188. package/resultset-table/Icons.d.ts +7 -0
  189. package/resultset-table/Icons.js +47 -0
  190. package/resultset-table/ResultsetTable.js +159 -0
  191. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
  192. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
  193. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  194. package/resultset-table/types.js +5 -0
  195. package/select/Icons.d.ts +7 -7
  196. package/select/Icons.js +1 -5
  197. package/select/Listbox.d.ts +1 -1
  198. package/select/Listbox.js +46 -51
  199. package/select/Option.js +20 -50
  200. package/select/Select.js +155 -228
  201. package/select/Select.stories.tsx +525 -136
  202. package/select/Select.test.js +1973 -1696
  203. package/select/types.d.ts +16 -20
  204. package/sidenav/Icons.d.ts +7 -0
  205. package/sidenav/Icons.js +47 -0
  206. package/sidenav/Sidenav.d.ts +6 -5
  207. package/sidenav/Sidenav.js +131 -71
  208. package/sidenav/Sidenav.stories.tsx +251 -151
  209. package/sidenav/Sidenav.test.js +26 -45
  210. package/sidenav/types.d.ts +52 -26
  211. package/slider/Slider.d.ts +2 -2
  212. package/slider/Slider.js +149 -181
  213. package/slider/Slider.test.js +185 -81
  214. package/slider/types.d.ts +7 -3
  215. package/spinner/Spinner.js +31 -75
  216. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  217. package/spinner/Spinner.test.js +26 -35
  218. package/spinner/types.d.ts +3 -3
  219. package/switch/Switch.d.ts +2 -2
  220. package/switch/Switch.js +147 -125
  221. package/switch/Switch.stories.tsx +37 -60
  222. package/switch/Switch.test.js +138 -56
  223. package/switch/types.d.ts +7 -3
  224. package/table/Table.js +8 -30
  225. package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
  226. package/table/Table.test.js +3 -8
  227. package/table/types.d.ts +8 -8
  228. package/tabs/Tab.d.ts +4 -0
  229. package/tabs/Tab.js +113 -0
  230. package/tabs/Tabs.js +315 -141
  231. package/tabs/Tabs.stories.tsx +119 -11
  232. package/tabs/Tabs.test.js +223 -69
  233. package/tabs/types.d.ts +28 -18
  234. package/tag/Tag.js +29 -61
  235. package/tag/Tag.stories.tsx +14 -1
  236. package/tag/Tag.test.js +20 -31
  237. package/tag/types.d.ts +7 -7
  238. package/text-input/Icons.d.ts +8 -0
  239. package/text-input/Icons.js +56 -0
  240. package/text-input/Suggestion.d.ts +4 -0
  241. package/text-input/Suggestion.js +67 -0
  242. package/text-input/Suggestions.d.ts +4 -0
  243. package/text-input/Suggestions.js +84 -0
  244. package/text-input/TextInput.js +309 -527
  245. package/text-input/TextInput.stories.tsx +266 -275
  246. package/text-input/TextInput.test.js +1403 -1376
  247. package/text-input/types.d.ts +53 -14
  248. package/textarea/Textarea.js +79 -131
  249. package/textarea/Textarea.stories.tsx +174 -0
  250. package/textarea/Textarea.test.js +152 -183
  251. package/textarea/types.d.ts +10 -6
  252. package/toggle-group/ToggleGroup.d.ts +2 -2
  253. package/toggle-group/ToggleGroup.js +92 -106
  254. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  255. package/toggle-group/ToggleGroup.test.js +69 -88
  256. package/toggle-group/types.d.ts +26 -17
  257. package/typography/Typography.d.ts +4 -0
  258. package/typography/Typography.js +23 -0
  259. package/typography/Typography.stories.tsx +198 -0
  260. package/typography/types.d.ts +18 -0
  261. package/typography/types.js +5 -0
  262. package/useTheme.d.ts +1133 -1
  263. package/useTheme.js +4 -11
  264. package/useTranslatedLabels.d.ts +85 -0
  265. package/useTranslatedLabels.js +14 -0
  266. package/utils/BaseTypography.d.ts +21 -0
  267. package/utils/BaseTypography.js +94 -0
  268. package/utils/FocusLock.d.ts +13 -0
  269. package/utils/FocusLock.js +121 -0
  270. package/wizard/Wizard.js +51 -91
  271. package/wizard/Wizard.stories.tsx +40 -1
  272. package/wizard/Wizard.test.js +54 -81
  273. package/wizard/types.d.ts +7 -7
  274. package/ThemeContext.d.ts +0 -10
  275. package/ThemeContext.js +0 -243
  276. package/card/ice-cream.jpg +0 -0
  277. package/common/RequiredComponent.js +0 -32
  278. package/list/List.d.ts +0 -4
  279. package/list/List.js +0 -47
  280. package/list/List.stories.tsx +0 -95
  281. package/list/types.d.ts +0 -7
  282. package/number-input/NumberInputContext.d.ts +0 -4
  283. package/number-input/NumberInputContext.js +0 -19
  284. package/number-input/numberInputContextTypes.d.ts +0 -19
  285. package/progress-bar/ProgressBar.stories.jsx +0 -58
  286. package/radio/Radio.d.ts +0 -4
  287. package/radio/Radio.js +0 -173
  288. package/radio/Radio.stories.tsx +0 -192
  289. package/radio/Radio.test.js +0 -71
  290. package/radio/types.d.ts +0 -54
  291. package/resultsetTable/ResultsetTable.js +0 -254
  292. package/row/Row.d.ts +0 -3
  293. package/row/Row.js +0 -127
  294. package/row/Row.stories.tsx +0 -237
  295. package/row/types.d.ts +0 -28
  296. package/slider/Slider.stories.tsx +0 -177
  297. package/stack/Stack.d.ts +0 -3
  298. package/stack/Stack.js +0 -97
  299. package/stack/Stack.stories.tsx +0 -164
  300. package/stack/types.d.ts +0 -24
  301. package/text/Text.d.ts +0 -7
  302. package/text/Text.js +0 -30
  303. package/text/Text.stories.tsx +0 -19
  304. package/textarea/Textarea.stories.jsx +0 -157
  305. /package/{list → bulleted-list}/types.js +0 -0
  306. /package/{radio → container}/types.js +0 -0
  307. /package/{resultsetTable → flex}/types.js +0 -0
  308. /package/{row → grid}/types.js +0 -0
  309. /package/{stack → image}/types.js +0 -0
  310. /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
  311. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/button/Button.js CHANGED
@@ -1,127 +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
- _onClick = _ref.onClick,
49
- margin = _ref.margin,
50
- _ref$size = _ref.size,
51
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
52
- _ref$tabIndex = _ref.tabIndex,
53
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
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;
54
39
  var colorsTheme = (0, _useTheme["default"])();
55
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
56
-
57
- var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
58
- icon: icon,
59
- iconPosition: iconPosition
60
- }, label);
61
-
62
40
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
63
41
  theme: colorsTheme.button
64
- }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
65
- type: type,
66
- margin: margin,
67
- mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
68
- disabled: disabled,
69
- iconPosition: iconPosition,
70
- size: size,
71
- backgroundType: backgroundType,
72
- icon: icon
73
- }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
74
- type: type,
42
+ }, /*#__PURE__*/_react["default"].createElement(Button, {
43
+ "aria-label": title,
75
44
  disabled: disabled,
76
- disableRipple: true,
77
- "aria-disabled": disabled,
78
- tabIndex: disabled ? -1 : tabIndex,
79
45
  onClick: function onClick() {
80
46
  _onClick();
81
- }
82
- }, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
83
- label: label,
84
- iconPosition: iconPosition
85
- }, 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", {
86
58
  src: icon
87
- }) : icon), label && iconPosition === "before" && labelComponent)));
59
+ }) : icon)));
88
60
  };
89
-
90
61
  var sizes = {
91
62
  small: "42px",
92
63
  medium: "120px",
93
64
  large: "240px",
94
65
  fillParent: "100%",
95
- fitContent: "unset"
66
+ fitContent: "fit-content"
96
67
  };
97
-
98
68
  var calculateWidth = function calculateWidth(margin, size) {
99
- if (size === "fillParent") {
100
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
101
- }
102
-
103
- 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];
104
70
  };
105
-
106
- 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) {
107
- return props.theme.labelFontLineHeight;
108
- }, function (props) {
109
- return props.theme.fontSize;
110
- }, function (props) {
111
- 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";
112
79
  }, function (props) {
113
- return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
114
- });
115
-
116
- 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) {
117
- return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
80
+ return calculateWidth(props.margin, props.size);
118
81
  }, function (props) {
119
- return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
120
- });
121
-
122
- var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
123
-
124
- 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) {
125
82
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
126
83
  }, function (props) {
127
84
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -131,18 +88,14 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
131
88
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
132
89
  }, function (props) {
133
90
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
134
- }, function (props) {
135
- return calculateWidth(props.margin, props.size);
136
- }, function (props) {
137
- return props.disabled && "not-allowed" || "pointer";
138
- }, function (props) {
139
- return props.theme.paddingLeft;
140
- }, function (props) {
141
- return props.theme.paddingRight;
142
91
  }, function (props) {
143
92
  return props.theme.paddingTop;
144
93
  }, function (props) {
145
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)");
146
99
  }, function (props) {
147
100
  return props.theme.fontFamily;
148
101
  }, function (props) {
@@ -152,21 +105,16 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
152
105
  }, function (props) {
153
106
  return props.theme.labelLetterSpacing;
154
107
  }, function (props) {
155
- return props.size === "small" && "calc(100% - 22px)" || "unset";
108
+ return props.theme.focusBorderColor;
156
109
  }, function (props) {
157
- return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
110
+ return getButtonStyles(props.$mode, props.theme);
158
111
  }, function (props) {
159
- var mode = props.mode,
160
- backgroundType = props.backgroundType;
161
-
162
- if (mode === "primary") {
163
- 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 ");
164
- } else if (mode === "secondary") {
165
- 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 ");
166
- } else if (mode === "text") {
167
- 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 ");
168
- }
112
+ return getButtonStates(props.disabled, props.$mode, props.theme);
169
113
  });
170
-
171
- var _default = DxcButton;
172
- 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
  );