@dxc-technology/halstack-react 0.0.0-de3a219 → 0.0.0-e1a279c

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 (355) 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/{dist/textarea/Textarea.js → V3Textarea/V3Textarea.js} +39 -39
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/accordion/Accordion.d.ts +4 -0
  8. package/accordion/Accordion.js +258 -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 +170 -0
  13. package/accordion-group/types.d.ts +72 -0
  14. package/accordion-group/types.js +5 -0
  15. package/alert/Alert.d.ts +4 -0
  16. package/alert/Alert.js +290 -0
  17. package/alert/Alert.stories.tsx +170 -0
  18. package/alert/types.d.ts +49 -0
  19. package/alert/types.js +5 -0
  20. package/badge/Badge.js +59 -0
  21. package/box/Box.d.ts +4 -0
  22. package/{dist/box → box}/Box.js +18 -53
  23. package/box/Box.stories.tsx +132 -0
  24. package/box/types.d.ts +47 -0
  25. package/box/types.js +5 -0
  26. package/button/Button.d.ts +4 -0
  27. package/button/Button.js +177 -0
  28. package/button/Button.stories.tsx +276 -0
  29. package/button/types.d.ts +57 -0
  30. package/button/types.js +5 -0
  31. package/card/Card.d.ts +4 -0
  32. package/{dist/card → card}/Card.js +42 -124
  33. package/card/types.d.ts +69 -0
  34. package/card/types.js +5 -0
  35. package/checkbox/Checkbox.d.ts +4 -0
  36. package/{dist/checkbox → checkbox}/Checkbox.js +44 -82
  37. package/checkbox/Checkbox.stories.tsx +192 -0
  38. package/checkbox/types.d.ts +60 -0
  39. package/checkbox/types.js +5 -0
  40. package/{dist/chip → chip}/Chip.js +48 -104
  41. package/chip/Chip.stories.tsx +121 -0
  42. package/chip/index.d.ts +22 -0
  43. package/{dist/common → common}/OpenSans.css +0 -0
  44. package/{dist/common → common}/RequiredComponent.js +3 -11
  45. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  46. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  47. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  48. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  49. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  50. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  51. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  52. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  53. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  54. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  55. package/{dist/common → common}/utils.js +0 -0
  56. package/common/variables.js +1577 -0
  57. package/{dist/date → date}/Date.js +33 -51
  58. package/date/index.d.ts +27 -0
  59. package/date-input/DateInput.d.ts +4 -0
  60. package/date-input/DateInput.js +361 -0
  61. package/date-input/DateInput.stories.tsx +138 -0
  62. package/date-input/types.d.ts +100 -0
  63. package/date-input/types.js +5 -0
  64. package/dialog/Dialog.d.ts +4 -0
  65. package/{dist/dialog → dialog}/Dialog.js +29 -100
  66. package/dialog/Dialog.stories.tsx +212 -0
  67. package/dialog/types.d.ts +43 -0
  68. package/dialog/types.js +5 -0
  69. package/dropdown/Dropdown.d.ts +4 -0
  70. package/dropdown/Dropdown.js +417 -0
  71. package/dropdown/types.d.ts +89 -0
  72. package/dropdown/types.js +5 -0
  73. package/file-input/FileInput.js +532 -0
  74. package/file-input/FileItem.js +193 -0
  75. package/file-input/index.d.ts +81 -0
  76. package/footer/Footer.d.ts +4 -0
  77. package/footer/Footer.js +266 -0
  78. package/footer/Footer.stories.jsx +151 -0
  79. package/footer/Icons.js +77 -0
  80. package/footer/types.d.ts +61 -0
  81. package/footer/types.js +5 -0
  82. package/header/Header.d.ts +7 -0
  83. package/header/Header.js +324 -0
  84. package/header/Icons.js +34 -0
  85. package/header/types.d.ts +45 -0
  86. package/header/types.js +5 -0
  87. package/{dist/heading → heading}/Heading.js +30 -76
  88. package/heading/index.d.ts +17 -0
  89. package/input-text/Icons.js +22 -0
  90. package/{dist/input-text → input-text}/InputText.js +120 -178
  91. package/input-text/index.d.ts +36 -0
  92. package/{dist/layout → layout}/ApplicationLayout.js +35 -131
  93. package/layout/Icons.js +55 -0
  94. package/link/Link.d.ts +3 -0
  95. package/link/Link.js +161 -0
  96. package/link/Link.stories.tsx +70 -0
  97. package/link/types.d.ts +74 -0
  98. package/link/types.js +5 -0
  99. package/main.d.ts +44 -0
  100. package/{dist/main.js → main.js} +121 -69
  101. package/number-input/NumberInput.d.ts +4 -0
  102. package/number-input/NumberInput.js +86 -0
  103. package/number-input/NumberInput.stories.tsx +115 -0
  104. package/number-input/NumberInputContext.js +16 -0
  105. package/number-input/types.d.ts +117 -0
  106. package/number-input/types.js +5 -0
  107. package/package.json +34 -25
  108. package/paginator/Icons.js +66 -0
  109. package/paginator/Paginator.d.ts +4 -0
  110. package/paginator/Paginator.js +198 -0
  111. package/paginator/Paginator.stories.tsx +63 -0
  112. package/paginator/types.d.ts +38 -0
  113. package/paginator/types.js +5 -0
  114. package/password-input/PasswordInput.d.ts +4 -0
  115. package/password-input/PasswordInput.js +162 -0
  116. package/password-input/PasswordInput.stories.tsx +131 -0
  117. package/password-input/types.d.ts +100 -0
  118. package/password-input/types.js +5 -0
  119. package/progress-bar/ProgressBar.d.ts +4 -0
  120. package/progress-bar/ProgressBar.js +170 -0
  121. package/progress-bar/ProgressBar.stories.jsx +58 -0
  122. package/progress-bar/types.d.ts +37 -0
  123. package/progress-bar/types.js +5 -0
  124. package/radio/Radio.d.ts +4 -0
  125. package/{dist/radio → radio}/Radio.js +15 -50
  126. package/radio/Radio.stories.tsx +192 -0
  127. package/radio/types.d.ts +54 -0
  128. package/radio/types.js +5 -0
  129. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +35 -136
  130. package/resultsetTable/index.d.ts +19 -0
  131. package/select/Select.js +865 -0
  132. package/select/Select.stories.tsx +572 -0
  133. package/select/index.d.ts +131 -0
  134. package/sidenav/Sidenav.d.ts +9 -0
  135. package/sidenav/Sidenav.js +136 -0
  136. package/sidenav/types.d.ts +50 -0
  137. package/sidenav/types.js +5 -0
  138. package/slider/Slider.d.ts +4 -0
  139. package/slider/Slider.js +317 -0
  140. package/slider/Slider.stories.tsx +177 -0
  141. package/slider/types.d.ts +78 -0
  142. package/slider/types.js +5 -0
  143. package/spinner/Spinner.d.ts +4 -0
  144. package/spinner/Spinner.js +250 -0
  145. package/spinner/Spinner.stories.jsx +102 -0
  146. package/spinner/types.d.ts +32 -0
  147. package/spinner/types.js +5 -0
  148. package/switch/Switch.d.ts +4 -0
  149. package/{dist/switch → switch}/Switch.js +28 -71
  150. package/switch/Switch.stories.tsx +160 -0
  151. package/switch/types.d.ts +58 -0
  152. package/switch/types.js +5 -0
  153. package/table/Table.d.ts +4 -0
  154. package/table/Table.js +118 -0
  155. package/table/Table.stories.jsx +276 -0
  156. package/table/types.d.ts +21 -0
  157. package/table/types.js +5 -0
  158. package/tabs/Tabs.d.ts +4 -0
  159. package/tabs/Tabs.js +211 -0
  160. package/tabs/types.d.ts +71 -0
  161. package/tabs/types.js +5 -0
  162. package/tag/Tag.d.ts +4 -0
  163. package/tag/Tag.js +193 -0
  164. package/tag/Tag.stories.tsx +145 -0
  165. package/tag/types.d.ts +60 -0
  166. package/tag/types.js +5 -0
  167. package/text-input/TextInput.js +825 -0
  168. package/text-input/index.d.ts +135 -0
  169. package/textarea/Textarea.js +317 -0
  170. package/textarea/Textarea.stories.jsx +135 -0
  171. package/textarea/index.d.ts +117 -0
  172. package/{dist/toggle → toggle}/Toggle.js +15 -49
  173. package/toggle/index.d.ts +21 -0
  174. package/toggle-group/ToggleGroup.js +243 -0
  175. package/toggle-group/ToggleGroup.stories.tsx +178 -0
  176. package/toggle-group/index.d.ts +21 -0
  177. package/{dist/upload → upload}/Upload.js +11 -15
  178. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  179. package/upload/buttons-upload/Icons.js +40 -0
  180. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  181. package/upload/dragAndDropArea/Icons.js +39 -0
  182. package/upload/file-upload/FileToUpload.js +115 -0
  183. package/upload/file-upload/Icons.js +66 -0
  184. package/{dist/upload → upload}/files-upload/FilesToUpload.js +12 -26
  185. package/upload/index.d.ts +15 -0
  186. package/upload/transaction/Icons.js +160 -0
  187. package/upload/transaction/Transaction.js +104 -0
  188. package/upload/transactions/Transactions.js +94 -0
  189. package/{dist/useTheme.js → useTheme.js} +0 -0
  190. package/wizard/Icons.js +65 -0
  191. package/wizard/Wizard.d.ts +4 -0
  192. package/wizard/Wizard.js +231 -0
  193. package/wizard/Wizard.stories.jsx +224 -0
  194. package/wizard/types.d.ts +64 -0
  195. package/wizard/types.js +5 -0
  196. package/README.md +0 -66
  197. package/babel.config.js +0 -8
  198. package/dist/BackgroundColorContext.js +0 -46
  199. package/dist/ThemeContext.js +0 -216
  200. package/dist/accordion/Accordion.js +0 -356
  201. package/dist/accordion/Accordion.stories.js +0 -207
  202. package/dist/accordion/readme.md +0 -96
  203. package/dist/accordion-group/AccordionGroup.js +0 -188
  204. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  205. package/dist/accordion-group/readme.md +0 -70
  206. package/dist/alert/Alert.js +0 -388
  207. package/dist/alert/Alert.stories.js +0 -158
  208. package/dist/alert/close.svg +0 -4
  209. package/dist/alert/error.svg +0 -4
  210. package/dist/alert/info.svg +0 -4
  211. package/dist/alert/readme.md +0 -43
  212. package/dist/alert/success.svg +0 -4
  213. package/dist/alert/warning.svg +0 -4
  214. package/dist/badge/Badge.js +0 -61
  215. package/dist/button/Button.js +0 -228
  216. package/dist/button/Button.stories.js +0 -224
  217. package/dist/button/readme.md +0 -93
  218. package/dist/checkbox/Checkbox.stories.js +0 -144
  219. package/dist/checkbox/readme.md +0 -116
  220. package/dist/common/variables.js +0 -1164
  221. package/dist/date/Date.stories.js +0 -205
  222. package/dist/date/calendar.svg +0 -1
  223. package/dist/date/calendar_dark.svg +0 -1
  224. package/dist/date/readme.md +0 -73
  225. package/dist/dialog/Dialog.stories.js +0 -217
  226. package/dist/dialog/readme.md +0 -32
  227. package/dist/dropdown/Dropdown.js +0 -498
  228. package/dist/dropdown/Dropdown.stories.js +0 -249
  229. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  230. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  231. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  232. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  233. package/dist/dropdown/readme.md +0 -69
  234. package/dist/footer/Footer.js +0 -405
  235. package/dist/footer/Footer.stories.js +0 -94
  236. package/dist/footer/dxc_logo_wht.png +0 -0
  237. package/dist/footer/readme.md +0 -41
  238. package/dist/header/Header.js +0 -431
  239. package/dist/header/Header.stories.js +0 -176
  240. package/dist/header/close_icon.svg +0 -1
  241. package/dist/header/dxc_logo_black.png +0 -0
  242. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  243. package/dist/header/dxc_logo_white.png +0 -0
  244. package/dist/header/hamb_menu_black.svg +0 -1
  245. package/dist/header/hamb_menu_white.svg +0 -1
  246. package/dist/header/readme.md +0 -33
  247. package/dist/input-text/InputText.stories.js +0 -209
  248. package/dist/input-text/error.svg +0 -1
  249. package/dist/input-text/readme.md +0 -91
  250. package/dist/layout/facebook.svg +0 -45
  251. package/dist/layout/linkedin.svg +0 -50
  252. package/dist/layout/twitter.svg +0 -53
  253. package/dist/link/Link.js +0 -212
  254. package/dist/link/readme.md +0 -51
  255. package/dist/paginator/Paginator.js +0 -283
  256. package/dist/paginator/images/next.svg +0 -3
  257. package/dist/paginator/images/nextPage.svg +0 -3
  258. package/dist/paginator/images/previous.svg +0 -3
  259. package/dist/paginator/images/previousPage.svg +0 -3
  260. package/dist/paginator/readme.md +0 -50
  261. package/dist/progress-bar/ProgressBar.js +0 -206
  262. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  263. package/dist/progress-bar/readme.md +0 -63
  264. package/dist/radio/Radio.stories.js +0 -166
  265. package/dist/radio/readme.md +0 -70
  266. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  267. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  268. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  269. package/dist/select/Select.js +0 -525
  270. package/dist/select/Select.stories.js +0 -235
  271. package/dist/select/readme.md +0 -72
  272. package/dist/sidenav/Sidenav.js +0 -183
  273. package/dist/slider/Slider.js +0 -315
  274. package/dist/slider/Slider.stories.js +0 -241
  275. package/dist/slider/readme.md +0 -64
  276. package/dist/spinner/Spinner.js +0 -214
  277. package/dist/spinner/Spinner.stories.js +0 -183
  278. package/dist/spinner/readme.md +0 -65
  279. package/dist/switch/Switch.stories.js +0 -134
  280. package/dist/switch/readme.md +0 -133
  281. package/dist/table/Table.js +0 -122
  282. package/dist/tabs/Tabs.js +0 -347
  283. package/dist/tabs/Tabs.stories.js +0 -130
  284. package/dist/tabs/readme.md +0 -78
  285. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  286. package/dist/tabs-for-sections/readme.md +0 -78
  287. package/dist/tag/Tag.js +0 -280
  288. package/dist/toggle/Toggle.stories.js +0 -297
  289. package/dist/toggle/readme.md +0 -80
  290. package/dist/toggle-group/ToggleGroup.js +0 -241
  291. package/dist/toggle-group/readme.md +0 -82
  292. package/dist/upload/Upload.stories.js +0 -72
  293. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  294. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  295. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  296. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -325
  297. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  298. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  299. package/dist/upload/file-upload/FileToUpload.js +0 -184
  300. package/dist/upload/file-upload/audio-icon.svg +0 -4
  301. package/dist/upload/file-upload/close.svg +0 -4
  302. package/dist/upload/file-upload/file-icon.svg +0 -4
  303. package/dist/upload/file-upload/video-icon.svg +0 -4
  304. package/dist/upload/readme.md +0 -37
  305. package/dist/upload/transaction/Transaction.js +0 -171
  306. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  307. package/dist/upload/transaction/audio-icon.svg +0 -4
  308. package/dist/upload/transaction/error-icon.svg +0 -4
  309. package/dist/upload/transaction/file-icon-err.svg +0 -4
  310. package/dist/upload/transaction/file-icon.svg +0 -4
  311. package/dist/upload/transaction/image-icon-err.svg +0 -4
  312. package/dist/upload/transaction/image-icon.svg +0 -4
  313. package/dist/upload/transaction/success-icon.svg +0 -4
  314. package/dist/upload/transaction/video-icon-err.svg +0 -4
  315. package/dist/upload/transaction/video-icon.svg +0 -4
  316. package/dist/upload/transactions/Transactions.js +0 -138
  317. package/dist/wizard/Wizard.js +0 -383
  318. package/dist/wizard/invalid_icon.svg +0 -6
  319. package/dist/wizard/valid_icon.svg +0 -6
  320. package/dist/wizard/validation-wrong.svg +0 -6
  321. package/test/Accordion.test.js +0 -33
  322. package/test/AccordionGroup.test.js +0 -125
  323. package/test/Alert.test.js +0 -53
  324. package/test/Box.test.js +0 -10
  325. package/test/Button.test.js +0 -18
  326. package/test/Card.test.js +0 -30
  327. package/test/Checkbox.test.js +0 -45
  328. package/test/Chip.test.js +0 -25
  329. package/test/Date.test.js +0 -393
  330. package/test/Dialog.test.js +0 -23
  331. package/test/Dropdown.test.js +0 -130
  332. package/test/Footer.test.js +0 -99
  333. package/test/Header.test.js +0 -39
  334. package/test/Heading.test.js +0 -35
  335. package/test/InputText.test.js +0 -240
  336. package/test/Link.test.js +0 -42
  337. package/test/Paginator.test.js +0 -177
  338. package/test/ProgressBar.test.js +0 -35
  339. package/test/Radio.test.js +0 -37
  340. package/test/ResultsetTable.test.js +0 -330
  341. package/test/Select.test.js +0 -192
  342. package/test/Sidenav.test.js +0 -45
  343. package/test/Slider.test.js +0 -82
  344. package/test/Spinner.test.js +0 -27
  345. package/test/Switch.test.js +0 -45
  346. package/test/Table.test.js +0 -36
  347. package/test/Tabs.test.js +0 -109
  348. package/test/TabsForSections.test.js +0 -34
  349. package/test/Tag.test.js +0 -32
  350. package/test/TextArea.test.js +0 -52
  351. package/test/ToggleGroup.test.js +0 -81
  352. package/test/Upload.test.js +0 -60
  353. package/test/Wizard.test.js +0 -130
  354. package/test/mocks/pngMock.js +0 -1
  355. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,192 @@
