@dxc-technology/halstack-react 0.0.0-099fc65 → 0.0.0-0a9608a

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 (287) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +294 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +119 -138
  7. package/accordion/Accordion.stories.tsx +346 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +17 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +6 -4
  19. package/badge/types.d.ts +5 -0
  20. package/{radio → badge}/types.js +0 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +51 -0
  23. package/bleed/Bleed.stories.tsx +341 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +25 -35
  27. package/box/Box.test.js +18 -0
  28. package/box/types.d.ts +1 -0
  29. package/bulleted-list/BulletedList.d.ts +7 -0
  30. package/bulleted-list/BulletedList.js +123 -0
  31. package/bulleted-list/BulletedList.stories.tsx +200 -0
  32. package/bulleted-list/types.d.ts +11 -0
  33. package/bulleted-list/types.js +5 -0
  34. package/button/Button.d.ts +1 -1
  35. package/button/Button.js +56 -81
  36. package/button/Button.stories.tsx +72 -8
  37. package/button/Button.test.js +35 -0
  38. package/button/types.d.ts +8 -12
  39. package/card/Card.js +25 -28
  40. package/card/Card.stories.tsx +1 -1
  41. package/card/Card.test.js +50 -0
  42. package/card/types.d.ts +1 -0
  43. package/checkbox/Checkbox.d.ts +2 -2
  44. package/checkbox/Checkbox.js +108 -111
  45. package/checkbox/Checkbox.stories.tsx +146 -130
  46. package/checkbox/Checkbox.test.js +155 -0
  47. package/checkbox/types.d.ts +14 -6
  48. package/chip/Chip.d.ts +1 -1
  49. package/chip/Chip.js +20 -70
  50. package/chip/Chip.stories.tsx +44 -14
  51. package/chip/Chip.test.js +56 -0
  52. package/chip/types.d.ts +7 -15
  53. package/common/variables.js +398 -464
  54. package/date-input/Calendar.d.ts +4 -0
  55. package/date-input/Calendar.js +246 -0
  56. package/date-input/DateInput.js +174 -266
  57. package/date-input/DateInput.stories.tsx +137 -38
  58. package/date-input/DateInput.test.js +835 -0
  59. package/date-input/DatePicker.d.ts +4 -0
  60. package/date-input/DatePicker.js +132 -0
  61. package/date-input/Icons.d.ts +6 -0
  62. package/date-input/Icons.js +75 -0
  63. package/date-input/YearPicker.d.ts +4 -0
  64. package/date-input/YearPicker.js +116 -0
  65. package/date-input/types.d.ts +67 -9
  66. package/dialog/Dialog.js +50 -53
  67. package/dialog/Dialog.stories.tsx +57 -2
  68. package/dialog/Dialog.test.js +70 -0
  69. package/dialog/types.d.ts +3 -2
  70. package/dropdown/Dropdown.d.ts +1 -1
  71. package/dropdown/Dropdown.js +248 -277
  72. package/dropdown/Dropdown.stories.tsx +393 -0
  73. package/dropdown/Dropdown.test.js +585 -0
  74. package/dropdown/DropdownMenu.d.ts +4 -0
  75. package/dropdown/DropdownMenu.js +70 -0
  76. package/dropdown/DropdownMenuItem.d.ts +4 -0
  77. package/dropdown/DropdownMenuItem.js +81 -0
  78. package/dropdown/types.d.ts +29 -18
  79. package/file-input/FileInput.d.ts +2 -2
  80. package/file-input/FileInput.js +177 -137
  81. package/file-input/FileInput.stories.tsx +535 -0
  82. package/file-input/FileInput.test.js +498 -0
  83. package/file-input/FileItem.d.ts +4 -14
  84. package/file-input/FileItem.js +45 -68
  85. package/file-input/types.d.ts +49 -7
  86. package/flex/Flex.d.ts +4 -0
  87. package/flex/Flex.js +69 -0
  88. package/flex/Flex.stories.tsx +103 -0
  89. package/flex/types.d.ts +32 -0
  90. package/flex/types.js +5 -0
  91. package/footer/Footer.d.ts +1 -1
  92. package/footer/Footer.js +32 -113
  93. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
  94. package/footer/Footer.test.js +109 -0
  95. package/footer/Icons.d.ts +2 -0
  96. package/footer/Icons.js +4 -4
  97. package/footer/types.d.ts +6 -9
  98. package/header/Header.js +109 -130
  99. package/header/Header.stories.tsx +78 -35
  100. package/header/Header.test.js +79 -0
  101. package/header/Icons.d.ts +2 -0
  102. package/header/Icons.js +2 -2
  103. package/header/types.d.ts +3 -2
  104. package/heading/Heading.js +1 -1
  105. package/heading/Heading.stories.tsx +3 -2
  106. package/heading/Heading.test.js +186 -0
  107. package/inset/Inset.d.ts +3 -0
  108. package/inset/Inset.js +51 -0
  109. package/inset/Inset.stories.tsx +229 -0
  110. package/inset/types.d.ts +37 -0
  111. package/inset/types.js +5 -0
  112. package/layout/ApplicationLayout.d.ts +20 -0
  113. package/layout/ApplicationLayout.js +71 -135
  114. package/layout/ApplicationLayout.stories.tsx +162 -0
  115. package/layout/Icons.d.ts +5 -0
  116. package/layout/Icons.js +13 -2
  117. package/layout/SidenavContext.d.ts +5 -0
  118. package/layout/SidenavContext.js +19 -0
  119. package/layout/types.d.ts +42 -0
  120. package/layout/types.js +5 -0
  121. package/link/Link.d.ts +3 -2
  122. package/link/Link.js +62 -87
  123. package/link/Link.stories.tsx +99 -52
  124. package/link/Link.test.js +83 -0
  125. package/link/types.d.ts +9 -29
  126. package/main.d.ts +12 -12
  127. package/main.js +64 -58
  128. package/number-input/NumberInput.js +14 -24
  129. package/number-input/NumberInput.stories.tsx +5 -5
  130. package/number-input/NumberInput.test.js +542 -0
  131. package/number-input/types.d.ts +17 -10
  132. package/package.json +21 -22
  133. package/paginator/Icons.d.ts +5 -0
  134. package/paginator/Icons.js +16 -28
  135. package/paginator/Paginator.js +21 -54
  136. package/paginator/Paginator.test.js +315 -0
  137. package/paragraph/Paragraph.d.ts +6 -0
  138. package/paragraph/Paragraph.js +38 -0
  139. package/paragraph/Paragraph.stories.tsx +44 -0
  140. package/password-input/PasswordInput.js +19 -17
  141. package/password-input/PasswordInput.stories.tsx +3 -3
  142. package/password-input/PasswordInput.test.js +181 -0
  143. package/password-input/types.d.ts +14 -11
  144. package/progress-bar/ProgressBar.d.ts +2 -2
  145. package/progress-bar/ProgressBar.js +59 -53
  146. package/progress-bar/ProgressBar.stories.jsx +13 -11
  147. package/progress-bar/ProgressBar.test.js +110 -0
  148. package/progress-bar/types.d.ts +3 -4
  149. package/quick-nav/QuickNav.d.ts +4 -0
  150. package/quick-nav/QuickNav.js +117 -0
  151. package/quick-nav/QuickNav.stories.tsx +342 -0
  152. package/quick-nav/types.d.ts +21 -0
  153. package/quick-nav/types.js +5 -0
  154. package/radio-group/Radio.d.ts +4 -0
  155. package/radio-group/Radio.js +156 -0
  156. package/radio-group/RadioGroup.d.ts +4 -0
  157. package/radio-group/RadioGroup.js +283 -0
  158. package/radio-group/RadioGroup.stories.tsx +101 -0
  159. package/radio-group/RadioGroup.test.js +722 -0
  160. package/radio-group/types.d.ts +114 -0
  161. package/radio-group/types.js +5 -0
  162. package/resultsetTable/Icons.d.ts +7 -0
  163. package/resultsetTable/Icons.js +51 -0
  164. package/resultsetTable/ResultsetTable.js +50 -106
  165. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  166. package/resultsetTable/ResultsetTable.test.js +325 -0
  167. package/resultsetTable/types.d.ts +3 -3
  168. package/select/Icons.d.ts +10 -0
  169. package/select/Icons.js +93 -0
  170. package/select/Listbox.d.ts +4 -0
  171. package/select/Listbox.js +169 -0
  172. package/select/Option.d.ts +4 -0
  173. package/select/Option.js +97 -0
  174. package/select/Select.d.ts +4 -0
  175. package/select/Select.js +196 -397
  176. package/select/Select.stories.tsx +317 -220
  177. package/select/Select.test.js +2228 -0
  178. package/select/types.d.ts +210 -0
  179. package/select/types.js +5 -0
  180. package/sidenav/Sidenav.d.ts +6 -5
  181. package/sidenav/Sidenav.js +184 -54
  182. package/sidenav/Sidenav.stories.tsx +163 -139
  183. package/sidenav/Sidenav.test.js +44 -0
  184. package/sidenav/types.d.ts +50 -27
  185. package/slider/Slider.d.ts +2 -2
  186. package/slider/Slider.js +124 -98
  187. package/slider/Slider.stories.tsx +15 -9
  188. package/slider/Slider.test.js +250 -0
  189. package/slider/types.d.ts +10 -2
  190. package/spinner/Spinner.js +5 -5
  191. package/spinner/Spinner.stories.jsx +1 -0
  192. package/spinner/Spinner.test.js +64 -0
  193. package/switch/Switch.d.ts +2 -2
  194. package/switch/Switch.js +152 -69
  195. package/switch/Switch.stories.tsx +21 -43
  196. package/switch/Switch.test.js +225 -0
  197. package/switch/types.d.ts +12 -4
  198. package/table/Table.js +3 -3
  199. package/table/Table.stories.jsx +2 -1
  200. package/table/Table.test.js +26 -0
  201. package/tabs/Tab.d.ts +4 -0
  202. package/tabs/Tab.js +133 -0
  203. package/tabs/Tabs.d.ts +1 -1
  204. package/tabs/Tabs.js +364 -110
  205. package/tabs/Tabs.stories.tsx +84 -17
  206. package/tabs/Tabs.test.js +351 -0
  207. package/tabs/types.d.ts +39 -17
  208. package/tabs-nav/NavTabs.d.ts +8 -0
  209. package/tabs-nav/NavTabs.js +125 -0
  210. package/tabs-nav/NavTabs.stories.tsx +172 -0
  211. package/tabs-nav/NavTabs.test.js +82 -0
  212. package/tabs-nav/Tab.d.ts +4 -0
  213. package/tabs-nav/Tab.js +128 -0
  214. package/tabs-nav/types.d.ts +53 -0
  215. package/tabs-nav/types.js +5 -0
  216. package/tag/Tag.d.ts +1 -1
  217. package/tag/Tag.js +19 -29
  218. package/tag/Tag.stories.tsx +26 -29
  219. package/tag/Tag.test.js +60 -0
  220. package/tag/types.d.ts +23 -14
  221. package/text-input/Icons.d.ts +8 -0
  222. package/text-input/Icons.js +60 -0
  223. package/text-input/Suggestion.d.ts +4 -0
  224. package/text-input/Suggestion.js +84 -0
  225. package/text-input/Suggestions.d.ts +4 -0
  226. package/text-input/Suggestions.js +134 -0
  227. package/text-input/TextInput.js +229 -342
  228. package/text-input/TextInput.stories.tsx +241 -196
  229. package/text-input/TextInput.test.js +1724 -0
  230. package/text-input/types.d.ts +51 -13
  231. package/textarea/Textarea.d.ts +4 -0
  232. package/textarea/Textarea.js +34 -73
  233. package/textarea/Textarea.stories.jsx +37 -15
  234. package/textarea/Textarea.test.js +437 -0
  235. package/textarea/types.d.ts +137 -0
  236. package/textarea/types.js +5 -0
  237. package/toggle-group/ToggleGroup.d.ts +1 -1
  238. package/toggle-group/ToggleGroup.js +15 -17
  239. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  240. package/toggle-group/ToggleGroup.test.js +156 -0
  241. package/toggle-group/types.d.ts +46 -25
  242. package/typography/Typography.d.ts +4 -0
  243. package/typography/Typography.js +131 -0
  244. package/typography/Typography.stories.tsx +198 -0
  245. package/typography/types.d.ts +18 -0
  246. package/typography/types.js +5 -0
  247. package/useTheme.d.ts +2 -0
  248. package/useTheme.js +2 -2
  249. package/useTranslatedLabels.d.ts +2 -0
  250. package/useTranslatedLabels.js +20 -0
  251. package/wizard/Wizard.d.ts +1 -1
  252. package/wizard/Wizard.js +112 -58
  253. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +33 -24
  254. package/wizard/Wizard.test.js +141 -0
  255. package/wizard/types.d.ts +12 -11
  256. package/ThemeContext.js +0 -246
  257. package/V3Select/V3Select.js +0 -455
  258. package/V3Select/index.d.ts +0 -27
  259. package/V3Textarea/V3Textarea.js +0 -260
  260. package/V3Textarea/index.d.ts +0 -27
  261. package/common/RequiredComponent.js +0 -32
  262. package/date/Date.js +0 -373
  263. package/date/index.d.ts +0 -27
  264. package/input-text/Icons.js +0 -22
  265. package/input-text/InputText.js +0 -611
  266. package/input-text/index.d.ts +0 -36
  267. package/radio/Radio.d.ts +0 -4
  268. package/radio/Radio.js +0 -174
  269. package/radio/Radio.stories.tsx +0 -192
  270. package/radio/types.d.ts +0 -54
  271. package/select/index.d.ts +0 -131
  272. package/textarea/index.d.ts +0 -127
  273. package/toggle/Toggle.js +0 -186
  274. package/toggle/index.d.ts +0 -21
  275. package/upload/Upload.js +0 -201
  276. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  277. package/upload/buttons-upload/Icons.js +0 -40
  278. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  279. package/upload/dragAndDropArea/Icons.js +0 -39
  280. package/upload/file-upload/FileToUpload.js +0 -115
  281. package/upload/file-upload/Icons.js +0 -66
  282. package/upload/files-upload/FilesToUpload.js +0 -109
  283. package/upload/index.d.ts +0 -15
  284. package/upload/transaction/Icons.js +0 -160
  285. package/upload/transaction/Transaction.js +0 -104
  286. package/upload/transactions/Transactions.js +0 -94
  287. package/wizard/Icons.js +0 -65
