@dxc-technology/halstack-react 0.0.0-4448bdb → 0.0.0-453c87a

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 (278) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +294 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +117 -136
  5. package/accordion/Accordion.stories.tsx +65 -26
  6. package/accordion/Accordion.test.js +71 -0
  7. package/accordion/types.d.ts +11 -10
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +15 -36
  10. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  11. package/accordion-group/AccordionGroup.test.js +126 -0
  12. package/accordion-group/types.d.ts +16 -9
  13. package/alert/Alert.js +5 -2
  14. package/alert/Alert.test.js +92 -0
  15. package/badge/Badge.d.ts +4 -0
  16. package/badge/Badge.js +5 -3
  17. package/badge/types.d.ts +5 -0
  18. package/{radio → badge}/types.js +0 -0
  19. package/bleed/Bleed.d.ts +3 -0
  20. package/bleed/Bleed.js +51 -0
  21. package/bleed/Bleed.stories.tsx +341 -0
  22. package/bleed/types.d.ts +37 -0
  23. package/bleed/types.js +5 -0
  24. package/box/Box.js +23 -33
  25. package/box/Box.test.js +18 -0
  26. package/box/types.d.ts +1 -0
  27. package/bulleted-list/BulletedList.d.ts +7 -0
  28. package/bulleted-list/BulletedList.js +123 -0
  29. package/bulleted-list/BulletedList.stories.tsx +200 -0
  30. package/bulleted-list/types.d.ts +11 -0
  31. package/bulleted-list/types.js +5 -0
  32. package/button/Button.d.ts +1 -1
  33. package/button/Button.js +54 -79
  34. package/button/Button.stories.tsx +66 -8
  35. package/button/Button.test.js +35 -0
  36. package/button/types.d.ts +8 -12
  37. package/card/Card.js +24 -27
  38. package/card/Card.test.js +50 -0
  39. package/card/types.d.ts +1 -0
  40. package/checkbox/Checkbox.d.ts +2 -2
  41. package/checkbox/Checkbox.js +106 -109
  42. package/checkbox/Checkbox.stories.tsx +146 -130
  43. package/checkbox/Checkbox.test.js +155 -0
  44. package/checkbox/types.d.ts +13 -5
  45. package/chip/Chip.d.ts +1 -1
  46. package/chip/Chip.js +17 -67
  47. package/chip/Chip.stories.tsx +44 -14
  48. package/chip/Chip.test.js +56 -0
  49. package/chip/types.d.ts +5 -13
  50. package/common/variables.js +346 -446
  51. package/date-input/Calendar.d.ts +4 -0
  52. package/date-input/Calendar.js +246 -0
  53. package/date-input/DateInput.js +171 -260
  54. package/date-input/DateInput.stories.tsx +137 -38
  55. package/date-input/DateInput.test.js +835 -0
  56. package/date-input/DatePicker.d.ts +4 -0
  57. package/date-input/DatePicker.js +132 -0
  58. package/date-input/Icons.d.ts +6 -0
  59. package/date-input/Icons.js +75 -0
  60. package/date-input/YearPicker.d.ts +4 -0
  61. package/date-input/YearPicker.js +116 -0
  62. package/date-input/types.d.ts +67 -9
  63. package/dialog/Dialog.js +46 -50
  64. package/dialog/Dialog.stories.tsx +57 -2
  65. package/dialog/Dialog.test.js +70 -0
  66. package/dialog/types.d.ts +3 -2
  67. package/dropdown/Dropdown.d.ts +1 -1
  68. package/dropdown/Dropdown.js +249 -277
  69. package/dropdown/Dropdown.stories.tsx +153 -80
  70. package/dropdown/Dropdown.test.js +585 -0
  71. package/dropdown/DropdownMenu.d.ts +4 -0
  72. package/dropdown/DropdownMenu.js +80 -0
  73. package/dropdown/DropdownMenuItem.d.ts +4 -0
  74. package/dropdown/DropdownMenuItem.js +92 -0
  75. package/dropdown/types.d.ts +29 -18
  76. package/file-input/FileInput.d.ts +2 -2
  77. package/file-input/FileInput.js +183 -222
  78. package/file-input/FileInput.stories.tsx +38 -10
  79. package/file-input/FileInput.test.js +498 -0
  80. package/file-input/FileItem.d.ts +4 -14
  81. package/file-input/FileItem.js +43 -66
  82. package/file-input/types.d.ts +17 -0
  83. package/flex/Flex.d.ts +4 -0
  84. package/flex/Flex.js +69 -0
  85. package/flex/Flex.stories.tsx +103 -0
  86. package/flex/types.d.ts +32 -0
  87. package/flex/types.js +5 -0
  88. package/footer/Footer.js +24 -99
  89. package/footer/Footer.stories.tsx +8 -1
  90. package/footer/Footer.test.js +109 -0
  91. package/footer/Icons.js +1 -1
  92. package/footer/types.d.ts +2 -1
  93. package/header/Header.js +95 -114
  94. package/header/Header.stories.tsx +46 -36
  95. package/header/Header.test.js +79 -0
  96. package/header/Icons.js +2 -2
  97. package/header/types.d.ts +3 -2
  98. package/heading/Heading.test.js +186 -0
  99. package/inset/Inset.d.ts +3 -0
  100. package/inset/Inset.js +51 -0
  101. package/inset/Inset.stories.tsx +229 -0
  102. package/inset/types.d.ts +37 -0
  103. package/inset/types.js +5 -0
  104. package/layout/ApplicationLayout.d.ts +16 -6
  105. package/layout/ApplicationLayout.js +71 -125
  106. package/layout/ApplicationLayout.stories.tsx +84 -93
  107. package/layout/Icons.d.ts +5 -0
  108. package/layout/Icons.js +13 -2
  109. package/layout/SidenavContext.d.ts +5 -0
  110. package/layout/SidenavContext.js +19 -0
  111. package/layout/types.d.ts +18 -33
  112. package/link/Link.d.ts +3 -2
  113. package/link/Link.js +61 -86
  114. package/link/Link.stories.tsx +99 -52
  115. package/link/Link.test.js +83 -0
  116. package/link/types.d.ts +9 -29
  117. package/main.d.ts +11 -15
  118. package/main.js +53 -79
  119. package/number-input/NumberInput.js +11 -18
  120. package/number-input/NumberInput.stories.tsx +5 -5
  121. package/number-input/NumberInput.test.js +542 -0
  122. package/number-input/types.d.ts +17 -10
  123. package/package.json +19 -22
  124. package/paginator/Icons.d.ts +5 -0
  125. package/paginator/Icons.js +16 -28
  126. package/paginator/Paginator.js +19 -46
  127. package/paginator/Paginator.test.js +308 -0
  128. package/paragraph/Paragraph.d.ts +6 -0
  129. package/paragraph/Paragraph.js +38 -0
  130. package/paragraph/Paragraph.stories.tsx +44 -0
  131. package/password-input/PasswordInput.js +7 -4
  132. package/password-input/PasswordInput.test.js +181 -0
  133. package/password-input/types.d.ts +14 -11
  134. package/progress-bar/ProgressBar.d.ts +2 -2
  135. package/progress-bar/ProgressBar.js +57 -51
  136. package/progress-bar/ProgressBar.stories.jsx +13 -11
  137. package/progress-bar/ProgressBar.test.js +110 -0
  138. package/progress-bar/types.d.ts +3 -4
  139. package/quick-nav/QuickNav.d.ts +4 -0
  140. package/quick-nav/QuickNav.js +117 -0
  141. package/quick-nav/QuickNav.stories.tsx +342 -0
  142. package/quick-nav/types.d.ts +21 -0
  143. package/quick-nav/types.js +5 -0
  144. package/radio-group/Radio.d.ts +1 -1
  145. package/radio-group/Radio.js +57 -31
  146. package/radio-group/RadioGroup.js +75 -60
  147. package/radio-group/RadioGroup.stories.tsx +61 -39
  148. package/radio-group/RadioGroup.test.js +722 -0
  149. package/radio-group/types.d.ts +81 -3
  150. package/resultsetTable/Icons.d.ts +7 -0
  151. package/resultsetTable/Icons.js +51 -0
  152. package/resultsetTable/ResultsetTable.js +49 -105
  153. package/resultsetTable/ResultsetTable.stories.tsx +56 -33
  154. package/resultsetTable/ResultsetTable.test.js +330 -0
  155. package/resultsetTable/types.d.ts +2 -2
  156. package/select/Icons.d.ts +10 -0
  157. package/select/Icons.js +93 -0
  158. package/select/Listbox.d.ts +4 -0
  159. package/select/Listbox.js +198 -0
  160. package/select/Option.d.ts +4 -0
  161. package/select/Option.js +108 -0
  162. package/select/Select.js +147 -365
  163. package/select/Select.stories.tsx +324 -213
  164. package/select/Select.test.js +2233 -0
  165. package/select/types.d.ts +52 -12
  166. package/sidenav/Sidenav.d.ts +6 -5
  167. package/sidenav/Sidenav.js +182 -52
  168. package/sidenav/Sidenav.stories.tsx +163 -156
  169. package/sidenav/Sidenav.test.js +44 -0
  170. package/sidenav/types.d.ts +50 -27
  171. package/slider/Slider.d.ts +2 -2
  172. package/slider/Slider.js +122 -96
  173. package/slider/Slider.stories.tsx +15 -9
  174. package/slider/Slider.test.js +250 -0
  175. package/slider/types.d.ts +10 -2
  176. package/spinner/Spinner.js +3 -3
  177. package/spinner/Spinner.test.js +64 -0
  178. package/switch/Switch.d.ts +2 -2
  179. package/switch/Switch.js +150 -67
  180. package/switch/Switch.stories.tsx +20 -42
  181. package/switch/Switch.test.js +225 -0
  182. package/switch/types.d.ts +12 -4
  183. package/table/Table.js +1 -1
  184. package/table/Table.test.js +26 -0
  185. package/tabs/Tab.d.ts +4 -0
  186. package/tabs/Tab.js +133 -0
  187. package/tabs/Tabs.d.ts +1 -1
  188. package/tabs/Tabs.js +364 -110
  189. package/tabs/Tabs.stories.tsx +84 -18
  190. package/tabs/Tabs.test.js +351 -0
  191. package/tabs/types.d.ts +39 -17
  192. package/tabs-nav/NavTabs.d.ts +8 -0
  193. package/tabs-nav/NavTabs.js +125 -0
  194. package/tabs-nav/NavTabs.stories.tsx +172 -0
  195. package/tabs-nav/NavTabs.test.js +82 -0
  196. package/tabs-nav/Tab.d.ts +4 -0
  197. package/tabs-nav/Tab.js +128 -0
  198. package/tabs-nav/types.d.ts +53 -0
  199. package/tabs-nav/types.js +5 -0
  200. package/tag/Tag.d.ts +1 -1
  201. package/tag/Tag.js +18 -28
  202. package/tag/Tag.stories.tsx +25 -28
  203. package/tag/Tag.test.js +60 -0
  204. package/tag/types.d.ts +23 -14
  205. package/text-input/Icons.d.ts +8 -0
  206. package/text-input/Icons.js +60 -0
  207. package/text-input/Suggestion.d.ts +4 -0
  208. package/text-input/Suggestion.js +84 -0
  209. package/text-input/Suggestions.d.ts +4 -0
  210. package/text-input/Suggestions.js +134 -0
  211. package/text-input/TextInput.js +219 -332
  212. package/text-input/TextInput.stories.tsx +242 -197
  213. package/text-input/TextInput.test.js +1724 -0
  214. package/text-input/types.d.ts +51 -13
  215. package/textarea/Textarea.js +20 -27
  216. package/textarea/Textarea.stories.jsx +33 -12
  217. package/textarea/Textarea.test.js +437 -0
  218. package/textarea/types.d.ts +18 -11
  219. package/toggle-group/ToggleGroup.d.ts +1 -1
  220. package/toggle-group/ToggleGroup.js +5 -4
  221. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  222. package/toggle-group/ToggleGroup.test.js +156 -0
  223. package/toggle-group/types.d.ts +9 -1
  224. package/typography/Typography.d.ts +4 -0
  225. package/typography/Typography.js +131 -0
  226. package/typography/Typography.stories.tsx +198 -0
  227. package/typography/types.d.ts +18 -0
  228. package/typography/types.js +5 -0
  229. package/useTheme.js +2 -2
  230. package/useTranslatedLabels.d.ts +2 -0
  231. package/useTranslatedLabels.js +20 -0
  232. package/wizard/Wizard.d.ts +1 -1
  233. package/wizard/Wizard.js +58 -54
  234. package/wizard/Wizard.stories.tsx +33 -24
  235. package/wizard/Wizard.test.js +141 -0
  236. package/wizard/types.d.ts +10 -5
  237. package/ThemeContext.d.ts +0 -15
  238. package/ThemeContext.js +0 -243
  239. package/V3Select/V3Select.js +0 -455
  240. package/V3Select/index.d.ts +0 -27
  241. package/V3Textarea/V3Textarea.js +0 -260
  242. package/V3Textarea/index.d.ts +0 -27
  243. package/common/RequiredComponent.js +0 -32
  244. package/date/Date.js +0 -373
  245. package/date/index.d.ts +0 -27
  246. package/input-text/Icons.js +0 -22
  247. package/input-text/InputText.js +0 -611
  248. package/input-text/index.d.ts +0 -36
  249. package/list/List.d.ts +0 -8
  250. package/list/List.js +0 -47
  251. package/list/List.stories.tsx +0 -95
  252. package/radio/Radio.d.ts +0 -4
  253. package/radio/Radio.js +0 -174
  254. package/radio/Radio.stories.tsx +0 -192
  255. package/radio/types.d.ts +0 -54
  256. package/row/Row.d.ts +0 -11
  257. package/row/Row.js +0 -127
  258. package/row/Row.stories.tsx +0 -239
  259. package/stack/Stack.d.ts +0 -10
  260. package/stack/Stack.js +0 -97
  261. package/stack/Stack.stories.tsx +0 -166
  262. package/text/Text.d.ts +0 -7
  263. package/text/Text.js +0 -30
  264. package/text/Text.stories.tsx +0 -19
  265. package/toggle/Toggle.js +0 -186
  266. package/toggle/index.d.ts +0 -21
  267. package/upload/Upload.js +0 -201
  268. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  269. package/upload/buttons-upload/Icons.js +0 -40
  270. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  271. package/upload/dragAndDropArea/Icons.js +0 -39
  272. package/upload/file-upload/FileToUpload.js +0 -115
  273. package/upload/file-upload/Icons.js +0 -66
  274. package/upload/files-upload/FilesToUpload.js +0 -109
  275. package/upload/index.d.ts +0 -15
  276. package/upload/transaction/Icons.js +0 -160
  277. package/upload/transaction/Transaction.js +0 -104
  278. package/upload/transactions/Transactions.js +0 -94
