@dxc-technology/halstack-react 0.0.0-22220e6 → 0.0.0-2289057

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 (342) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1249 -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 -181
  8. package/accordion/Accordion.stories.tsx +103 -127
  9. package/accordion/Accordion.test.js +32 -33
  10. package/accordion/types.d.ts +9 -16
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +38 -107
  13. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  14. package/accordion-group/AccordionGroup.test.js +55 -90
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +15 -16
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +23 -59
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +141 -41
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -2
  32. package/bleed/Bleed.js +14 -55
  33. package/bleed/Bleed.stories.tsx +95 -95
  34. package/bleed/types.d.ts +26 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +30 -81
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -14
  40. package/bulleted-list/BulletedList.d.ts +7 -0
  41. package/bulleted-list/BulletedList.js +89 -0
  42. package/bulleted-list/BulletedList.stories.tsx +115 -0
  43. package/bulleted-list/types.d.ts +38 -0
  44. package/button/Button.d.ts +1 -1
  45. package/button/Button.js +62 -113
  46. package/button/Button.stories.tsx +160 -90
  47. package/button/Button.test.js +20 -17
  48. package/button/types.d.ts +12 -8
  49. package/card/Card.d.ts +1 -1
  50. package/card/Card.js +58 -102
  51. package/card/Card.stories.tsx +12 -42
  52. package/card/Card.test.js +11 -22
  53. package/card/types.d.ts +6 -11
  54. package/checkbox/Checkbox.d.ts +2 -2
  55. package/checkbox/Checkbox.js +144 -182
  56. package/checkbox/Checkbox.stories.tsx +166 -136
  57. package/checkbox/Checkbox.test.js +163 -29
  58. package/checkbox/types.d.ts +18 -6
  59. package/chip/Chip.js +39 -79
  60. package/chip/Chip.stories.tsx +121 -26
  61. package/chip/Chip.test.js +16 -31
  62. package/chip/types.d.ts +4 -4
  63. package/common/OpenSans.css +68 -80
  64. package/common/coreTokens.d.ts +237 -0
  65. package/common/coreTokens.js +184 -0
  66. package/common/utils.d.ts +1 -0
  67. package/common/utils.js +6 -12
  68. package/common/variables.d.ts +1395 -0
  69. package/common/variables.js +1030 -1136
  70. package/container/Container.d.ts +4 -0
  71. package/container/Container.js +194 -0
  72. package/container/Container.stories.tsx +214 -0
  73. package/container/types.d.ts +74 -0
  74. package/contextual-menu/ContextualMenu.d.ts +7 -0
  75. package/contextual-menu/ContextualMenu.js +71 -0
  76. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  77. package/contextual-menu/ContextualMenu.test.js +71 -0
  78. package/contextual-menu/MenuItemAction.d.ts +4 -0
  79. package/contextual-menu/MenuItemAction.js +46 -0
  80. package/contextual-menu/types.d.ts +22 -0
  81. package/date-input/Calendar.d.ts +4 -0
  82. package/date-input/Calendar.js +214 -0
  83. package/date-input/DateInput.js +171 -306
  84. package/date-input/DateInput.stories.tsx +203 -56
  85. package/date-input/DateInput.test.js +708 -369
  86. package/date-input/DatePicker.d.ts +4 -0
  87. package/date-input/DatePicker.js +115 -0
  88. package/date-input/Icons.d.ts +6 -0
  89. package/date-input/Icons.js +58 -0
  90. package/date-input/YearPicker.d.ts +4 -0
  91. package/date-input/YearPicker.js +100 -0
  92. package/date-input/types.d.ts +86 -22
  93. package/dialog/Dialog.d.ts +1 -1
  94. package/dialog/Dialog.js +68 -130
  95. package/dialog/Dialog.stories.tsx +320 -167
  96. package/dialog/Dialog.test.js +287 -20
  97. package/dialog/types.d.ts +18 -25
  98. package/dropdown/Dropdown.d.ts +1 -1
  99. package/dropdown/Dropdown.js +248 -307
  100. package/dropdown/Dropdown.stories.tsx +245 -56
  101. package/dropdown/Dropdown.test.js +575 -165
  102. package/dropdown/DropdownMenu.d.ts +4 -0
  103. package/dropdown/DropdownMenu.js +63 -0
  104. package/dropdown/DropdownMenuItem.d.ts +4 -0
  105. package/dropdown/DropdownMenuItem.js +67 -0
  106. package/dropdown/types.d.ts +32 -14
  107. package/file-input/FileInput.d.ts +2 -2
  108. package/file-input/FileInput.js +246 -357
  109. package/file-input/FileInput.stories.tsx +123 -12
  110. package/file-input/FileInput.test.js +369 -367
  111. package/file-input/FileItem.d.ts +4 -14
  112. package/file-input/FileItem.js +50 -99
  113. package/file-input/types.d.ts +25 -8
  114. package/flex/Flex.d.ts +4 -0
  115. package/flex/Flex.js +57 -0
  116. package/flex/Flex.stories.tsx +112 -0
  117. package/flex/types.d.ts +97 -0
  118. package/footer/Footer.d.ts +1 -1
  119. package/footer/Footer.js +70 -190
  120. package/footer/Footer.stories.tsx +60 -19
  121. package/footer/Footer.test.js +33 -57
  122. package/footer/Icons.d.ts +3 -2
  123. package/footer/Icons.js +67 -8
  124. package/footer/types.d.ts +25 -26
  125. package/grid/Grid.d.ts +7 -0
  126. package/grid/Grid.js +76 -0
  127. package/grid/Grid.stories.tsx +219 -0
  128. package/grid/types.d.ts +115 -0
  129. package/header/Header.d.ts +4 -3
  130. package/header/Header.js +99 -203
  131. package/header/Header.stories.tsx +152 -63
  132. package/header/Header.test.js +31 -28
  133. package/header/Icons.d.ts +2 -2
  134. package/header/Icons.js +4 -9
  135. package/header/types.d.ts +5 -19
  136. package/heading/Heading.js +10 -32
  137. package/heading/Heading.test.js +71 -88
  138. package/heading/types.d.ts +7 -7
  139. package/image/Image.d.ts +4 -0
  140. package/image/Image.js +70 -0
  141. package/image/Image.stories.tsx +129 -0
  142. package/image/types.d.ts +72 -0
  143. package/image/types.js +5 -0
  144. package/inset/Inset.js +14 -55
  145. package/inset/Inset.stories.tsx +37 -36
  146. package/inset/types.d.ts +26 -2
  147. package/layout/ApplicationLayout.d.ts +16 -6
  148. package/layout/ApplicationLayout.js +84 -181
  149. package/layout/ApplicationLayout.stories.tsx +85 -94
  150. package/layout/Icons.d.ts +8 -0
  151. package/layout/Icons.js +51 -48
  152. package/layout/SidenavContext.d.ts +5 -0
  153. package/layout/SidenavContext.js +13 -0
  154. package/layout/types.d.ts +19 -35
  155. package/link/Link.d.ts +3 -2
  156. package/link/Link.js +61 -99
  157. package/link/Link.stories.tsx +155 -53
  158. package/link/Link.test.js +25 -53
  159. package/link/types.d.ts +15 -31
  160. package/main.d.ts +15 -13
  161. package/main.js +72 -101
  162. package/nav-tabs/NavTabs.d.ts +8 -0
  163. package/nav-tabs/NavTabs.js +93 -0
  164. package/nav-tabs/NavTabs.stories.tsx +276 -0
  165. package/nav-tabs/NavTabs.test.js +76 -0
  166. package/nav-tabs/Tab.d.ts +4 -0
  167. package/nav-tabs/Tab.js +118 -0
  168. package/nav-tabs/types.d.ts +52 -0
  169. package/nav-tabs/types.js +5 -0
  170. package/number-input/NumberInput.d.ts +7 -0
  171. package/number-input/NumberInput.js +48 -45
  172. package/number-input/NumberInput.stories.tsx +44 -28
  173. package/number-input/NumberInput.test.js +862 -381
  174. package/number-input/types.d.ts +28 -15
  175. package/package.json +46 -47
  176. package/paginator/Icons.d.ts +5 -0
  177. package/paginator/Icons.js +21 -47
  178. package/paginator/Paginator.js +34 -91
  179. package/paginator/Paginator.stories.tsx +24 -0
  180. package/paginator/Paginator.test.js +280 -211
  181. package/paginator/types.d.ts +3 -3
  182. package/paragraph/Paragraph.d.ts +5 -0
  183. package/paragraph/Paragraph.js +22 -0
  184. package/paragraph/Paragraph.stories.tsx +27 -0
  185. package/password-input/Icons.d.ts +6 -0
  186. package/password-input/Icons.js +35 -0
  187. package/password-input/PasswordInput.js +57 -123
  188. package/password-input/PasswordInput.stories.tsx +1 -33
  189. package/password-input/PasswordInput.test.js +162 -147
  190. package/password-input/types.d.ts +21 -17
  191. package/progress-bar/ProgressBar.js +65 -91
  192. package/progress-bar/ProgressBar.stories.tsx +93 -0
  193. package/progress-bar/ProgressBar.test.js +72 -44
  194. package/progress-bar/types.d.ts +3 -3
  195. package/quick-nav/QuickNav.d.ts +4 -0
  196. package/quick-nav/QuickNav.js +94 -0
  197. package/quick-nav/QuickNav.stories.tsx +356 -0
  198. package/quick-nav/types.d.ts +21 -0
  199. package/quick-nav/types.js +5 -0
  200. package/radio-group/Radio.d.ts +1 -1
  201. package/radio-group/Radio.js +59 -76
  202. package/radio-group/RadioGroup.js +72 -116
  203. package/radio-group/RadioGroup.stories.tsx +135 -17
  204. package/radio-group/RadioGroup.test.js +529 -467
  205. package/radio-group/types.d.ts +86 -9
  206. package/resultset-table/Icons.d.ts +7 -0
  207. package/resultset-table/Icons.js +47 -0
  208. package/resultset-table/ResultsetTable.d.ts +7 -0
  209. package/resultset-table/ResultsetTable.js +166 -0
  210. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +152 -30
  211. package/resultset-table/ResultsetTable.test.js +371 -0
  212. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  213. package/resultset-table/types.js +5 -0
  214. package/select/Icons.d.ts +7 -7
  215. package/select/Icons.js +1 -5
  216. package/select/Listbox.d.ts +4 -0
  217. package/select/Listbox.js +143 -0
  218. package/select/Option.js +27 -50
  219. package/select/Select.js +212 -362
  220. package/select/Select.stories.tsx +534 -145
  221. package/select/Select.test.js +2009 -1539
  222. package/select/types.d.ts +53 -27
  223. package/sidenav/Icons.d.ts +7 -0
  224. package/sidenav/Icons.js +47 -0
  225. package/sidenav/Sidenav.d.ts +6 -5
  226. package/sidenav/Sidenav.js +131 -71
  227. package/sidenav/Sidenav.stories.tsx +251 -151
  228. package/sidenav/Sidenav.test.js +26 -45
  229. package/sidenav/types.d.ts +52 -26
  230. package/slider/Slider.d.ts +2 -2
  231. package/slider/Slider.js +148 -180
  232. package/slider/Slider.test.js +198 -73
  233. package/slider/types.d.ts +11 -3
  234. package/spinner/Spinner.js +31 -75
  235. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  236. package/spinner/Spinner.test.js +26 -35
  237. package/spinner/types.d.ts +3 -3
  238. package/status-light/StatusLight.d.ts +4 -0
  239. package/status-light/StatusLight.js +51 -0
  240. package/status-light/StatusLight.stories.tsx +74 -0
  241. package/status-light/StatusLight.test.js +25 -0
  242. package/status-light/types.d.ts +17 -0
  243. package/status-light/types.js +5 -0
  244. package/switch/Switch.d.ts +2 -2
  245. package/switch/Switch.js +149 -114
  246. package/switch/Switch.stories.tsx +44 -67
  247. package/switch/Switch.test.js +146 -39
  248. package/switch/types.d.ts +13 -5
  249. package/table/DropdownTheme.js +62 -0
  250. package/table/Table.d.ts +6 -2
  251. package/table/Table.js +87 -35
  252. package/table/Table.stories.tsx +658 -0
  253. package/table/Table.test.js +95 -8
  254. package/table/types.d.ts +48 -6
  255. package/tabs/Tab.d.ts +4 -0
  256. package/tabs/Tab.js +116 -0
  257. package/tabs/Tabs.d.ts +1 -1
  258. package/tabs/Tabs.js +316 -145
  259. package/tabs/Tabs.stories.tsx +120 -14
  260. package/tabs/Tabs.test.js +238 -67
  261. package/tabs/types.d.ts +29 -15
  262. package/tag/Tag.js +41 -78
  263. package/tag/Tag.stories.tsx +25 -8
  264. package/tag/Tag.test.js +20 -31
  265. package/tag/types.d.ts +7 -7
  266. package/text-input/Icons.d.ts +8 -0
  267. package/text-input/Icons.js +56 -0
  268. package/text-input/Suggestion.d.ts +4 -0
  269. package/text-input/Suggestion.js +67 -0
  270. package/text-input/Suggestions.d.ts +4 -0
  271. package/text-input/Suggestions.js +84 -0
  272. package/text-input/TextInput.js +325 -556
  273. package/text-input/TextInput.stories.tsx +272 -281
  274. package/text-input/TextInput.test.js +1442 -1377
  275. package/text-input/types.d.ts +70 -24
  276. package/textarea/Textarea.js +82 -134
  277. package/textarea/Textarea.stories.tsx +174 -0
  278. package/textarea/Textarea.test.js +168 -198
  279. package/textarea/types.d.ts +27 -16
  280. package/toggle-group/ToggleGroup.d.ts +2 -2
  281. package/toggle-group/ToggleGroup.js +92 -105
  282. package/toggle-group/ToggleGroup.stories.tsx +53 -8
  283. package/toggle-group/ToggleGroup.test.js +78 -66
  284. package/toggle-group/types.d.ts +34 -17
  285. package/typography/Typography.d.ts +4 -0
  286. package/typography/Typography.js +23 -0
  287. package/typography/Typography.stories.tsx +198 -0
  288. package/typography/types.d.ts +18 -0
  289. package/typography/types.js +5 -0
  290. package/useTheme.d.ts +1147 -1
  291. package/useTheme.js +4 -11
  292. package/useTranslatedLabels.d.ts +85 -0
  293. package/useTranslatedLabels.js +14 -0
  294. package/utils/BaseTypography.d.ts +21 -0
  295. package/utils/BaseTypography.js +94 -0
  296. package/utils/FocusLock.d.ts +13 -0
  297. package/utils/FocusLock.js +124 -0
  298. package/wizard/Wizard.d.ts +1 -1
  299. package/wizard/Wizard.js +70 -101
  300. package/wizard/Wizard.stories.tsx +48 -19
  301. package/wizard/Wizard.test.js +73 -87
  302. package/wizard/types.d.ts +12 -8
  303. package/ThemeContext.d.ts +0 -10
  304. package/ThemeContext.js +0 -243
  305. package/card/ice-cream.jpg +0 -0
  306. package/common/RequiredComponent.js +0 -32
  307. package/list/List.d.ts +0 -4
  308. package/list/List.js +0 -47
  309. package/list/List.stories.tsx +0 -95
  310. package/list/types.d.ts +0 -7
  311. package/number-input/NumberInputContext.d.ts +0 -4
  312. package/number-input/NumberInputContext.js +0 -19
  313. package/number-input/numberInputContextTypes.d.ts +0 -19
  314. package/progress-bar/ProgressBar.stories.jsx +0 -58
  315. package/radio/Radio.d.ts +0 -4
  316. package/radio/Radio.js +0 -174
  317. package/radio/Radio.stories.tsx +0 -192
  318. package/radio/Radio.test.js +0 -71
  319. package/radio/types.d.ts +0 -54
  320. package/resultsetTable/ResultsetTable.d.ts +0 -4
  321. package/resultsetTable/ResultsetTable.js +0 -254
  322. package/resultsetTable/ResultsetTable.test.js +0 -306
  323. package/row/Row.d.ts +0 -3
  324. package/row/Row.js +0 -127
  325. package/row/Row.stories.tsx +0 -237
  326. package/row/types.d.ts +0 -10
  327. package/slider/Slider.stories.tsx +0 -177
  328. package/stack/Stack.d.ts +0 -3
  329. package/stack/Stack.js +0 -97
  330. package/stack/Stack.stories.tsx +0 -164
  331. package/stack/types.d.ts +0 -9
  332. package/table/Table.stories.jsx +0 -277
  333. package/text/Text.d.ts +0 -7
  334. package/text/Text.js +0 -30
  335. package/text/Text.stories.tsx +0 -19
  336. package/textarea/Textarea.stories.jsx +0 -157
  337. /package/{list → action-icon}/types.js +0 -0
  338. /package/{radio → bulleted-list}/types.js +0 -0
  339. /package/{resultsetTable → container}/types.js +0 -0
  340. /package/{row → contextual-menu}/types.js +0 -0
  341. /package/{stack → flex}/types.js +0 -0
  342. /package/{number-input/numberInputContextTypes.js → grid/types.js} +0 -0
