@dxc-technology/halstack-react 0.0.0-7604f1d → 0.0.0-76b7408

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 (309) 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 +343 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +119 -138
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +17 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +92 -0
  18. package/alert/types.d.ts +1 -1
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +6 -4
  21. package/badge/types.d.ts +5 -0
  22. package/bleed/Bleed.d.ts +3 -0
  23. package/bleed/Bleed.js +51 -0
  24. package/bleed/Bleed.stories.tsx +341 -0
  25. package/bleed/types.d.ts +37 -0
  26. package/bleed/types.js +5 -0
  27. package/box/Box.js +25 -35
  28. package/box/Box.stories.tsx +15 -0
  29. package/box/Box.test.js +18 -0
  30. package/box/types.d.ts +1 -0
  31. package/bulleted-list/BulletedList.d.ts +7 -0
  32. package/bulleted-list/BulletedList.js +123 -0
  33. package/bulleted-list/BulletedList.stories.tsx +200 -0
  34. package/bulleted-list/types.d.ts +11 -0
  35. package/bulleted-list/types.js +5 -0
  36. package/button/Button.d.ts +1 -1
  37. package/button/Button.js +59 -82
  38. package/button/Button.stories.tsx +163 -14
  39. package/button/Button.test.js +35 -0
  40. package/button/types.d.ts +10 -14
  41. package/card/Card.js +26 -30
  42. package/card/Card.stories.tsx +201 -0
  43. package/card/Card.test.js +50 -0
  44. package/card/ice-cream.jpg +0 -0
  45. package/card/types.d.ts +5 -6
  46. package/checkbox/Checkbox.d.ts +2 -2
  47. package/checkbox/Checkbox.js +108 -111
  48. package/checkbox/Checkbox.stories.tsx +198 -130
  49. package/checkbox/Checkbox.test.js +155 -0
  50. package/checkbox/types.d.ts +15 -7
  51. package/chip/Chip.d.ts +4 -0
  52. package/chip/Chip.js +22 -88
  53. package/chip/Chip.stories.tsx +98 -13
  54. package/chip/Chip.test.js +56 -0
  55. package/chip/types.d.ts +45 -0
  56. package/chip/types.js +5 -0
  57. package/common/variables.js +536 -575
  58. package/date-input/Calendar.d.ts +4 -0
  59. package/date-input/Calendar.js +258 -0
  60. package/date-input/DateInput.js +174 -266
  61. package/date-input/DateInput.stories.tsx +199 -33
  62. package/date-input/DateInput.test.js +835 -0
  63. package/date-input/DatePicker.d.ts +4 -0
  64. package/date-input/DatePicker.js +146 -0
  65. package/date-input/Icons.d.ts +6 -0
  66. package/date-input/Icons.js +75 -0
  67. package/date-input/YearPicker.d.ts +4 -0
  68. package/date-input/YearPicker.js +126 -0
  69. package/date-input/types.d.ts +67 -9
  70. package/dialog/Dialog.js +79 -95
  71. package/dialog/Dialog.stories.tsx +230 -123
  72. package/dialog/Dialog.test.js +369 -0
  73. package/dialog/types.d.ts +3 -2
  74. package/dropdown/Dropdown.d.ts +1 -1
  75. package/dropdown/Dropdown.js +248 -277
  76. package/dropdown/Dropdown.stories.tsx +438 -0
  77. package/dropdown/Dropdown.test.js +585 -0
  78. package/dropdown/DropdownMenu.d.ts +4 -0
  79. package/dropdown/DropdownMenu.js +70 -0
  80. package/dropdown/DropdownMenuItem.d.ts +4 -0
  81. package/dropdown/DropdownMenuItem.js +81 -0
  82. package/dropdown/types.d.ts +30 -19
  83. package/file-input/FileInput.d.ts +2 -2
  84. package/file-input/FileInput.js +179 -142
  85. package/file-input/FileInput.stories.tsx +618 -0
  86. package/file-input/FileInput.test.js +457 -0
  87. package/file-input/FileItem.d.ts +4 -14
  88. package/file-input/FileItem.js +47 -67
  89. package/file-input/types.d.ts +49 -7
  90. package/flex/Flex.d.ts +4 -0
  91. package/flex/Flex.js +69 -0
  92. package/flex/Flex.stories.tsx +103 -0
  93. package/flex/types.d.ts +32 -0
  94. package/flex/types.js +5 -0
  95. package/footer/Footer.d.ts +1 -1
  96. package/footer/Footer.js +32 -113
  97. package/footer/Footer.stories.tsx +228 -0
  98. package/footer/Footer.test.js +109 -0
  99. package/footer/Icons.d.ts +2 -0
  100. package/footer/Icons.js +4 -4
  101. package/footer/types.d.ts +22 -17
  102. package/header/Header.js +109 -130
  103. package/header/Header.stories.tsx +189 -36
  104. package/header/Header.test.js +79 -0
  105. package/header/Icons.d.ts +2 -0
  106. package/header/Icons.js +2 -2
  107. package/header/types.d.ts +7 -4
  108. package/heading/Heading.js +1 -1
  109. package/heading/Heading.stories.tsx +54 -0
  110. package/heading/Heading.test.js +186 -0
  111. package/inset/Inset.d.ts +3 -0
  112. package/inset/Inset.js +51 -0
  113. package/inset/Inset.stories.tsx +229 -0
  114. package/inset/types.d.ts +37 -0
  115. package/inset/types.js +5 -0
  116. package/layout/ApplicationLayout.d.ts +20 -0
  117. package/layout/ApplicationLayout.js +71 -135
  118. package/layout/ApplicationLayout.stories.tsx +162 -0
  119. package/layout/Icons.d.ts +5 -0
  120. package/layout/Icons.js +13 -2
  121. package/layout/SidenavContext.d.ts +5 -0
  122. package/layout/SidenavContext.js +19 -0
  123. package/layout/types.d.ts +42 -0
  124. package/layout/types.js +5 -0
  125. package/link/Link.d.ts +3 -2
  126. package/link/Link.js +62 -87
  127. package/link/Link.stories.tsx +159 -52
  128. package/link/Link.test.js +83 -0
  129. package/link/types.d.ts +9 -29
  130. package/main.d.ts +12 -12
  131. package/main.js +64 -58
  132. package/nav-tabs/NavTabs.d.ts +8 -0
  133. package/nav-tabs/NavTabs.js +125 -0
  134. package/nav-tabs/NavTabs.stories.tsx +260 -0
  135. package/nav-tabs/NavTabs.test.js +82 -0
  136. package/nav-tabs/Tab.d.ts +4 -0
  137. package/nav-tabs/Tab.js +150 -0
  138. package/nav-tabs/types.d.ts +53 -0
  139. package/nav-tabs/types.js +5 -0
  140. package/number-input/NumberInput.js +14 -24
  141. package/number-input/NumberInput.stories.tsx +5 -5
  142. package/number-input/NumberInput.test.js +542 -0
  143. package/number-input/NumberInputContext.d.ts +4 -0
  144. package/number-input/NumberInputContext.js +5 -2
  145. package/number-input/numberInputContextTypes.d.ts +19 -0
  146. package/number-input/numberInputContextTypes.js +5 -0
  147. package/number-input/types.d.ts +17 -10
  148. package/package.json +21 -22
  149. package/paginator/Icons.d.ts +5 -0
  150. package/paginator/Icons.js +16 -28
  151. package/paginator/Paginator.js +21 -54
  152. package/paginator/Paginator.stories.tsx +24 -0
  153. package/paginator/Paginator.test.js +315 -0
  154. package/paragraph/Paragraph.d.ts +6 -0
  155. package/paragraph/Paragraph.js +38 -0
  156. package/paragraph/Paragraph.stories.tsx +44 -0
  157. package/password-input/PasswordInput.js +23 -19
  158. package/password-input/PasswordInput.stories.tsx +3 -3
  159. package/password-input/PasswordInput.test.js +181 -0
  160. package/password-input/types.d.ts +29 -19
  161. package/progress-bar/ProgressBar.d.ts +2 -2
  162. package/progress-bar/ProgressBar.js +62 -56
  163. package/progress-bar/ProgressBar.stories.jsx +47 -12
  164. package/progress-bar/ProgressBar.test.js +110 -0
  165. package/progress-bar/types.d.ts +3 -4
  166. package/quick-nav/QuickNav.d.ts +4 -0
  167. package/quick-nav/QuickNav.js +117 -0
  168. package/quick-nav/QuickNav.stories.tsx +356 -0
  169. package/quick-nav/types.d.ts +21 -0
  170. package/quick-nav/types.js +5 -0
  171. package/radio-group/Radio.d.ts +4 -0
  172. package/radio-group/Radio.js +156 -0
  173. package/radio-group/RadioGroup.d.ts +4 -0
  174. package/radio-group/RadioGroup.js +283 -0
  175. package/radio-group/RadioGroup.stories.tsx +214 -0
  176. package/radio-group/RadioGroup.test.js +722 -0
  177. package/radio-group/types.d.ts +114 -0
  178. package/radio-group/types.js +5 -0
  179. package/resultsetTable/Icons.d.ts +7 -0
  180. package/resultsetTable/Icons.js +51 -0
  181. package/resultsetTable/ResultsetTable.d.ts +4 -0
  182. package/resultsetTable/ResultsetTable.js +53 -132
  183. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  184. package/resultsetTable/ResultsetTable.test.js +325 -0
  185. package/resultsetTable/types.d.ts +67 -0
  186. package/resultsetTable/types.js +5 -0
  187. package/select/Icons.d.ts +10 -0
  188. package/select/Icons.js +93 -0
  189. package/select/Listbox.d.ts +4 -0
  190. package/select/Listbox.js +169 -0
  191. package/select/Option.d.ts +4 -0
  192. package/select/Option.js +97 -0
  193. package/select/Select.d.ts +4 -0
  194. package/select/Select.js +196 -397
  195. package/select/Select.stories.tsx +600 -201
  196. package/select/Select.test.js +2228 -0
  197. package/select/types.d.ts +210 -0
  198. package/select/types.js +5 -0
  199. package/sidenav/Sidenav.d.ts +6 -5
  200. package/sidenav/Sidenav.js +184 -54
  201. package/sidenav/Sidenav.stories.tsx +282 -0
  202. package/sidenav/Sidenav.test.js +44 -0
  203. package/sidenav/types.d.ts +50 -27
  204. package/slider/Slider.d.ts +2 -2
  205. package/slider/Slider.js +123 -97
  206. package/slider/Slider.stories.tsx +72 -9
  207. package/slider/Slider.test.js +250 -0
  208. package/slider/types.d.ts +10 -2
  209. package/spinner/Spinner.js +5 -5
  210. package/spinner/Spinner.stories.jsx +27 -0
  211. package/spinner/Spinner.test.js +64 -0
  212. package/switch/Switch.d.ts +2 -2
  213. package/switch/Switch.js +152 -69
  214. package/switch/Switch.stories.tsx +54 -43
  215. package/switch/Switch.test.js +225 -0
  216. package/switch/types.d.ts +12 -4
  217. package/table/Table.js +4 -4
  218. package/table/Table.stories.jsx +81 -1
  219. package/table/Table.test.js +26 -0
  220. package/tabs/Tab.d.ts +4 -0
  221. package/tabs/Tab.js +133 -0
  222. package/tabs/Tabs.d.ts +1 -1
  223. package/tabs/Tabs.js +364 -108
  224. package/tabs/Tabs.stories.tsx +226 -0
  225. package/tabs/Tabs.test.js +351 -0
  226. package/tabs/types.d.ts +41 -20
  227. package/tag/Tag.d.ts +1 -1
  228. package/tag/Tag.js +19 -29
  229. package/tag/Tag.stories.tsx +38 -28
  230. package/tag/Tag.test.js +60 -0
  231. package/tag/types.d.ts +23 -14
  232. package/text-input/Icons.d.ts +8 -0
  233. package/text-input/Icons.js +60 -0
  234. package/text-input/Suggestion.d.ts +4 -0
  235. package/text-input/Suggestion.js +84 -0
  236. package/text-input/Suggestions.d.ts +4 -0
  237. package/text-input/Suggestions.js +134 -0
  238. package/text-input/TextInput.d.ts +4 -0
  239. package/text-input/TextInput.js +233 -385
  240. package/text-input/TextInput.stories.tsx +569 -0
  241. package/text-input/TextInput.test.js +1724 -0
  242. package/text-input/types.d.ts +197 -0
  243. package/text-input/types.js +5 -0
  244. package/textarea/Textarea.d.ts +4 -0
  245. package/textarea/Textarea.js +39 -79
  246. package/textarea/Textarea.stories.jsx +96 -15
  247. package/textarea/Textarea.test.js +437 -0
  248. package/textarea/types.d.ts +137 -0
  249. package/textarea/types.js +5 -0
  250. package/toggle-group/ToggleGroup.d.ts +4 -0
  251. package/toggle-group/ToggleGroup.js +18 -46
  252. package/toggle-group/ToggleGroup.stories.tsx +69 -32
  253. package/toggle-group/ToggleGroup.test.js +156 -0
  254. package/toggle-group/types.d.ts +105 -0
  255. package/toggle-group/types.js +5 -0
  256. package/typography/Typography.d.ts +4 -0
  257. package/typography/Typography.js +131 -0
  258. package/typography/Typography.stories.tsx +198 -0
  259. package/typography/types.d.ts +18 -0
  260. package/typography/types.js +5 -0
  261. package/useTheme.d.ts +2 -0
  262. package/useTheme.js +2 -2
  263. package/useTranslatedLabels.d.ts +2 -0
  264. package/useTranslatedLabels.js +20 -0
  265. package/utils/FocusLock.d.ts +13 -0
  266. package/utils/FocusLock.js +139 -0
  267. package/wizard/Wizard.d.ts +1 -1
  268. package/wizard/Wizard.js +112 -58
  269. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  270. package/wizard/Wizard.test.js +141 -0
  271. package/wizard/types.d.ts +13 -12
  272. package/ThemeContext.js +0 -246
  273. package/V3Select/V3Select.js +0 -455
  274. package/V3Select/index.d.ts +0 -27
  275. package/V3Textarea/V3Textarea.js +0 -260
  276. package/V3Textarea/index.d.ts +0 -27
  277. package/chip/index.d.ts +0 -22
  278. package/common/RequiredComponent.js +0 -32
  279. package/date/Date.js +0 -373
  280. package/date/index.d.ts +0 -27
  281. package/footer/Footer.stories.jsx +0 -151
  282. package/input-text/Icons.js +0 -22
  283. package/input-text/InputText.js +0 -611
  284. package/input-text/index.d.ts +0 -36
  285. package/radio/Radio.d.ts +0 -4
  286. package/radio/Radio.js +0 -174
  287. package/radio/Radio.stories.tsx +0 -192
  288. package/radio/types.d.ts +0 -54
  289. package/resultsetTable/index.d.ts +0 -19
  290. package/select/index.d.ts +0 -131
  291. package/text-input/index.d.ts +0 -135
  292. package/textarea/index.d.ts +0 -117
  293. package/toggle/Toggle.js +0 -186
  294. package/toggle/index.d.ts +0 -21
  295. package/toggle-group/index.d.ts +0 -21
  296. package/upload/Upload.js +0 -201
  297. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  298. package/upload/buttons-upload/Icons.js +0 -40
  299. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  300. package/upload/dragAndDropArea/Icons.js +0 -39
  301. package/upload/file-upload/FileToUpload.js +0 -115
  302. package/upload/file-upload/Icons.js +0 -66
  303. package/upload/files-upload/FilesToUpload.js +0 -109
  304. package/upload/index.d.ts +0 -15
  305. package/upload/transaction/Icons.js +0 -160
  306. package/upload/transaction/Transaction.js +0 -104
  307. package/upload/transactions/Transactions.js +0 -94
  308. package/wizard/Icons.js +0 -65
  309. /package/{radio → badge}/types.js +0 -0