@@ -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
 
@@ -27,12 +25,28 @@ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
25
 
28
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,10 @@ 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 mode="secondary" icon="https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png" />
126
+ </ExampleContainer>
81
127
  <Title title="Text" theme="light" level={2} />
82
128
  <ExampleContainer>
83
129
  <Title title="Enabled" theme="light" level={4} />
@@ -103,6 +149,10 @@ export const Chromatic = () => (
103
149
  <Title title="With icon" theme="light" level={4} />
104
150
  <DxcButton label="Text" mode="text" icon={iconSVG} />
105
151
  </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="Only icon (image)" theme="light" level={4} />
154
+ <DxcButton mode="text" icon="https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png" />
155
+ </ExampleContainer>
106
156
  <BackgroundColorProvider color="#333333">
107
157
  <DarkContainer>
108
158
  <Title title="Primary" theme="dark" level={2} />
@@ -272,5 +322,13 @@ export const Chromatic = () => (
272
322
  <Title title="Xxlarge margin" theme="light" level={4} />
273
323
  <DxcButton label="Xxlarge margin" margin="xxlarge" />
274
324
  </ExampleContainer>
325
+ <Title title="Inside a flex" theme="light" level={2} />
326
+ <ExampleContainer>
327
+ <DxcFlex direction="column" gap="0.75rem">
328
+ <DxcButton label="Button" />
329
+ <DxcButton label="Button" />
330
+ <DxcButton label="Button" />
331
+ </DxcFlex>
332
+ </ExampleContainer>
275
333
  </>
276
334
  );
@@ -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
+ });