@dxc-technology/halstack-react 0.0.0-1c45756 → 0.0.0-1c9e3f9

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 (362) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1237 -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 +118 -194
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  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 +24 -60
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +75 -0
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +4 -0
  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 +54 -0
  32. package/bleed/Bleed.d.ts +3 -0
  33. package/bleed/Bleed.js +43 -0
  34. package/bleed/Bleed.stories.tsx +342 -0
  35. package/bleed/types.d.ts +37 -0
  36. package/box/Box.d.ts +1 -1
  37. package/box/Box.js +31 -82
  38. package/box/Box.stories.tsx +38 -51
  39. package/box/Box.test.js +13 -0
  40. package/box/types.d.ts +3 -14
  41. package/bulleted-list/BulletedList.d.ts +7 -0
  42. package/bulleted-list/BulletedList.js +89 -0
  43. package/bulleted-list/BulletedList.stories.tsx +115 -0
  44. package/bulleted-list/types.d.ts +38 -0
  45. package/bulleted-list/types.js +5 -0
  46. package/button/Button.d.ts +1 -1
  47. package/button/Button.js +64 -123
  48. package/button/Button.stories.tsx +164 -96
  49. package/button/Button.test.js +38 -0
  50. package/button/types.d.ts +12 -12
  51. package/card/Card.d.ts +1 -1
  52. package/card/Card.js +59 -103
  53. package/card/Card.stories.tsx +13 -43
  54. package/card/Card.test.js +39 -0
  55. package/card/types.d.ts +6 -11
  56. package/checkbox/Checkbox.d.ts +2 -2
  57. package/checkbox/Checkbox.js +145 -183
  58. package/checkbox/Checkbox.stories.tsx +166 -136
  59. package/checkbox/Checkbox.test.js +199 -0
  60. package/checkbox/types.d.ts +19 -7
  61. package/chip/Chip.d.ts +4 -0
  62. package/chip/Chip.js +48 -148
  63. package/chip/Chip.stories.tsx +123 -30
  64. package/chip/Chip.test.js +41 -0
  65. package/chip/types.d.ts +45 -0
  66. package/chip/types.js +5 -0
  67. package/common/OpenSans.css +68 -80
  68. package/common/coreTokens.d.ts +237 -0
  69. package/common/coreTokens.js +184 -0
  70. package/common/utils.d.ts +1 -0
  71. package/common/utils.js +6 -12
  72. package/common/variables.d.ts +1383 -0
  73. package/common/variables.js +1021 -1344
  74. package/container/Container.d.ts +4 -0
  75. package/container/Container.js +194 -0
  76. package/container/Container.stories.tsx +214 -0
  77. package/container/types.d.ts +74 -0
  78. package/container/types.js +5 -0
  79. package/date-input/Calendar.d.ts +4 -0
  80. package/date-input/Calendar.js +214 -0
  81. package/date-input/DateInput.js +175 -313
  82. package/date-input/DateInput.stories.tsx +203 -56
  83. package/date-input/DateInput.test.js +808 -0
  84. package/date-input/DatePicker.d.ts +4 -0
  85. package/date-input/DatePicker.js +115 -0
  86. package/date-input/Icons.d.ts +6 -0
  87. package/date-input/Icons.js +58 -0
  88. package/date-input/YearPicker.d.ts +4 -0
  89. package/date-input/YearPicker.js +100 -0
  90. package/date-input/types.d.ts +86 -22
  91. package/dialog/Dialog.d.ts +1 -1
  92. package/dialog/Dialog.js +69 -130
  93. package/dialog/Dialog.stories.tsx +320 -167
  94. package/dialog/Dialog.test.js +307 -0
  95. package/dialog/types.d.ts +18 -25
  96. package/dropdown/Dropdown.d.ts +1 -1
  97. package/dropdown/Dropdown.js +250 -331
  98. package/dropdown/Dropdown.stories.tsx +438 -0
  99. package/dropdown/Dropdown.test.js +599 -0
  100. package/dropdown/DropdownMenu.d.ts +4 -0
  101. package/dropdown/DropdownMenu.js +63 -0
  102. package/dropdown/DropdownMenuItem.d.ts +4 -0
  103. package/dropdown/DropdownMenuItem.js +67 -0
  104. package/dropdown/types.d.ts +37 -28
  105. package/file-input/FileInput.d.ts +2 -2
  106. package/file-input/FileInput.js +267 -299
  107. package/file-input/FileInput.stories.tsx +618 -0
  108. package/file-input/FileInput.test.js +459 -0
  109. package/file-input/FileItem.d.ts +4 -14
  110. package/file-input/FileItem.js +52 -101
  111. package/file-input/types.d.ts +53 -11
  112. package/flex/Flex.d.ts +4 -0
  113. package/flex/Flex.js +57 -0
  114. package/flex/Flex.stories.tsx +112 -0
  115. package/flex/types.d.ts +97 -0
  116. package/flex/types.js +5 -0
  117. package/footer/Footer.d.ts +1 -1
  118. package/footer/Footer.js +73 -201
  119. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +57 -37
  120. package/footer/Footer.test.js +85 -0
  121. package/footer/Icons.d.ts +3 -0
  122. package/footer/Icons.js +67 -8
  123. package/footer/types.d.ts +40 -37
  124. package/grid/Grid.d.ts +7 -0
  125. package/grid/Grid.js +76 -0
  126. package/grid/Grid.stories.tsx +219 -0
  127. package/grid/types.d.ts +115 -0
  128. package/grid/types.js +5 -0
  129. package/header/Header.d.ts +4 -3
  130. package/header/Header.js +100 -204
  131. package/header/Header.stories.tsx +152 -63
  132. package/header/Header.test.js +66 -0
  133. package/header/Icons.d.ts +2 -0
  134. package/header/Icons.js +4 -9
  135. package/header/types.d.ts +5 -19
  136. package/heading/Heading.js +11 -33
  137. package/heading/Heading.stories.tsx +3 -2
  138. package/heading/Heading.test.js +169 -0
  139. package/heading/types.d.ts +7 -7
  140. package/image/Image.d.ts +4 -0
  141. package/image/Image.js +70 -0
  142. package/image/Image.stories.tsx +127 -0
  143. package/image/types.d.ts +72 -0
  144. package/image/types.js +5 -0
  145. package/inset/Inset.d.ts +3 -0
  146. package/inset/Inset.js +43 -0
  147. package/inset/Inset.stories.tsx +230 -0
  148. package/inset/types.d.ts +37 -0
  149. package/inset/types.js +5 -0
  150. package/layout/ApplicationLayout.d.ts +20 -0
  151. package/layout/ApplicationLayout.js +83 -184
  152. package/layout/ApplicationLayout.stories.tsx +162 -0
  153. package/layout/Icons.d.ts +8 -0
  154. package/layout/Icons.js +51 -48
  155. package/layout/SidenavContext.d.ts +5 -0
  156. package/layout/SidenavContext.js +13 -0
  157. package/layout/types.d.ts +41 -0
  158. package/layout/types.js +5 -0
  159. package/link/Link.d.ts +3 -2
  160. package/link/Link.js +65 -111
  161. package/link/Link.stories.tsx +159 -52
  162. package/link/Link.test.js +63 -0
  163. package/link/types.d.ts +15 -35
  164. package/main.d.ts +17 -14
  165. package/main.js +78 -98
  166. package/nav-tabs/NavTabs.d.ts +8 -0
  167. package/nav-tabs/NavTabs.js +93 -0
  168. package/nav-tabs/NavTabs.stories.tsx +276 -0
  169. package/nav-tabs/NavTabs.test.js +76 -0
  170. package/nav-tabs/Tab.d.ts +4 -0
  171. package/nav-tabs/Tab.js +118 -0
  172. package/nav-tabs/types.d.ts +52 -0
  173. package/nav-tabs/types.js +5 -0
  174. package/number-input/NumberInput.d.ts +7 -0
  175. package/number-input/NumberInput.js +28 -47
  176. package/number-input/NumberInput.stories.tsx +44 -28
  177. package/number-input/NumberInput.test.js +830 -0
  178. package/number-input/types.d.ts +28 -15
  179. package/package.json +46 -45
  180. package/paginator/Icons.d.ts +5 -0
  181. package/paginator/Icons.js +21 -47
  182. package/paginator/Paginator.js +35 -98
  183. package/paginator/Paginator.stories.tsx +24 -0
  184. package/paginator/Paginator.test.js +335 -0
  185. package/paginator/types.d.ts +3 -3
  186. package/paragraph/Paragraph.d.ts +5 -0
  187. package/paragraph/Paragraph.js +22 -0
  188. package/paragraph/Paragraph.stories.tsx +27 -0
  189. package/password-input/Icons.d.ts +6 -0
  190. package/password-input/Icons.js +35 -0
  191. package/password-input/PasswordInput.js +58 -125
  192. package/password-input/PasswordInput.stories.tsx +3 -35
  193. package/password-input/PasswordInput.test.js +198 -0
  194. package/password-input/types.d.ts +21 -17
  195. package/progress-bar/ProgressBar.js +66 -92
  196. package/progress-bar/ProgressBar.stories.tsx +93 -0
  197. package/progress-bar/ProgressBar.test.js +93 -0
  198. package/progress-bar/types.d.ts +3 -3
  199. package/quick-nav/QuickNav.d.ts +4 -0
  200. package/quick-nav/QuickNav.js +94 -0
  201. package/quick-nav/QuickNav.stories.tsx +356 -0
  202. package/quick-nav/types.d.ts +21 -0
  203. package/quick-nav/types.js +5 -0
  204. package/radio-group/Radio.d.ts +4 -0
  205. package/radio-group/Radio.js +124 -0
  206. package/radio-group/RadioGroup.d.ts +4 -0
  207. package/radio-group/RadioGroup.js +235 -0
  208. package/radio-group/RadioGroup.stories.tsx +214 -0
  209. package/radio-group/RadioGroup.test.js +756 -0
  210. package/radio-group/types.d.ts +114 -0
  211. package/radio-group/types.js +5 -0
  212. package/resultset-table/Icons.d.ts +7 -0
  213. package/resultset-table/Icons.js +47 -0
  214. package/resultset-table/ResultsetTable.d.ts +7 -0
  215. package/resultset-table/ResultsetTable.js +167 -0
  216. package/resultset-table/ResultsetTable.stories.tsx +381 -0
  217. package/resultset-table/ResultsetTable.test.js +371 -0
  218. package/{resultsetTable → resultset-table}/types.d.ts +15 -9
  219. package/resultset-table/types.js +5 -0
  220. package/select/Icons.d.ts +10 -0
  221. package/select/Icons.js +89 -0
  222. package/select/Listbox.d.ts +4 -0
  223. package/select/Listbox.js +143 -0
  224. package/select/Option.d.ts +4 -0
  225. package/select/Option.js +87 -0
  226. package/select/Select.d.ts +4 -0
  227. package/select/Select.js +240 -515
  228. package/select/Select.stories.tsx +603 -204
  229. package/select/Select.test.js +2370 -0
  230. package/select/types.d.ts +209 -0
  231. package/select/types.js +5 -0
  232. package/sidenav/Icons.d.ts +7 -0
  233. package/sidenav/Icons.js +47 -0
  234. package/sidenav/Sidenav.d.ts +6 -5
  235. package/sidenav/Sidenav.js +132 -72
  236. package/sidenav/Sidenav.stories.tsx +251 -134
  237. package/sidenav/Sidenav.test.js +37 -0
  238. package/sidenav/types.d.ts +52 -26
  239. package/slider/Slider.d.ts +2 -2
  240. package/slider/Slider.js +149 -181
  241. package/slider/Slider.test.js +254 -0
  242. package/slider/types.d.ts +11 -3
  243. package/spinner/Spinner.js +32 -76
  244. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  245. package/spinner/Spinner.test.js +55 -0
  246. package/spinner/types.d.ts +3 -3
  247. package/status-light/StatusLight.d.ts +4 -0
  248. package/status-light/StatusLight.js +51 -0
  249. package/status-light/StatusLight.stories.tsx +74 -0
  250. package/status-light/StatusLight.test.js +25 -0
  251. package/status-light/types.d.ts +17 -0
  252. package/status-light/types.js +5 -0
  253. package/switch/Switch.d.ts +2 -2
  254. package/switch/Switch.js +150 -115
  255. package/switch/Switch.stories.tsx +45 -68
  256. package/switch/Switch.test.js +180 -0
  257. package/switch/types.d.ts +13 -5
  258. package/table/ActionsCell.d.ts +4 -0
  259. package/table/ActionsCell.js +55 -0
  260. package/table/DropdownTheme.js +57 -0
  261. package/table/Table.d.ts +4 -1
  262. package/table/Table.js +28 -33
  263. package/table/Table.stories.tsx +615 -0
  264. package/table/Table.test.js +113 -0
  265. package/table/types.d.ts +45 -6
  266. package/tabs/Tab.d.ts +4 -0
  267. package/tabs/Tab.js +116 -0
  268. package/tabs/Tabs.d.ts +1 -1
  269. package/tabs/Tabs.js +318 -147
  270. package/tabs/Tabs.stories.tsx +123 -18
  271. package/tabs/Tabs.test.js +294 -0
  272. package/tabs/types.d.ts +46 -24
  273. package/tag/Tag.d.ts +1 -1
  274. package/tag/Tag.js +44 -86
  275. package/tag/Tag.stories.tsx +38 -28
  276. package/tag/Tag.test.js +49 -0
  277. package/tag/types.d.ts +25 -16
  278. package/text-input/Icons.d.ts +8 -0
  279. package/text-input/Icons.js +56 -0
  280. package/text-input/Suggestion.d.ts +4 -0
  281. package/text-input/Suggestion.js +67 -0
  282. package/text-input/Suggestions.d.ts +4 -0
  283. package/text-input/Suggestions.js +84 -0
  284. package/text-input/TextInput.js +331 -545
  285. package/text-input/TextInput.stories.tsx +465 -0
  286. package/text-input/TextInput.test.js +1739 -0
  287. package/text-input/types.d.ts +71 -25
  288. package/textarea/Textarea.d.ts +4 -0
  289. package/textarea/Textarea.js +95 -177
  290. package/textarea/Textarea.stories.tsx +174 -0
  291. package/textarea/Textarea.test.js +406 -0
  292. package/textarea/types.d.ts +141 -0
  293. package/textarea/types.js +5 -0
  294. package/toggle-group/ToggleGroup.d.ts +2 -2
  295. package/toggle-group/ToggleGroup.js +97 -113
  296. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  297. package/toggle-group/ToggleGroup.test.js +137 -0
  298. package/toggle-group/types.d.ts +67 -37
  299. package/typography/Typography.d.ts +4 -0
  300. package/typography/Typography.js +23 -0
  301. package/typography/Typography.stories.tsx +198 -0
  302. package/typography/types.d.ts +18 -0
  303. package/typography/types.js +5 -0
  304. package/useTheme.d.ts +1136 -0
  305. package/useTheme.js +4 -11
  306. package/useTranslatedLabels.d.ts +85 -0
  307. package/useTranslatedLabels.js +14 -0
  308. package/utils/BaseTypography.d.ts +21 -0
  309. package/utils/BaseTypography.js +94 -0
  310. package/utils/FocusLock.d.ts +13 -0
  311. package/utils/FocusLock.js +124 -0
  312. package/wizard/Wizard.d.ts +1 -1
  313. package/wizard/Wizard.js +123 -104
  314. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  315. package/wizard/Wizard.test.js +114 -0
  316. package/wizard/types.d.ts +14 -14
  317. package/ThemeContext.js +0 -246
  318. package/V3Select/V3Select.js +0 -455
  319. package/V3Select/index.d.ts +0 -27
  320. package/V3Textarea/V3Textarea.js +0 -260
  321. package/V3Textarea/index.d.ts +0 -27
  322. package/card/ice-cream.jpg +0 -0
  323. package/chip/index.d.ts +0 -22
  324. package/common/RequiredComponent.js +0 -32
  325. package/date/Date.js +0 -373
  326. package/date/index.d.ts +0 -27
  327. package/input-text/Icons.js +0 -22
  328. package/input-text/InputText.js +0 -611
  329. package/input-text/index.d.ts +0 -36
  330. package/number-input/NumberInputContext.d.ts +0 -4
  331. package/number-input/NumberInputContext.js +0 -19
  332. package/number-input/numberInputContextTypes.d.ts +0 -19
  333. package/progress-bar/ProgressBar.stories.jsx +0 -58
  334. package/radio/Radio.d.ts +0 -4
  335. package/radio/Radio.js +0 -174
  336. package/radio/Radio.stories.tsx +0 -192
  337. package/radio/types.d.ts +0 -54
  338. package/resultsetTable/ResultsetTable.d.ts +0 -4
  339. package/resultsetTable/ResultsetTable.js +0 -251
  340. package/select/index.d.ts +0 -131
  341. package/slider/Slider.stories.tsx +0 -177
  342. package/table/Table.stories.jsx +0 -276
  343. package/textarea/Textarea.stories.jsx +0 -135
  344. package/textarea/index.d.ts +0 -127
  345. package/toggle/Toggle.js +0 -186
  346. package/toggle/index.d.ts +0 -21
  347. package/upload/Upload.js +0 -201
  348. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  349. package/upload/buttons-upload/Icons.js +0 -40
  350. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  351. package/upload/dragAndDropArea/Icons.js +0 -39
  352. package/upload/file-upload/FileToUpload.js +0 -115
  353. package/upload/file-upload/Icons.js +0 -66
  354. package/upload/files-upload/FilesToUpload.js +0 -109
  355. package/upload/index.d.ts +0 -15
  356. package/upload/transaction/Icons.js +0 -160
  357. package/upload/transaction/Transaction.js +0 -104
  358. package/upload/transactions/Transactions.js +0 -94
  359. package/wizard/Icons.js +0 -65
  360. /package/{radio → action-icon}/types.js +0 -0
  361. /package/{resultsetTable → badge}/types.js +0 -0
  362. /package/{number-input/numberInputContextTypes.js → bleed/types.js} +0 -0