package/button/Button.js CHANGED
@@ -1,124 +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
40
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
57
41
  theme: colorsTheme.button
58
- }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
59
- type: type,
60
- margin: margin,
61
- mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
42
+ }, /*#__PURE__*/_react["default"].createElement(Button, {
43
+ "aria-label": title,
62
44
  disabled: disabled,
63
- iconPosition: iconPosition,
64
- size: size,
65
- backgroundType: backgroundType,
66
- icon: icon
67
- }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
68
- type: type,
69
- disabled: disabled,
70
- disableRipple: true,
71
- "aria-disabled": disabled,
72
- tabIndex: disabled ? -1 : tabIndex,
73
45
  onClick: function onClick() {
74
46
  _onClick();
75
- }
76
- }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
77
- icon: icon,
78
- iconPosition: iconPosition
79
- }, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
80
- label: label,
81
- iconPosition: iconPosition
82
- }, 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", {
83
58
  src: icon
84
- }) : icon))));
59
+ }) : icon)));
85
60
  };
86
-
87
61
  var sizes = {
88
62
  small: "42px",
89
63
  medium: "120px",
90
64
  large: "240px",
91
65
  fillParent: "100%",
92
- fitContent: "unset"
66
+ fitContent: "fit-content"
93
67
  };
94
-
95
68
  var calculateWidth = function calculateWidth(margin, size) {
96
- if (size === "fillParent") {
97
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
98
- }
99
-
100
- 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];
101
70
  };