1
+ import React from "react";
2
+ import DxcCheckbox from "./Checkbox";
3
+ import { BackgroundColorProvider } from "../BackgroundColorContext";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import DarkContainer from "../../.storybook/components/DarkSection";
7
+ import { userEvent, within } from "@storybook/testing-library";
8
+
9
+ export default {
10
+ title: "Checkbox",
11
+ component: DxcCheckbox,
12
+ };
13
+
14
+ const Checkbox = () => (
15
+ <>
16
+ <>
17
+ <ExampleContainer>
18
+ <Title title="Default" theme="light" level={4} />
19
+ <DxcCheckbox label="Checkbox" />
20
+ </ExampleContainer>
21
+ <ExampleContainer>
22
+ <Title title="Focused" theme="light" level={4} />
23
+ <DxcCheckbox label="Focused" />
24
+ </ExampleContainer>
25
+ <ExampleContainer>
26
+ <Title title="Checked" theme="light" level={4} />
27
+ <DxcCheckbox label="Checkbox" checked />
28
+ </ExampleContainer>
29
+ <ExampleContainer>
30
+ <Title title="Required" theme="light" level={4} />
31
+ <DxcCheckbox label="Checkbox" required />
32
+ </ExampleContainer>
33
+ <ExampleContainer>
34
+ <Title title="Disabled and checked" theme="light" level={4} />
35
+ <DxcCheckbox label="Checkbox" disabled checked />
36
+ </ExampleContainer>
37
+ <ExampleContainer>
38
+ <Title title="Disabled and required" theme="light" level={4} />
39
+ <DxcCheckbox label="Checkbox" disabled required />
40
+ </ExampleContainer>
41
+ <ExampleContainer>
42
+ <Title title="Disabled, required and checked" theme="light" level={4} />
43
+ <DxcCheckbox label="Checkbox" disabled required checked />
44
+ </ExampleContainer>
45
+ <ExampleContainer>
46
+ <Title title="Label after" theme="light" level={4} />
47
+ <DxcCheckbox label="Checkbox" labelPosition="after" />
48
+ </ExampleContainer>
49
+ <ExampleContainer>
50
+ <Title title="Checked with label after" theme="light" level={4} />
51
+ <DxcCheckbox label="Checkbox" checked labelPosition="after" />
52
+ </ExampleContainer>
53
+ <ExampleContainer>
54
+ <Title title="Required with label after" theme="light" level={4} />
55
+ <DxcCheckbox label="Checkbox" required labelPosition="after" />
56
+ </ExampleContainer>
57
+ <ExampleContainer>
58
+ <Title title="Disabled and checked with label after" theme="light" level={4} />
59
+ <DxcCheckbox label="Checkbox" disabled checked labelPosition="after" />
60
+ </ExampleContainer>
61
+ <ExampleContainer>
62
+ <Title title="Disabled and required with label after" theme="light" level={4} />
63
+ <DxcCheckbox label="Checkbox" disabled required labelPosition="after" />
64
+ </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="Disabled, required and checked with label after" theme="light" level={4} />
67
+ <DxcCheckbox label="Checkbox" disabled required checked labelPosition="after" />
68
+ </ExampleContainer>
69
+ <ExampleContainer pseudoState="pseudo-hover">
70
+ <Title title="Hovered" theme="light" level={4} />
71
+ <DxcCheckbox label="Hovered" />
72
+ </ExampleContainer>
73
+ <ExampleContainer pseudoState="pseudo-hover">
74
+ <Title title="Hovered and checked" theme="light" level={4} />
75
+ <DxcCheckbox label="Hovered" checked />
76
+ </ExampleContainer>
77
+ </>
78
+ <BackgroundColorProvider color="#333333">
79
+ <DarkContainer>
80
+ <>
81
+ <ExampleContainer>
82
+ <Title title="Default" theme="dark" level={4} />
83
+ <DxcCheckbox label="Checkbox" />
84
+ </ExampleContainer>
85
+ <ExampleContainer>
86
+ <Title title="Checked" theme="dark" level={4} />
87
+ <DxcCheckbox label="Checkbox" checked />
88
+ </ExampleContainer>
89
+ <ExampleContainer>
90
+ <Title title="Required" theme="dark" level={4} />
91
+ <DxcCheckbox label="Checkbox" required />
92
+ </ExampleContainer>
93
+ <ExampleContainer>
94
+ <Title title="Disabled and checked" theme="dark" level={4} />
95
+ <DxcCheckbox label="Checkbox" disabled checked />
96
+ </ExampleContainer>
97
+ <ExampleContainer>
98
+ <Title title="Disabled and required" theme="dark" level={4} />
99
+ <DxcCheckbox label="Checkbox" disabled required />
100
+ </ExampleContainer>
101
+ <ExampleContainer>
102
+ <Title title="Disabled, required and checked" theme="dark" level={4} />
103
+ <DxcCheckbox label="Checkbox" disabled required checked />
104
+ </ExampleContainer>
105
+ <ExampleContainer>
106
+ <Title title="Label after" theme="dark" level={4} />
107
+ <DxcCheckbox label="Checkbox" labelPosition="after" />
108
+ </ExampleContainer>
109
+ <ExampleContainer>
110
+ <Title title="Checked with label after" theme="dark" level={4} />
111
+ <DxcCheckbox label="Checkbox" checked labelPosition="after" />
112
+ </ExampleContainer>
113
+ <ExampleContainer>
114
+ <Title title="Required with label after" theme="dark" level={4} />
115
+ <DxcCheckbox label="Checkbox" required labelPosition="after" />
116
+ </ExampleContainer>
117
+ <ExampleContainer>
118
+ <Title title="Disabled and checked with label after" theme="dark" level={4} />
119
+ <DxcCheckbox label="Checkbox" disabled checked labelPosition="after" />
120
+ </ExampleContainer>
121
+ <ExampleContainer>
122
+ <Title title="Disabled and required with label after" theme="dark" level={4} />
123
+ <DxcCheckbox label="Checkbox" disabled required labelPosition="after" />
124
+ </ExampleContainer>
125
+ <ExampleContainer>
126
+ <Title title="Disabled, required and checked with label after" theme="dark" level={4} />
127
+ <DxcCheckbox label="Checkbox" disabled required checked labelPosition="after" />
128
+ </ExampleContainer>
129
+ <ExampleContainer pseudoState="pseudo-hover">
130
+ <Title title="Hovered" theme="dark" level={4} />
131
+ <DxcCheckbox label="Hovered" />
132
+ </ExampleContainer>
133
+ <ExampleContainer pseudoState="pseudo-hover">
134
+ <Title title="Hovered and checked" theme="dark" level={4} />
135
+ <DxcCheckbox label="Hovered" checked />
136
+ </ExampleContainer>
137
+ </>
138
+ </DarkContainer>
139
+ </BackgroundColorProvider>
140
+ <Title title="Sizes" theme="light" level={2} />
141
+ <ExampleContainer>
142
+ <DxcCheckbox label="Small" size="small" />
143
+ </ExampleContainer>
144
+ <ExampleContainer>
145
+ <DxcCheckbox label="Medium" size="medium" />
146
+ </ExampleContainer>
147
+ <ExampleContainer>
148
+ <DxcCheckbox label="Large" size="large" />
149
+ </ExampleContainer>
150
+ <ExampleContainer>
151
+ <DxcCheckbox label="FitContent" size="fitContent" />
152
+ </ExampleContainer>
153
+ <ExampleContainer>
154
+ <DxcCheckbox label="FillParent" size="fillParent" />
155
+ </ExampleContainer>
156
+ <Title title="Margins" theme="light" level={2} />
157
+ <ExampleContainer>
158
+ <Title title="Xxsmall" theme="light" level={4} />
159
+ <DxcCheckbox label="Xxsmall" margin={"xxsmall"} />
160
+ </ExampleContainer>
161
+ <ExampleContainer>
162
+ <Title title="Xsmall" theme="light" level={4} />
163
+ <DxcCheckbox label="Xsmall" margin={"xsmall"} />
164
+ </ExampleContainer>
165
+ <ExampleContainer>
166
+ <Title title="Small" theme="light" level={4} />
167
+ <DxcCheckbox label="Small" margin={"small"} />
168
+ </ExampleContainer>
169
+ <ExampleContainer>
170
+ <Title title="Medium" theme="light" level={4} />
171
+ <DxcCheckbox label="Medium" margin={"medium"} />
172
+ </ExampleContainer>
173
+ <ExampleContainer>
174
+ <Title title="Large" theme="light" level={4} />
175
+ <DxcCheckbox label="Large" margin={"large"} />
176
+ </ExampleContainer>
177
+ <ExampleContainer>
178
+ <Title title="Xlarge" theme="light" level={4} />
179
+ <DxcCheckbox label="Xlarge" margin={"xlarge"} />
180
+ </ExampleContainer>
181
+ <ExampleContainer>
182
+ <Title title="Xxlarge" theme="light" level={4} />
183
+ <DxcCheckbox label="Xxlarge" margin={"xxlarge"} />
184
+ </ExampleContainer>
185
+ </>
186
+ );
187
+
188
+ export const Chromatic = Checkbox.bind({});
189
+ Chromatic.play = async () => {
190
+ await userEvent.tab();
191
+ await userEvent.tab();
192
+ };
@@ -0,0 +1,60 @@
1
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ declare type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+ declare type Props = {
9
+ /**
10
+ * If true, the component is checked. If undefined the component will be
11
+ * uncontrolled and the value will be managed internally by the component.
12
+ */
13
+ checked?: boolean;
14
+ /**
15
+ * Will be passed to the value attribute of the html input element.
16
+ * When inside a form, this value will be only submitted if the checkbox is checked.
17
+ */
18
+ value?: string;
19
+ /**
20
+ * Text to be placed next to the checkbox.
21
+ */
22
+ label: string;
23
+ /**
24
+ * Whether the label should appear after or before the checkbox.
25
+ */
26
+ labelPosition?: "before" | "after";
27
+ /**
28
+ * Name attribute of the input element.
29
+ */
30
+ name?: string;
31
+ /**
32
+ * If true, the component will be disabled.
33
+ */
34
+ disabled?: boolean;
35
+ /**
36
+ * If true, the checkbox will change its appearence, showing that the value is required.
37
+ */
38
+ required?: boolean;
39
+ /**
40
+ * This function will be called when the user clicks the checkbox.
41
+ * The new value will be passed as a parameter.
42
+ */
43
+ onChange?: (val: boolean) => void;
44
+ /**
45
+ * Size of the margin to be applied to the component
46
+ * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
47
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties
48
+ * in order to specify different margin sizes.
49
+ */
50
+ margin?: Space | Margin;
51
+ /**
52
+ * Size of the component ('small' | 'medium' | 'large' | 'fillParent' | 'fitContent').
53
+ */
54
+ size?: "small" | "medium" | "large" | "fillParent" | "fitContent";
55
+ /**
56
+ * Value of the tabindex.
57
+ */
58
+ tabIndex?: number;
59
+ };
60
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
@@ -27,55 +27,11 @@ var _utils = require("../common/utils.js");
27
27
 
