@dxc-technology/halstack-react 0.0.0-da2248d → 0.0.0-da224ae

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 (361) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/V3Select/V3Select.js +455 -0
  4. package/V3Select/index.d.ts +27 -0
  5. package/V3Textarea/V3Textarea.js +260 -0
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/accordion/Accordion.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/checkbox/Checkbox.js +253 -0
  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 +74 -76
  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 +71 -57
  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/dialog/Dialog.js +165 -0
  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/heading/Heading.d.ts +4 -0
  88. package/{dist/heading → heading}/Heading.js +30 -93
  89. package/heading/types.d.ts +33 -0
  90. package/heading/types.js +5 -0
  91. package/input-text/Icons.js +22 -0
  92. package/{dist/input-text → input-text}/InputText.js +151 -171
  93. package/input-text/index.d.ts +36 -0
  94. package/{dist/layout → layout}/ApplicationLayout.js +35 -131
  95. package/layout/Icons.js +55 -0
  96. package/link/Link.d.ts +3 -0
  97. package/link/Link.js +161 -0
  98. package/link/Link.stories.tsx +70 -0
  99. package/link/types.d.ts +74 -0
  100. package/link/types.js +5 -0
  101. package/main.d.ts +44 -0
  102. package/{dist/main.js → main.js} +121 -69
  103. package/number-input/NumberInput.d.ts +4 -0
  104. package/number-input/NumberInput.js +86 -0
  105. package/number-input/NumberInput.stories.tsx +115 -0
  106. package/number-input/NumberInputContext.js +16 -0
  107. package/number-input/types.d.ts +117 -0
  108. package/number-input/types.js +5 -0
  109. package/package.json +34 -25
  110. package/paginator/Icons.js +66 -0
  111. package/paginator/Paginator.d.ts +4 -0
  112. package/paginator/Paginator.js +198 -0
  113. package/paginator/Paginator.stories.tsx +63 -0
  114. package/paginator/types.d.ts +38 -0
  115. package/paginator/types.js +5 -0
  116. package/password-input/PasswordInput.d.ts +4 -0
  117. package/password-input/PasswordInput.js +162 -0
  118. package/password-input/PasswordInput.stories.tsx +131 -0
  119. package/password-input/types.d.ts +100 -0
  120. package/password-input/types.js +5 -0
  121. package/progress-bar/ProgressBar.d.ts +4 -0
  122. package/progress-bar/ProgressBar.js +170 -0
  123. package/progress-bar/ProgressBar.stories.jsx +58 -0
  124. package/progress-bar/types.d.ts +37 -0
  125. package/progress-bar/types.js +5 -0
  126. package/radio/Radio.d.ts +4 -0
  127. package/radio/Radio.js +174 -0
  128. package/radio/Radio.stories.tsx +192 -0
  129. package/radio/types.d.ts +54 -0
  130. package/radio/types.js +5 -0
  131. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +77 -135
  132. package/resultsetTable/index.d.ts +19 -0
  133. package/select/Select.js +865 -0
  134. package/select/Select.stories.tsx +572 -0
  135. package/select/index.d.ts +131 -0
  136. package/sidenav/Sidenav.d.ts +9 -0
  137. package/sidenav/Sidenav.js +136 -0
  138. package/sidenav/types.d.ts +50 -0
  139. package/sidenav/types.js +5 -0
  140. package/slider/Slider.d.ts +4 -0
  141. package/slider/Slider.js +317 -0
  142. package/slider/Slider.stories.tsx +177 -0
  143. package/slider/types.d.ts +78 -0
  144. package/slider/types.js +5 -0
  145. package/spinner/Spinner.d.ts +4 -0
  146. package/spinner/Spinner.js +250 -0
  147. package/spinner/Spinner.stories.jsx +102 -0
  148. package/spinner/types.d.ts +32 -0
  149. package/spinner/types.js +5 -0
  150. package/switch/Switch.d.ts +4 -0
  151. package/{dist/switch → switch}/Switch.js +28 -71
  152. package/switch/Switch.stories.tsx +160 -0
  153. package/switch/types.d.ts +58 -0
  154. package/switch/types.js +5 -0
  155. package/table/Table.d.ts +4 -0
  156. package/table/Table.js +118 -0
  157. package/table/Table.stories.jsx +276 -0
  158. package/table/types.d.ts +21 -0
  159. package/table/types.js +5 -0
  160. package/tabs/Tabs.d.ts +4 -0
  161. package/tabs/Tabs.js +211 -0
  162. package/tabs/types.d.ts +71 -0
  163. package/tabs/types.js +5 -0
  164. package/tag/Tag.d.ts +4 -0
  165. package/tag/Tag.js +193 -0
  166. package/tag/Tag.stories.tsx +145 -0
  167. package/tag/types.d.ts +60 -0
  168. package/tag/types.js +5 -0
  169. package/text-input/TextInput.js +825 -0
  170. package/text-input/index.d.ts +135 -0
  171. package/textarea/Textarea.js +317 -0
  172. package/textarea/Textarea.stories.jsx +135 -0
  173. package/textarea/index.d.ts +117 -0
  174. package/{dist/toggle → toggle}/Toggle.js +15 -49
  175. package/toggle/index.d.ts +21 -0
  176. package/toggle-group/ToggleGroup.js +243 -0
  177. package/toggle-group/ToggleGroup.stories.tsx +178 -0
  178. package/toggle-group/index.d.ts +21 -0
  179. package/{dist/upload → upload}/Upload.js +11 -19
  180. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  181. package/upload/buttons-upload/Icons.js +40 -0
  182. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  183. package/upload/dragAndDropArea/Icons.js +39 -0
  184. package/upload/file-upload/FileToUpload.js +115 -0
  185. package/upload/file-upload/Icons.js +66 -0
  186. package/{dist/upload → upload}/files-upload/FilesToUpload.js +14 -28
  187. package/upload/index.d.ts +15 -0
  188. package/upload/transaction/Icons.js +160 -0
  189. package/upload/transaction/Transaction.js +104 -0
  190. package/upload/transactions/Transactions.js +94 -0
  191. package/{dist/useTheme.js → useTheme.js} +0 -0
  192. package/wizard/Icons.js +65 -0
  193. package/wizard/Wizard.d.ts +4 -0
  194. package/wizard/Wizard.js +231 -0
  195. package/wizard/Wizard.stories.jsx +224 -0
  196. package/wizard/types.d.ts +64 -0
  197. package/wizard/types.js +5 -0
  198. package/README.md +0 -66
  199. package/babel.config.js +0 -8
  200. package/dist/BackgroundColorContext.js +0 -46
  201. package/dist/ThemeContext.js +0 -216
  202. package/dist/accordion/Accordion.js +0 -356
  203. package/dist/accordion/Accordion.stories.js +0 -207
  204. package/dist/accordion/readme.md +0 -96
  205. package/dist/accordion-group/AccordionGroup.js +0 -188
  206. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  207. package/dist/accordion-group/readme.md +0 -70
  208. package/dist/alert/Alert.js +0 -318
  209. package/dist/alert/Alert.stories.js +0 -158
  210. package/dist/alert/close.svg +0 -4
  211. package/dist/alert/error.svg +0 -4
  212. package/dist/alert/info.svg +0 -4
  213. package/dist/alert/readme.md +0 -43
  214. package/dist/alert/success.svg +0 -4
  215. package/dist/alert/warning.svg +0 -4
  216. package/dist/badge/Badge.js +0 -61
  217. package/dist/button/Button.js +0 -228
  218. package/dist/button/Button.stories.js +0 -224
  219. package/dist/button/readme.md +0 -93
  220. package/dist/checkbox/Checkbox.js +0 -233
  221. package/dist/checkbox/Checkbox.stories.js +0 -144
  222. package/dist/checkbox/readme.md +0 -116
  223. package/dist/common/variables.js +0 -882
  224. package/dist/date/Date.stories.js +0 -205
  225. package/dist/date/calendar.svg +0 -1
  226. package/dist/date/calendar_dark.svg +0 -1
  227. package/dist/date/readme.md +0 -73
  228. package/dist/dialog/Dialog.js +0 -203
  229. package/dist/dialog/Dialog.stories.js +0 -217
  230. package/dist/dialog/readme.md +0 -32
  231. package/dist/dropdown/Dropdown.js +0 -456
  232. package/dist/dropdown/Dropdown.stories.js +0 -249
  233. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  234. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  235. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  236. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  237. package/dist/dropdown/readme.md +0 -69
  238. package/dist/footer/Footer.js +0 -405
  239. package/dist/footer/Footer.stories.js +0 -94
  240. package/dist/footer/dxc_logo_wht.png +0 -0
  241. package/dist/footer/readme.md +0 -41
  242. package/dist/header/Header.js +0 -431
  243. package/dist/header/Header.stories.js +0 -176
  244. package/dist/header/close_icon.svg +0 -1
  245. package/dist/header/dxc_logo_black.png +0 -0
  246. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  247. package/dist/header/dxc_logo_white.png +0 -0
  248. package/dist/header/hamb_menu_black.svg +0 -1
  249. package/dist/header/hamb_menu_white.svg +0 -1
  250. package/dist/header/readme.md +0 -33
  251. package/dist/input-text/InputText.stories.js +0 -209
  252. package/dist/input-text/error.svg +0 -1
  253. package/dist/input-text/readme.md +0 -91
  254. package/dist/layout/facebook.svg +0 -45
  255. package/dist/layout/linkedin.svg +0 -50
  256. package/dist/layout/twitter.svg +0 -53
  257. package/dist/link/Link.js +0 -212
  258. package/dist/link/readme.md +0 -51
  259. package/dist/paginator/Paginator.js +0 -283
  260. package/dist/paginator/images/next.svg +0 -3
  261. package/dist/paginator/images/nextPage.svg +0 -3
  262. package/dist/paginator/images/previous.svg +0 -3
  263. package/dist/paginator/images/previousPage.svg +0 -3
  264. package/dist/paginator/readme.md +0 -50
  265. package/dist/progress-bar/ProgressBar.js +0 -206
  266. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  267. package/dist/progress-bar/readme.md +0 -63
  268. package/dist/radio/Radio.js +0 -190
  269. package/dist/radio/Radio.stories.js +0 -166
  270. package/dist/radio/readme.md +0 -70
  271. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  272. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  273. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  274. package/dist/select/Select.js +0 -490
  275. package/dist/select/Select.stories.js +0 -235
  276. package/dist/select/readme.md +0 -72
  277. package/dist/sidenav/Sidenav.js +0 -183
  278. package/dist/slider/Slider.js +0 -267
  279. package/dist/slider/Slider.stories.js +0 -241
  280. package/dist/slider/readme.md +0 -64
  281. package/dist/spinner/Spinner.js +0 -214
  282. package/dist/spinner/Spinner.stories.js +0 -183
  283. package/dist/spinner/readme.md +0 -65
  284. package/dist/switch/Switch.stories.js +0 -134
  285. package/dist/switch/readme.md +0 -133
  286. package/dist/table/Table.js +0 -118
  287. package/dist/tabs/Tabs.js +0 -347
  288. package/dist/tabs/Tabs.stories.js +0 -130
  289. package/dist/tabs/readme.md +0 -78
  290. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  291. package/dist/tabs-for-sections/readme.md +0 -78
  292. package/dist/tag/Tag.js +0 -268
  293. package/dist/textarea/Textarea.js +0 -238
  294. package/dist/toggle/Toggle.stories.js +0 -297
  295. package/dist/toggle/readme.md +0 -80
  296. package/dist/toggle-group/ToggleGroup.js +0 -241
  297. package/dist/toggle-group/readme.md +0 -82
  298. package/dist/upload/Upload.stories.js +0 -72
  299. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -123
  300. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  301. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  302. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -293
  303. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  304. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  305. package/dist/upload/file-upload/FileToUpload.js +0 -162
  306. package/dist/upload/file-upload/audio-icon.svg +0 -4
  307. package/dist/upload/file-upload/close.svg +0 -4
  308. package/dist/upload/file-upload/file-icon.svg +0 -4
  309. package/dist/upload/file-upload/video-icon.svg +0 -4
  310. package/dist/upload/readme.md +0 -37
  311. package/dist/upload/transaction/Transaction.js +0 -152
  312. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  313. package/dist/upload/transaction/audio-icon.svg +0 -4
  314. package/dist/upload/transaction/error-icon.svg +0 -4
  315. package/dist/upload/transaction/file-icon-err.svg +0 -4
  316. package/dist/upload/transaction/file-icon.svg +0 -4
  317. package/dist/upload/transaction/image-icon-err.svg +0 -4
  318. package/dist/upload/transaction/image-icon.svg +0 -4
  319. package/dist/upload/transaction/success-icon.svg +0 -4
  320. package/dist/upload/transaction/video-icon-err.svg +0 -4
  321. package/dist/upload/transaction/video-icon.svg +0 -4
  322. package/dist/upload/transactions/Transactions.js +0 -122
  323. package/dist/wizard/Wizard.js +0 -383
  324. package/dist/wizard/invalid_icon.svg +0 -6
  325. package/dist/wizard/valid_icon.svg +0 -6
  326. package/dist/wizard/validation-wrong.svg +0 -6
  327. package/test/Accordion.test.js +0 -33
  328. package/test/AccordionGroup.test.js +0 -125
  329. package/test/Alert.test.js +0 -53
  330. package/test/Box.test.js +0 -10
  331. package/test/Button.test.js +0 -18
  332. package/test/Card.test.js +0 -30
  333. package/test/Checkbox.test.js +0 -45
  334. package/test/Chip.test.js +0 -25
  335. package/test/Date.test.js +0 -393
  336. package/test/Dialog.test.js +0 -23
  337. package/test/Dropdown.test.js +0 -130
  338. package/test/Footer.test.js +0 -99
  339. package/test/Header.test.js +0 -39
  340. package/test/Heading.test.js +0 -35
  341. package/test/InputText.test.js +0 -240
  342. package/test/Link.test.js +0 -42
  343. package/test/Paginator.test.js +0 -177
  344. package/test/ProgressBar.test.js +0 -35
  345. package/test/Radio.test.js +0 -37
  346. package/test/ResultsetTable.test.js +0 -330
  347. package/test/Select.test.js +0 -192
  348. package/test/Sidenav.test.js +0 -45
  349. package/test/Slider.test.js +0 -82
  350. package/test/Spinner.test.js +0 -27
  351. package/test/Switch.test.js +0 -45
  352. package/test/Table.test.js +0 -36
  353. package/test/Tabs.test.js +0 -109
  354. package/test/TabsForSections.test.js +0 -34
  355. package/test/Tag.test.js +0 -32
  356. package/test/TextArea.test.js +0 -52
  357. package/test/ToggleGroup.test.js +0 -81
  358. package/test/Upload.test.js +0 -60
  359. package/test/Wizard.test.js +0 -130
  360. package/test/mocks/pngMock.js +0 -1
  361. 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: 24px;\n max-height: 24px;\n overflow: hidden;\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: 24px;\n max-height: 24px;\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: 24px;\n max-height: 24px;\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 line-height: 24px;\n color: ", ";\n cursor: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"]);