@@ -0,0 +1,201 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
4
+ import DxcCard from "./Card";
5
+ import imagePath from "./ice-cream.jpg";
6
+ import { userEvent, within } from "@storybook/testing-library";
7
+
8
+ export default {
9
+ title: "Card",
10
+ component: DxcCard,
11
+ };
12
+
13
+ const Card = () => (
14
+ <>
15
+ <Title title="Default" theme="light" level={4} />
16
+ <ExampleContainer>
17
+ <DxcCard>Default</DxcCard>
18
+ </ExampleContainer>
19
+ <Title title="Not outlined" theme="light" level={4} />
20
+ <ExampleContainer>
21
+ <DxcCard outlined={false}>Not outlined</DxcCard>
22
+ </ExampleContainer>
23
+ <Title title="Default with link" theme="light" level={4} />
24
+ <ExampleContainer>
25
+ <DxcCard linkHref="https://www.dxc.com">Default with link</DxcCard>
26
+ </ExampleContainer>
27
+ <Title title="Focused default with link" theme="light" level={4} />
28
+ <ExampleContainer>
29
+ <DxcCard linkHref="https://www.dxc.com">Focused default with link</DxcCard>
30
+ </ExampleContainer>
31
+ <Title title="Hovered default with link" theme="light" level={4} />
32
+ <ExampleContainer>
33
+ <DxcCard linkHref="https://www.dxc.com">Hovered default with link</DxcCard>
34
+ </ExampleContainer>
35
+ <Title title="Default with action" theme="light" level={4} />
36
+ <ExampleContainer>
37
+ <DxcCard onClick={() => {}}>Default with action</DxcCard>
38
+ </ExampleContainer>
39
+ <Title title="Default with image" theme="light" level={4} />
40
+ <ExampleContainer>
41
+ <DxcCard imageSrc={imagePath}>Default</DxcCard>
42
+ </ExampleContainer>
43
+ <Title title="Default image with background color" theme="light" level={4} />
44
+ <ExampleContainer>
45
+ <DxcCard imageSrc={imagePath} imageBgColor="yellow">
46
+ Background color
47
+ </DxcCard>
48
+ </ExampleContainer>
49
+ <Title title="Default image with position after" theme="light" level={4} />
50
+ <ExampleContainer>
51
+ <DxcCard imageSrc={imagePath} imagePosition="after">
52
+ Position after
53
+ </DxcCard>
54
+ </ExampleContainer>
55
+ <Title title="Image cover" theme="light" level={4} />
56
+ <ExampleContainer>
57
+ <DxcCard imageSrc={imagePath} imageCover>
58
+ Image cover
59
+ </DxcCard>
60
+ </ExampleContainer>
61
+ <Title title="Image cover with position after" theme="light" level={4} />
62
+ <ExampleContainer>
63
+ <DxcCard imageSrc={imagePath} imageCover imagePosition="after">
64
+ Image cover with position after
65
+ </DxcCard>
66
+ </ExampleContainer>
67
+ <Title title="Image padding" theme="light" level={2} />
68
+ <ExampleContainer>
69
+ <Title title="Xxsmall" theme="light" level={4} />
70
+ <DxcCard imageSrc={imagePath} imagePadding="xxsmall" imageCover>
71
+ Xxsmall
72
+ </DxcCard>
73
+ </ExampleContainer>
74
+ <ExampleContainer>
75
+ <Title title="Xsmall" theme="light" level={4} />
76
+ <DxcCard imageSrc={imagePath} imagePadding="xsmall" imageCover>
77
+ Xsmall
78
+ </DxcCard>
79
+ </ExampleContainer>
80
+ <ExampleContainer>
81
+ <Title title="Small" theme="light" level={4} />
82
+ <DxcCard imageSrc={imagePath} imagePadding="small" imageCover>
83
+ Small
84
+ </DxcCard>
85
+ </ExampleContainer>
86
+ <ExampleContainer>
87
+ <Title title="Medium" theme="light" level={4} />
88
+ <DxcCard imageSrc={imagePath} imagePadding="medium" imageCover>
89
+ Medium
90
+ </DxcCard>
91
+ </ExampleContainer>
92
+ <ExampleContainer>
93
+ <Title title="Large" theme="light" level={4} />
94
+ <DxcCard imageSrc={imagePath} imagePadding="large" imageCover>
95
+ Large
96
+ </DxcCard>
97
+ </ExampleContainer>
98
+ <ExampleContainer>
99
+ <Title title="Xlarge" theme="light" level={4} />
100
+ <DxcCard imageSrc={imagePath} imagePadding="xlarge" imageCover>
101
+ Xlarge
102
+ </DxcCard>
103
+ </ExampleContainer>
104
+ <ExampleContainer>
105
+ <Title title="Xxlarge" theme="light" level={4} />
106
+ <DxcCard imageSrc={imagePath} imagePadding="xxlarge" imageCover>
107
+ Xxlarge
108
+ </DxcCard>
109
+ </ExampleContainer>
110
+ <Title title="Content padding" theme="light" level={2} />
111
+ <ExampleContainer>
112
+ <Title title="Xxsmall" theme="light" level={4} />
113
+ <DxcCard contentPadding="xxsmall">Xxsmall</DxcCard>
114
+ </ExampleContainer>
115
+ <ExampleContainer>
116
+ <Title title="Xsmall" theme="light" level={4} />
117
+ <DxcCard contentPadding="xsmall">Xsmall</DxcCard>
118
+ </ExampleContainer>
119
+ <ExampleContainer>
120
+ <Title title="Small" theme="light" level={4} />
121
+ <DxcCard contentPadding="small">Small</DxcCard>
122
+ </ExampleContainer>
123
+ <ExampleContainer>
124
+ <Title title="Medium" theme="light" level={4} />
125
+ <DxcCard contentPadding="medium">Medium</DxcCard>
126
+ </ExampleContainer>
127
+ <ExampleContainer>
128
+ <Title title="Large" theme="light" level={4} />
129
+ <DxcCard contentPadding="large">Large</DxcCard>
130
+ </ExampleContainer>
131
+ <ExampleContainer>
132
+ <Title title="Xlarge" theme="light" level={4} />
133
+ <DxcCard contentPadding="xlarge">Xlarge</DxcCard>
134
+ </ExampleContainer>
135
+ <ExampleContainer>
136
+ <Title title="Xxlarge" theme="light" level={4} />
137
+ <DxcCard contentPadding="xxlarge">Xxlarge</DxcCard>
138
+ </ExampleContainer>
139
+ <Title title="Margin" theme="light" level={2} />
140
+ <ExampleContainer>
141
+ <Title title="Xxsmall" theme="light" level={4} />
142
+ <DxcCard margin="xxsmall">Xxsmall</DxcCard>
143
+ </ExampleContainer>
144
+ <ExampleContainer>
145
+ <Title title="Xsmall" theme="light" level={4} />
146
+ <DxcCard margin="xsmall">Xsmall</DxcCard>
147
+ </ExampleContainer>
148
+ <ExampleContainer>
149
+ <Title title="Small" theme="light" level={4} />
150
+ <DxcCard margin="small">Small</DxcCard>
151
+ </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="Medium" theme="light" level={4} />
154
+ <DxcCard margin="medium">Medium</DxcCard>
155
+ </ExampleContainer>
156
+ <ExampleContainer>
157
+ <Title title="Large" theme="light" level={4} />
158
+ <DxcCard margin="large">Large</DxcCard>
159
+ </ExampleContainer>
160
+ <ExampleContainer>
161
+ <Title title="Xlarge" theme="light" level={4} />
162
+ <DxcCard margin="xlarge">Xlarge</DxcCard>
163
+ </ExampleContainer>
164
+ <ExampleContainer>
165
+ <Title title="Xxlarge" theme="light" level={4} />
166
+ <DxcCard margin="xxlarge">Xxlarge</DxcCard>
167
+ </ExampleContainer>
168
+ </>
169
+ );
170
+
171
+ const actionCard = () => (
172
+ <>
173
+ <ExampleContainer>
174
+ <Title title="Focused default with action" theme="light" level={4} />
175
+ <DxcCard onClick={() => {}}>Focused default with action</DxcCard>
176
+ </ExampleContainer>
177
+ <ExampleContainer expanded>
178
+ <Title title="Hovered default with action" theme="light" level={4} />
179
+ <DxcCard onClick={() => {}}>Hovered default with action</DxcCard>
180
+ </ExampleContainer>
181
+ </>
182
+ );
183
+
184
+ const linkStates = async (focusCard, hoverCard) => {
185
+ await focusCard.focus();
186
+ await userEvent.hover(hoverCard);
187
+ };
188
+
189
+ export const ActionCardStates = actionCard.bind({});
190
+ ActionCardStates.play = async ({ canvasElement }) => {
191
+ const canvas = within(canvasElement);
192
+ await userEvent.tab();
193
+ await userEvent.hover(canvas.getAllByText("Hovered default with action")[1]);
194
+ };
195
+
196
+ export const Chromatic = Card.bind({});
197
+ Chromatic.play = async ({ canvasElement }) => {
198
+ const canvas = within(canvasElement);
199
+ const linkCards = canvas.getAllByRole("link");
200
+ await linkStates(linkCards[1], linkCards[2]);
201
+ };
@@ -0,0 +1,50 @@
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 _Card = _interopRequireDefault(require("./Card"));
10
+
11
+ describe("Card component tests", function () {
12
+ test("Card renders with correct content", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], null, "test-card")),
14
+ getByText = _render.getByText;
15
+
16
+ expect(getByText("test-card")).toBeTruthy();
17
+ });
18
+ test("Card renders with correct href", function () {
19
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
20
+ linkHref: "/testPage"
21
+ }, "test-card")),
22
+ getByRole = _render2.getByRole;
23
+
24
+ var card = getByRole("link");
25
+ expect(card.getAttribute("href")).toEqual("/testPage");
26
+ });
27
+ test("Card renders with correct image", function () {
28
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
29
+ imageSrc: "/testImage"
30
+ }, "test-card")),
31
+ getByRole = _render3.getByRole;
32
+
33
+ var card = getByRole("img");
34
+ expect(card.getAttribute("src")).toEqual("/testImage");
35
+ });
36
+ test("OnClick function is called", function () {
37
+ var onClick = jest.fn();
38
+
39
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
40
+ onClick: onClick
41
+ }, "test-card")),
42
+ getByText = _render4.getByText;
43
+
44
+ var card = getByText("test-card");
45
+
46
+ _react2.fireEvent.click(card);
47
+
48
+ expect(onClick).toHaveBeenCalled();
49
+ });
50
+ });
Binary file
package/card/types.d.ts CHANGED
@@ -42,15 +42,14 @@ declare type Props = {
42
42
  */
43
43
  imageCover?: boolean;
44
44
  /**
45
- * Size of the margin to be applied to the component. You can pass
46
- * an object with 'top', 'bottom', 'left' and 'right' properties
47
- * in order to specify different margin sizes.
45
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
46
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
48
47
  */
49
48
  margin?: Space | Size;
50
49
  /**
51
- * Size of the padding to be applied to the content area. You can pass
52
- * an object with 'top', 'bottom', 'left' and 'right' properties in
53
- * order to specify different padding sizes.
50
+ * @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
51
+ * Size of the padding to be applied to the content area ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
52
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
54
53
  */
55
54
  contentPadding?: Space | Size;
56
55
  /**
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import CheckboxPropsType from "./types";
3
- declare const DxcCheckbox: ({ checked, value, label, labelPosition, name, disabled, onChange, required, margin, size, tabIndex, }: CheckboxPropsType) => JSX.Element;
3
+ declare const DxcCheckbox: React.ForwardRefExoticComponent<CheckboxPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcCheckbox;
@@ -19,26 +19,37 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
23
-
24
- var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
25
-
26
22
  var _variables = require("../common/variables.js");
27
23
 
28
24
  var _utils = require("../common/utils.js");
29
25
 
30
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
26
+ var _uuid = require("uuid");
27
+
28
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
31
29
 
32
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
30
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
33
31
 
34
- var _templateObject, _templateObject2, _templateObject3;
32
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
+
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
35
35
 
36
36
  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); }
37
37
 
38
38
  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; }
39
39
 
40
- var DxcCheckbox = function DxcCheckbox(_ref) {
40
+ var checkedIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
+ fill: "currentColor",
42
+ focusable: "false",
43
+ "aria-hidden": "true",
44
+ viewBox: "0 0 24 24"
45
+ }, /*#__PURE__*/_react["default"].createElement("path", {
46
+ d: "M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"
47
+ }));
48
+
49
+ var DxcCheckbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
41
50
  var checked = _ref.checked,