28
28
  var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
29
 
30
- function _templateObject5() {
31
- var data = (0, _taggedTemplateLiteral2["default"])(["\n opacity: ", ";\n ", "\n ", "\n max-width: ", ";\n max-height: ", ";\n overflow: hidden;\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n"]);
32
-
33
- _templateObject5 = function _templateObject5() {
34
- return data;
35
- };
36
-
37
- return data;
38
- }
39
-
40
- function _templateObject4() {
41
- var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n margin-right: ", ";\n max-width: ", ";\n max-height: ", ";\n padding-left: ", ";\n padding-right: ", ";\n paddin-top: ", ";\n padding-bottom: ", ";\n"]);
42
-
43
- _templateObject4 = function _templateObject4() {
44
- return data;
45
- };
46
-
47
- return data;
48
- }
49
-
50
- function _templateObject3() {
51
- var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n margin-left: ", ";\n max-width: ", ";\n max-height: ", ";\n padding-left: ", ";\n padding-right: ", ";\n paddin-top: ", ";\n padding-bottom: ", ";\n"]);
52
-
53
- _templateObject3 = function _templateObject3() {
54
- return data;
55
- };
56
-
57
- return data;
58
- }
59
-
60
- function _templateObject2() {
61
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-style: ", ";\n line-height: 24px;\n color: ", ";\n cursor: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"]);
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
62
31
 
63
- _templateObject2 = function _templateObject2() {
64
- return data;
65
- };
32
+ 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); }
66
33
 