62
-
63
- _templateObject2 = function _templateObject2() {
64
- return data;
65
- };
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
66
31
 
67
- return data;
68
- }
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); }
69
33
 
70
- function _templateObject() {
71
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n display: inline-flex;\n align-items: center;\n border-radius: 50px;\n margin: 2px;\n max-width: ", ";\n background-color: ", ";\n ", ";\n height: ", ";\n padding: 10px 20px;\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,44 +46,52 @@ 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,
58
+ mode: "prefix",
102
59
  tabIndex: typeof onClickPrefix === "function" && !disabled ? tabIndex : -1,
103
60
  onClick: function onClick() {
104
61
  return onClickPrefix && !disabled && onClickPrefix(label);
105
62
  },
106
63
  interactuable: typeof onClickPrefix === "function" && !disabled
107
- }, (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, {
108
65
  disabled: disabled,
109
66
  src: prefixIconSrc,
110
67
  label: label,
111
68
  tabIndex: typeof onClickPrefix === "function" && !disabled ? tabIndex : -1,
112
- onClick: onClickPrefix && !disabled && onClickPrefix(label),
69
+ onClick: function onClick() {
70
+ return onClickPrefix && !disabled && onClickPrefix(label);
71
+ },
113
72
  interactuable: typeof onClickPrefix === "function" && !disabled
114
- }), label && _react["default"].createElement(ChipTextContainer, {
73
+ }), label && /*#__PURE__*/_react["default"].createElement(ChipTextContainer, {
115
74
  disabled: disabled,
116
75
  prefixIconSrc: prefixIconSrc,
117
76
  suffixIconSrc: suffixIconSrc
118
- }, label), suffixIcon ? _react["default"].createElement(IconContainer, {
77
+ }, label), suffixIcon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
119
78
  disabled: disabled,