51
+ _ref$defaultChecked = _ref.defaultChecked,
52
+ defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
42
53
  value = _ref.value,
43
54
  _ref$label = _ref.label,
44
55
  label = _ref$label === void 0 ? "" : _ref$label,
@@ -48,95 +59,95 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
48
59
  name = _ref$name === void 0 ? "" : _ref$name,
49
60
  _ref$disabled = _ref.disabled,
50
61
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
62
+ _ref$optional = _ref.optional,
63
+ optional = _ref$optional === void 0 ? false : _ref$optional,
51
64
  onChange = _ref.onChange,
52
- _ref$required = _ref.required,
53
- required = _ref$required === void 0 ? false : _ref$required,
54
65
  margin = _ref.margin,
55
66
  _ref$size = _ref.size,
56
67
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
57
68
  _ref$tabIndex = _ref.tabIndex,
58
69
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
59
70
 
60
- var _useState = (0, _react.useState)(false),
61
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
- innerChecked = _useState2[0],
63
- setInnerChecked = _useState2[1];
71
+ var _useState = (0, _react.useState)("label-checkbox-".concat((0, _uuid.v4)())),
72
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
73
+ labelId = _useState2[0];
64
74
 
65
- var _useState3 = (0, _react.useState)(false),
75
+ var _useState3 = (0, _react.useState)(defaultChecked),
66
76
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
67
- isLabelHovered = _useState4[0],
68
- setIsLabelHovered = _useState4[1];
77
+ innerChecked = _useState4[0],
78
+ setInnerChecked = _useState4[1];
69
79
 
