@dxc-technology/halstack-react 0.0.0-06273eb → 0.0.0-062b8bd

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 (339) 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 +295 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +18 -81
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +68 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +61 -76
  13. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  14. package/accordion-group/AccordionGroup.test.js +151 -0
  15. package/accordion-group/types.d.ts +72 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.js +6 -3
  18. package/alert/Alert.stories.tsx +170 -0
  19. package/alert/Alert.test.js +92 -0
  20. package/alert/types.d.ts +1 -1
  21. package/badge/Badge.d.ts +4 -0
  22. package/badge/Badge.js +6 -4
  23. package/badge/types.d.ts +5 -0
  24. package/badge/types.js +5 -0
  25. package/bleed/Bleed.d.ts +3 -0
  26. package/bleed/Bleed.js +51 -0
  27. package/bleed/Bleed.stories.tsx +341 -0
  28. package/bleed/types.d.ts +37 -0
  29. package/bleed/types.js +5 -0
  30. package/box/Box.d.ts +4 -0
  31. package/box/Box.js +28 -64
  32. package/box/Box.stories.tsx +132 -0
  33. package/box/Box.test.js +18 -0
  34. package/box/types.d.ts +43 -0
  35. package/box/types.js +5 -0
  36. package/bulleted-list/BulletedList.d.ts +7 -0
  37. package/bulleted-list/BulletedList.js +123 -0
  38. package/bulleted-list/BulletedList.stories.tsx +200 -0
  39. package/bulleted-list/types.d.ts +11 -0
  40. package/bulleted-list/types.js +5 -0
  41. package/button/Button.d.ts +1 -1
  42. package/button/Button.js +61 -87
  43. package/button/Button.stories.tsx +259 -282
  44. package/button/Button.test.js +35 -0
  45. package/button/types.d.ts +14 -18
  46. package/card/Card.d.ts +4 -0
  47. package/card/Card.js +38 -77
  48. package/card/Card.stories.tsx +201 -0
  49. package/card/Card.test.js +50 -0
  50. package/card/ice-cream.jpg +0 -0
  51. package/card/types.d.ts +67 -0
  52. package/card/types.js +5 -0
  53. package/checkbox/Checkbox.d.ts +1 -1
  54. package/checkbox/Checkbox.js +45 -41
  55. package/checkbox/Checkbox.stories.tsx +188 -0
  56. package/checkbox/Checkbox.test.js +78 -0
  57. package/checkbox/types.d.ts +9 -6
  58. package/chip/Chip.d.ts +4 -0
  59. package/chip/Chip.js +16 -76
  60. package/chip/Chip.stories.tsx +119 -0
  61. package/chip/Chip.test.js +56 -0
  62. package/chip/types.d.ts +45 -0
  63. package/chip/types.js +5 -0
  64. package/common/variables.js +312 -377
  65. package/date-input/DateInput.js +66 -55
  66. package/date-input/DateInput.stories.tsx +138 -0
  67. package/date-input/DateInput.test.js +479 -0
  68. package/date-input/types.d.ts +16 -9
  69. package/dialog/Dialog.d.ts +4 -0
  70. package/dialog/Dialog.js +52 -74
  71. package/dialog/Dialog.stories.tsx +211 -0
  72. package/dialog/Dialog.test.js +70 -0
  73. package/dialog/types.d.ts +43 -0
  74. package/dialog/types.js +5 -0
  75. package/dropdown/Dropdown.d.ts +4 -0
  76. package/dropdown/Dropdown.js +239 -302
  77. package/dropdown/Dropdown.stories.tsx +312 -0
  78. package/dropdown/Dropdown.test.js +591 -0
  79. package/dropdown/DropdownMenu.d.ts +4 -0
  80. package/dropdown/DropdownMenu.js +80 -0
  81. package/dropdown/DropdownMenuItem.d.ts +4 -0
  82. package/dropdown/DropdownMenuItem.js +92 -0
  83. package/dropdown/types.d.ts +100 -0
  84. package/dropdown/types.js +5 -0
  85. package/file-input/FileInput.d.ts +4 -0
  86. package/file-input/FileInput.js +172 -111
  87. package/file-input/FileInput.stories.tsx +507 -0
  88. package/file-input/FileInput.test.js +457 -0
  89. package/file-input/FileItem.d.ts +14 -0
  90. package/file-input/FileItem.js +16 -23
  91. package/file-input/types.d.ts +112 -0
  92. package/file-input/types.js +5 -0
  93. package/flex/Flex.d.ts +4 -0
  94. package/flex/Flex.js +57 -0
  95. package/flex/Flex.stories.tsx +103 -0
  96. package/flex/types.d.ts +21 -0
  97. package/flex/types.js +5 -0
  98. package/footer/Footer.d.ts +4 -0
  99. package/footer/Footer.js +36 -148
  100. package/footer/Footer.stories.tsx +130 -0
  101. package/footer/Footer.test.js +109 -0
  102. package/footer/Icons.d.ts +2 -0
  103. package/footer/Icons.js +4 -4
  104. package/footer/types.d.ts +65 -0
  105. package/footer/types.js +5 -0
  106. package/header/Header.d.ts +7 -0
  107. package/header/Header.js +119 -140
  108. package/header/Header.stories.tsx +172 -0
  109. package/header/Header.test.js +79 -0
  110. package/header/Icons.d.ts +2 -0
  111. package/header/Icons.js +4 -29
  112. package/header/types.d.ts +47 -0
  113. package/header/types.js +5 -0
  114. package/heading/Heading.d.ts +4 -0
  115. package/heading/Heading.js +7 -24
  116. package/heading/Heading.stories.tsx +54 -0
  117. package/heading/Heading.test.js +186 -0
  118. package/heading/types.d.ts +33 -0
  119. package/heading/types.js +5 -0
  120. package/inset/Inset.d.ts +3 -0
  121. package/inset/Inset.js +51 -0
  122. package/inset/Inset.stories.tsx +229 -0
  123. package/inset/types.d.ts +37 -0
  124. package/inset/types.js +5 -0
  125. package/layout/ApplicationLayout.d.ts +20 -0
  126. package/layout/ApplicationLayout.js +71 -135
  127. package/layout/ApplicationLayout.stories.tsx +161 -0
  128. package/layout/Icons.d.ts +5 -0
  129. package/layout/Icons.js +13 -2
  130. package/layout/SidenavContext.d.ts +5 -0
  131. package/layout/SidenavContext.js +19 -0
  132. package/layout/types.d.ts +42 -0
  133. package/layout/types.js +5 -0
  134. package/link/Link.d.ts +4 -0
  135. package/link/Link.js +60 -107
  136. package/link/Link.stories.tsx +193 -0
  137. package/link/Link.test.js +83 -0
  138. package/link/types.d.ts +54 -0
  139. package/link/types.js +5 -0
  140. package/main.d.ts +12 -12
  141. package/main.js +64 -58
  142. package/number-input/NumberInput.d.ts +4 -0
  143. package/number-input/NumberInput.js +16 -68
  144. package/number-input/NumberInput.stories.tsx +115 -0
  145. package/number-input/NumberInput.test.js +506 -0
  146. package/number-input/NumberInputContext.d.ts +4 -0
  147. package/number-input/NumberInputContext.js +5 -2
  148. package/number-input/numberInputContextTypes.d.ts +19 -0
  149. package/number-input/numberInputContextTypes.js +5 -0
  150. package/number-input/types.d.ts +124 -0
  151. package/number-input/types.js +5 -0
  152. package/package.json +14 -10
  153. package/paginator/Paginator.js +19 -46
  154. package/paginator/Paginator.stories.tsx +63 -0
  155. package/paginator/Paginator.test.js +308 -0
  156. package/paragraph/Paragraph.d.ts +6 -0
  157. package/paragraph/Paragraph.js +38 -0
  158. package/paragraph/Paragraph.stories.tsx +44 -0
  159. package/password-input/PasswordInput.d.ts +4 -0
  160. package/password-input/PasswordInput.js +22 -55
  161. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +4 -4
  162. package/password-input/PasswordInput.test.js +180 -0
  163. package/password-input/types.d.ts +110 -0
  164. package/password-input/types.js +5 -0
  165. package/progress-bar/ProgressBar.d.ts +4 -0
  166. package/progress-bar/ProgressBar.js +60 -72
  167. package/progress-bar/ProgressBar.stories.jsx +60 -0
  168. package/progress-bar/ProgressBar.test.js +110 -0
  169. package/progress-bar/types.d.ts +36 -0
  170. package/progress-bar/types.js +5 -0
  171. package/quick-nav/QuickNav.d.ts +4 -0
  172. package/quick-nav/QuickNav.js +118 -0
  173. package/quick-nav/QuickNav.stories.tsx +264 -0
  174. package/quick-nav/types.d.ts +21 -0
  175. package/quick-nav/types.js +5 -0
  176. package/radio-group/Radio.d.ts +4 -0
  177. package/radio-group/Radio.js +141 -0
  178. package/radio-group/RadioGroup.d.ts +4 -0
  179. package/radio-group/RadioGroup.js +281 -0
  180. package/radio-group/RadioGroup.stories.tsx +100 -0
  181. package/radio-group/RadioGroup.test.js +695 -0
  182. package/radio-group/types.d.ts +114 -0
  183. package/radio-group/types.js +5 -0
  184. package/resultsetTable/ResultsetTable.d.ts +4 -0
  185. package/resultsetTable/ResultsetTable.js +9 -29
  186. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  187. package/resultsetTable/ResultsetTable.test.js +348 -0
  188. package/resultsetTable/types.d.ts +67 -0
  189. package/resultsetTable/types.js +5 -0
  190. package/select/Icons.d.ts +10 -0
  191. package/select/Icons.js +93 -0
  192. package/select/Listbox.d.ts +4 -0
  193. package/select/Listbox.js +199 -0
  194. package/select/Option.d.ts +4 -0
  195. package/select/Option.js +110 -0
  196. package/select/Select.d.ts +4 -0
  197. package/select/Select.js +158 -380
  198. package/select/Select.stories.tsx +627 -0
  199. package/select/Select.test.js +2175 -0
  200. package/select/types.d.ts +210 -0
  201. package/select/types.js +5 -0
  202. package/sidenav/Sidenav.d.ts +10 -0
  203. package/sidenav/Sidenav.js +186 -63
  204. package/sidenav/Sidenav.stories.tsx +180 -0
  205. package/sidenav/Sidenav.test.js +44 -0
  206. package/sidenav/types.d.ts +73 -0
  207. package/sidenav/types.js +5 -0
  208. package/slider/Slider.d.ts +4 -0
  209. package/slider/Slider.js +63 -85
  210. package/slider/Slider.stories.tsx +177 -0
  211. package/slider/Slider.test.js +150 -0
  212. package/slider/types.d.ts +82 -0
  213. package/slider/types.js +5 -0
  214. package/spinner/Spinner.d.ts +4 -0
  215. package/spinner/Spinner.js +9 -26
  216. package/spinner/Spinner.stories.jsx +103 -0
  217. package/spinner/Spinner.test.js +64 -0
  218. package/spinner/types.d.ts +32 -0
  219. package/spinner/types.js +5 -0
  220. package/switch/Switch.d.ts +2 -2
  221. package/switch/Switch.js +129 -57
  222. package/switch/Switch.stories.tsx +138 -0
  223. package/switch/Switch.test.js +212 -0
  224. package/switch/types.d.ts +9 -6
  225. package/table/Table.d.ts +4 -0
  226. package/table/Table.js +3 -3
  227. package/table/Table.stories.jsx +277 -0
  228. package/table/Table.test.js +26 -0
  229. package/table/types.d.ts +21 -0
  230. package/table/types.js +5 -0
  231. package/tabs/Tabs.d.ts +4 -0
  232. package/tabs/Tabs.js +24 -72
  233. package/tabs/Tabs.stories.tsx +112 -0
  234. package/tabs/Tabs.test.js +140 -0
  235. package/tabs/types.d.ts +82 -0
  236. package/tabs/types.js +5 -0
  237. package/tabs-nav/NavTabs.d.ts +8 -0
  238. package/tabs-nav/NavTabs.js +125 -0
  239. package/tabs-nav/NavTabs.stories.tsx +170 -0
  240. package/tabs-nav/NavTabs.test.js +82 -0
  241. package/tabs-nav/Tab.d.ts +4 -0
  242. package/tabs-nav/Tab.js +130 -0
  243. package/tabs-nav/types.d.ts +53 -0
  244. package/tabs-nav/types.js +5 -0
  245. package/tag/Tag.d.ts +4 -0
  246. package/tag/Tag.js +34 -59
  247. package/tag/Tag.stories.tsx +142 -0
  248. package/tag/Tag.test.js +60 -0
  249. package/tag/types.d.ts +69 -0
  250. package/tag/types.js +5 -0
  251. package/text-input/Suggestion.d.ts +4 -0
  252. package/text-input/Suggestion.js +55 -0
  253. package/text-input/TextInput.d.ts +4 -0
  254. package/text-input/TextInput.js +103 -167
  255. package/text-input/TextInput.stories.tsx +473 -0
  256. package/text-input/TextInput.test.js +1712 -0
  257. package/text-input/types.d.ts +178 -0
  258. package/text-input/types.js +5 -0
  259. package/textarea/Textarea.d.ts +4 -0
  260. package/textarea/Textarea.js +39 -79
  261. package/textarea/Textarea.stories.jsx +157 -0
  262. package/textarea/Textarea.test.js +437 -0
  263. package/textarea/types.d.ts +137 -0
  264. package/textarea/types.js +5 -0
  265. package/toggle-group/ToggleGroup.d.ts +4 -0
  266. package/toggle-group/ToggleGroup.js +18 -46
  267. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  268. package/toggle-group/ToggleGroup.test.js +156 -0
  269. package/toggle-group/types.d.ts +105 -0
  270. package/toggle-group/types.js +5 -0
  271. package/typography/Typography.d.ts +4 -0
  272. package/typography/Typography.js +131 -0
  273. package/typography/Typography.stories.tsx +198 -0
  274. package/typography/types.d.ts +18 -0
  275. package/typography/types.js +5 -0
  276. package/useTheme.d.ts +2 -0
  277. package/useTheme.js +2 -2
  278. package/useTranslatedLabels.d.ts +2 -0
  279. package/useTranslatedLabels.js +20 -0
  280. package/wizard/Wizard.d.ts +4 -0
  281. package/wizard/Wizard.js +118 -104
  282. package/wizard/Wizard.stories.tsx +233 -0
  283. package/wizard/Wizard.test.js +141 -0
  284. package/wizard/types.d.ts +65 -0
  285. package/wizard/types.js +5 -0
  286. package/ThemeContext.js +0 -246
  287. package/V3Select/V3Select.js +0 -455
  288. package/V3Select/index.d.ts +0 -27
  289. package/V3Textarea/V3Textarea.js +0 -260
  290. package/V3Textarea/index.d.ts +0 -27
  291. package/accordion/index.d.ts +0 -28
  292. package/accordion-group/index.d.ts +0 -16
  293. package/box/index.d.ts +0 -25
  294. package/card/index.d.ts +0 -22
  295. package/chip/index.d.ts +0 -22
  296. package/date/Date.js +0 -373
  297. package/date/index.d.ts +0 -27
  298. package/dialog/index.d.ts +0 -18
  299. package/dropdown/index.d.ts +0 -26
  300. package/file-input/index.d.ts +0 -81
  301. package/footer/index.d.ts +0 -25
  302. package/header/index.d.ts +0 -25
  303. package/heading/index.d.ts +0 -17
  304. package/input-text/Icons.js +0 -22
  305. package/input-text/InputText.js +0 -611
  306. package/input-text/index.d.ts +0 -36
  307. package/link/index.d.ts +0 -23
  308. package/number-input/index.d.ts +0 -113
  309. package/password-input/index.d.ts +0 -94
  310. package/progress-bar/index.d.ts +0 -18
  311. package/radio/Radio.js +0 -195
  312. package/radio/index.d.ts +0 -23
  313. package/resultsetTable/index.d.ts +0 -19
  314. package/select/index.d.ts +0 -131
  315. package/sidenav/index.d.ts +0 -13
  316. package/slider/index.d.ts +0 -29
  317. package/spinner/index.d.ts +0 -17
  318. package/table/index.d.ts +0 -13
  319. package/tabs/index.d.ts +0 -19
  320. package/tag/index.d.ts +0 -24
  321. package/text-input/index.d.ts +0 -135
  322. package/textarea/index.d.ts +0 -117
  323. package/toggle/Toggle.js +0 -186
  324. package/toggle/index.d.ts +0 -21
  325. package/toggle-group/index.d.ts +0 -21
  326. package/upload/Upload.js +0 -201
  327. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  328. package/upload/buttons-upload/Icons.js +0 -40
  329. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  330. package/upload/dragAndDropArea/Icons.js +0 -39
  331. package/upload/file-upload/FileToUpload.js +0 -115
  332. package/upload/file-upload/Icons.js +0 -66
  333. package/upload/files-upload/FilesToUpload.js +0 -109
  334. package/upload/index.d.ts +0 -15
  335. package/upload/transaction/Icons.js +0 -160
  336. package/upload/transaction/Transaction.js +0 -104
  337. package/upload/transactions/Transactions.js +0 -94
  338. package/wizard/Icons.js +0 -65
  339. package/wizard/index.d.ts +0 -18
