@dxc-technology/halstack-react 0.0.0-9e54008 → 0.0.0-9ef63cd

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 (354) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +54 -144
  4. package/HalstackContext.js +11 -36
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.js +33 -87
  8. package/accordion/Accordion.stories.tsx +8 -64
  9. package/accordion/Accordion.test.js +18 -33
  10. package/accordion/types.d.ts +6 -6
  11. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  12. package/accordion-group/AccordionGroup.d.ts +2 -3
  13. package/accordion-group/AccordionGroup.js +17 -44
  14. package/accordion-group/AccordionGroup.stories.tsx +24 -24
  15. package/accordion-group/AccordionGroup.test.js +42 -60
  16. package/accordion-group/AccordionGroupAccordion.js +11 -23
  17. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  18. package/accordion-group/AccordionGroupContext.js +8 -0
  19. package/accordion-group/types.d.ts +7 -7
  20. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  21. package/action-icon/ActionIcon.d.ts +4 -0
  22. package/action-icon/ActionIcon.js +48 -0
  23. package/action-icon/ActionIcon.stories.tsx +41 -0
  24. package/action-icon/ActionIcon.test.js +64 -0
  25. package/action-icon/types.d.ts +26 -0
  26. package/alert/Alert.accessibility.test.js +95 -0
  27. package/alert/Alert.js +34 -120
  28. package/alert/Alert.test.js +28 -45
  29. package/alert/types.d.ts +5 -5
  30. package/badge/Badge.accessibility.test.js +129 -0
  31. package/badge/Badge.d.ts +1 -1
  32. package/badge/Badge.js +142 -42
  33. package/badge/Badge.stories.tsx +210 -0
  34. package/badge/Badge.test.js +30 -0
  35. package/badge/types.d.ts +52 -3
  36. package/bleed/Bleed.js +13 -21
  37. package/bleed/types.d.ts +2 -2
  38. package/box/Box.accessibility.test.js +33 -0
  39. package/box/Box.js +11 -33
  40. package/box/Box.test.js +1 -6
  41. package/box/types.d.ts +3 -3
  42. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  43. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  44. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  45. package/breadcrumbs/Breadcrumbs.js +79 -0
  46. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  47. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  48. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  49. package/breadcrumbs/Item.d.ts +4 -0
  50. package/breadcrumbs/Item.js +52 -0
  51. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  52. package/breadcrumbs/dropdownTheme.js +62 -0
  53. package/breadcrumbs/types.d.ts +16 -0
  54. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  55. package/bulleted-list/BulletedList.js +22 -55
  56. package/bulleted-list/BulletedList.stories.tsx +2 -93
  57. package/bulleted-list/types.d.ts +5 -5
  58. package/button/Button.accessibility.test.js +127 -0
  59. package/button/Button.d.ts +1 -1
  60. package/button/Button.js +68 -100
  61. package/button/Button.stories.tsx +35 -135
  62. package/button/Button.test.js +19 -16
  63. package/button/types.d.ts +9 -5
  64. package/card/Card.accessibility.test.js +36 -0
  65. package/card/Card.js +23 -45
  66. package/card/Card.test.js +10 -21
  67. package/card/types.d.ts +5 -5
  68. package/checkbox/Checkbox.accessibility.test.js +87 -0
  69. package/checkbox/Checkbox.js +88 -126
  70. package/checkbox/Checkbox.stories.tsx +16 -54
  71. package/checkbox/Checkbox.test.js +107 -63
  72. package/checkbox/types.d.ts +8 -4
  73. package/chip/Chip.accessibility.test.js +67 -0
  74. package/chip/Chip.js +22 -36
  75. package/chip/Chip.stories.tsx +10 -25
  76. package/chip/Chip.test.js +17 -30
  77. package/chip/types.d.ts +4 -4
  78. package/common/coreTokens.d.ts +105 -14
  79. package/common/coreTokens.js +41 -24
  80. package/common/utils.js +2 -8
  81. package/common/variables.d.ts +54 -144
  82. package/common/variables.js +128 -225
  83. package/container/Container.d.ts +4 -0
  84. package/container/Container.js +194 -0
  85. package/container/Container.stories.tsx +214 -0
  86. package/container/types.d.ts +74 -0
  87. package/container/types.js +5 -0
  88. package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
  89. package/contextual-menu/ContextualMenu.d.ts +5 -0
  90. package/contextual-menu/ContextualMenu.js +88 -0
  91. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  92. package/contextual-menu/ContextualMenu.test.js +205 -0
  93. package/contextual-menu/GroupItem.d.ts +4 -0
  94. package/contextual-menu/GroupItem.js +67 -0
  95. package/contextual-menu/ItemAction.d.ts +4 -0
  96. package/contextual-menu/ItemAction.js +51 -0
  97. package/contextual-menu/MenuItem.d.ts +4 -0
  98. package/contextual-menu/MenuItem.js +29 -0
  99. package/contextual-menu/SingleItem.d.ts +4 -0
  100. package/contextual-menu/SingleItem.js +38 -0
  101. package/contextual-menu/types.d.ts +58 -0
  102. package/contextual-menu/types.js +5 -0
  103. package/date-input/Calendar.js +15 -59
  104. package/date-input/DateInput.accessibility.test.js +228 -0
  105. package/date-input/DateInput.js +61 -108
  106. package/date-input/DateInput.stories.tsx +19 -31
  107. package/date-input/DateInput.test.js +674 -701
  108. package/date-input/DatePicker.js +23 -48
  109. package/date-input/YearPicker.js +8 -34
  110. package/date-input/types.d.ts +28 -22
  111. package/dialog/Dialog.accessibility.test.js +69 -0
  112. package/dialog/Dialog.js +21 -59
  113. package/dialog/Dialog.stories.tsx +175 -0
  114. package/dialog/Dialog.test.js +206 -204
  115. package/dialog/types.d.ts +18 -13
  116. package/divider/Divider.accessibility.test.js +33 -0
  117. package/divider/Divider.d.ts +4 -0
  118. package/divider/Divider.js +36 -0
  119. package/divider/Divider.stories.tsx +223 -0
  120. package/divider/Divider.test.js +38 -0
  121. package/divider/types.d.ts +21 -0
  122. package/divider/types.js +5 -0
  123. package/dropdown/Dropdown.accessibility.test.js +180 -0
  124. package/dropdown/Dropdown.js +67 -135
  125. package/dropdown/Dropdown.stories.tsx +15 -26
  126. package/dropdown/Dropdown.test.js +402 -389
  127. package/dropdown/DropdownMenu.js +12 -23
  128. package/dropdown/DropdownMenuItem.js +13 -21
  129. package/dropdown/types.d.ts +20 -24
  130. package/file-input/FileInput.accessibility.test.js +160 -0
  131. package/file-input/FileInput.js +179 -286
  132. package/file-input/FileInput.stories.tsx +1 -1
  133. package/file-input/FileInput.test.js +293 -354
  134. package/file-input/FileItem.js +30 -67
  135. package/file-input/types.d.ts +9 -9
  136. package/flex/Flex.js +25 -39
  137. package/flex/types.d.ts +6 -6
  138. package/footer/Footer.accessibility.test.js +125 -0
  139. package/footer/Footer.d.ts +1 -1
  140. package/footer/Footer.js +73 -103
  141. package/footer/Footer.stories.tsx +76 -8
  142. package/footer/Footer.test.js +21 -33
  143. package/footer/Icons.d.ts +3 -2
  144. package/footer/Icons.js +53 -22
  145. package/footer/types.d.ts +26 -22
  146. package/grid/Grid.d.ts +1 -1
  147. package/grid/Grid.js +2 -17
  148. package/grid/Grid.stories.tsx +38 -38
  149. package/grid/types.d.ts +10 -10
  150. package/header/Header.accessibility.test.js +93 -0
  151. package/header/Header.d.ts +1 -1
  152. package/header/Header.js +38 -104
  153. package/header/Header.stories.tsx +16 -0
  154. package/header/Header.test.js +12 -25
  155. package/header/Icons.d.ts +2 -2
  156. package/header/Icons.js +3 -13
  157. package/header/types.d.ts +7 -8
  158. package/heading/Heading.accessibility.test.js +33 -0
  159. package/heading/Heading.js +9 -31
  160. package/heading/Heading.test.js +70 -87
  161. package/heading/types.d.ts +7 -7
  162. package/icon/Icon.accessibility.test.js +30 -0
  163. package/icon/Icon.d.ts +4 -0
  164. package/icon/Icon.js +33 -0
  165. package/icon/Icon.stories.tsx +28 -0
  166. package/icon/types.d.ts +4 -0
  167. package/icon/types.js +5 -0
  168. package/image/Image.accessibility.test.js +56 -0
  169. package/image/Image.d.ts +4 -0
  170. package/image/Image.js +70 -0
  171. package/image/Image.stories.tsx +129 -0
  172. package/image/types.d.ts +72 -0
  173. package/image/types.js +5 -0
  174. package/inset/Inset.js +13 -21
  175. package/inset/types.d.ts +2 -2
  176. package/layout/ApplicationLayout.d.ts +2 -2
  177. package/layout/ApplicationLayout.js +35 -69
  178. package/layout/ApplicationLayout.stories.tsx +1 -1
  179. package/layout/Icons.d.ts +7 -5
  180. package/layout/Icons.js +41 -59
  181. package/layout/types.d.ts +3 -3
  182. package/link/Link.accessibility.test.js +108 -0
  183. package/link/Link.js +28 -47
  184. package/link/Link.stories.tsx +4 -4
  185. package/link/Link.test.js +23 -41
  186. package/link/types.d.ts +14 -14
  187. package/main.d.ts +9 -4
  188. package/main.js +46 -59
  189. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  190. package/nav-tabs/NavTabs.d.ts +1 -2
  191. package/nav-tabs/NavTabs.js +19 -48
  192. package/nav-tabs/NavTabs.stories.tsx +30 -25
  193. package/nav-tabs/NavTabs.test.js +45 -50
  194. package/nav-tabs/NavTabsContext.d.ts +3 -0
  195. package/nav-tabs/NavTabsContext.js +8 -0
  196. package/nav-tabs/Tab.js +38 -67
  197. package/nav-tabs/types.d.ts +10 -10
  198. package/number-input/NumberInput.accessibility.test.js +228 -0
  199. package/number-input/NumberInput.js +46 -36
  200. package/number-input/NumberInput.stories.tsx +42 -26
  201. package/number-input/NumberInput.test.js +859 -412
  202. package/number-input/NumberInputContext.d.ts +3 -4
  203. package/number-input/NumberInputContext.js +3 -14
  204. package/number-input/types.d.ts +17 -5
  205. package/package.json +42 -40
  206. package/paginator/Paginator.accessibility.test.js +79 -0
  207. package/paginator/Paginator.js +27 -52
  208. package/paginator/Paginator.test.js +224 -207
  209. package/paginator/types.d.ts +3 -3
  210. package/paragraph/Paragraph.accessibility.test.js +28 -0
  211. package/paragraph/Paragraph.js +3 -19
  212. package/paragraph/Paragraph.stories.tsx +0 -17
  213. package/password-input/PasswordInput.accessibility.test.js +153 -0
  214. package/password-input/PasswordInput.js +58 -127
  215. package/password-input/PasswordInput.stories.tsx +1 -33
  216. package/password-input/PasswordInput.test.js +157 -140
  217. package/password-input/types.d.ts +8 -7
  218. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  219. package/progress-bar/ProgressBar.js +26 -56
  220. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  221. package/progress-bar/ProgressBar.test.js +35 -52
  222. package/progress-bar/types.d.ts +3 -3
  223. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  224. package/quick-nav/QuickNav.js +4 -27
  225. package/quick-nav/QuickNav.stories.tsx +1 -1
  226. package/quick-nav/types.d.ts +10 -10
  227. package/radio-group/Radio.d.ts +1 -1
  228. package/radio-group/Radio.js +22 -57
  229. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  230. package/radio-group/RadioGroup.js +40 -88
  231. package/radio-group/RadioGroup.stories.tsx +10 -10
  232. package/radio-group/RadioGroup.test.js +504 -472
  233. package/radio-group/types.d.ts +8 -8
  234. package/resultset-table/Icons.d.ts +7 -0
  235. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  236. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  237. package/resultset-table/ResultsetTable.d.ts +7 -0
  238. package/{resultsetTable → resultset-table}/ResultsetTable.js +45 -69
  239. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +118 -5
  240. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +148 -92
  241. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  242. package/resultset-table/types.js +5 -0
  243. package/select/Listbox.js +36 -54
  244. package/select/Option.js +28 -36
  245. package/select/Select.accessibility.test.js +228 -0
  246. package/select/Select.js +111 -177
  247. package/select/Select.stories.tsx +59 -111
  248. package/select/Select.test.js +1895 -1858
  249. package/select/types.d.ts +15 -16
  250. package/sidenav/Sidenav.accessibility.test.js +59 -0
  251. package/sidenav/Sidenav.js +44 -81
  252. package/sidenav/Sidenav.stories.tsx +4 -9
  253. package/sidenav/Sidenav.test.js +3 -10
  254. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  255. package/{layout → sidenav}/SidenavContext.js +3 -9
  256. package/sidenav/types.d.ts +20 -20
  257. package/slider/Slider.accessibility.test.js +104 -0
  258. package/slider/Slider.js +66 -125
  259. package/slider/Slider.stories.tsx +0 -60
  260. package/slider/Slider.test.js +107 -103
  261. package/slider/types.d.ts +4 -4
  262. package/spinner/Spinner.accessibility.test.js +96 -0
  263. package/spinner/Spinner.js +21 -55
  264. package/spinner/Spinner.test.js +25 -34
  265. package/spinner/types.d.ts +3 -3
  266. package/status-light/StatusLight.accessibility.test.js +157 -0
  267. package/status-light/StatusLight.d.ts +4 -0
  268. package/status-light/StatusLight.js +51 -0
  269. package/status-light/StatusLight.stories.tsx +74 -0
  270. package/status-light/StatusLight.test.js +25 -0
  271. package/status-light/types.d.ts +17 -0
  272. package/status-light/types.js +5 -0
  273. package/switch/Switch.accessibility.test.js +98 -0
  274. package/switch/Switch.js +49 -100
  275. package/switch/Switch.stories.tsx +12 -34
  276. package/switch/Switch.test.js +51 -96
  277. package/switch/types.d.ts +4 -4
  278. package/table/DropdownTheme.js +62 -0
  279. package/table/Table.accessibility.test.js +93 -0
  280. package/table/Table.d.ts +6 -2
  281. package/table/Table.js +76 -33
  282. package/table/{Table.stories.jsx → Table.stories.tsx} +309 -2
  283. package/table/Table.test.js +93 -6
  284. package/table/types.d.ts +34 -6
  285. package/tabs/Tab.js +22 -37
  286. package/tabs/Tabs.accessibility.test.js +56 -0
  287. package/tabs/Tabs.js +59 -147
  288. package/tabs/Tabs.stories.tsx +8 -4
  289. package/tabs/Tabs.test.js +57 -131
  290. package/tabs/types.d.ts +21 -21
  291. package/tag/Tag.accessibility.test.js +69 -0
  292. package/tag/Tag.js +27 -57
  293. package/tag/Tag.stories.tsx +4 -7
  294. package/tag/Tag.test.js +17 -36
  295. package/tag/types.d.ts +9 -9
  296. package/text-input/Suggestion.js +9 -26
  297. package/text-input/Suggestions.d.ts +1 -1
  298. package/text-input/Suggestions.js +30 -70
  299. package/text-input/TextInput.accessibility.test.js +321 -0
  300. package/text-input/TextInput.js +222 -326
  301. package/text-input/TextInput.stories.tsx +65 -160
  302. package/text-input/TextInput.test.js +1227 -1194
  303. package/text-input/types.d.ts +25 -17
  304. package/textarea/Textarea.accessibility.test.js +155 -0
  305. package/textarea/Textarea.js +67 -111
  306. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  307. package/textarea/Textarea.test.js +150 -179
  308. package/textarea/types.d.ts +9 -5
  309. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  310. package/toggle-group/ToggleGroup.js +90 -109
  311. package/toggle-group/ToggleGroup.stories.tsx +10 -7
  312. package/toggle-group/ToggleGroup.test.js +68 -87
  313. package/toggle-group/types.d.ts +28 -19
  314. package/typography/Typography.accessibility.test.js +339 -0
  315. package/typography/Typography.js +4 -13
  316. package/typography/types.d.ts +1 -1
  317. package/useTheme.d.ts +51 -141
  318. package/useTheme.js +1 -8
  319. package/useTranslatedLabels.js +1 -7
  320. package/utils/BaseTypography.d.ts +2 -2
  321. package/utils/BaseTypography.js +16 -30
  322. package/utils/FocusLock.js +25 -39
  323. package/wizard/Wizard.accessibility.test.js +55 -0
  324. package/wizard/Wizard.js +27 -73
  325. package/wizard/Wizard.stories.tsx +19 -0
  326. package/wizard/Wizard.test.js +53 -80
  327. package/wizard/types.d.ts +8 -8
  328. package/common/OpenSans.css +0 -69
  329. package/common/fonts/OpenSans-Bold.ttf +0 -0
  330. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  331. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  332. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  333. package/common/fonts/OpenSans-Italic.ttf +0 -0
  334. package/common/fonts/OpenSans-Light.ttf +0 -0
  335. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  336. package/common/fonts/OpenSans-Regular.ttf +0 -0
  337. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  338. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  339. package/date-input/Icons.d.ts +0 -6
  340. package/date-input/Icons.js +0 -75
  341. package/number-input/numberInputContextTypes.d.ts +0 -19
  342. package/paginator/Icons.d.ts +0 -5
  343. package/paginator/Icons.js +0 -54
  344. package/resultsetTable/Icons.d.ts +0 -7
  345. package/resultsetTable/ResultsetTable.d.ts +0 -4
  346. package/select/Icons.d.ts +0 -10
  347. package/select/Icons.js +0 -93
  348. package/sidenav/Icons.d.ts +0 -7
  349. package/sidenav/Icons.js +0 -51
  350. package/text-input/Icons.d.ts +0 -8
  351. package/text-input/Icons.js +0 -60
  352. /package/{resultsetTable → action-icon}/types.js +0 -0
  353. /package/{number-input/numberInputContextTypes.js → breadcrumbs/types.js} +0 -0
  354. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