67
- return data;
68
- }
69
-
70
- function _templateObject() {
71
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n border-radius: ", ";\n margin: 2px;\n max-width: ", ";\n background-color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n height: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
72
-
73
- _templateObject = function _templateObject() {
74
- return data;
75
- };
76
-
77
- return data;
78
- }
34
+ 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; }
79
35
 
80
36
  var DxcChip = function DxcChip(_ref) {
81
37
  var label = _ref.label,
@@ -90,12 +46,12 @@ var DxcChip = function DxcChip(_ref) {
90
46
  _ref$tabIndex = _ref.tabIndex,
91
47
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
92
48
  var colorsTheme = (0, _useTheme["default"])();
93
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
49
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
94
50
  theme: colorsTheme.chip
95
- }, _react["default"].createElement(StyledDxcChip, {
51
+ }, /*#__PURE__*/_react["default"].createElement(StyledDxcChip, {
96
52
  disabled: disabled,
97
53
  margin: margin
98
- }, prefixIcon ? _react["default"].createElement(IconContainer, {
54
+ }, prefixIcon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
99
55
  disabled: disabled,
100
56
  prefixIcon: true,
101
57
  label: label,
@@ -105,31 +61,37 @@ var DxcChip = function DxcChip(_ref) {
105
61
  return onClickPrefix && !disabled && onClickPrefix(label);
106
62
  },
107
63
  interactuable: typeof onClickPrefix === "function" && !disabled
108
- }, (0, _typeof2["default"])(prefixIcon) === "object" ? prefixIcon : _react["default"].createElement(prefixIcon)) : prefixIconSrc && _react["default"].createElement(PrefixIconContainer, {
64
+ }, (0, _typeof2["default"])(prefixIcon) === "object" ? prefixIcon : /*#__PURE__*/_react["default"].createElement(prefixIcon)) : prefixIconSrc && /*#__PURE__*/_react["default"].createElement(PrefixIconContainer, {
109
65
  disabled: disabled,
110
66
  src: prefixIconSrc,
111
67
  label: label,
112
68
  tabIndex: typeof onClickPrefix === "function" && !disabled ? tabIndex : -1,
113
- onClick: onClickPrefix && !disabled && onClickPrefix(label),
69
+ onClick: function onClick() {
70
+ return onClickPrefix && !disabled && onClickPrefix(label);
71
+ },
114
72
  interactuable: typeof onClickPrefix === "function" && !disabled
115
- }), label && _react["default"].createElement(ChipTextContainer, {
73
+ }), label && /*#__PURE__*/_react["default"].createElement(ChipTextContainer, {
116
74
  disabled: disabled,
117
75
  prefixIconSrc: prefixIconSrc,
118
76
  suffixIconSrc: suffixIconSrc
119
- }, label), suffixIcon ? _react["default"].createElement(IconContainer, {
77
+ }, label), suffixIcon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
120
78
  disabled: disabled,
121
79
  suffixIcon: true,
122
80
  mode: "suffix",
123
81
  label: label,
124
82
  tabIndex: typeof onClickSuffix === "function" && !disabled ? tabIndex : -1,
125
- onClick: onClickSuffix && !disabled && onClickSuffix(label),
83
+ onClick: function onClick() {
84
+ return onClickSuffix && !disabled && onClickSuffix(label);
85
+ },
126
86
  interactuable: typeof onClickSuffix === "function" && !disabled
127
- }, (0, _typeof2["default"])(suffixIcon) === "object" ? suffixIcon : _react["default"].createElement(suffixIcon)) : suffixIconSrc && _react["default"].createElement(SuffixIconContainer, {
87
+ }, (0, _typeof2["default"])(suffixIcon) === "object" ? suffixIcon : /*#__PURE__*/_react["default"].createElement(suffixIcon)) : suffixIconSrc && /*#__PURE__*/_react["default"].createElement(SuffixIconContainer, {
128
88
  disabled: disabled,
129
89
  src: suffixIconSrc,
130
90
  label: label,
131
91
  tabIndex: typeof onClickSuffix === "function" && !disabled ? tabIndex : -1,
132
- onClick: onClickSuffix && !disabled && onClickSuffix(label),
92
+ onClick: function onClick() {
93
+ return onClickSuffix && !disabled && onClickSuffix(label);
94
+ },
133
95
  interactuable: typeof onClickSuffix === "function" && !disabled
134
96
  })));