80
+ var checkboxRef = (0, _react.useRef)(null);
70
81
  var colorsTheme = (0, _useTheme["default"])();
71
82
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
83
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
72
84
 
73
- var handlerCheckboxChange = function handlerCheckboxChange(checkboxValue) {
74
- if (checked === undefined) {
75
- var isChecked = checkboxValue.target.checked === undefined ? !innerChecked : checkboxValue.target.checked;
76
- setInnerChecked(isChecked);
77
-
78
- if (typeof onChange === "function") {
79
- onChange(isChecked);
80
- }
81
- } else {
82
- if (typeof onChange === "function") {
83
- onChange(!checked);
84
- }
85
- }
85
+ var handleCheckboxChange = function handleCheckboxChange() {
86
+ var _checkboxRef$current;
87
+
88
+ document.activeElement !== (checkboxRef === null || checkboxRef === void 0 ? void 0 : checkboxRef.current) && (checkboxRef === null || checkboxRef === void 0 ? void 0 : (_checkboxRef$current = checkboxRef.current) === null || _checkboxRef$current === void 0 ? void 0 : _checkboxRef$current.focus());
89
+ var newChecked = checked !== null && checked !== void 0 ? checked : innerChecked;
90
+ checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
91
+ return !innerChecked;
92
+ });
93
+ onChange === null || onChange === void 0 ? void 0 : onChange(!newChecked);
86
94
  };