@@ -0,0 +1,200 @@
1
+ import React from "react";
2
+ import styled from "styled-components";
3
+ import Title from "../../.storybook/components/Title";
4
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import DxcBulletedList from "./BulletedList";
7
+
8
+ export default {
9
+ title: "BulletedList",
10
+ component: DxcBulletedList,
11
+ };
12
+
13
+ const icon = (
14
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
15
+ <path d="M0 0h24v24H0V0z" fill="none" />
16
+ <path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" />
17
+ </svg>
18
+ );
19
+
20
+ export const Chromatic = () => (
21
+ <>
22
+ <ExampleContainer>
23
+ <Title title="Icon list" level={4} />
24
+ <DxcBulletedList type="icon" icon={icon}>
25
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
26
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
27
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
28
+ </DxcBulletedList>
29
+ <Title title="Number list" level={4} />
30
+ <DxcBulletedList type="number">
31
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
32
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
33
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
34
+ </DxcBulletedList>
35
+ <Title title="Square" level={4} />
36
+ <DxcBulletedList type="square">
37
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
38
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
39
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
40
+ </DxcBulletedList>
41
+ <Title title="Circle" level={4} />
42
+ <DxcBulletedList type="circle">
43
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
44
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
45
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
46
+ </DxcBulletedList>
47
+ <Title title="Disc" level={4} />
48
+ <DxcBulletedList>
49
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
50
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
51
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
52
+ </DxcBulletedList>
53
+ <Title title="Multiple lines" level={4} />
54
+ <Container>
55
+ <Title title="Number" level={4} />
56
+ <DxcBulletedList type="number">
57
+ <DxcBulletedList.Item>
58
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
59
+ dolore magna aliqua.
60
+ </DxcBulletedList.Item>
61
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
62
+ </DxcBulletedList>
63
+ </Container>
64
+ <Container>
65
+ <Title title="Square" level={4} />
66
+ <DxcBulletedList type="square">
67
+ <DxcBulletedList.Item>
68
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
69
+ dolore magna aliqua.
70
+ </DxcBulletedList.Item>
71
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
72
+ </DxcBulletedList>
73
+ </Container>
74
+ <Container>
75
+ <Title title="Circle" level={4} />
76
+ <DxcBulletedList type="circle">
77
+ <DxcBulletedList.Item>
78
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
79
+ dolore magna aliqua.
80
+ </DxcBulletedList.Item>
81
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
82
+ </DxcBulletedList>
83
+ </Container>
84
+ <Title title="Disc" level={4} />
85
+ <Container>
86
+ <DxcBulletedList>
87
+ <DxcBulletedList.Item>
88
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
89
+ dolore magna aliqua.
90
+ </DxcBulletedList.Item>
91
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
92
+ </DxcBulletedList>
93
+ </Container>
94
+ <Container>
95
+ <Title title="Icon" level={4} />
96
+ <DxcBulletedList type="icon" icon={icon}>
97
+ <DxcBulletedList.Item>
98
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
99
+ dolore magna aliqua.
100
+ </DxcBulletedList.Item>
101
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
102
+ </DxcBulletedList>
103
+ </Container>
104
+ </ExampleContainer>
105
+ <BackgroundColorProvider color="#333333">
106
+ <DarkContainerForBulletedList>
107
+ <Title title="Icon list" theme="dark" level={4} />
108
+ <DxcBulletedList type="icon" icon={icon}>
109
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
110
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
111
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
112
+ </DxcBulletedList>
113
+ <Title title="Number list" theme="dark" level={4} />
114
+ <DxcBulletedList type="number">
115
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
116
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
117
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
118
+ </DxcBulletedList>
119
+ <Title title="Square" theme="dark" level={4} />
120
+ <DxcBulletedList type="square">
121
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
122
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
123
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
124
+ </DxcBulletedList>
125
+ <Title title="Circle" theme="dark" level={4} />
126
+ <DxcBulletedList type="circle">
127
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
128
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
129
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
130
+ </DxcBulletedList>
131
+ <Title title="Disc" theme="dark" level={4} />
132
+ <DxcBulletedList>
133
+ <DxcBulletedList.Item>Code</DxcBulletedList.Item>
134
+ <DxcBulletedList.Item>Usage</DxcBulletedList.Item>
135
+ <DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
136
+ </DxcBulletedList>
137
+ <Title title="Multiple lines" theme="dark" level={4} />
138
+ <Container>
139
+ <Title title="Number" theme="dark" level={4} />
140
+ <DxcBulletedList type="number">
141
+ <DxcBulletedList.Item>
142
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
143
+ dolore magna aliqua.
144
+ </DxcBulletedList.Item>
145
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
146
+ </DxcBulletedList>
147
+ </Container>
148
+ <Container>
149
+ <Title title="Square" theme="dark" level={4} />
150
+ <DxcBulletedList type="square">
151
+ <DxcBulletedList.Item>
152
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
153
+ dolore magna aliqua.
154
+ </DxcBulletedList.Item>
155
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
156
+ </DxcBulletedList>
157
+ </Container>
158
+ <Container>
159
+ <Title title="Circle" theme="dark" level={4} />
160
+ <DxcBulletedList type="circle">
161
+ <DxcBulletedList.Item>
162
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
163
+ dolore magna aliqua.
164
+ </DxcBulletedList.Item>
165
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
166
+ </DxcBulletedList>
167
+ </Container>
168
+ <Title title="Disc" theme="dark" level={4} />
169
+ <Container>
170
+ <DxcBulletedList>
171
+ <DxcBulletedList.Item>
172
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
173
+ dolore magna aliqua.
174
+ </DxcBulletedList.Item>
175
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
176
+ </DxcBulletedList>
177
+ </Container>
178
+ <Container>
179
+ <Title title="Icon" theme="dark" level={4} />
180
+ <DxcBulletedList type="icon" icon={icon}>
181
+ <DxcBulletedList.Item>
182
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
183
+ dolore magna aliqua.
184
+ </DxcBulletedList.Item>
185
+ <DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
186
+ </DxcBulletedList>
187
+ </Container>
188
+ </DarkContainerForBulletedList>
189
+ </BackgroundColorProvider>
190
+ </>
191
+ );
192
+
193
+ const Container = styled.div`
194
+ width: 400px;
195
+ `;
196
+
197
+ const DarkContainerForBulletedList = styled.div`
198
+ background-color: #333333;
199
+ padding: 5px;
200
+ `;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ declare type SVG = React.ReactNode & (React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>);
3
+ declare type Props = {
4
+ children: React.ReactNode;
5
+ type?: "disc" | "circle" | "square" | "number" | "icon";
6
+ icon?: string | SVG;
7
+ };
8
+ export default Props;
9
+ export declare type BulletedListItemPropsType = {
10
+ children?: React.ReactNode;
11
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -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, iconSrc, onClick, margin, size, tabIndex, }: ButtonPropsType) => JSX.Element;
3
+ declare const DxcButton: ({ label, mode, disabled, iconPosition, type, icon, onClick, margin, size, tabIndex, }: ButtonPropsType) => JSX.Element;
4
4
  export default DxcButton;