135
97
  };
@@ -146,21 +108,19 @@ var getCursor = function getCursor(interactuable, disabled) {
146
108
  return "cursor:default; outline:none;";
147
109
  };
148
110
 
149
- var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function (props) {
150
- return props.theme.borderRadius;
151
- }, function (_ref2) {
111
+ var StyledDxcChip = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n min-height: 40px;\n max-width: ", ";\n background-color: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n"])), function (_ref2) {
152
112
  var margin = _ref2.margin;
153
113
  return "calc(100% - 40px - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
154
114
  }, function (props) {
155
115
  return props.disabled && props.theme.disabledBackgroundColor || props.theme.backgroundColor;
116
+ }, function (props) {
117
+ return props.theme.borderRadius;
156
118
  }, function (props) {
157
119
  return props.theme.borderThickness;
158
120
  }, function (props) {
159
121
  return props.theme.borderStyle;
160
122
  }, function (props) {
161
123
  return props.theme.borderColor;
162
- }, function (props) {
163
- return props.theme.height;
164
124
  }, function (props) {
165
125
  return props.theme.contentPaddingTop;
166
126
  }, function (props) {
@@ -169,9 +129,6 @@ var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function
169
129
  return props.theme.contentPaddingLeft;
170
130
  }, function (props) {
171
131
  return props.theme.contentPaddingRight;
172
- }, function (_ref3) {
173
- var disabled = _ref3.disabled;
174
- return disabled && "not-allowed";
175
132
  }, function (props) {
176
133
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
177
134
  }, function (props) {
@@ -182,9 +139,12 @@ var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function
182
139
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
183
140
  }, function (props) {
184
141
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
142
+ }, function (_ref3) {
143
+ var disabled = _ref3.disabled;
144
+ return disabled && "not-allowed";
185
145
  });