120
79
  suffixIcon: true,
80
+ mode: "suffix",
121
81
  label: label,
122
82
  tabIndex: typeof onClickSuffix === "function" && !disabled ? tabIndex : -1,
123
- onClick: onClickSuffix && !disabled && onClickSuffix(label),
83
+ onClick: function onClick() {
84
+ return onClickSuffix && !disabled && onClickSuffix(label);
85
+ },
124
86
  interactuable: typeof onClickSuffix === "function" && !disabled
125
- }, (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, {
126
88
  disabled: disabled,
127
89
  src: suffixIconSrc,
128
90
  label: label,
129
91
  tabIndex: typeof onClickSuffix === "function" && !disabled ? tabIndex : -1,
130
- onClick: onClickSuffix && !disabled && onClickSuffix(label),
92
+ onClick: function onClick() {
93
+ return onClickSuffix && !disabled && onClickSuffix(label);
94
+ },
131
95
  interactuable: typeof onClickSuffix === "function" && !disabled
132
96
  })));
133
97
  };
@@ -144,20 +108,27 @@ var getCursor = function getCursor(interactuable, disabled) {
144
108
  return "cursor:default; outline:none;";
145
109
  };
146
110
 
147
- var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function (props) {
148
- return props.theme.fontSizeBase;
149
- }, 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) {
150
112
  var margin = _ref2.margin;
151
113
  return "calc(100% - 40px - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
152
114
  }, function (props) {
153
115
  return props.disabled && props.theme.disabledBackgroundColor || props.theme.backgroundColor;
154
116
  }, function (props) {
155
- return props.theme.outlinedColor !== "" ? "border: 2px solid ".concat(props.theme.outlinedColor) : "";
117
+ return props.theme.borderRadius;
156
118
  }, function (props) {
157
- return props.theme.outlinedColor !== "" ? "18px" : "22px";
158
- }, function (_ref3) {
159
- var disabled = _ref3.disabled;
160
- return disabled && "not-allowed";
119
+ return props.theme.borderThickness;
120
+ }, function (props) {
121
+ return props.theme.borderStyle;
122
+ }, function (props) {
123
+ return props.theme.borderColor;
124
+ }, function (props) {
125
+ return props.theme.contentPaddingTop;
126
+ }, function (props) {
127
+ return props.theme.contentPaddingBottom;
128
+ }, function (props) {
129
+ return props.theme.contentPaddingLeft;
130
+ }, function (props) {
131
+ return props.theme.contentPaddingRight;
161
132
  }, function (props) {
162
133
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
163
134
  }, function (props) {
@@ -168,37 +139,64 @@ var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function
168
139
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
169
140
  }, function (props) {
170
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";
171
145
  });