package/button/Button.js CHANGED
@@ -9,13 +9,11 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
- var _react = _interopRequireWildcard(require("react"));
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
18
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
16
+ var _react = _interopRequireWildcard(require("react"));
19
17
 
20
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
19
 
@@ -23,16 +21,32 @@ var _variables = require("../common/variables.js");
23
21
 
24
22
  var _utils = require("../common/utils.js");
25
23
 
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
25
 
28
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
26
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
29
27
 
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
28
+ var _templateObject, _templateObject2, _templateObject3;
31
29
 
32
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); }
33
31
 
34
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; }
35
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
+
36
50
  var DxcButton = function DxcButton(_ref) {
37
51
  var _ref$label = _ref.label,
38
52
  label = _ref$label === void 0 ? "" : _ref$label,
@@ -45,88 +59,45 @@ var DxcButton = function DxcButton(_ref) {
45
59
  _ref$type = _ref.type,
46
60
  type = _ref$type === void 0 ? "button" : _ref$type,
47
61
  icon = _ref.icon,
48
- _ref$iconSrc = _ref.iconSrc,
49
- iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
50
- _onClick = _ref.onClick,
62
+ _ref$onClick = _ref.onClick,
63
+ _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
51
64
  margin = _ref.margin,
52
65
  _ref$size = _ref.size,
53
66
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
54
67
  _ref$tabIndex = _ref.tabIndex,
55
68
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
69
+
56
70
  var colorsTheme = (0, _useTheme["default"])();
57
71
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
58
72
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
59
73
  theme: colorsTheme.button
60
- }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
74
+ }, /*#__PURE__*/_react["default"].createElement(Button, {
61
75
  type: type,
62
- margin: margin,
63
76
  mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
64
77
  disabled: disabled,
65
- iconPosition: iconPosition,
66
- size: size,
67
- backgroundType: backgroundType,
68
- icon: icon
69
- }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
70
- type: type,
71
- disabled: disabled,
72
- disableRipple: true,
73
78
  "aria-disabled": disabled,
74
79
  tabIndex: disabled ? -1 : tabIndex,
80
+ backgroundType: backgroundType,
81
+ size: size,
82
+ margin: margin,
75
83
  onClick: function onClick() {
76
84
  _onClick();
77
85
  }
78
- }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
86
+ }, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
79
87
  icon: icon,
