@dxc-technology/halstack-react 0.0.0-27afd3d → 0.0.0-28a98e5

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 (293) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/V3Select/V3Select.js +455 -0
  4. package/V3Select/index.d.ts +27 -0
  5. package/V3Textarea/V3Textarea.js +260 -0
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/accordion/Accordion.js +289 -0
  8. package/accordion/index.d.ts +28 -0
  9. package/{dist/accordion-group → accordion-group}/AccordionGroup.js +46 -18
  10. package/accordion-group/index.d.ts +16 -0
  11. package/alert/Alert.js +309 -0
  12. package/alert/index.d.ts +51 -0
  13. package/badge/Badge.js +59 -0
  14. package/{dist/box → box}/Box.js +36 -29
  15. package/box/index.d.ts +25 -0
  16. package/button/Button.d.ts +4 -0
  17. package/button/Button.js +182 -0
  18. package/button/Button.stories.tsx +306 -0
  19. package/button/types.d.ts +57 -0
  20. package/button/types.js +5 -0
  21. package/card/Card.js +200 -0
  22. package/card/index.d.ts +22 -0
  23. package/checkbox/Checkbox.js +275 -0
  24. package/checkbox/index.d.ts +24 -0
  25. package/chip/Chip.js +221 -0
  26. package/chip/index.d.ts +22 -0
  27. package/{dist/common → common}/OpenSans.css +0 -0
  28. package/{dist/common → common}/RequiredComponent.js +3 -11
  29. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  30. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  31. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  32. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  33. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  34. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  35. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  36. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  37. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  38. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  39. package/common/utils.js +22 -0
  40. package/common/variables.js +1567 -0
  41. package/{dist/date → date}/Date.js +77 -56
  42. package/date/index.d.ts +27 -0
  43. package/date-input/DateInput.js +396 -0
  44. package/date-input/index.d.ts +95 -0
  45. package/dialog/Dialog.js +184 -0
  46. package/dialog/index.d.ts +18 -0
  47. package/dropdown/Dropdown.js +450 -0
  48. package/dropdown/index.d.ts +26 -0
  49. package/file-input/FileInput.js +532 -0
  50. package/file-input/FileItem.js +193 -0
  51. package/file-input/index.d.ts +81 -0
  52. package/footer/Footer.js +297 -0
  53. package/footer/Icons.js +77 -0
  54. package/footer/index.d.ts +25 -0
  55. package/header/Header.js +326 -0
  56. package/header/Icons.js +59 -0
  57. package/header/index.d.ts +25 -0
  58. package/heading/Heading.js +176 -0
  59. package/heading/index.d.ts +17 -0
  60. package/input-text/Icons.js +22 -0
  61. package/input-text/InputText.js +611 -0
  62. package/input-text/index.d.ts +36 -0
  63. package/{dist/layout → layout}/ApplicationLayout.js +39 -134
  64. package/layout/Icons.js +55 -0
  65. package/link/Link.js +183 -0
  66. package/link/index.d.ts +23 -0
  67. package/main.d.ts +44 -0
  68. package/{dist/main.js → main.js} +125 -65
  69. package/number-input/NumberInput.js +128 -0
  70. package/number-input/NumberInputContext.js +16 -0
  71. package/number-input/index.d.ts +113 -0
  72. package/package.json +31 -22
  73. package/paginator/Icons.js +66 -0
  74. package/paginator/Paginator.js +221 -0
  75. package/paginator/index.d.ts +20 -0
  76. package/password-input/PasswordInput.js +199 -0
  77. package/password-input/index.d.ts +94 -0
  78. package/progress-bar/ProgressBar.js +188 -0
  79. package/progress-bar/index.d.ts +18 -0
  80. package/{dist/radio → radio}/Radio.js +39 -34
  81. package/radio/index.d.ts +23 -0
  82. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +92 -145
  83. package/resultsetTable/index.d.ts +19 -0
  84. package/select/Select.js +864 -0
  85. package/select/index.d.ts +131 -0
  86. package/sidenav/Sidenav.js +145 -0
  87. package/sidenav/index.d.ts +13 -0
  88. package/slider/Slider.js +340 -0
  89. package/slider/index.d.ts +29 -0
  90. package/spinner/Spinner.js +267 -0
  91. package/spinner/index.d.ts +17 -0
  92. package/switch/Switch.js +208 -0
  93. package/switch/index.d.ts +24 -0
  94. package/table/Table.js +118 -0
  95. package/table/index.d.ts +13 -0
  96. package/tabs/Tabs.js +259 -0
  97. package/tabs/index.d.ts +19 -0
  98. package/tag/Tag.js +208 -0
  99. package/tag/index.d.ts +24 -0
  100. package/text-input/TextInput.js +818 -0
  101. package/text-input/index.d.ts +135 -0
  102. package/textarea/Textarea.js +315 -0
  103. package/textarea/index.d.ts +117 -0
  104. package/{dist/toggle → toggle}/Toggle.js +30 -67
  105. package/toggle/index.d.ts +21 -0
  106. package/toggle-group/ToggleGroup.js +243 -0
  107. package/toggle-group/index.d.ts +21 -0
  108. package/{dist/upload → upload}/Upload.js +23 -22
  109. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  110. package/upload/buttons-upload/Icons.js +40 -0
  111. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  112. package/upload/dragAndDropArea/Icons.js +39 -0
  113. package/upload/file-upload/FileToUpload.js +115 -0
  114. package/upload/file-upload/Icons.js +66 -0
  115. package/upload/files-upload/FilesToUpload.js +109 -0
  116. package/upload/index.d.ts +15 -0
  117. package/upload/transaction/Icons.js +160 -0
  118. package/upload/transaction/Transaction.js +104 -0
  119. package/upload/transactions/Transactions.js +94 -0
  120. package/{dist/useTheme.js → useTheme.js} +0 -0
  121. package/wizard/Icons.js +65 -0
  122. package/wizard/Wizard.js +271 -0
  123. package/wizard/index.d.ts +18 -0
  124. package/README.md +0 -66
  125. package/babel.config.js +0 -8
  126. package/dist/ThemeContext.js +0 -187
  127. package/dist/accordion/Accordion.js +0 -268
  128. package/dist/accordion/Accordion.stories.js +0 -207
  129. package/dist/accordion/readme.md +0 -96
  130. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  131. package/dist/accordion-group/readme.md +0 -70
  132. package/dist/alert/Alert.js +0 -303
  133. package/dist/alert/Alert.stories.js +0 -158
  134. package/dist/alert/close.svg +0 -4
  135. package/dist/alert/error.svg +0 -4
  136. package/dist/alert/info.svg +0 -4
  137. package/dist/alert/readme.md +0 -43
  138. package/dist/alert/success.svg +0 -4
  139. package/dist/alert/warning.svg +0 -4
  140. package/dist/badge/Badge.js +0 -42
  141. package/dist/button/Button.js +0 -199
  142. package/dist/button/Button.stories.js +0 -224
  143. package/dist/button/readme.md +0 -93
  144. package/dist/card/Card.js +0 -217
  145. package/dist/checkbox/Checkbox.js +0 -229
  146. package/dist/checkbox/Checkbox.stories.js +0 -144
  147. package/dist/checkbox/readme.md +0 -116
  148. package/dist/chip/Chip.js +0 -205
  149. package/dist/common/services/example-service.js +0 -10
  150. package/dist/common/services/example-service.test.js +0 -12
  151. package/dist/common/utils.js +0 -42
  152. package/dist/common/variables.js +0 -346
  153. package/dist/date/Date.stories.js +0 -205
  154. package/dist/date/calendar.svg +0 -1
  155. package/dist/date/calendar_dark.svg +0 -1
  156. package/dist/date/readme.md +0 -73
  157. package/dist/dialog/Dialog.js +0 -195
  158. package/dist/dialog/Dialog.stories.js +0 -217
  159. package/dist/dialog/readme.md +0 -32
  160. package/dist/dropdown/Dropdown.js +0 -446
  161. package/dist/dropdown/Dropdown.stories.js +0 -249
  162. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  163. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  164. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  165. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  166. package/dist/dropdown/readme.md +0 -69
  167. package/dist/footer/Footer.js +0 -366
  168. package/dist/footer/Footer.stories.js +0 -94
  169. package/dist/footer/dxc_logo_wht.png +0 -0
  170. package/dist/footer/readme.md +0 -41
  171. package/dist/header/Header.js +0 -368
  172. package/dist/header/Header.stories.js +0 -176
  173. package/dist/header/close_icon.svg +0 -1
  174. package/dist/header/dxc_logo_black.png +0 -0
  175. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  176. package/dist/header/dxc_logo_white.png +0 -0
  177. package/dist/header/hamb_menu_black.svg +0 -1
  178. package/dist/header/hamb_menu_white.svg +0 -1
  179. package/dist/header/readme.md +0 -33
  180. package/dist/heading/Heading.js +0 -153
  181. package/dist/input-text/InputText.js +0 -559
  182. package/dist/input-text/InputText.stories.js +0 -209
  183. package/dist/input-text/error.svg +0 -1
  184. package/dist/input-text/readme.md +0 -91
  185. package/dist/layout/facebook.svg +0 -45
  186. package/dist/layout/linkedin.svg +0 -50
  187. package/dist/layout/twitter.svg +0 -53
  188. package/dist/link/Link.js +0 -187
  189. package/dist/link/readme.md +0 -51
  190. package/dist/paginator/Paginator.js +0 -247
  191. package/dist/paginator/images/next.svg +0 -3
  192. package/dist/paginator/images/nextPage.svg +0 -3
  193. package/dist/paginator/images/previous.svg +0 -3
  194. package/dist/paginator/images/previousPage.svg +0 -3
  195. package/dist/paginator/readme.md +0 -50
  196. package/dist/progress-bar/ProgressBar.js +0 -184
  197. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  198. package/dist/progress-bar/readme.md +0 -63
  199. package/dist/radio/Radio.stories.js +0 -166
  200. package/dist/radio/readme.md +0 -70
  201. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  202. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  203. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  204. package/dist/select/Select.js +0 -472
  205. package/dist/select/Select.stories.js +0 -235
  206. package/dist/select/readme.md +0 -72
  207. package/dist/sidenav/Sidenav.js +0 -123
  208. package/dist/slider/Slider.js +0 -257
  209. package/dist/slider/Slider.stories.js +0 -241
  210. package/dist/slider/readme.md +0 -64
  211. package/dist/spinner/Spinner.js +0 -190
  212. package/dist/spinner/Spinner.stories.js +0 -183
  213. package/dist/spinner/readme.md +0 -65
  214. package/dist/switch/Switch.js +0 -190
  215. package/dist/switch/Switch.stories.js +0 -134
  216. package/dist/switch/readme.md +0 -133
  217. package/dist/table/Table.js +0 -102
  218. package/dist/tabs/Tabs.js +0 -302
  219. package/dist/tabs/Tabs.stories.js +0 -130
  220. package/dist/tabs/readme.md +0 -78
  221. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  222. package/dist/tabs-for-sections/readme.md +0 -78
  223. package/dist/tag/Tag.js +0 -249
  224. package/dist/textarea/Textarea.js +0 -220
  225. package/dist/toggle/Toggle.stories.js +0 -297
  226. package/dist/toggle/readme.md +0 -80
  227. package/dist/toggle-group/ToggleGroup.js +0 -221
  228. package/dist/toggle-group/readme.md +0 -82
  229. package/dist/upload/Upload.stories.js +0 -72
  230. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -122
  231. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  232. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  233. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -279
  234. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  235. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  236. package/dist/upload/file-upload/FileToUpload.js +0 -158
  237. package/dist/upload/file-upload/audio-icon.svg +0 -4
  238. package/dist/upload/file-upload/close.svg +0 -4
  239. package/dist/upload/file-upload/file-icon.svg +0 -4
  240. package/dist/upload/file-upload/video-icon.svg +0 -4
  241. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  242. package/dist/upload/readme.md +0 -37
  243. package/dist/upload/transaction/Transaction.js +0 -155
  244. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  245. package/dist/upload/transaction/audio-icon.svg +0 -4
  246. package/dist/upload/transaction/error-icon.svg +0 -4
  247. package/dist/upload/transaction/file-icon-err.svg +0 -4
  248. package/dist/upload/transaction/file-icon.svg +0 -4
  249. package/dist/upload/transaction/image-icon-err.svg +0 -4
  250. package/dist/upload/transaction/image-icon.svg +0 -4
  251. package/dist/upload/transaction/success-icon.svg +0 -4
  252. package/dist/upload/transaction/video-icon-err.svg +0 -4
  253. package/dist/upload/transaction/video-icon.svg +0 -4
  254. package/dist/upload/transactions/Transactions.js +0 -120
  255. package/dist/wizard/Wizard.js +0 -326
  256. package/dist/wizard/invalid_icon.svg +0 -6
  257. package/dist/wizard/valid_icon.svg +0 -6
  258. package/dist/wizard/validation-wrong.svg +0 -6
  259. package/test/Accordion.test.js +0 -33
  260. package/test/AccordionGroup.test.js +0 -109
  261. package/test/Alert.test.js +0 -53
  262. package/test/Box.test.js +0 -10
  263. package/test/Button.test.js +0 -18
  264. package/test/Card.test.js +0 -30
  265. package/test/Checkbox.test.js +0 -45
  266. package/test/Chip.test.js +0 -25
  267. package/test/Date.test.js +0 -393
  268. package/test/Dialog.test.js +0 -23
  269. package/test/Dropdown.test.js +0 -130
  270. package/test/Footer.test.js +0 -99
  271. package/test/Header.test.js +0 -39
  272. package/test/Heading.test.js +0 -35
  273. package/test/InputText.test.js +0 -240
  274. package/test/Link.test.js +0 -42
  275. package/test/Paginator.test.js +0 -177
  276. package/test/ProgressBar.test.js +0 -35
  277. package/test/Radio.test.js +0 -37
  278. package/test/ResultsetTable.test.js +0 -330
  279. package/test/Select.test.js +0 -192
  280. package/test/Sidenav.test.js +0 -45
  281. package/test/Slider.test.js +0 -82
  282. package/test/Spinner.test.js +0 -27
  283. package/test/Switch.test.js +0 -45
  284. package/test/Table.test.js +0 -36
  285. package/test/Tabs.test.js +0 -109
  286. package/test/TabsForSections.test.js +0 -34
  287. package/test/Tag.test.js +0 -32
  288. package/test/TextArea.test.js +0 -52
  289. package/test/ToggleGroup.test.js +0 -81
  290. package/test/Upload.test.js +0 -60
  291. package/test/Wizard.test.js +0 -130
  292. package/test/mocks/pngMock.js +0 -1
  293. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,306 @@