@@ -1,12 +1,11 @@
1
1
  import React from "react";
2
2
  import styled from "styled-components";
3
3
  import Title from "../../.storybook/components/Title";
4
- import { BackgroundColorProvider } from "../BackgroundColorContext";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
5
  import DxcBulletedList from "./BulletedList";
7
6
 
8
7
  export default {
9
- title: "BulletedList",
8
+ title: "Bulleted List",
10
9
  component: DxcBulletedList,
11
10
  };
12
11
 
@@ -27,7 +26,7 @@ export const Chromatic = () => (
27
26
  <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
28
27
  </DxcBulletedList>
29
28
  <Title title="Icon list (path)" level={4} />
30
- <DxcBulletedList type="icon" icon="https://upload.wikimedia.org/wikipedia/commons/e/e0/Check_green_icon.svg">
29
+ <DxcBulletedList type="icon" icon="filled_check_circle">
31
30
  <DxcBulletedList.Item>Code</DxcBulletedList.Item>
32
31
  <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
33
32
  <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
@@ -108,99 +107,9 @@ export const Chromatic = () => (
108
107
  </DxcBulletedList>
109
108
  </Container>
110
109
  </ExampleContainer>
111
- <BackgroundColorProvider color="#333333">
112
- <DarkContainerForBulletedList>
113
- <Title title="Icon list" theme="dark" level={4} />
114
- <DxcBulletedList type="icon" icon={icon}>
115
- <DxcBulletedList.Item>Code</DxcBulletedList.Item>
116
- <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
117
- <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
118
- </DxcBulletedList>
119
- <Title title="Number list" theme="dark" level={4} />
120
- <DxcBulletedList type="number">
121
- <DxcBulletedList.Item>Code</DxcBulletedList.Item>
122
- <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
123
- <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
124
- </DxcBulletedList>
125
- <Title title="Square" theme="dark" level={4} />
126
- <DxcBulletedList type="square">
127
- <DxcBulletedList.Item>Code</DxcBulletedList.Item>
128
- <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
129
- <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
130
- </DxcBulletedList>
131
- <Title title="Circle" theme="dark" level={4} />
132
- <DxcBulletedList type="circle">
133
- <DxcBulletedList.Item>Code</DxcBulletedList.Item>
134
- <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
135
- <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
136
- </DxcBulletedList>
137
- <Title title="Disc" theme="dark" level={4} />
138
- <DxcBulletedList>
139
- <DxcBulletedList.Item>Code</DxcBulletedList.Item>
140
- <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
141
- <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
142
- </DxcBulletedList>
143
- <Title title="Multiple lines" theme="dark" level={4} />
144
- <Container>
145
- <Title title="Number" theme="dark" level={4} />
146
- <DxcBulletedList type="number">
147
- <DxcBulletedList.Item>
148
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
149
- dolore magna aliqua.
150
- </DxcBulletedList.Item>
151
- <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
152
- </DxcBulletedList>
153
- </Container>
154
- <Container>
155
- <Title title="Square" theme="dark" level={4} />
156
- <DxcBulletedList type="square">
157
- <DxcBulletedList.Item>
158
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
159
- dolore magna aliqua.
160
- </DxcBulletedList.Item>
161
- <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
162
- </DxcBulletedList>
163
- </Container>
164
- <Container>
165
- <Title title="Circle" theme="dark" level={4} />
166
- <DxcBulletedList type="circle">
167
- <DxcBulletedList.Item>
168
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
169
- dolore magna aliqua.
170
- </DxcBulletedList.Item>
171
- <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
172
- </DxcBulletedList>
173
- </Container>
174
- <Title title="Disc" theme="dark" level={4} />
175
- <Container>
176
- <DxcBulletedList>
177
- <DxcBulletedList.Item>
178
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
179
- dolore magna aliqua.
180
- </DxcBulletedList.Item>
181
- <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
182
- </DxcBulletedList>
183
- </Container>
184
- <Container>
185
- <Title title="Icon" theme="dark" level={4} />
186
- <DxcBulletedList type="icon" icon={icon}>
187
- <DxcBulletedList.Item>
188
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
189
- dolore magna aliqua.
190
- </DxcBulletedList.Item>
191
- <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
192
- </DxcBulletedList>
193
- </Container>
194
- </DarkContainerForBulletedList>
195
- </BackgroundColorProvider>
196
110
  </>
197
111
  );
198
112
 
199
113
  const Container = styled.div`
200
114
  width: 400px;
201
115
  `;
202
-
203
- const DarkContainerForBulletedList = styled.div`
204
- background-color: #333333;
205
- padding: 5px;
206
- `;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
- declare type IconProps = {
2
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
3
+ type IconProps = {
4
4
  /**
5
5
  * Defines the style of the bullet point in the list.
6
6
  */
@@ -14,7 +14,7 @@ declare type IconProps = {
14
14
  */
15
15
  children: React.ReactNode;
16
16
  };
17
- declare type OtherProps = {
17
+ type OtherProps = {
18
18
  /**
19
19
  * Defines the style of the bullet point in the list.
20
20
  */
@@ -28,9 +28,9 @@ declare type OtherProps = {
28
28
  */
29
29
  children: React.ReactNode;
30
30
  };
31
- declare type Props = IconProps | OtherProps;
31
+ type Props = IconProps | OtherProps;
32
32
  export default Props;
33
- export declare type BulletedListItemPropsType = {
33
+ export type BulletedListItemPropsType = {
34
34
  /**
35
35
  * Text to be shown in the list.
36
36
  */
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _Button = _interopRequireDefault(require("./Button.tsx"));
10
+ var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
11
+ width: "24px",
12
+ height: "24px",
13
+ viewBox: "0 0 24 24",
14
+ fill: "currentColor"
15
+ }, /*#__PURE__*/_react["default"].createElement("path", {
16
+ d: "M0 0h24v24H0z",
17
+ fill: "none"
18
+ }), /*#__PURE__*/_react["default"].createElement("path", {
19
+ 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"
20
+ }));
21
+ describe("Button component accessibility tests", function () {
22
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
23
+ var _render, container, results;
24
+ return _regenerator["default"].wrap(function _callee$(_context) {
25
+ while (1) switch (_context.prev = _context.next) {
26
+ case 0:
27
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
28
+ label: "Primary",
29
+ icon: iconSVG,
30
+ iconPosition: "after",
31
+ margin: "small",
32
+ mode: "primary",
33
+ title: "Button Title",
34
+ size: "fitContent",
35
+ type: "button"
36
+ })), container = _render.container;
37
+ _context.next = 3;
38
+ return (0, _axeHelper.axe)(container);
39
+ case 3:
40
+ results = _context.sent;
41
+ expect(results).toHaveNoViolations();
42
+ case 5:
43
+ case "end":
44
+ return _context.stop();
45
+ }
46
+ }, _callee);
47
+ })));
48
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
49
+ var _render2, container, results;
50
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
51
+ while (1) switch (_context2.prev = _context2.next) {
52
+ case 0:
53
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
54
+ label: "Primary",
55
+ icon: iconSVG,
56
+ iconPosition: "after",
57
+ margin: "small",
58
+ mode: "primary",
59
+ title: "Button Title",
60
+ size: "fitContent",
61
+ type: "button",
62
+ disabled: true
63
+ })), container = _render2.container;
64
+ _context2.next = 3;
65
+ return (0, _axeHelper.axe)(container);
66
+ case 3:
67
+ results = _context2.sent;
68
+ expect(results).toHaveNoViolations();
69
+ case 5:
70
+ case "end":
71
+ return _context2.stop();
72
+ }
73
+ }, _callee2);
74
+ })));
75
+ it("Should not have basic accessibility issues for secondary mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
76
+ var _render3, container, results;
77
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
78
+ while (1) switch (_context3.prev = _context3.next) {
79
+ case 0:
80
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
81
+ label: "Primary",
82
+ icon: iconSVG,
83
+ iconPosition: "after",
84
+ margin: "small",
85
+ mode: "secondary",
86
+ title: "Button Title",
87
+ size: "fitContent",
88
+ type: "button"
89
+ })), container = _render3.container;
90
+ _context3.next = 3;
91
+ return (0, _axeHelper.axe)(container);
92
+ case 3:
93
+ results = _context3.sent;
94
+ expect(results).toHaveNoViolations();
95
+ case 5:
96
+ case "end":
97
+ return _context3.stop();
98
+ }
99
+ }, _callee3);
100
+ })));
101
+ it("Should not have basic accessibility issues for text mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
102
+ var _render4, container, results;
103
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
104
+ while (1) switch (_context4.prev = _context4.next) {
105
+ case 0:
106
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
107
+ label: "Primary",
108
+ icon: iconSVG,
109
+ iconPosition: "after",
110
+ margin: "small",
111
+ mode: "text",
112
+ title: "Button Title",
113
+ size: "fitContent",
114
+ type: "button"
115
+ })), container = _render4.container;
116
+ _context4.next = 3;
117
+ return (0, _axeHelper.axe)(container);
118
+ case 3:
119
+ results = _context4.sent;
120
+ expect(results).toHaveNoViolations();
121
+ case 5:
122
+ case "end":
123
+ return _context4.stop();
124
+ }
125
+ }, _callee4);
126
+ })));
127
+ });
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import ButtonPropsType from "./types";
3
- declare const DxcButton: ({ label, mode, disabled, iconPosition, type, icon, onClick, margin, size, tabIndex, }: ButtonPropsType) => JSX.Element;
3
+ declare const DxcButton: ({ label, mode, disabled, iconPosition, title, type, icon, onClick, margin, size, tabIndex, }: ButtonPropsType) => JSX.Element;
4
4
  export default DxcButton;