186
146
 
187
- var ChipTextContainer = _styledComponents["default"].span(_templateObject2(), function (props) {
147
+ var ChipTextContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-style: ", ";\n color: ", ";\n cursor: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), function (props) {
188
148
  return props.theme.fontSize;
189
149
  }, function (props) {
190
150
  return props.theme.fontFamily;
@@ -193,66 +153,50 @@ var ChipTextContainer = _styledComponents["default"].span(_templateObject2(), fu
193
153
  }, function (props) {
194
154
  return props.theme.fontStyle;
195
155
  }, function (props) {
196
- return props.disabled && props.theme.disabledFontColor || props.theme.fontColor;
156
+ return props.disabled ? props.theme.disabledFontColor : props.theme.fontColor;
197
157
  }, function (_ref4) {
198
158
  var disabled = _ref4.disabled;
199
159
  return disabled && "not-allowed" || "default";
200
160
  });
201
161
 
202
- var SuffixIconContainer = _styledComponents["default"].img(_templateObject3(), function (props) {
203
- return getCursor(props.interactuable, props.disabled);
204
- }, function (props) {
205
- return (props.label || props.suffixIconSrc) && "10px" || props.prefixIconSrc && "5px";
162
+ var SuffixIconContainer = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n margin-left: ", ";\n width: ", ";\n height: ", ";\n"])), function (props) {
163
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
206
164
  }, function (props) {
207
- return props.theme.iconMaxWidth;
208
- }, function (props) {
209
- return props.theme.iconMaxHeight;
210
- }, function (props) {
211
- return props.theme.suffixIconPaddingLeft;
165
+ return getCursor(props.interactuable, props.disabled);
212
166
  }, function (props) {
213
- return props.theme.suffixIconPaddingRight;
167
+ return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
214
168
  }, function (props) {
215
- return props.theme.suffixIconPaddingTop;
169
+ return props.theme.iconSize;
216
170
  }, function (props) {
217
- return props.theme.suffixIconPaddingBottom;
171
+ return props.theme.iconSize;
218
172
  });
219
173
 
220
- var PrefixIconContainer = _styledComponents["default"].img(_templateObject4(), function (props) {
221
- return getCursor(props.interactuable, props.disabled);
222
- }, function (props) {
223
- return (props.label || props.suffixIconSrc) && "10px" || props.prefixIconSrc && "5px";
174
+ var PrefixIconContainer = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n margin-right: ", ";\n width: ", ";\n height: ", ";\n"])), function (props) {
175
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
224
176
  }, function (props) {
225
- return props.theme.iconMaxWidth;
226
- }, function (props) {
227
- return props.theme.iconMaxHeight;
228
- }, function (props) {
229
- return props.theme.suffixIconPaddingLeft;
177
+ return getCursor(props.interactuable, props.disabled);
230
178
  }, function (props) {
231
- return props.theme.suffixIconPaddingRight;
179
+ return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
232
180
  }, function (props) {
233
- return props.theme.suffixIconPaddingTop;
181
+ return props.theme.iconSize;
234
182
  }, function (props) {
235
- return props.theme.suffixIconPaddingBottom;
183
+ return props.theme.iconSize;
236
184
  });
237
185
 
238
- var IconContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
239
- return props.disabled && props.theme.iconMaxWidth;
186
+ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n ", "\n width: ", ";\n height: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n &:focus {\n outline-color: ", ";\n outline-width: 2px;\n ", "\n }\n"])), function (props) {
187
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
240
188
  }, function (props) {
241
- return props.prefixIcon ? "margin-right: ".concat((props.label || props.suffixIcon || props.suffixIconSrc) && "10px" || (props.prefixIcon || props.prefixIconSrc) && "0", ";") : "margin-left: ".concat((props.label || props.prefixIcon || props.prefixIconSrc) && "10px" || (props.prefixIcon || props.prefixIconSrc) && "0", ";");
189
+ return props.prefixIcon ? "margin-right: ".concat((props.label || props.suffixIcon || props.suffixIconSrc) && props.theme.iconSpacing || (props.prefixIcon || props.prefixIconSrc) && "0", ";") : "margin-left: ".concat((props.label || props.prefixIcon || props.prefixIconSrc) && props.theme.iconSpacing || (props.prefixIcon || props.prefixIconSrc) && "0", ";");
242
190
  }, function (props) {
243
191
  return getCursor(props.interactuable, props.disabled);
244
192
  }, function (props) {
245
- return props.theme.iconMaxWidth;
246
- }, function (props) {
247
- return props.theme.iconMaxHeight;
248
- }, function (props) {
249
- return props.mode === "suffix" && props.theme.suffixIconPaddingLeft || props.theme.prefixIconPaddingLeft;
193
+ return props.theme.iconSize;
250
194
  }, function (props) {
251
- return props.mode === "suffix" && props.theme.suffixIconPaddingRight || props.theme.prefixIconPaddingRight;
195
+ return props.theme.iconSize;
252
196
  }, function (props) {
253
- return props.mode === "suffix" && props.theme.suffixIconPaddingTop || props.theme.prefixIconPaddingTop;
197
+ return props.theme.focusColor;
254
198
  }, function (props) {
255
- return props.mode === "suffix" && props.theme.suffixIconPaddingBottom || props.theme.prefixIconPaddingBottom;
199
+ return props.disabled && "outline: none;";
256
200
  });