80
88
  iconPosition: iconPosition
81
- }, label), icon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
89
+ }, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
82
90
  label: label,
83
91
  iconPosition: iconPosition
84
- }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
85
- label: label,
86
- iconPosition: iconPosition,
87
- src: iconSrc
88
- }))));
89
- };
90
-
91
- var sizes = {
92
- small: "42px",
93
- medium: "120px",
94
- large: "240px",
95
- fillParent: "100%",
96
- fitContent: "unset"
97
- };
98
-
99
- 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];
92
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
93
+ src: icon
94
+ }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
95
+ icon: icon,
96
+ iconPosition: iconPosition
97
+ }, label)));
105
98
  };
106
99
 
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";
119
- }, 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";
125
- }, 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) {
100
+ 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) {
130
101
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
131
102
  }, function (props) {
132
103
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -138,8 +109,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
138
109
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
139
110
  }, function (props) {
140
111
  return calculateWidth(props.margin, props.size);
141
- }, function (props) {
142
- return props.disabled && "not-allowed" || "pointer";
143
112
  }, function (props) {
144
113
  return props.theme.paddingLeft;
145
114
  }, function (props) {
@@ -148,8 +117,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
148
117
  return props.theme.paddingTop;
149
118
  }, function (props) {
150
119
  return props.theme.paddingBottom;
151
- }, function (props) {
152
- return props.iconPosition === "after" && "row" || "row-reverse";
153
120
  }, function (props) {
154
121
  return props.theme.fontFamily;
155
122
  }, function (props) {
@@ -158,21 +125,29 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
158
125
  return props.theme.fontWeight;
159
126
  }, function (props) {
160
127
  return props.theme.labelLetterSpacing;
161
- }, function (props) {
162
- return props.size === "small" && "calc(100% - 22px)" || "unset";
163
128
  }, function (props) {
164
129
  return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
165
130
  }, function (props) {
166
131
  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
- }
132
+ backgroundType = props.backgroundType,
133
+ disabled = props.disabled;
134
+ 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 ");
135
+ });
136
+
137
+ 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) {
138
+ return props.theme.labelFontLineHeight;
139
+ }, function (props) {
140
+ return props.theme.fontSize;
141
+ }, function (props) {
142
+ return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
143
+ }, function (props) {
144
+ return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
145
+ });
146
+
147
+ 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) {
148
+ return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
149
+ }, function (props) {
150
+ return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
176
151
  });