87
95
 
88
- var handleLabelHover = function handleLabelHover() {
89
- setIsLabelHovered(!isLabelHovered);
96
+ var handleKeyboard = function handleKeyboard(event) {
97
+ switch (event.key) {
98
+ case " ":
99
+ event.preventDefault();
100
+ handleCheckboxChange();
101
+ }
90
102
  };
91
103
 
92
104
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
93
105
  theme: colorsTheme.checkbox
94
- }, /*#__PURE__*/_react["default"].createElement(CheckboxContainer, {
95
- id: name,
96
- brightness: _variables.componentTokens,
97
- label: label,
98
- labelPosition: labelPosition,
106
+ }, /*#__PURE__*/_react["default"].createElement(MainContainer, {
99
107
  disabled: disabled,
108
+ onClick: disabled ? undefined : handleCheckboxChange,
100
109
  margin: margin,
101
110
  size: size,
111
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
102
112
  backgroundType: backgroundType,
103
- isLabelHovered: isLabelHovered
104
- }, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
105
- checked: checked != undefined ? checked : innerChecked,
106
- inputProps: {
107
- name: name,
108
- "aria-label": label,
109
- role: "checkbox",
110
- "aria-checked": checked != undefined ? checked : innerChecked
111
- },
112
- onChange: handlerCheckboxChange,
113
- value: value,
113
+ ref: ref
114
+ }, label && labelPosition === "before" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
115
+ id: labelId,
114
116
  disabled: disabled,
115
- disableRipple: true,
116
- className: "test",
117
- tabIndex: tabIndex
118
- }), /*#__PURE__*/_react["default"].createElement(CheckboxBlackBack, {
119
- labelPosition: labelPosition,
120
- disabled: disabled,
121
- checked: checked != undefined ? checked : innerChecked,
122
117
  backgroundType: backgroundType
123
- }), required && /*#__PURE__*/_react["default"].createElement(_RequiredComponent["default"], null), label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
124
- labelPosition: labelPosition,
125
- onClick: disabled === true ? function (e) {} : handlerCheckboxChange,
118
+ }, label, optional && " ".concat(translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
119
+ type: "checkbox",
120
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
121
+ name: name,
122
+ "aria-hidden": "true",
123
+ value: value,
126
124
  disabled: disabled,
127
- className: "labelContainer",
125
+ readOnly: true
126
+ }), /*#__PURE__*/_react["default"].createElement(CheckboxContainer, null, /*#__PURE__*/_react["default"].createElement(Checkbox, {
127
+ onKeyDown: handleKeyboard,
128
+ role: "checkbox",
129
+ tabIndex: disabled ? -1 : tabIndex,
130
+ "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
131
+ "aria-disabled": disabled,
132
+ "aria-required": !disabled && !optional,
133
+ "aria-labelledby": labelId,
128
134
  backgroundType: backgroundType,
129
- onMouseOver: handleLabelHover,
130
- onMouseOut: handleLabelHover
131
- }, label)));
132
- };
135
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
136
+ disabled: disabled,
137
+ ref: checkboxRef
138
+ }, (checked !== null && checked !== void 0 ? checked : innerChecked) && checkedIcon)), label && labelPosition === "after" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
139
+ id: labelId,
140
+ disabled: disabled,
141
+ backgroundType: backgroundType
142
+ }, optional && "".concat(translatedLabels.formFields.optionalLabel, " "), label)));
143
+ });
133
144
 