1
+ import React from "react";
2
+ import styled from "styled-components";
3
+ import DxcButton from "./Button";
4
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
5
+
6
+ export default {
7
+ title: "Button ",
8
+ component: DxcButton,
9
+ };
10
+
11
+ const iconSVG = () => {
12
+ return (
13
+ <svg viewBox="0 0 24 24" fill="currentColor">
14
+ <path d="M0 0h24v24H0z" fill="none" />
15
+ <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" />
16
+ </svg>
17
+ );
18
+ };
19
+ export const Chromatic = () => (
20
+ <>
21
+ <>
22
+ <MainTitle>Primary</MainTitle>
23
+ <Container>
24
+ <ContainerTitle>Enabled</ContainerTitle>
25
+ <DxcButton label="Primary enabled" />
26
+ </Container>
27
+ <Container className="pseudo-hover">
28
+ <ContainerTitle>Hovered</ContainerTitle>
29
+ <DxcButton label="Primary hovered" />
30
+ </Container>
31
+ <Container className="pseudo-focus">
32
+ <ContainerTitle>Focused</ContainerTitle>
33
+ <DxcButton label="Primary focused" />
34
+ </Container>
35
+ <Container className="pseudo-active">
36
+ <ContainerTitle>Actived</ContainerTitle>
37
+ <DxcButton label="Primary actived" />
38
+ </Container>
39
+ <Container>
40
+ <ContainerTitle>Disabled</ContainerTitle>
41
+ <DxcButton label="Primary disabled" disabled />
42
+ </Container>
43
+ <Container>
44
+ <ContainerTitle>With left icon</ContainerTitle>
45
+ <DxcButton label="Primary" icon={iconSVG} />
46
+ </Container>
47
+ <Container>
48
+ <ContainerTitle>With right icon</ContainerTitle>
49
+ <DxcButton label="Primary" icon={iconSVG} iconPosition="after" />
50
+ </Container>
51
+ <Container>
52
+ <ContainerTitle>Only icon</ContainerTitle>
53
+ <DxcButton icon={iconSVG} />
54
+ </Container>
55
+ </>
56
+ <>
57
+ <>
58
+ <MainTitle>Secondary</MainTitle>
59
+ <Container>
60
+ <ContainerTitle>Enabled</ContainerTitle>
61
+ <DxcButton mode="secondary" label="Secondary enabled" />
62
+ </Container>
63
+ <Container className="pseudo-hover">
64
+ <ContainerTitle>Hovered</ContainerTitle>
65
+ <DxcButton mode="secondary" label="Secondary hovered" />
66
+ </Container>
67
+ <Container className="pseudo-focus">
68
+ <ContainerTitle>Focused</ContainerTitle>
69
+ <DxcButton mode="secondary" label="Secondary focused" />
70
+ </Container>
71
+ <Container className="pseudo-active">
72
+ <ContainerTitle>Actived</ContainerTitle>
73
+ <DxcButton mode="secondary" label="Secondary actived" />
74
+ </Container>
75
+ <Container>
76
+ <ContainerTitle>Disabled</ContainerTitle>
77
+ <DxcButton mode="secondary" disabled label="Secondary disabled" />
78
+ </Container>
79
+ <Container>
80
+ <ContainerTitle>With icon</ContainerTitle>
81
+ <DxcButton mode="secondary" label="Secondary" icon={iconSVG} />
82
+ </Container>
83
+ </>
84
+ <>
85
+ <MainTitle>Text</MainTitle>
86
+ <Container>
87
+ <ContainerTitle>Enabled</ContainerTitle>
88
+ <DxcButton mode="text" label="Text enabled" />
89
+ </Container>
90
+ <Container className="pseudo-hover">
91
+ <ContainerTitle>Hovered</ContainerTitle>
92
+ <DxcButton mode="text" label="Text hovered" />
93
+ </Container>
94
+ <Container className="pseudo-focus">
95
+ <ContainerTitle>Focused</ContainerTitle>
96
+ <DxcButton mode="text" label="Text focused" />
97
+ </Container>
98
+ <Container className="pseudo-active">
99
+ <ContainerTitle>Actived</ContainerTitle>
100
+ <DxcButton mode="text" label="Text actived" />
101
+ </Container>
102
+ <Container>
103
+ <ContainerTitle>Disabled</ContainerTitle>
104
+ <DxcButton mode="text" label="Text disabled" disabled />
105
+ </Container>
106
+ <Container>
107
+ <ContainerTitle>With icon</ContainerTitle>
108
+ <DxcButton label="Text" mode="text" icon={iconSVG} />
109
+ </Container>
110
+ </>
111
+ </>
112
+ <BackgroundColorProvider color="#333333">
113
+ <DarkContainer>
114
+ <>
115
+ <MainTitle style={{ color: "white" }}>Primary</MainTitle>
116
+ <Container>
117
+ <ContainerTitle style={{ color: "white" }}>Enabled</ContainerTitle>
118
+ <DxcButton label="Primary enabled" />
119
+ </Container>
120
+ <Container className="pseudo-hover">
121
+ <ContainerTitle style={{ color: "white" }}>Hovered</ContainerTitle>
122
+ <DxcButton label="Primary hovered" />
123
+ </Container>
124
+ <Container className="pseudo-focus">
125
+ <ContainerTitle style={{ color: "white" }}>Focused</ContainerTitle>
126
+ <DxcButton label="Primary focused" />
127
+ </Container>
128
+ <Container className="pseudo-active">
129
+ <ContainerTitle style={{ color: "white" }}>Actived</ContainerTitle>
130
+ <DxcButton label="Primary actived" />
131
+ </Container>
132
+ <Container>
133
+ <ContainerTitle style={{ color: "white" }}>Disabled</ContainerTitle>
134
+ <DxcButton label="Primary disabled" disabled />
135
+ </Container>
136
+ <Container style={{ color: "white" }}>
137
+ <ContainerTitle>With icon</ContainerTitle>
138
+ <DxcButton label="Primary" icon={iconSVG} />
139
+ </Container>
140
+ </>
141
+ <>
142
+ <MainTitle style={{ color: "white" }}>Secondary</MainTitle>
143
+ <Container>
144
+ <ContainerTitle style={{ color: "white" }}>Enabled</ContainerTitle>
145
+ <DxcButton mode="secondary" label="Secondary enabled" />
146
+ </Container>
147
+ <Container className="pseudo-hover">
148
+ <ContainerTitle style={{ color: "white" }}>Hovered</ContainerTitle>
149
+ <DxcButton mode="secondary" label="Secondary hovered" />
150
+ </Container>
151
+ <Container className="pseudo-focus">
152
+ <ContainerTitle style={{ color: "white" }}>Focused</ContainerTitle>
153
+ <DxcButton mode="secondary" label="Secondary focused" />
154
+ </Container>
155
+ <Container className="pseudo-active">
156
+ <ContainerTitle style={{ color: "white" }}>Actived</ContainerTitle>
157
+ <DxcButton mode="secondary" label="Secondary actived" />
158
+ </Container>
159
+ <Container>
160
+ <ContainerTitle style={{ color: "white" }}>Disabled</ContainerTitle>
161
+ <DxcButton mode="secondary" disabled label="Secondary disabled" />
162
+ </Container>
163
+ <Container style={{ color: "white" }}>
164
+ <ContainerTitle>With icon</ContainerTitle>
165
+ <DxcButton mode="secondary" label="Primary" icon={iconSVG} />
166
+ </Container>
167
+ </>
168
+ <>
169
+ <MainTitle style={{ color: "white" }}>Text</MainTitle>
170
+ <Container>
171
+ <ContainerTitle style={{ color: "white" }}>Enabled</ContainerTitle>
172
+ <DxcButton mode="text" label="Text enabled" />
173
+ </Container>
174
+ <Container className="pseudo-hover">
175
+ <ContainerTitle style={{ color: "white" }}>Hovered</ContainerTitle>
176
+ <DxcButton mode="text" label="Text hovered" />
177
+ </Container>
178
+ <Container className="pseudo-focus">
179
+ <ContainerTitle style={{ color: "white" }}>Focused</ContainerTitle>
180
+ <DxcButton mode="text" label="Text focused" />
181
+ </Container>
182
+ <Container className="pseudo-active">
183
+ <ContainerTitle style={{ color: "white" }}>Actived</ContainerTitle>
184
+ <DxcButton mode="text" label="Text actived" />
185
+ </Container>
186
+ <Container>
187
+ <ContainerTitle style={{ color: "white" }}>Disabled</ContainerTitle>
188
+ <DxcButton mode="text" label="Text disabled" disabled />
189
+ </Container>
190
+ <Container style={{ color: "white" }}>
191
+ <ContainerTitle>With icon</ContainerTitle>
192
+ <DxcButton mode="text" label="Primary" icon={iconSVG} />
193
+ </Container>
194
+ </>
195
+ </DarkContainer>
196
+ </BackgroundColorProvider>
197
+ <>
198
+ <MainTitle>Sizes</MainTitle>
199
+ <Container>
200
+ <ContainerTitle>Small size</ContainerTitle>
201
+ <DxcButton label="Small" size="small" />
202
+ </Container>
203
+ <Container>
204
+ <ContainerTitle>Medium size</ContainerTitle>
205
+ <DxcButton label="MediumSiz" size="medium" />
206
+ </Container>
207
+ <Container>
208
+ <ContainerTitle>Medium size with ellipsis</ContainerTitle>
209
+ <DxcButton label="MediumSize" size="medium" />
210
+ </Container>
211
+ <Container>
212
+ <ContainerTitle>Medium size icon after</ContainerTitle>
213
+ <DxcButton label="Mediu" iconPosition="after" icon={iconSVG} size="medium" />
214
+ </Container>
215
+ <Container>
216
+ <ContainerTitle>Medium size icon before</ContainerTitle>
217
+ <DxcButton label="Mediu" iconPosition="before" icon={iconSVG} size="medium" />
218
+ </Container>
219
+ <Container>
220
+ <ContainerTitle>Medium size icon after with ellipsis</ContainerTitle>
221
+ <DxcButton label="Medium" iconPosition="after" icon={iconSVG} size="medium" />
222
+ </Container>
223
+ <Container>
224
+ <ContainerTitle>Medium size icon before with ellipsis</ContainerTitle>
225
+ <DxcButton label="Medium" iconPosition="before" icon={iconSVG} size="medium" />
226
+ </Container>
227
+ <Container>
228
+ <ContainerTitle>Large size</ContainerTitle>
229
+ <DxcButton label="LargeSizePrimaryButtonEx" size="large" />
230
+ </Container>
231
+ <Container>
232
+ <ContainerTitle>Large size with ellipsis</ContainerTitle>
233
+ <DxcButton label="LargeSizePrimaryButtonExa" size="large" />
234
+ </Container>
235
+ <Container>
236
+ <ContainerTitle>Large size icon after</ContainerTitle>
237
+ <DxcButton label="LargeSizePrimaryButto" iconPosition="after" icon={iconSVG} size="large" />
238
+ </Container>
239
+ <Container>
240
+ <ContainerTitle>Large size icon before</ContainerTitle>
241
+ <DxcButton label="LargeSizePrimaryButto" iconPosition="before" icon={iconSVG} size="large" />
242
+ </Container>
243
+ <Container>
244
+ <ContainerTitle>Large size icon after with ellipsis</ContainerTitle>
245
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="after" icon={iconSVG} size="large" />
246
+ </Container>
247
+ <Container>
248
+ <ContainerTitle>Large size icon before with ellipsis</ContainerTitle>
249
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="before" icon={iconSVG} size="large" />
250
+ </Container>
251
+ <Container>
252
+ <ContainerTitle>Fill parent size</ContainerTitle>
253
+ <DxcButton label="FillParent" size="fillParent" />
254
+ </Container>
255
+ <Container>
256
+ <ContainerTitle>Fit content size</ContainerTitle>
257
+ <DxcButton label="FitContent" size="fitContent" />
258
+ </Container>
259
+ <MainTitle>Margins</MainTitle>
260
+ <Container>
261
+ <ContainerTitle>Xxsmall margin</ContainerTitle>
262
+ <DxcButton label="Xxsmall margin" margin="xxsmall" />
263
+ </Container>
264
+ <Container>
265
+ <ContainerTitle>Xsmall margin</ContainerTitle>
266
+ <DxcButton label="Xsmall margin" margin="xsmall" />
267
+ </Container>
268
+ <Container>
269
+ <ContainerTitle>Small margin</ContainerTitle>
270
+ <DxcButton label="Small margin" margin="small" />
271
+ </Container>
272
+ <Container>
273
+ <ContainerTitle>Medium margin</ContainerTitle>
274
+ <DxcButton label="Medium margin" margin="medium" />
275
+ </Container>
276
+ <Container>
277
+ <ContainerTitle>Large margin</ContainerTitle>
278
+ <DxcButton label="Large margin" margin="large" />
279
+ </Container>
280
+ <Container>
281
+ <ContainerTitle>Xlarge margin</ContainerTitle>
282
+ <DxcButton label="Xlarge margin" margin="xlarge" />
283
+ </Container>
284
+ <Container>
285
+ <ContainerTitle>Xxlarge margin</ContainerTitle>
286
+ <DxcButton label="Xxlarge margin" margin="xxlarge" />
287
+ </Container>
288
+ </>
289
+ </>
290
+ );
291
+
292
+ const MainTitle = styled.h2`
293
+ font-family: Open Sans, sans-serif;
294
+ `;
295
+
296
+ const ContainerTitle = styled.h4`
297
+ font-family: Open Sans, sans-serif;
298
+ `;
299
+
300
+ const Container = styled.div`
301
+ margin: 15px;
302
+ `;
303
+
304
+ const DarkContainer = styled.div`
305
+ background-color: #333333;
306
+ `;
@@ -0,0 +1,57 @@
1
+ declare type Size = "small" | "medium" | "large" | "fillParent" | "fitContent";
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = string | (HTMLElement & SVGElement);
10
+ declare type Props = {
11
+ /**
12
+ * Text to be placed next to the button.
13
+ */
14
+ label?: string;
15
+ /**
16
+ * Uses one of the available button modes.
17
+ */
18
+ mode?: "primary" | "secondary" | "text";
19
+ /**
20
+ * If true, the component will be disabled.
21
+ */
22
+ disabled?: boolean;
23
+ /**
24
+ * Whether the icon should appear after or before the label.
25
+ */
26
+ iconPosition?: "before" | "after";
27
+ /**
28
+ * This prop corresponds to the 'type' prop of the button in html.
29
+ */
30
+ type?: "button" | "reset" | "submit";
31
+ /**
32
+ * DEPRECATED. URL of the icon that will be placed next to the button label.
33
+ */
34
+ iconSrc?: string;
35
+ /**
36
+ * Element used as the icon that will be placed next to the button label.
37
+ */
38
+ icon?: SVG;
39
+ /**
40
+ * This function will be called when the user clicks the button. The event object will be passed as a parameter.
41
+ */
42
+ onClick?: any;
43
+ /**
44
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
45
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
46
+ */
47
+ margin?: Space | Margin;
48
+ /**
49
+ * Size of the component ('small' | 'medium' | 'large' | 'fillParent' | 'fitContent').
50
+ */
51
+ size?: Size;
52
+ /**
53
+ * Value of the tabindex.
54
+ */
55
+ tabIndex?: number;
56
+ };
57
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/card/Card.js ADDED
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
+
14
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
+
16
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
21
+
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
+
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
25
+
26
+ var _variables = require("../common/variables.js");
27
+
28
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
+
30
+ var _Box = _interopRequireDefault(require("../box/Box"));
31
+
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
38
+ var DxcCard = function DxcCard(_ref) {
39
+ var imageSrc = _ref.imageSrc,
40
+ children = _ref.children,
41
+ margin = _ref.margin,
42
+ contentPadding = _ref.contentPadding,
43
+ linkHref = _ref.linkHref,
44
+ onClick = _ref.onClick,
45
+ imageBgColor = _ref.imageBgColor,
46
+ imagePadding = _ref.imagePadding,
47
+ imagePosition = _ref.imagePosition,
48
+ outlined = _ref.outlined,
49
+ imageCover = _ref.imageCover,
50
+ _ref$tabIndex = _ref.tabIndex,
51
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
52
+ var colorsTheme = (0, _useTheme["default"])();
53
+
54
+ var _useState = (0, _react.useState)(false),
55
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
+ isHovered = _useState2[0],
57
+ changeIsHovered = _useState2[1];
58
+
59
+ var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
60
+ shadowDepth: outlined ? 0 : isHovered && (onClick || linkHref) ? 2 : 1
61
+ }, /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
62
+ theme: colorsTheme.card
63
+ }, /*#__PURE__*/_react["default"].createElement(CardContainer, {
64
+ hasAction: onClick || linkHref,
65
+ outlined: outlined,
66
+ imagePosition: imagePosition
67
+ }, imageSrc && /*#__PURE__*/_react["default"].createElement(ImageContainer, {
68
+ imageBgColor: imageBgColor
69
+ }, /*#__PURE__*/_react["default"].createElement(TagImage, {
70
+ imagePadding: imagePadding,
71
+ cover: imageCover,
72
+ src: imageSrc
73
+ })), /*#__PURE__*/_react["default"].createElement(CardContent, {
74
+ contentPadding: contentPadding
75
+ }, children))));
76
+
77
+ return /*#__PURE__*/_react["default"].createElement(StyledDxcCard, {
78
+ margin: margin,
79
+ onMouseEnter: function onMouseEnter() {
80
+ return changeIsHovered(true);
81
+ },
82
+ onMouseLeave: function onMouseLeave() {
83
+ return changeIsHovered(false);
84
+ },
85
+ onClick: onClick,
86
+ hasAction: onClick,
87
+ tabIndex: typeof onClick === "function" && !linkHref ? tabIndex : -1
88
+ }, linkHref && /*#__PURE__*/_react["default"].createElement(StyledLink, {
89
+ tabIndex: tabIndex,
90
+ href: linkHref
91
+ }, tagContent) || tagContent);
92
+ };
93
+
94
+ var StyledDxcCard = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n outline: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (_ref2) {
95
+ var hasAction = _ref2.hasAction;
96
+ return hasAction && "pointer" || "unset";
97
+ }, function (_ref3) {
98
+ var hasAction = _ref3.hasAction;
99
+ return !hasAction && "none";
100
+ }, function (_ref4) {
101
+ var margin = _ref4.margin;
102
+ return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
103
+ }, function (_ref5) {
104
+ var margin = _ref5.margin;
105
+ return margin && margin.top ? _variables.spaces[margin.top] : "";
106
+ }, function (_ref6) {
107
+ var margin = _ref6.margin;
108
+ return margin && margin.right ? _variables.spaces[margin.right] : "";
109
+ }, function (_ref7) {
110
+ var margin = _ref7.margin;
111
+ return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
112
+ }, function (_ref8) {
113
+ var margin = _ref8.margin;
114
+ return margin && margin.left ? _variables.spaces[margin.left] : "";
115
+ });
116
+
117
+ var CardContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: ", ";\n height: ", ";\n width: ", ";\n &:hover {\n border-color: ", ";\n }\n"])), function (_ref9) {
118
+ var imagePosition = _ref9.imagePosition;
119
+ return imagePosition === "before" && "row" || "row-reverse";
120
+ }, function (props) {
121
+ return props.theme.height;
122
+ }, function (props) {
123
+ return props.theme.width;
124
+ }, function (_ref10) {
125
+ var hasAction = _ref10.hasAction;
126
+ return hasAction ? "" : "unset";
127
+ });
128
+
129
+ var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n text-decoration: none;\n"])));
130
+
131
+ var TagImage = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n object-fit: ", ";\n"])), function (_ref11) {
132
+ var imagePadding = _ref11.imagePadding;
133
+ return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
134
+ }, function (_ref12) {
135
+ var imagePadding = _ref12.imagePadding;
136
+ return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
137
+ }, function (_ref13) {
138
+ var cover = _ref13.cover;
139
+ return cover ? "cover" : "contain";
140
+ });
141
+
142
+ var ImageContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 35%;\n height: 100%;\n flex-shrink: 0;\n background: ", ";\n justify-content: center;\n align-items: center;\n display: inline-flex;\n"])), function (_ref14) {
143
+ var imageBgColor = _ref14.imageBgColor;
144
+ return imageBgColor;
145
+ });
146
+
147
+ var CardContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (_ref15) {
148
+ var contentPadding = _ref15.contentPadding;
149
+ return contentPadding && (0, _typeof2["default"])(contentPadding) !== "object" ? _variables.spaces[contentPadding] : "0px";
150
+ }, function (_ref16) {
151
+ var contentPadding = _ref16.contentPadding;
152
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.top ? _variables.spaces[contentPadding.top] : "";
153
+ }, function (_ref17) {
154
+ var contentPadding = _ref17.contentPadding;
155
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.right ? _variables.spaces[contentPadding.right] : "";
156
+ }, function (_ref18) {
157
+ var contentPadding = _ref18.contentPadding;
158
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.bottom ? _variables.spaces[contentPadding.bottom] : "";
159
+ }, function (_ref19) {
160
+ var contentPadding = _ref19.contentPadding;
161
+ return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.left ? _variables.spaces[contentPadding.left] : "";
162
+ });
163
+
164
+ DxcCard.propTypes = {
165
+ imageSrc: _propTypes["default"].string,
166
+ imageBgColor: _propTypes["default"].string,
167
+ imagePadding: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces))),
168
+ imagePosition: _propTypes["default"].oneOf(["before", "after"]),
169
+ linkHref: _propTypes["default"].string,
170
+ onClick: _propTypes["default"].func,
171
+ outlined: _propTypes["default"].bool,
172
+ imageCover: _propTypes["default"].bool,
173
+ margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
174
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
175
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
176
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
177
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
178
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
179
+ contentPadding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
180
+ top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
181
+ bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
182
+ left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
183
+ right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
184
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
185
+ tabIndex: _propTypes["default"].number
186
+ };
187
+ DxcCard.defaultProps = {
188
+ imageSrc: null,
189
+ margin: null,
190
+ contentPadding: null,
191
+ outlined: false,
192
+ imagePadding: null,
193
+ imageCover: false,
194
+ linkHref: null,
195
+ onClick: null,
196
+ imageBgColor: "black",
197
+ imagePosition: "before"
198
+ };
199
+ var _default = DxcCard;
200
+ exports["default"] = _default;
@@ -0,0 +1,22 @@
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+
9
+ type Props = {
10
+ imageSrc?: string;
11
+ margin?: Space | Margin;
12
+ contentPadding?: any;
13
+ linkHref?: string;
14
+ onClick?: void;
15
+ imageBgColor?: string;
16
+ imagePadding?: any;
17
+ imagePosition?: "before" | "after";
18
+ outlined?: boolean;
19
+ imageCover?: boolean;
20
+ };
21
+
22
+ export default function DxcCard(props: Props): JSX.Element;