@dxc-technology/halstack-react 0.0.0-b50ba80 → 0.0.0-b5ec444

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