package/button/Button.js CHANGED
@@ -1,132 +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
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
19
-
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
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
-
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
27
-
28
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
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
-
13
+ var _variables = require("../common/variables");
14
+ var _utils = require("../common/utils");
15
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
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$iconSrc = _ref.iconSrc,
49
- iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
50
- _onClick = _ref.onClick,
51
- margin = _ref.margin,
52
- _ref$size = _ref.size,
53
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
54
- _ref$tabIndex = _ref.tabIndex,
55
- 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;
56
39
  var colorsTheme = (0, _useTheme["default"])();
57
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
58
40
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
59
41
  theme: colorsTheme.button
60
- }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
61
- type: type,
62
- margin: margin,
63
- mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
64
- disabled: disabled,
65
- iconPosition: iconPosition,
66
- size: size,
67
- backgroundType: backgroundType,
68
- icon: icon
69
- }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
70
- type: type,
42
+ }, /*#__PURE__*/_react["default"].createElement(Button, {
43
+ "aria-label": title,
71
44
  disabled: disabled,
72
- disableRipple: true,
73
- "aria-disabled": disabled,
74
- tabIndex: disabled ? -1 : tabIndex,
75
45
  onClick: function onClick() {
76
46
  _onClick();
77
- }
78
- }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
79
- icon: icon,
80
- iconPosition: iconPosition
81
- }, label), icon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
82
- label: label,
83
- iconPosition: iconPosition
84
- }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
85
- label: label,
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,
86
54
  iconPosition: iconPosition,