257
201
 
258
202
  DxcChip.propTypes = {
@@ -0,0 +1,121 @@
1
+ import React from "react";
2
+ import { userEvent, within } from "@storybook/testing-library";
3
+ import DxcChip from "./Chip";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+
7
+ export default {
8
+ title: "Chip",
9
+ component: DxcChip,
10
+ };
11
+
12
+ const iconSVG = () => {
13
+ return (
14
+ <svg viewBox="0 0 24 24" fill="currentColor">
15
+ <path d="M0 0h24v24H0z" fill="none" />
16
+ <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" />
17
+ </svg>
18
+ );
19
+ };
20
+
21
+ export const Chromatic = () => (
22
+ <>
23
+ <ExampleContainer>
24
+ <Title title="Basic chip" theme="light" level={4} />
25
+ <DxcChip label="Default Chip" />
26
+ </ExampleContainer>
27
+ <ExampleContainer>
28
+ <Title title="Chip with prefix" theme="light" level={4} />
29
+ <DxcChip label="Chip with prefix" prefixIcon={iconSVG} />
30
+ </ExampleContainer>
31
+ <ExampleContainer>
32
+ <Title title="Chip with suffix" theme="light" level={4} />
33
+ <DxcChip label="Chip with suffix" suffixIcon={iconSVG} />
34
+ </ExampleContainer>
35
+ <ExampleContainer>
36
+ <Title title="Chip with prefix and suffix" theme="light" level={4} />
37
+ <DxcChip label="Chip with prefix and suffix" prefixIcon={iconSVG} suffixIcon={iconSVG} />
38
+ </ExampleContainer>
39
+ <ExampleContainer>
40
+ <Title title="Disabled chip" theme="light" level={4} />
41
+ <DxcChip label="Disabled" disabled prefixIcon={iconSVG} suffixIcon={iconSVG} />
42
+ </ExampleContainer>
43
+ <ExampleContainer>
44
+ <Title title="Chip with ellipsis" theme="light" level={4} />
45
+ <DxcChip label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fg ssssssssssss ssss" />
46
+ </ExampleContainer>
47
+ <ExampleContainer>
48
+ <Title title="Chip with ellipsis and suffix" theme="light" level={4} />
49
+ <DxcChip
50
+ suffixIcon={iconSVG}
51
+ label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fgsss"
52
+ />
53
+ </ExampleContainer>
54
+ <ExampleContainer>
55
+ <Title title="Chip with ellipsis and prefix" theme="light" level={4} />
56
+ <DxcChip
57
+ prefixIcon={iconSVG}
58
+ label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasd fgsss"
59
+ />
60
+ </ExampleContainer>
61
+ <ExampleContainer>
62
+ <Title title="Chip with ellipsis, suffix and prefix" theme="light" level={4} />
63
+ <DxcChip
64
+ prefixIcon={iconSVG}
65
+ suffixIcon={iconSVG}
66
+ label="With ellipsis asdfasdf asdf asdfasdf asdf asdfasdf asdfasdf asdf asdf adfasrfasf afsdg afgasfg asdf asdf asdf asdf asdf asdf asdf afdg asfg asdfg asdf asdf asdf asdfasdf asd fas df asd asdf asdf asdfasdf"
67
+ />
68
+ </ExampleContainer>
69
+ <Title title="Margins" theme="light" level={2} />
70
+ <ExampleContainer>
71
+ <Title title="Xxsmall margin" theme="light" level={4} />
72
+ <DxcChip label="xxsmall" margin="xxsmall" />
73
+ </ExampleContainer>
74
+ <ExampleContainer>
75
+ <Title title="Xsmall margin" theme="light" level={4} />
76
+ <DxcChip label="xsmall" margin="xsmall" />
77
+ </ExampleContainer>
78
+ <ExampleContainer>
79
+ <Title title="Small margin" theme="light" level={4} />
80
+ <DxcChip label="small" margin="small" />
81
+ </ExampleContainer>
82
+ <ExampleContainer>
83
+ <Title title="Medium margin" theme="light" level={4} />
84
+ <DxcChip label="medium" margin="medium" />
85
+ </ExampleContainer>
86
+ <ExampleContainer>
87
+ <Title title="Large margin" theme="light" level={4} />
88
+ <DxcChip label="large" margin="large" />
89
+ </ExampleContainer>
90
+ <ExampleContainer>
91
+ <Title title="Xlarge margin" theme="light" level={4} />
92
+ <DxcChip label="xlarge" margin="xlarge" />
93
+ </ExampleContainer>
94
+ <ExampleContainer>
95
+ <Title title="Xxlarge margin" theme="light" level={4} />
96
+ <DxcChip label="xxlarge" margin="xxlarge" />
97
+ </ExampleContainer>
98
+ </>
99
+ );
100
+ const ChipPrefixFocused = () => (
101
+ <ExampleContainer>
102
+ <Title title="Chip with prefix" theme="light" level={4} />
103
+ <DxcChip label="Chip with prefix" prefixIcon={iconSVG} onClickPrefix={() => {}} />
104
+ </ExampleContainer>
105
+ );
106
+ const ChipSuffixFocused = () => (
107
+ <ExampleContainer>
108
+ <Title title="Chip with suffix" theme="light" level={4} />
109
+ <DxcChip label="Chip with suffix" suffixIcon={iconSVG} onClickSuffix={() => {}} />
110
+ </ExampleContainer>
111
+ );
112
+
113
+ export const PrefixFocused = ChipPrefixFocused.bind({});
114
+ PrefixFocused.play = async ({ canvasElement }) => {
115
+ await userEvent.tab();
116
+ };
117
+
118
+ export const SuffixFocused = ChipSuffixFocused.bind({});
119
+ SuffixFocused.play = async ({ canvasElement }) => {
120
+ await userEvent.tab();
121
+ };