package/button/Button.js CHANGED
@@ -1,102 +1,85 @@
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
-
11
+ var _react = _interopRequireDefault(require("react"));
18
12
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
13
  var _variables = require("../common/variables");
21
-
22
14
  var _utils = require("../common/utils");
23
-
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
27
-
16
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
28
17
  var _templateObject, _templateObject2, _templateObject3;
29
-
30
- 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); }
31
-
32
- 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; }
33
-
34
- var sizes = {
35
- small: "42px",
36
- medium: "120px",
37
- large: "240px",
38
- fillParent: "100%",
39
- fitContent: "fit-content"
40
- };
41
-
42
- var calculateWidth = function calculateWidth(margin, size) {
43
- if (size === "fillParent") {
44
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
45
- }
46
-
47
- return sizes[size];
48
- };
49
-
18
+ 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); }
19
+ 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 && {}.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; }
50
20
  var DxcButton = function DxcButton(_ref) {
51
21
  var _ref$label = _ref.label,
52
- label = _ref$label === void 0 ? "" : _ref$label,
53
- _ref$mode = _ref.mode,
54
- mode = _ref$mode === void 0 ? "primary" : _ref$mode,
55
- _ref$disabled = _ref.disabled,
56
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
57
- _ref$iconPosition = _ref.iconPosition,
58
- iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
59
- _ref$type = _ref.type,
60
- type = _ref$type === void 0 ? "button" : _ref$type,
61
- icon = _ref.icon,
62
- _ref$onClick = _ref.onClick,
63
- _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
64
- margin = _ref.margin,
65
- _ref$size = _ref.size,
66
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
67
- _ref$tabIndex = _ref.tabIndex,
68
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
69
-
22
+ label = _ref$label === void 0 ? "" : _ref$label,
23
+ _ref$mode = _ref.mode,
24
+ mode = _ref$mode === void 0 ? "primary" : _ref$mode,
25
+ _ref$disabled = _ref.disabled,
26
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
27
+ _ref$iconPosition = _ref.iconPosition,
28
+ iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
29
+ title = _ref.title,
30
+ _ref$type = _ref.type,
31
+ type = _ref$type === void 0 ? "button" : _ref$type,
32
+ icon = _ref.icon,
33
+ _ref$onClick = _ref.onClick,
34
+ _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
35
+ margin = _ref.margin,
36
+ _ref$size = _ref.size,
37
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
38
+ _ref$tabIndex = _ref.tabIndex,
39
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
70
40
  var colorsTheme = (0, _useTheme["default"])();
71
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
72
41
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
73
42
  theme: colorsTheme.button
74
43
  }, /*#__PURE__*/_react["default"].createElement(Button, {
75
- type: type,
76
- mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
44
+ "aria-label": title,
77
45
  disabled: disabled,
78
- tabIndex: disabled ? -1 : tabIndex,
79
- backgroundType: backgroundType,
80
- size: size,
81
- margin: margin,
82
46
  onClick: function onClick() {
83
47
  _onClick();
84
- }
85
- }, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
86
- icon: icon,
87
- iconPosition: iconPosition
88
- }, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
89
- label: label,
90
- iconPosition: iconPosition
91
- }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
92
- src: icon
93
- }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
94
- icon: icon,
95
- iconPosition: iconPosition
96
- }, label)));
48
+ },
49
+ tabIndex: disabled ? -1 : tabIndex,
50
+ title: title,
51
+ type: type,
52
+ $mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
53
+ hasLabel: label ? true : false,
54
+ hasIcon: icon ? true : false,
55
+ iconPosition: iconPosition,
56
+ size: size,
57
+ margin: margin
58
+ }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
59
+ icon: icon
60
+ }) : icon)));
97
61
  };