177
152
 
178
153
  var _default = DxcButton;
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import DxcButton from "./Button";
3
+ import DxcFlex from "./../flex/Flex";
3
4
  import { BackgroundColorProvider } from "../BackgroundColorContext";
4
5
  import Title from "../../.storybook/components/Title";
5
6
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
@@ -10,14 +11,43 @@ export default {
10
11
  component: DxcButton,
11
12
  };
12
13
 
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
- );
20
- };
14
+ const iconSVG = (
15
+ <svg width="24px" height="24px" 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
+ );
20
+
21
+ const facebookIcon = (
22
+ <svg
23
+ version="1.1"
24
+ id="Capa_1"
25
+ x="0px"
26
+ y="0px"
27
+ width="438.536px"
28
+ height="438.536px"
29
+ viewBox="0 0 438.536 438.536"
30
+ fill="currentColor"
31
+ >
32
+ <g>
33
+ <path
34
+ 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
35
+ 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
36
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
37
+ 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
38
+ 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
39
+ 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"
40
+ />
41
+ </g>
42
+ </svg>
43
+ );
44
+
45
+ const smallIcon = (
46
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" height="20" width="20" fill="currentColor">
47
+ <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" />
48
+ </svg>
49
+ );
50
+
21
51
  export const Chromatic = () => (
22
52
  <>
23
53
  <Title title="Primary" theme="light" level={2} />
@@ -53,6 +83,18 @@ export const Chromatic = () => (
53
83
  <Title title="Only icon" theme="light" level={4} />
54
84
  <DxcButton icon={iconSVG} />
55
85
  </ExampleContainer>
86
+ <ExampleContainer>
87
+ <Title title="Big icon (SVG)" theme="light" level={4} />
88
+ <DxcButton icon={facebookIcon} />
89
+ </ExampleContainer>
90
+ <ExampleContainer>
91
+ <Title title="Big icon (image)" theme="light" level={4} />
92
+ <DxcButton icon="https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png" />
93
+ </ExampleContainer>
94
+ <ExampleContainer>
95
+ <Title title="Small icon" theme="light" level={4} />
96
+ <DxcButton icon={smallIcon} />
97
+ </ExampleContainer>
56
98
  <Title title="Secondary" theme="light" level={2} />
57
99
  <ExampleContainer>
58
100
  <Title title="Enabled" theme="light" level={4} />
@@ -78,6 +120,13 @@ export const Chromatic = () => (
78
120
  <Title title="With icon" theme="light" level={4} />
79
121
  <DxcButton mode="secondary" label="Secondary" icon={iconSVG} />
80
122
  </ExampleContainer>
123
+ <ExampleContainer>
124
+ <Title title="Only icon (image)" theme="light" level={4} />
125
+ <DxcButton
126
+ mode="secondary"
127
+ icon="https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png"
128
+ />
129
+ </ExampleContainer>
81
130
  <Title title="Text" theme="light" level={2} />
82
131
  <ExampleContainer>
83
132
  <Title title="Enabled" theme="light" level={4} />
@@ -103,6 +152,13 @@ export const Chromatic = () => (
103
152
  <Title title="With icon" theme="light" level={4} />
104
153
  <DxcButton label="Text" mode="text" icon={iconSVG} />
105
154
  </ExampleContainer>
155
+ <ExampleContainer>
156
+ <Title title="Only icon (image)" theme="light" level={4} />
157
+ <DxcButton
158
+ mode="text"
159
+ icon="https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png"
160
+ />
161
+ </ExampleContainer>
106
162
  <BackgroundColorProvider color="#333333">
107
163
  <DarkContainer>
108
164
  <Title title="Primary" theme="dark" level={2} />
@@ -272,5 +328,13 @@ export const Chromatic = () => (
272
328
  <Title title="Xxlarge margin" theme="light" level={4} />
273
329
  <DxcButton label="Xxlarge margin" margin="xxlarge" />
274
330
  </ExampleContainer>
331
+ <Title title="Inside a flex" theme="light" level={2} />
332
+ <ExampleContainer>
333
+ <DxcFlex direction="column" gap="0.75rem">
334
+ <DxcButton label="Button" />
335
+ <DxcButton label="Button" />
336
+ <DxcButton label="Button" />
337
+ </DxcFlex>
338
+ </ExampleContainer>
275
339
  </>
276
340
  );
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Button = _interopRequireDefault(require("./Button"));
10
+
11
+ describe("Button component tests", function () {
12
+ test("Button renders with correct text", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
14
+ label: "Button"
15
+ })),
16
+ getByText = _render.getByText;
17
+
18
+ expect(getByText("Button")).toBeTruthy();
19
+ });
20
+ test("Calls correct function on click", function () {
21
+ var onClick = jest.fn();
22
+
23
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
24
+ label: "Button",
25
+ onClick: onClick
26
+ })),
27
+ getByText = _render2.getByText;
28
+
29
+ var button = getByText("Button");
30
+
31
+ _react2.fireEvent.click(button);
32
+
33
+ expect(onClick).toHaveBeenCalled();
34
+ });
35
+ });