134
145
  var sizes = {
135
146
  small: "120px",
136
147
  medium: "240px",
137
148
  large: "480px",
138
149
  fillParent: "100%",
139
- fitContent: "unset"
150
+ fitContent: "fit-content"
140
151
  };
141
152
 
142
153
  var calculateWidth = function calculateWidth(margin, size) {
@@ -151,46 +162,42 @@ var getDisabledColor = function getDisabledColor(props, element) {
151
162
  switch (element) {
152
163
  case "check":
153
164
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
154
- break;
155
165
 
156
166
  case "background":
157
167
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
158
- break;
159
168
 
160
169
  case "border":
161
170
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
162
- break;
163
171
 
164
172
  case "label":
165
173
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
166
- break;
167
174
  }
168
175
  };
169
176
 
170
- var getNotDisabledColor = function getNotDisabledColor(props, element) {
177
+ var getEnabledColor = function getEnabledColor(props, element) {
171
178
  switch (element) {
172
179
  case "check":
173
180
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
174
- break;
175
181
 
176
182
  case "background":
177
183
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
178
- break;
184
+
185
+ case "hoverBackground":
186
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
179
187
 
180
188
  case "border":
181
189
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
182
- break;
190
+
191
+ case "hoverBorder":
192
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
183
193
 
184
194
  case "label":
185
195
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
186
- break;
187
196
  }
188
197
  };
189
198
 
190
- var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
191
- return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
192
- }, function (props) {
193
- return props.disabled ? "not-allowed" : "pointer";
199
+ var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
200
+ return props.disabled ? getDisabledColor(props, "label") : getEnabledColor(props, "label");
194
201
  }, function (props) {
195
202
  return props.theme.fontFamily;
196
203
  }, function (props) {
@@ -199,54 +206,44 @@ var LabelContainer = _styledComponents["default"].span(_templateObject || (_temp
199
206
  return props.theme.fontWeight;
200
207
  });
201
208
 
202
- var CheckboxContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n position: relative;\n flex-direction: ", ";\n .MuiCheckbox-colorSecondary {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n &.Mui-disabled {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n opacity: 0.34;\n }\n }\n }\n &.Mui-checked {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n\n &:hover {\n background-color: transparent;\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n background-color: transparent;\n color: ", ";\n }\n }\n }\n }\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n width: 24px;\n height: 24px;\n }\n }\n }\n\n .MuiIconButton-colorSecondary {\n &:hover {\n background-color: transparent;\n }\n }\n .MuiButtonBase-root {\n &:hover {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n }\n\n &.Mui-focusVisible {\n .MuiIconButton-label {\n box-shadow: 0 0 0 2px\n ", ";\n }\n }\n z-index: 1;\n margin-left: ", ";\n margin-right: ", ";\n padding: 0px;\n left: ", ";\n right: ", ";\n }\n"])), function (props) {
203
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
209
+ var ValueInput = _styledComponents["default"].input(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
210
+
211
+ var CheckboxContainer = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
212
+
213
+ var Checkbox = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 18px;\n width: 18px;\n border: 2px solid\n ", ";\n border-radius: 2px;\n background-color: ", ";\n color: ", ";\n\n &:focus {\n outline: 2px solid\n ", ";\n outline-offset: 2px;\n }\n svg {\n position: absolute;\n width: 22px;\n height: 22px;\n }\n ", "\n"])), function (props) {
214
+ return props.disabled ? getDisabledColor(props, "border") : getEnabledColor(props, "border");
204
215
  }, function (props) {
205
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
216
+ return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
206
217
  }, function (props) {
207
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
218
+ return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "background");
208
219
  }, function (props) {
209
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
220
+ return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
210
221
  }, function (props) {
211
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
222
+ return props.disabled && "pointer-events: none;";
223
+ });
224
+
225
+ var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: ", ";\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n cursor: ", ";\n\n &:hover ", " {\n border: 2px solid\n ", ";\n background-color: ", ";\n color: ", ";\n }\n"])), function (props) {
226
+ return props.theme.checkLabelSpacing;
212
227
  }, function (props) {
213
228
  return calculateWidth(props.margin, props.size);
214
229
  }, function (props) {
215
- return props.disabled ? "not-allowed" : "pointer";
216
- }, function (props) {
217
- return props.labelPosition === "before" ? "row-reverse" : "row";
218
- }, function (props) {
219
- return props.isLabelHovered ? props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor : getNotDisabledColor(props, "border");
220
- }, function (props) {
221
- return getDisabledColor(props, "border");
222
- }, function (props) {
223
- return props.disabled ? getDisabledColor(props, "background") : getNotDisabledColor(props, "background");
224
- }, function (props) {
225
- return props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
226
- }, function (props) {
227
- return props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
228
- }, function (props) {
229
- return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
230
- }, function (props) {
231
- return props.labelPosition === "before" && props.label ? props.theme.checkLabelSpacing : "0";
230
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
232
231
  }, function (props) {
233
- return props.labelPosition === "after" && props.label ? props.theme.checkLabelSpacing : "0";
232
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
234
233
  }, function (props) {
235
- return props.labelPosition === "before" ? "unset" : "1px";
234
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
236
235
  }, function (props) {
237
- return props.labelPosition === "before" ? "1px" : "unset";
238
- });
239
-
240
- var CheckboxBlackBack = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n width: 16px;\n height: 16px;\n position: absolute;\n left: ", ";\n right: ", ";\n z-index: 0;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
241
- return !props.checked ? "transparent" : props.disabled ? getDisabledColor(props, "check") : getNotDisabledColor(props, "check");
236
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
242
237
  }, function (props) {
243
- return props.labelPosition === "before" ? "unset" : "5px";
238
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
244
239
  }, function (props) {
245
- return props.labelPosition === "before" ? "5px" : "unset";
240
+ return props.disabled ? "not-allowed" : "pointer";
241
+ }, Checkbox, function (props) {
242
+ return props.disabled ? getDisabledColor(props, "border") : getEnabledColor(props, "hoverBorder");
246
243
  }, function (props) {
247
- return props.labelPosition === "after" ? "0px" : "";
244
+ return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
248
245
  }, function (props) {
249
- return props.labelPosition === "before" ? "0px" : "";
246
+ return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "hoverBackground");
250
247
  });
251
248
 
252
249
  var _default = DxcCheckbox;