98
-
99
- var Button = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-flex;\n width: ", ";\n height: 40px;\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n cursor: pointer;\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px\n ", ";\n }\n ", "\n"])), function (props) {
62
+ var sizes = {
63
+ small: "42px",
64
+ medium: "120px",
65
+ large: "240px",
66
+ fillParent: "100%",
67
+ fitContent: "fit-content"
68
+ };
69
+ var calculateWidth = function calculateWidth(margin, size) {
70
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
71
+ };
72
+ var getButtonStyles = function getButtonStyles($mode, theme) {
73
+ 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 ");
74
+ };
75
+ var getButtonStates = function getButtonStates(disabled, $mode, theme) {
76
+ 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");
77
+ };
78
+ 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) {
79
+ return props.iconPosition === "after" ? "row" : "row-reverse";
80
+ }, function (props) {
81
+ return calculateWidth(props.margin, props.size);
82
+ }, function (props) {
100
83
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
101
84
  }, function (props) {
102
85
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -106,16 +89,14 @@ var Button = _styledComponents["default"].button(_templateObject || (_templateOb
106
89
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
107
90
  }, function (props) {
108
91
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
109
- }, function (props) {
110
- return calculateWidth(props.margin, props.size);
111
- }, function (props) {
112
- return props.theme.paddingLeft;
113
- }, function (props) {
114
- return props.theme.paddingRight;
115
92
  }, function (props) {
116
93
  return props.theme.paddingTop;
117
94
  }, function (props) {
118
95
  return props.theme.paddingBottom;
96
+ }, function (props) {
97
+ return props.hasIcon && !props.hasLabel ? props.theme.paddingLeft : "calc(".concat(props.theme.paddingLeft, " + 8px)");
98
+ }, function (props) {
99
+ return props.hasIcon && !props.hasLabel ? props.theme.paddingRight : "calc(".concat(props.theme.paddingRight, " + 8px)");
119
100
  }, function (props) {
120
101
  return props.theme.fontFamily;
121
102
  }, function (props) {
@@ -125,29 +106,16 @@ var Button = _styledComponents["default"].button(_templateObject || (_templateOb
125
106
  }, function (props) {
126
107
  return props.theme.labelLetterSpacing;
127
108
  }, function (props) {
128
- return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
109
+ return props.theme.focusBorderColor;
110
+ }, function (props) {
111
+ return getButtonStyles(props.$mode, props.theme);
129
112
  }, function (props) {
130
- var mode = props.mode,
131
- backgroundType = props.backgroundType,
132
- disabled = props.disabled;
133
- return "\n border-radius: ".concat(props.mode === "primary" ? props.theme.primaryBorderRadius : props.mode === "secondary" ? props.theme.secondaryBorderRadius : props.theme.textBorderRadius, ";\n border-width: ").concat(props.mode === "primary" ? props.theme.primaryBorderThickness : props.mode === "secondary" ? props.theme.secondaryBorderThickness : props.theme.textBorderThickness, ";\n border-style: ").concat(mode === "primary" ? props.theme.primaryBorderStyle : mode === "secondary" ? props.theme.secondaryBorderStyle : props.theme.textBorderStyle, ";\n font-family: ").concat(mode === "primary" ? props.theme.primaryFontFamily : mode === "secondary" ? props.theme.secondaryFontFamily : props.theme.textFontFamily, ";\n font-size: ").concat(mode === "primary" ? props.theme.primaryFontSize : mode === "secondary" ? props.theme.secondaryFontSize : props.theme.textFontSize, ";\n font-weight: ").concat(mode === "primary" ? props.theme.primaryFontWeight : mode === "secondary" ? props.theme.secondaryFontWeight : props.theme.textFontWeight, ";\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor : backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor : backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, ";\n border-color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor : "", ";\n &:hover {\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor : backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n }\n &:focus {\n border-color: ").concat(mode === "secondary" ? "transparent" : "", ";\n }\n &:active {\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor : backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, ";\n color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n border-color: ").concat(mode === "secondary" ? "transparent" : "", ";\n outline: none;\n box-shadow: ").concat(!disabled ? "0 0 0 2px ".concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor) : "", ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor : backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor : backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, ";\n border-color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor : "", ";\n }\n ");
113
+ return getButtonStates(props.disabled, props.$mode, props.theme);
134
114
  });
135
-
136
- 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 margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
115
+ 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) {
137
116
  return props.theme.labelFontLineHeight;
138
117
  }, function (props) {
139
118
  return props.theme.fontSize;
140
- }, function (props) {
141
- return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
142
- }, function (props) {
143
- return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
144
119
  });
145
-
146
- var IconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n margin-left: ", ";\n margin-right: ", ";\n\n img,\n svg {\n height: 24px;\n width: 24px;\n }\n"])), function (props) {
147
- return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
148
- }, function (props) {
149
- return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
150
- });
151
-
152
- var _default = DxcButton;
153
- exports["default"] = _default;
120
+ var IconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-size: 24px;\n\n svg {\n height: 24px;\n width: 24px;\n }\n"])));
121
+ var _default = exports["default"] = DxcButton;