172
146
 
173
- 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) {
174
148
  return props.theme.fontSize;
175
149
  }, function (props) {
176
150
  return props.theme.fontFamily;
177
151
  }, function (props) {
178
- return props.disabled && props.theme.disabledFontColor || props.theme.fontColor;
152
+ return props.theme.fontWeight;
153
+ }, function (props) {
154
+ return props.theme.fontStyle;
155
+ }, function (props) {
156
+ return props.disabled ? props.theme.disabledFontColor : props.theme.fontColor;
179
157
  }, function (_ref4) {
180
158
  var disabled = _ref4.disabled;
181
159
  return disabled && "not-allowed" || "default";
182
160
  });
183
161
 
184
- var SuffixIconContainer = _styledComponents["default"].img(_templateObject3(), function (props) {
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;
164
+ }, function (props) {
185
165
  return getCursor(props.interactuable, props.disabled);
186
166
  }, function (props) {
187
- return (props.label || props.suffixIconSrc) && "10px" || props.prefixIconSrc && "5px";
167
+ return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
168
+ }, function (props) {
169
+ return props.theme.iconSize;
170
+ }, function (props) {
171
+ return props.theme.iconSize;
188
172
  });
189
173
 
190
- var PrefixIconContainer = _styledComponents["default"].img(_templateObject4(), function (props) {
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;
176
+ }, function (props) {
191
177
  return getCursor(props.interactuable, props.disabled);
192
178
  }, function (props) {
193
- return (props.label || props.suffixIconSrc) && "10px" || props.prefixIconSrc && "5px";
179
+ return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
180
+ }, function (props) {
181
+ return props.theme.iconSize;
182
+ }, function (props) {
183
+ return props.theme.iconSize;
194
184
  });
195
185
 
196
- var IconContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
197
- return props.disabled && 0.34;
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;
198
188
  }, function (props) {
199
- 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", ";");
200
190
  }, function (props) {
201
191
  return getCursor(props.interactuable, props.disabled);
192
+ }, function (props) {
193
+ return props.theme.iconSize;
194
+ }, function (props) {
195
+ return props.theme.iconSize;
196
+ }, function (props) {
197
+ return props.theme.focusColor;
198
+ }, function (props) {
199
+ return props.disabled && "outline: none;";
202
200
  });
203
201
 
204
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
+ };
@@ -0,0 +1,22 @@
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+
9
+ type Props = {
10
+ label?: string;
11
+ suffixIcon?: any;
12
+ preffixIcon?: any;
13
+ suffixIconSrc?: string;
14
+ onClickSuffix?: void;
15
+ prefixIconSrc?: string;
16
+ onClickPrefix?: void;
17
+ disabled?: boolean;
18
+ margin?: Space | Margin;
19
+ tabIndex?: number;
20
+ };
21
+
22
+ export default function DxcChip(props: Props): JSX.Element;
File without changes