@@ -1,306 +1,283 @@
1
1
  import React from "react";
2
- import styled from "styled-components";
3
2
  import DxcButton from "./Button";
3
+ import DxcFlex from "./../flex/Flex";
4
4
  import { BackgroundColorProvider } from "../BackgroundColorContext";
5
+ import Title from "../../.storybook/components/Title";
6
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
7
+ import DarkContainer from "../../.storybook/components/DarkSection";
5
8
 
6
9
  export default {
7
- title: "Button ",
10
+ title: "Button",
8
11
  component: DxcButton,
9
12
  };
10
13
 
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
- };
14
+ const iconSVG = (
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
+ );
19
20
  export const Chromatic = () => (
20
21
  <>
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>
22
+ <Title title="Primary" theme="light" level={2} />
23
+ <ExampleContainer>
24
+ <Title title="Enabled" theme="light" level={4} />
25
+ <DxcButton label="Primary enabled" />
26
+ </ExampleContainer>
27
+ <ExampleContainer pseudoState="pseudo-hover">
28
+ <Title title="Hovered" theme="light" level={4} />
29
+ <DxcButton label="Primary hovered" />
30
+ </ExampleContainer>
31
+ <ExampleContainer pseudoState="pseudo-focus">
32
+ <Title title="Focused" theme="light" level={4} />
33
+ <DxcButton label="Primary focused" />
34
+ </ExampleContainer>
35
+ <ExampleContainer pseudoState="pseudo-active">
36
+ <Title title="Actived" theme="light" level={4} />
37
+ <DxcButton label="Primary actived" />
38
+ </ExampleContainer>
39
+ <ExampleContainer>
40
+ <Title title="Disabled" theme="light" level={4} />
41
+ <DxcButton label="Primary disabled" disabled />
42
+ </ExampleContainer>
43
+ <ExampleContainer>
44
+ <Title title="With left icon" theme="light" level={4} />
45
+ <DxcButton label="Primary" icon={iconSVG} />
46
+ </ExampleContainer>
47
+ <ExampleContainer>
48
+ <Title title="With right icon" theme="light" level={4} />
49
+ <DxcButton label="Primary" icon={iconSVG} iconPosition="after" />
50
+ </ExampleContainer>
51
+ <ExampleContainer>
52
+ <Title title="Only icon" theme="light" level={4} />
53
+ <DxcButton icon={iconSVG} />
54
+ </ExampleContainer>
55
+ <Title title="Secondary" theme="light" level={2} />
56
+ <ExampleContainer>
57
+ <Title title="Enabled" theme="light" level={4} />
58
+ <DxcButton mode="secondary" label="Secondary enabled" />
59
+ </ExampleContainer>
60
+ <ExampleContainer pseudoState="pseudo-hover">
61
+ <Title title="Hovered" theme="light" level={4} />
62
+ <DxcButton mode="secondary" label="Secondary hovered" />
63
+ </ExampleContainer>
64
+ <ExampleContainer pseudoState="pseudo-focus">
65
+ <Title title="Focused" theme="light" level={4} />
66
+ <DxcButton mode="secondary" label="Secondary focused" />
67
+ </ExampleContainer>
68
+ <ExampleContainer pseudoState="pseudo-active">
69
+ <Title title="Actived" theme="light" level={4} />
70
+ <DxcButton mode="secondary" label="Secondary actived" />
71
+ </ExampleContainer>
72
+ <ExampleContainer>
73
+ <Title title="Disabled" theme="light" level={4} />
74
+ <DxcButton mode="secondary" disabled label="Secondary disabled" />
75
+ </ExampleContainer>
76
+ <ExampleContainer>
77
+ <Title title="With icon" theme="light" level={4} />
78
+ <DxcButton mode="secondary" label="Secondary" icon={iconSVG} />
79
+ </ExampleContainer>
80
+ <Title title="Text" theme="light" level={2} />
81
+ <ExampleContainer>
82
+ <Title title="Enabled" theme="light" level={4} />
83
+ <DxcButton mode="text" label="Text enabled" />
84
+ </ExampleContainer>
85
+ <ExampleContainer pseudoState="pseudo-hover">
86
+ <Title title="Hovered" theme="light" level={4} />
87
+ <DxcButton mode="text" label="Text hovered" />
88
+ </ExampleContainer>
89
+ <ExampleContainer pseudoState="pseudo-focus">
90
+ <Title title="Focused" theme="light" level={4} />
91
+ <DxcButton mode="text" label="Text focused" />
92
+ </ExampleContainer>
93
+ <ExampleContainer pseudoState="pseudo-active">
94
+ <Title title="Actived" theme="light" level={4} />
95
+ <DxcButton mode="text" label="Text actived" />
96
+ </ExampleContainer>
97
+ <ExampleContainer>
98
+ <Title title="Disabled" theme="light" level={4} />
99
+ <DxcButton mode="text" label="Text disabled" disabled />
100
+ </ExampleContainer>
101
+ <ExampleContainer>
102
+ <Title title="With icon" theme="light" level={4} />
103
+ <DxcButton label="Text" mode="text" icon={iconSVG} />
104
+ </ExampleContainer>
105
+ <BackgroundColorProvider color="#333333">
106
+ <DarkContainer>
107
+ <Title title="Primary" theme="dark" level={2} />
108
+ <ExampleContainer>
109
+ <Title title="Enabled" theme="dark" level={4} />
110
+ <DxcButton label="Primary enabled" />
111
+ </ExampleContainer>
112
+ <ExampleContainer pseudoState="pseudo-hover">
113
+ <Title title="Hovered" theme="dark" level={4} />
114
+ <DxcButton label="Primary hovered" />
115
+ </ExampleContainer>
116
+ <ExampleContainer pseudoState="pseudo-focus">
117
+ <Title title="Focused" theme="dark" level={4} />
118
+ <DxcButton label="Primary focused" />
119
+ </ExampleContainer>
120
+ <ExampleContainer pseudoState="pseudo-active">
121
+ <Title title="Actived" theme="dark" level={4} />
122
+ <DxcButton label="Primary actived" />
123
+ </ExampleContainer>
124
+ <ExampleContainer>
125
+ <Title title="Disabled" theme="dark" level={4} />
126
+ <DxcButton label="Primary disabled" disabled />
127
+ </ExampleContainer>
128
+ <ExampleContainer>
129
+ <Title title="With icon" theme="dark" level={4} />
130
+ <DxcButton label="Primary" icon={iconSVG} />
131
+ </ExampleContainer>
132
+ <Title title="Secondary" theme="dark" level={2} />
133
+ <ExampleContainer>
134
+ <Title title="Enabled" theme="dark" level={4} />
61
135
  <DxcButton mode="secondary" label="Secondary enabled" />
62
- </Container>
63
- <Container className="pseudo-hover">
64
- <ContainerTitle>Hovered</ContainerTitle>
136
+ </ExampleContainer>
137
+ <ExampleContainer pseudoState="pseudo-hover">
138
+ <Title title="Hovered" theme="dark" level={4} />
65
139
  <DxcButton mode="secondary" label="Secondary hovered" />
66
- </Container>
67
- <Container className="pseudo-focus">
68
- <ContainerTitle>Focused</ContainerTitle>
140
+ </ExampleContainer>
141
+ <ExampleContainer pseudoState="pseudo-focus">
142
+ <Title title="Focused" theme="dark" level={4} />
69
143
  <DxcButton mode="secondary" label="Secondary focused" />
70
- </Container>
71
- <Container className="pseudo-active">
72
- <ContainerTitle>Actived</ContainerTitle>
144
+ </ExampleContainer>
145
+ <ExampleContainer pseudoState="pseudo-active">
146
+ <Title title="Actived" theme="dark" level={4} />
73
147
  <DxcButton mode="secondary" label="Secondary actived" />
74
- </Container>
75
- <Container>
76
- <ContainerTitle>Disabled</ContainerTitle>
148
+ </ExampleContainer>
149
+ <ExampleContainer>
150
+ <Title title="Disabled" theme="dark" level={4} />
77
151
  <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>
152
+ </ExampleContainer>
153
+ <ExampleContainer>
154
+ <Title title="With icon" theme="dark" level={4} />
155
+ <DxcButton mode="secondary" label="Primary" icon={iconSVG} />
156
+ </ExampleContainer>
157
+ <Title title="Text" theme="dark" level={2} />
158
+ <ExampleContainer>
159
+ <Title title="Enabled" theme="dark" level={4} />
88
160
  <DxcButton mode="text" label="Text enabled" />
89
- </Container>
90
- <Container className="pseudo-hover">
91
- <ContainerTitle>Hovered</ContainerTitle>
161
+ </ExampleContainer>
162
+ <ExampleContainer pseudoState="pseudo-hover">
163
+ <Title title="Hovered" theme="dark" level={4} />
92
164
  <DxcButton mode="text" label="Text hovered" />
93
- </Container>
94
- <Container className="pseudo-focus">
95
- <ContainerTitle>Focused</ContainerTitle>
165
+ </ExampleContainer>
166
+ <ExampleContainer pseudoState="pseudo-focus">
167
+ <Title title="Focused" theme="dark" level={4} />
96
168
  <DxcButton mode="text" label="Text focused" />
97
- </Container>
98
- <Container className="pseudo-active">
99
- <ContainerTitle>Actived</ContainerTitle>
169
+ </ExampleContainer>
170
+ <ExampleContainer pseudoState="pseudo-active">
171
+ <Title title="Actived" theme="dark" level={4} />
100
172
  <DxcButton mode="text" label="Text actived" />
101
- </Container>
102
- <Container>
103
- <ContainerTitle>Disabled</ContainerTitle>
173
+ </ExampleContainer>
174
+ <ExampleContainer>
175
+ <Title title="Disabled" theme="dark" level={4} />
104
176
  <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
- </>
177
+ </ExampleContainer>
178
+ <ExampleContainer>
179
+ <Title title="With icon" theme="dark" level={4} />
180
+ <DxcButton mode="text" label="Primary" icon={iconSVG} />
181
+ </ExampleContainer>
195
182
  </DarkContainer>
196
183
  </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
- </>
184
+ <Title title="Sizes" theme="light" level={2} />
185
+ <ExampleContainer>
186
+ <Title title="Small size" theme="light" level={4} />
187
+ <DxcButton label="Small" size="small" />
188
+ </ExampleContainer>
189
+ <ExampleContainer>
190
+ <Title title="Medium size" theme="light" level={4} />
191
+ <DxcButton label="MediumSiz" size="medium" />
192
+ </ExampleContainer>
193
+ <ExampleContainer>
194
+ <Title title="Medium size with ellipsis" theme="light" level={4} />
195
+ <DxcButton label="MediumSize" size="medium" />
196
+ </ExampleContainer>
197
+ <ExampleContainer>
198
+ <Title title="Medium size icon after" theme="light" level={4} />
199
+ <DxcButton label="Mediu" iconPosition="after" icon={iconSVG} size="medium" />
200
+ </ExampleContainer>
201
+ <ExampleContainer>
202
+ <Title title="Medium size icon before" theme="light" level={4} />
203
+ <DxcButton label="Mediu" iconPosition="before" icon={iconSVG} size="medium" />
204
+ </ExampleContainer>
205
+ <ExampleContainer>
206
+ <Title title="Medium size icon after with ellipsis" theme="light" level={4} />
207
+ <DxcButton label="Medium" iconPosition="after" icon={iconSVG} size="medium" />
208
+ </ExampleContainer>
209
+ <ExampleContainer>
210
+ <Title title="Medium size icon before with ellipsis" theme="light" level={4} />
211
+ <DxcButton label="Medium" iconPosition="before" icon={iconSVG} size="medium" />
212
+ </ExampleContainer>
213
+ <ExampleContainer>
214
+ <Title title="Large size" theme="light" level={4} />
215
+ <DxcButton label="LargeSizePrimaryButtonEx" size="large" />
216
+ </ExampleContainer>
217
+ <ExampleContainer>
218
+ <Title title="Large size with ellipsis" theme="light" level={4} />
219
+ <DxcButton label="LargeSizePrimaryButtonExa" size="large" />
220
+ </ExampleContainer>
221
+ <ExampleContainer>
222
+ <Title title="Large size icon after" theme="light" level={4} />
223
+ <DxcButton label="LargeSizePrimaryButto" iconPosition="after" icon={iconSVG} size="large" />
224
+ </ExampleContainer>
225
+ <ExampleContainer>
226
+ <Title title="Large size icon before" theme="light" level={4} />
227
+ <DxcButton label="LargeSizePrimaryButto" iconPosition="before" icon={iconSVG} size="large" />
228
+ </ExampleContainer>
229
+ <ExampleContainer>
230
+ <Title title="Large size icon after with ellipsis" theme="light" level={4} />
231
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="after" icon={iconSVG} size="large" />
232
+ </ExampleContainer>
233
+ <ExampleContainer>
234
+ <Title title="Large size icon before with ellipsis" theme="light" level={4} />
235
+ <DxcButton label="LargeSizePrimaryButton" iconPosition="before" icon={iconSVG} size="large" />
236
+ </ExampleContainer>
237
+ <ExampleContainer>
238
+ <Title title="FillParent size" theme="light" level={4} />
239
+ <DxcButton label="FillParent" size="fillParent" />
240
+ </ExampleContainer>
241
+ <ExampleContainer>
242
+ <Title title="FitContent size" theme="light" level={4} />
243
+ <DxcButton label="FitContent" size="fitContent" />
244
+ </ExampleContainer>
245
+ <Title title="Margins" theme="light" level={2} />
246
+ <ExampleContainer>
247
+ <Title title="Xxsmall margin" theme="light" level={4} />
248
+ <DxcButton label="Xxsmall margin" margin="xxsmall" />
249
+ </ExampleContainer>
250
+ <ExampleContainer>
251
+ <Title title="Xsmall margin" theme="light" level={4} />
252
+ <DxcButton label="Xsmall margin" margin="xsmall" />
253
+ </ExampleContainer>
254
+ <ExampleContainer>
255
+ <Title title="Small margin" theme="light" level={4} />
256
+ <DxcButton label="Small margin" margin="small" />
257
+ </ExampleContainer>
258
+ <ExampleContainer>
259
+ <Title title="Medium margin" theme="light" level={4} />
260
+ <DxcButton label="Medium margin" margin="medium" />
261
+ </ExampleContainer>
262
+ <ExampleContainer>
263
+ <Title title="Large margin" theme="light" level={4} />
264
+ <DxcButton label="Large margin" margin="large" />
265
+ </ExampleContainer>
266
+ <ExampleContainer>
267
+ <Title title="Xlarge margin" theme="light" level={4} />
268
+ <DxcButton label="Xlarge margin" margin="xlarge" />
269
+ </ExampleContainer>
270
+ <ExampleContainer>
271
+ <Title title="Xxlarge margin" theme="light" level={4} />
272
+ <DxcButton label="Xxlarge margin" margin="xxlarge" />
273
+ </ExampleContainer>
274
+ <Title title="Inside a flex" theme="light" level={2} />
275
+ <ExampleContainer>
276
+ <DxcFlex direction="column" gap="0.75rem">
277
+ <DxcButton label="Button" />
278
+ <DxcButton label="Button" />
279
+ <DxcButton label="Button" />
280
+ </DxcFlex>
281
+ </ExampleContainer>
289
282
  </>
290
283
  );
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,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
+ });