102
-
103
- 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) {
104
- return props.theme.labelFontLineHeight;
105
- }, function (props) {
106
- return props.theme.fontSize;
107
- }, function (props) {
108
- 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";
109
79
  }, function (props) {
110
- return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
111
- });
112
-
113
- 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) {
114
- return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
80
+ return calculateWidth(props.margin, props.size);
115
81
  }, function (props) {
116
- return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
117
- });
118
-
119
- var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
120
-
121
- 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 flex-direction: ", ";\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"])), function (props) {
122
82
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
123
83
  }, function (props) {
124
84
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -128,20 +88,14 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
128
88
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
129
89
  }, function (props) {
130
90
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
131
- }, function (props) {
132
- return calculateWidth(props.margin, props.size);
133
- }, function (props) {
134
- return props.disabled && "not-allowed" || "pointer";
135
- }, function (props) {
136
- return props.theme.paddingLeft;
137
- }, function (props) {
138
- return props.theme.paddingRight;
139
91
  }, function (props) {
140
92
  return props.theme.paddingTop;
141
93
  }, function (props) {
142
94
  return props.theme.paddingBottom;
143
95
  }, function (props) {
144
- return props.iconPosition === "after" && "row" || "row-reverse";
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)");
145
99
  }, function (props) {
146
100
  return props.theme.fontFamily;
147
101
  }, function (props) {
@@ -151,21 +105,16 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
151
105
  }, function (props) {
152
106
  return props.theme.labelLetterSpacing;
153
107
  }, function (props) {
154
- return props.size === "small" && "calc(100% - 22px)" || "unset";
108
+ return props.theme.focusBorderColor;
155
109
  }, function (props) {
156
- return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
110
+ return getButtonStyles(props.$mode, props.theme);
157
111
  }, function (props) {
158
- var mode = props.mode,
159
- backgroundType = props.backgroundType;
160
-
161
- if (mode === "primary") {
162
- return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, "!important; \n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
163
- } else if (mode === "secondary") {
164
- return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
165
- } else if (mode === "text") {
166
- 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 ");
167
- }
112
+ return getButtonStates(props.disabled, props.$mode, props.theme);
168
113
  });
169
-
170
- var _default = DxcButton;
171
- 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
  );