87
- src: iconSrc
88
- }))));
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", {
58
+ src: icon
59
+ }) : icon)));
89
60
  };
90
-
91
61
  var sizes = {
92
62
  small: "42px",
93
63
  medium: "120px",
94
64
  large: "240px",
95
65
  fillParent: "100%",
96
- fitContent: "unset"
66
+ fitContent: "fit-content"
97
67
  };
98
-
99
68
  var calculateWidth = function calculateWidth(margin, size) {
100
- if (size === "fillParent") {
101
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
102
- }
103
-
104
- 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];
105
70
  };
106
-
107
- 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) {
108
- return props.theme.labelFontLineHeight;
109
- }, function (props) {
110
- return props.theme.fontSize;
111
- }, function (props) {
112
- return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
113
- }, function (props) {
114
- return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
115
- });
116
-
117
- 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) {
118
- return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
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";
119
79
  }, function (props) {
120
- return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
121
- });
122
-
123
- var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
124
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
80
+ return calculateWidth(props.margin, props.size);
125
81
  }, function (props) {
126
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
127
- });
128
-
129
- 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) {
130
82
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
131
83
  }, function (props) {
132
84
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -136,20 +88,14 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
136
88
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
137
89
  }, function (props) {
138
90
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
139
- }, function (props) {
140
- return calculateWidth(props.margin, props.size);
141
- }, function (props) {
142
- return props.disabled && "not-allowed" || "pointer";
143
- }, function (props) {
144
- return props.theme.paddingLeft;
145
- }, function (props) {
146
- return props.theme.paddingRight;
147
91
  }, function (props) {
148
92
  return props.theme.paddingTop;
149
93
  }, function (props) {
150
94
  return props.theme.paddingBottom;
151
95
  }, function (props) {
152
- 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)");
153
99
  }, function (props) {
154
100
  return props.theme.fontFamily;
155
101
  }, function (props) {
@@ -159,21 +105,16 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
159
105
  }, function (props) {
160
106
  return props.theme.labelLetterSpacing;
161
107
  }, function (props) {
162
- return props.size === "small" && "calc(100% - 22px)" || "unset";
108
+ return props.theme.focusBorderColor;
163
109
  }, function (props) {
164
- return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
110
+ return getButtonStyles(props.$mode, props.theme);
165
111
  }, function (props) {
166
- var mode = props.mode,
167
- backgroundType = props.backgroundType;
168
-
169
- if (mode === "primary") {
170
- 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 ");
171
- } else if (mode === "secondary") {
172
- 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 ");
173
- } else if (mode === "text") {
174
- 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 ");
175
- }
112
+ return getButtonStates(props.disabled, props.$mode, props.theme);
176
113
  });
177
-
178
- var _default = DxcButton;
179
- 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,23 +1,60 @@
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",
10
10
  component: DxcButton,
11
11
  };
12
12
 
13
- const iconSVG = () => {
14
- return (
15
- <svg viewBox="0 0 24 24" fill="currentColor">
16
- <path d="M0 0h24v24H0z" fill="none" />
17
- <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
18
- </svg>
19
- );
13
+ const iconSVG = (
14
+ <svg width="24px" height="24px" viewBox="0 0 24 24" fill="currentColor">
15
+ <path d="M0 0h24v24H0z" fill="none" />
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
+ </svg>
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
+ },
20
56
  };
57
+
21
58
  export const Chromatic = () => (
22
59
  <>
23
60
  <Title title="Primary" theme="light" level={2} />
@@ -39,7 +76,7 @@ export const Chromatic = () => (
39
76
  </ExampleContainer>
40
77
  <ExampleContainer>
41
78
  <Title title="Disabled" theme="light" level={4} />
42
- <DxcButton label="Primary disabled" disabled />
79
+ <DxcButton label="Primary disabled" disabled icon={iconSVG} />
43
80
  </ExampleContainer>
44
81
  <ExampleContainer>
45
82
  <Title title="With left icon" theme="light" level={4} />
@@ -53,6 +90,18 @@ export const Chromatic = () => (
53
90
  <Title title="Only icon" theme="light" level={4} />
54
91
  <DxcButton icon={iconSVG} />
55
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>
56
105
  <Title title="Secondary" theme="light" level={2} />
57
106
  <ExampleContainer>
58
107
  <Title title="Enabled" theme="light" level={4} />
@@ -72,12 +121,19 @@ export const Chromatic = () => (
72
121
  </ExampleContainer>
73
122
  <ExampleContainer>
74
123
  <Title title="Disabled" theme="light" level={4} />
75
- <DxcButton mode="secondary" disabled label="Secondary disabled" />
124
+ <DxcButton mode="secondary" disabled label="Secondary disabled" icon={iconSVG} />
76
125
  </ExampleContainer>
77
126
  <ExampleContainer>
78
127
  <Title title="With icon" theme="light" level={4} />
79
128
  <DxcButton mode="secondary" label="Secondary" icon={iconSVG} />
80
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>
81
137
  <Title title="Text" theme="light" level={2} />
82
138
  <ExampleContainer>
83
139
  <Title title="Enabled" theme="light" level={4} />
@@ -97,91 +153,19 @@ export const Chromatic = () => (
97
153
  </ExampleContainer>
98
154
  <ExampleContainer>
99
155
  <Title title="Disabled" theme="light" level={4} />
100
- <DxcButton mode="text" label="Text disabled" disabled />
156
+ <DxcButton mode="text" label="Text disabled" disabled icon={iconSVG} />
101
157
  </ExampleContainer>
102
158
  <ExampleContainer>
103
159
  <Title title="With icon" theme="light" level={4} />
104
160
  <DxcButton label="Text" mode="text" icon={iconSVG} />
105
161
  </ExampleContainer>
106
- <BackgroundColorProvider color="#333333">
107
- <DarkContainer>
108
- <Title title="Primary" theme="dark" level={2} />
109
- <ExampleContainer>
110
- <Title title="Enabled" theme="dark" level={4} />
111
- <DxcButton label="Primary enabled" />
112
- </ExampleContainer>
113
- <ExampleContainer pseudoState="pseudo-hover">
114
- <Title title="Hovered" theme="dark" level={4} />
115
- <DxcButton label="Primary hovered" />
116
- </ExampleContainer>
117
- <ExampleContainer pseudoState="pseudo-focus">
118
- <Title title="Focused" theme="dark" level={4} />
119
- <DxcButton label="Primary focused" />
120
- </ExampleContainer>
121
- <ExampleContainer pseudoState="pseudo-active">
122
- <Title title="Actived" theme="dark" level={4} />
123
- <DxcButton label="Primary actived" />
124
- </ExampleContainer>
125
- <ExampleContainer>
126
- <Title title="Disabled" theme="dark" level={4} />
127
- <DxcButton label="Primary disabled" disabled />
128
- </ExampleContainer>
129
- <ExampleContainer>
130
- <Title title="With icon" theme="dark" level={4} />
131
- <DxcButton label="Primary" icon={iconSVG} />
132
- </ExampleContainer>
133
- <Title title="Secondary" theme="dark" level={2} />
134
- <ExampleContainer>
135
- <Title title="Enabled" theme="dark" level={4} />
136
- <DxcButton mode="secondary" label="Secondary enabled" />
137
- </ExampleContainer>
138
- <ExampleContainer pseudoState="pseudo-hover">
139
- <Title title="Hovered" theme="dark" level={4} />
140
- <DxcButton mode="secondary" label="Secondary hovered" />
141
- </ExampleContainer>
142
- <ExampleContainer pseudoState="pseudo-focus">
143
- <Title title="Focused" theme="dark" level={4} />
144
- <DxcButton mode="secondary" label="Secondary focused" />
145
- </ExampleContainer>
146
- <ExampleContainer pseudoState="pseudo-active">
147
- <Title title="Actived" theme="dark" level={4} />
148
- <DxcButton mode="secondary" label="Secondary actived" />
149
- </ExampleContainer>
150
- <ExampleContainer>
151
- <Title title="Disabled" theme="dark" level={4} />
152
- <DxcButton mode="secondary" disabled label="Secondary disabled" />
153
- </ExampleContainer>
154
- <ExampleContainer>
155
- <Title title="With icon" theme="dark" level={4} />
156
- <DxcButton mode="secondary" label="Primary" icon={iconSVG} />
157
- </ExampleContainer>
158
- <Title title="Text" theme="dark" level={2} />
159
- <ExampleContainer>
160
- <Title title="Enabled" theme="dark" level={4} />
161
- <DxcButton mode="text" label="Text enabled" />
162
- </ExampleContainer>
163
- <ExampleContainer pseudoState="pseudo-hover">
164
- <Title title="Hovered" theme="dark" level={4} />
165
- <DxcButton mode="text" label="Text hovered" />
166
- </ExampleContainer>
167
- <ExampleContainer pseudoState="pseudo-focus">
168
- <Title title="Focused" theme="dark" level={4} />
169
- <DxcButton mode="text" label="Text focused" />
170
- </ExampleContainer>
171
- <ExampleContainer pseudoState="pseudo-active">
172
- <Title title="Actived" theme="dark" level={4} />
173
- <DxcButton mode="text" label="Text actived" />
174
- </ExampleContainer>
175
- <ExampleContainer>
176
- <Title title="Disabled" theme="dark" level={4} />
177
- <DxcButton mode="text" label="Text disabled" disabled />
178
- </ExampleContainer>
179
- <ExampleContainer>
180
- <Title title="With icon" theme="dark" level={4} />
181
- <DxcButton mode="text" label="Primary" icon={iconSVG} />
182
- </ExampleContainer>
183
- </DarkContainer>
184
- </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>
185
169
  <Title title="Sizes" theme="light" level={2} />
186
170
  <ExampleContainer>
187
171
  <Title title="Small size" theme="light" level={4} />
@@ -189,7 +173,7 @@ export const Chromatic = () => (
189
173
  </ExampleContainer>
190
174
  <ExampleContainer>
191
175
  <Title title="Medium size" theme="light" level={4} />
192
- <DxcButton label="MediumSiz" size="medium" />
176
+ <DxcButton label="MediumSize" size="medium" />
193
177
  </ExampleContainer>
194
178
  <ExampleContainer>
195
179
  <Title title="Medium size with ellipsis" theme="light" level={4} />
@@ -197,11 +181,11 @@ export const Chromatic = () => (
197
181
  </ExampleContainer>
198
182
  <ExampleContainer>
199
183
  <Title title="Medium size icon after" theme="light" level={4} />
200
- <DxcButton label="Mediu" iconPosition="after" icon={iconSVG} size="medium" />
184
+ <DxcButton label="Medium" iconPosition="after" icon={iconSVG} size="medium" />
201
185
  </ExampleContainer>
202
186
  <ExampleContainer>
203
187
  <Title title="Medium size icon before" theme="light" level={4} />
204
- <DxcButton label="Mediu" iconPosition="before" icon={iconSVG} size="medium" />
188
+ <DxcButton label="Medium" iconPosition="before" icon={iconSVG} size="medium" />
205
189
  </ExampleContainer>
206
190
  <ExampleContainer>
207
191
  <Title title="Medium size icon after with ellipsis" theme="light" level={4} />
@@ -221,11 +205,11 @@ export const Chromatic = () => (
221
205
  </ExampleContainer>
222
206
  <ExampleContainer>
223
207
  <Title title="Large size icon after" theme="light" level={4} />
224
- <DxcButton label="LargeSizePrimaryButto" iconPosition="after" icon={iconSVG} size="large" />
208
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="after" icon={iconSVG} size="large" />
225
209
  </ExampleContainer>
226
210
  <ExampleContainer>
227
211
  <Title title="Large size icon before" theme="light" level={4} />
228
- <DxcButton label="LargeSizePrimaryButto" iconPosition="before" icon={iconSVG} size="large" />
212
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="before" icon={iconSVG} size="large" />
229
213
  </ExampleContainer>
230
214
  <ExampleContainer>
231
215
  <Title title="Large size icon after with ellipsis" theme="light" level={4} />
@@ -272,5 +256,89 @@ export const Chromatic = () => (
272
256
  <Title title="Xxlarge margin" theme="light" level={4} />
273
257
  <DxcButton label="Xxlarge margin" margin="xxlarge" />
274
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>
275
343
  </>
276
344
  );