@dxc-technology/halstack-react 0.0.0-2bcc6e9 → 0.0.0-2be11f4

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 (395) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +48 -0
  3. package/ThemeContext.d.ts +15 -0
  4. package/ThemeContext.js +243 -0
  5. package/V3Select/V3Select.js +455 -0
  6. package/V3Select/index.d.ts +27 -0
  7. package/{dist/textarea/Textarea.js → V3Textarea/V3Textarea.js} +41 -41
  8. package/V3Textarea/index.d.ts +27 -0
  9. package/accordion/Accordion.d.ts +4 -0
  10. package/accordion/Accordion.js +258 -0
  11. package/accordion/types.d.ts +68 -0
  12. package/accordion/types.js +5 -0
  13. package/accordion-group/AccordionGroup.d.ts +7 -0
  14. package/accordion-group/AccordionGroup.js +170 -0
  15. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  16. package/accordion-group/types.d.ts +72 -0
  17. package/accordion-group/types.js +5 -0
  18. package/alert/Alert.d.ts +4 -0
  19. package/alert/Alert.js +290 -0
  20. package/alert/Alert.stories.tsx +170 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.js +59 -0
  24. package/box/Box.d.ts +4 -0
  25. package/{dist/box → box}/Box.js +15 -55
  26. package/box/Box.stories.tsx +132 -0
  27. package/box/types.d.ts +43 -0
  28. package/box/types.js +5 -0
  29. package/button/Button.d.ts +4 -0
  30. package/button/Button.js +179 -0
  31. package/button/Button.stories.tsx +276 -0
  32. package/button/types.d.ts +57 -0
  33. package/button/types.js +5 -0
  34. package/card/Card.d.ts +4 -0
  35. package/{dist/card → card}/Card.js +34 -124
  36. package/card/Card.stories.tsx +201 -0
  37. package/card/ice-cream.jpg +0 -0
  38. package/card/types.d.ts +67 -0
  39. package/card/types.js +5 -0
  40. package/checkbox/Checkbox.d.ts +4 -0
  41. package/{dist/checkbox → checkbox}/Checkbox.js +46 -84
  42. package/checkbox/Checkbox.stories.tsx +192 -0
  43. package/checkbox/types.d.ts +60 -0
  44. package/checkbox/types.js +5 -0
  45. package/chip/Chip.d.ts +4 -0
  46. package/{dist/chip → chip}/Chip.js +34 -104
  47. package/chip/Chip.stories.tsx +121 -0
  48. package/chip/types.d.ts +53 -0
  49. package/chip/types.js +5 -0
  50. package/{dist/common → common}/OpenSans.css +0 -0
  51. package/{dist/common → common}/RequiredComponent.js +3 -11
  52. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  53. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  54. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  55. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  56. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  57. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  58. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  59. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  60. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  61. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  62. package/{dist/common → common}/utils.js +0 -0
  63. package/common/variables.js +1578 -0
  64. package/{dist/date → date}/Date.js +24 -32
  65. package/date/index.d.ts +27 -0
  66. package/date-input/DateInput.d.ts +4 -0
  67. package/date-input/DateInput.js +361 -0
  68. package/date-input/DateInput.stories.tsx +138 -0
  69. package/date-input/types.d.ts +100 -0
  70. package/date-input/types.js +5 -0
  71. package/dialog/Dialog.d.ts +4 -0
  72. package/{dist/dialog → dialog}/Dialog.js +28 -98
  73. package/dialog/Dialog.stories.tsx +212 -0
  74. package/dialog/types.d.ts +43 -0
  75. package/dialog/types.js +5 -0
  76. package/dropdown/Dropdown.d.ts +4 -0
  77. package/dropdown/Dropdown.js +417 -0
  78. package/dropdown/types.d.ts +89 -0
  79. package/dropdown/types.js +5 -0
  80. package/file-input/FileInput.d.ts +4 -0
  81. package/file-input/FileInput.js +511 -0
  82. package/file-input/FileItem.d.ts +14 -0
  83. package/file-input/FileItem.js +184 -0
  84. package/file-input/types.d.ts +87 -0
  85. package/file-input/types.js +5 -0
  86. package/footer/Footer.d.ts +4 -0
  87. package/footer/Footer.js +266 -0
  88. package/footer/Footer.stories.jsx +151 -0
  89. package/footer/Icons.js +77 -0
  90. package/footer/types.d.ts +69 -0
  91. package/footer/types.js +5 -0
  92. package/header/Header.d.ts +7 -0
  93. package/header/Header.js +324 -0
  94. package/header/Header.stories.tsx +162 -0
  95. package/header/Icons.js +34 -0
  96. package/header/types.d.ts +47 -0
  97. package/header/types.js +5 -0
  98. package/heading/Heading.d.ts +4 -0
  99. package/{dist/heading → heading}/Heading.js +31 -94
  100. package/heading/Heading.stories.tsx +53 -0
  101. package/heading/types.d.ts +33 -0
  102. package/heading/types.js +5 -0
  103. package/input-text/Icons.js +22 -0
  104. package/{dist/input-text → input-text}/InputText.js +121 -179
  105. package/input-text/index.d.ts +36 -0
  106. package/layout/ApplicationLayout.d.ts +10 -0
  107. package/{dist/layout → layout}/ApplicationLayout.js +43 -149
  108. package/layout/ApplicationLayout.stories.tsx +171 -0
  109. package/layout/Icons.js +55 -0
  110. package/layout/types.d.ts +57 -0
  111. package/layout/types.js +5 -0
  112. package/link/Link.d.ts +3 -0
  113. package/link/Link.js +161 -0
  114. package/link/Link.stories.tsx +146 -0
  115. package/link/types.d.ts +74 -0
  116. package/link/types.js +5 -0
  117. package/list/List.d.ts +7 -0
  118. package/list/List.js +37 -0
  119. package/list/List.stories.tsx +70 -0
  120. package/main.d.ts +48 -0
  121. package/{dist/main.js → main.js} +142 -58
  122. package/number-input/NumberInput.d.ts +4 -0
  123. package/number-input/NumberInput.js +86 -0
  124. package/number-input/NumberInput.stories.tsx +115 -0
  125. package/number-input/NumberInputContext.d.ts +4 -0
  126. package/number-input/NumberInputContext.js +19 -0
  127. package/number-input/numberInputContextTypes.d.ts +19 -0
  128. package/number-input/numberInputContextTypes.js +5 -0
  129. package/number-input/types.d.ts +117 -0
  130. package/number-input/types.js +5 -0
  131. package/package.json +34 -25
  132. package/paginator/Icons.js +66 -0
  133. package/paginator/Paginator.d.ts +4 -0
  134. package/paginator/Paginator.js +198 -0
  135. package/paginator/Paginator.stories.tsx +63 -0
  136. package/paginator/types.d.ts +38 -0
  137. package/paginator/types.js +5 -0
  138. package/password-input/PasswordInput.d.ts +4 -0
  139. package/password-input/PasswordInput.js +164 -0
  140. package/password-input/PasswordInput.stories.tsx +131 -0
  141. package/password-input/types.d.ts +107 -0
  142. package/password-input/types.js +5 -0
  143. package/progress-bar/ProgressBar.d.ts +4 -0
  144. package/progress-bar/ProgressBar.js +170 -0
  145. package/progress-bar/ProgressBar.stories.jsx +58 -0
  146. package/progress-bar/types.d.ts +37 -0
  147. package/progress-bar/types.js +5 -0
  148. package/radio/Radio.d.ts +4 -0
  149. package/{dist/radio → radio}/Radio.js +17 -52
  150. package/radio/Radio.stories.tsx +192 -0
  151. package/radio/types.d.ts +54 -0
  152. package/radio/types.js +5 -0
  153. package/resultsetTable/ResultsetTable.d.ts +4 -0
  154. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +39 -163
  155. package/resultsetTable/types.d.ts +67 -0
  156. package/resultsetTable/types.js +5 -0
  157. package/row/Row.d.ts +11 -0
  158. package/row/Row.js +124 -0
  159. package/row/Row.stories.tsx +223 -0
  160. package/select/Select.js +865 -0
  161. package/select/Select.stories.tsx +572 -0
  162. package/select/index.d.ts +131 -0
  163. package/sidenav/Sidenav.d.ts +9 -0
  164. package/sidenav/Sidenav.js +136 -0
  165. package/sidenav/Sidenav.stories.tsx +165 -0
  166. package/sidenav/types.d.ts +50 -0
  167. package/sidenav/types.js +5 -0
  168. package/slider/Slider.d.ts +4 -0
  169. package/slider/Slider.js +317 -0
  170. package/slider/Slider.stories.tsx +177 -0
  171. package/slider/types.d.ts +78 -0
  172. package/slider/types.js +5 -0
  173. package/spinner/Spinner.d.ts +4 -0
  174. package/spinner/Spinner.js +250 -0
  175. package/spinner/Spinner.stories.jsx +102 -0
  176. package/spinner/types.d.ts +32 -0
  177. package/spinner/types.js +5 -0
  178. package/stack/Stack.d.ts +10 -0
  179. package/stack/Stack.js +94 -0
  180. package/stack/Stack.stories.tsx +150 -0
  181. package/switch/Switch.d.ts +4 -0
  182. package/{dist/switch → switch}/Switch.js +28 -71
  183. package/switch/Switch.stories.tsx +160 -0
  184. package/switch/types.d.ts +58 -0
  185. package/switch/types.js +5 -0
  186. package/table/Table.d.ts +4 -0
  187. package/{dist/table → table}/Table.js +14 -24
  188. package/table/Table.stories.jsx +276 -0
  189. package/table/types.d.ts +21 -0
  190. package/table/types.js +5 -0
  191. package/tabs/Tabs.d.ts +4 -0
  192. package/tabs/Tabs.js +213 -0
  193. package/tabs/Tabs.stories.tsx +121 -0
  194. package/tabs/types.d.ts +70 -0
  195. package/tabs/types.js +5 -0
  196. package/tag/Tag.d.ts +4 -0
  197. package/tag/Tag.js +193 -0
  198. package/tag/Tag.stories.tsx +145 -0
  199. package/tag/types.d.ts +60 -0
  200. package/tag/types.js +5 -0
  201. package/text/Text.d.ts +7 -0
  202. package/text/Text.js +30 -0
  203. package/text/Text.stories.tsx +19 -0
  204. package/text-input/TextInput.d.ts +4 -0
  205. package/text-input/TextInput.js +788 -0
  206. package/text-input/TextInput.stories.tsx +456 -0
  207. package/text-input/types.d.ts +159 -0
  208. package/text-input/types.js +5 -0
  209. package/textarea/Textarea.js +316 -0
  210. package/textarea/Textarea.stories.jsx +135 -0
  211. package/textarea/index.d.ts +127 -0
  212. package/{dist/toggle → toggle}/Toggle.js +16 -50
  213. package/toggle/index.d.ts +21 -0
  214. package/toggle-group/ToggleGroup.d.ts +4 -0
  215. package/toggle-group/ToggleGroup.js +217 -0
  216. package/toggle-group/ToggleGroup.stories.tsx +178 -0
  217. package/toggle-group/types.d.ts +84 -0
  218. package/toggle-group/types.js +5 -0
  219. package/{dist/upload → upload}/Upload.js +11 -15
  220. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  221. package/upload/buttons-upload/Icons.js +40 -0
  222. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  223. package/upload/dragAndDropArea/Icons.js +39 -0
  224. package/upload/file-upload/FileToUpload.js +115 -0
  225. package/upload/file-upload/Icons.js +66 -0
  226. package/{dist/upload → upload}/files-upload/FilesToUpload.js +13 -27
  227. package/upload/index.d.ts +15 -0
  228. package/upload/transaction/Icons.js +160 -0
  229. package/upload/transaction/Transaction.js +104 -0
  230. package/upload/transactions/Transactions.js +94 -0
  231. package/useTheme.d.ts +2 -0
  232. package/{dist/useTheme.js → useTheme.js} +1 -1
  233. package/wizard/Icons.js +65 -0
  234. package/wizard/Wizard.d.ts +4 -0
  235. package/wizard/Wizard.js +231 -0
  236. package/wizard/Wizard.stories.jsx +224 -0
  237. package/wizard/types.d.ts +64 -0
  238. package/wizard/types.js +5 -0
  239. package/README.md +0 -66
  240. package/babel.config.js +0 -8
  241. package/dist/BackgroundColorContext.js +0 -46
  242. package/dist/ThemeContext.js +0 -216
  243. package/dist/accordion/Accordion.js +0 -340
  244. package/dist/accordion/Accordion.stories.js +0 -207
  245. package/dist/accordion/readme.md +0 -96
  246. package/dist/accordion-group/AccordionGroup.js +0 -188
  247. package/dist/accordion-group/AccordionGroup.stories.js +0 -207
  248. package/dist/accordion-group/readme.md +0 -70
  249. package/dist/alert/Alert.js +0 -388
  250. package/dist/alert/Alert.stories.js +0 -158
  251. package/dist/alert/close.svg +0 -4
  252. package/dist/alert/error.svg +0 -4
  253. package/dist/alert/info.svg +0 -4
  254. package/dist/alert/readme.md +0 -43
  255. package/dist/alert/success.svg +0 -4
  256. package/dist/alert/warning.svg +0 -4
  257. package/dist/badge/Badge.js +0 -63
  258. package/dist/button/Button.js +0 -228
  259. package/dist/button/Button.stories.js +0 -224
  260. package/dist/button/readme.md +0 -93
  261. package/dist/checkbox/Checkbox.stories.js +0 -144
  262. package/dist/checkbox/readme.md +0 -116
  263. package/dist/common/variables.js +0 -1155
  264. package/dist/date/Date.stories.js +0 -205
  265. package/dist/date/readme.md +0 -73
  266. package/dist/dialog/Dialog.stories.js +0 -217
  267. package/dist/dialog/readme.md +0 -32
  268. package/dist/dropdown/Dropdown.js +0 -492
  269. package/dist/dropdown/Dropdown.stories.js +0 -249
  270. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  271. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  272. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  273. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  274. package/dist/dropdown/readme.md +0 -69
  275. package/dist/footer/Footer.js +0 -405
  276. package/dist/footer/Footer.stories.js +0 -94
  277. package/dist/footer/dxc_logo_wht.png +0 -0
  278. package/dist/footer/readme.md +0 -41
  279. package/dist/header/Header.js +0 -431
  280. package/dist/header/Header.stories.js +0 -176
  281. package/dist/header/close_icon.svg +0 -1
  282. package/dist/header/dxc_logo_black.png +0 -0
  283. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  284. package/dist/header/dxc_logo_white.png +0 -0
  285. package/dist/header/hamb_menu_black.svg +0 -1
  286. package/dist/header/hamb_menu_white.svg +0 -1
  287. package/dist/header/readme.md +0 -33
  288. package/dist/input-text/InputText.stories.js +0 -209
  289. package/dist/input-text/error.svg +0 -1
  290. package/dist/input-text/readme.md +0 -91
  291. package/dist/layout/facebook.svg +0 -45
  292. package/dist/layout/linkedin.svg +0 -50
  293. package/dist/layout/twitter.svg +0 -53
  294. package/dist/link/Link.js +0 -240
  295. package/dist/link/readme.md +0 -51
  296. package/dist/paginator/Paginator.js +0 -283
  297. package/dist/paginator/images/next.svg +0 -3
  298. package/dist/paginator/images/nextPage.svg +0 -3
  299. package/dist/paginator/images/previous.svg +0 -3
  300. package/dist/paginator/images/previousPage.svg +0 -3
  301. package/dist/paginator/readme.md +0 -50
  302. package/dist/progress-bar/ProgressBar.js +0 -206
  303. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  304. package/dist/progress-bar/readme.md +0 -63
  305. package/dist/radio/Radio.stories.js +0 -166
  306. package/dist/radio/readme.md +0 -70
  307. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  308. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  309. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  310. package/dist/select/Select.js +0 -545
  311. package/dist/select/Select.stories.js +0 -235
  312. package/dist/select/readme.md +0 -72
  313. package/dist/sidenav/Sidenav.js +0 -183
  314. package/dist/slider/Slider.js +0 -315
  315. package/dist/slider/Slider.stories.js +0 -241
  316. package/dist/slider/readme.md +0 -64
  317. package/dist/spinner/Spinner.js +0 -214
  318. package/dist/spinner/Spinner.stories.js +0 -183
  319. package/dist/spinner/readme.md +0 -65
  320. package/dist/switch/Switch.stories.js +0 -134
  321. package/dist/switch/readme.md +0 -133
  322. package/dist/tabs/Tabs.js +0 -343
  323. package/dist/tabs/Tabs.stories.js +0 -130
  324. package/dist/tabs/readme.md +0 -78
  325. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  326. package/dist/tabs-for-sections/readme.md +0 -78
  327. package/dist/tag/Tag.js +0 -280
  328. package/dist/toggle/Toggle.stories.js +0 -297
  329. package/dist/toggle/readme.md +0 -80
  330. package/dist/toggle-group/ToggleGroup.js +0 -241
  331. package/dist/toggle-group/readme.md +0 -82
  332. package/dist/upload/Upload.stories.js +0 -72
  333. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  334. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  335. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  336. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -325
  337. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  338. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  339. package/dist/upload/file-upload/FileToUpload.js +0 -184
  340. package/dist/upload/file-upload/audio-icon.svg +0 -4
  341. package/dist/upload/file-upload/close.svg +0 -4
  342. package/dist/upload/file-upload/file-icon.svg +0 -4
  343. package/dist/upload/file-upload/video-icon.svg +0 -4
  344. package/dist/upload/readme.md +0 -37
  345. package/dist/upload/transaction/Transaction.js +0 -171
  346. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  347. package/dist/upload/transaction/audio-icon.svg +0 -4
  348. package/dist/upload/transaction/error-icon.svg +0 -4
  349. package/dist/upload/transaction/file-icon-err.svg +0 -4
  350. package/dist/upload/transaction/file-icon.svg +0 -4
  351. package/dist/upload/transaction/image-icon-err.svg +0 -4
  352. package/dist/upload/transaction/image-icon.svg +0 -4
  353. package/dist/upload/transaction/success-icon.svg +0 -4
  354. package/dist/upload/transaction/video-icon-err.svg +0 -4
  355. package/dist/upload/transaction/video-icon.svg +0 -4
  356. package/dist/upload/transactions/Transactions.js +0 -138
  357. package/dist/wizard/Wizard.js +0 -411
  358. package/dist/wizard/invalid_icon.svg +0 -6
  359. package/dist/wizard/valid_icon.svg +0 -6
  360. package/dist/wizard/validation-wrong.svg +0 -6
  361. package/test/Accordion.test.js +0 -33
  362. package/test/AccordionGroup.test.js +0 -125
  363. package/test/Alert.test.js +0 -53
  364. package/test/Box.test.js +0 -10
  365. package/test/Button.test.js +0 -18
  366. package/test/Card.test.js +0 -30
  367. package/test/Checkbox.test.js +0 -45
  368. package/test/Chip.test.js +0 -25
  369. package/test/Date.test.js +0 -393
  370. package/test/Dialog.test.js +0 -23
  371. package/test/Dropdown.test.js +0 -130
  372. package/test/Footer.test.js +0 -99
  373. package/test/Header.test.js +0 -39
  374. package/test/Heading.test.js +0 -35
  375. package/test/InputText.test.js +0 -240
  376. package/test/Link.test.js +0 -43
  377. package/test/Paginator.test.js +0 -177
  378. package/test/ProgressBar.test.js +0 -35
  379. package/test/Radio.test.js +0 -37
  380. package/test/ResultsetTable.test.js +0 -330
  381. package/test/Select.test.js +0 -192
  382. package/test/Sidenav.test.js +0 -45
  383. package/test/Slider.test.js +0 -82
  384. package/test/Spinner.test.js +0 -27
  385. package/test/Switch.test.js +0 -45
  386. package/test/Table.test.js +0 -36
  387. package/test/Tabs.test.js +0 -109
  388. package/test/TabsForSections.test.js +0 -34
  389. package/test/Tag.test.js +0 -32
  390. package/test/TextArea.test.js +0 -52
  391. package/test/ToggleGroup.test.js +0 -81
  392. package/test/Upload.test.js +0 -60
  393. package/test/Wizard.test.js +0 -130
  394. package/test/mocks/pngMock.js +0 -1
  395. 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.
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
+ });
package/chip/Chip.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import ChipPropsType from "./types";
3
+ declare const DxcChip: ({ label, suffixIcon, prefixIcon, suffixIconSrc, onClickSuffix, prefixIconSrc, onClickPrefix, disabled, margin, tabIndex, }: ChipPropsType) => JSX.Element;
4
+ export default DxcChip;
@@ -1,16 +1,14 @@
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
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
13
 
16
14
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
@@ -19,63 +17,17 @@ var _react = _interopRequireDefault(require("react"));
19
17
 
20
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
19
 
22
- var _propTypes = _interopRequireDefault(require("prop-types"));
23
-
24
20
  var _variables = require("../common/variables.js");
25
21
 
26
22
  var _utils = require("../common/utils.js");
27
23
 
28
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
29
-
30
- function _templateObject5() {
31
- var data = (0, _taggedTemplateLiteral2["default"])(["\n opacity: ", ";\n ", "\n ", "\n width: ", ";\n height: ", ";\n overflow: hidden;\n padding-left: ", ";\n padding-right: ", ";\n img,\n svg {\n height: 100%;\n width: 100%;\n }\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 width: ", ";\n height: ", ";\n padding-left: \"", "\";\n padding-right: ", ";\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 width: ", ";\n height: ", ";\n padding-left: ", ";\n padding-right: ", ";\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 color: ", ";\n cursor: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"]);
62
-
63
- _templateObject2 = function _templateObject2() {
64
- return data;
65
- };
66
-
67
- return data;
68
- }
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
69
25
 
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 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"]);
26
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
72
27
 
73
- _templateObject = function _templateObject() {
74
- return data;
75
- };
28
+ 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); }
76
29
 
77
- return data;
78
- }
30
+ 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
31
 
80
32
  var DxcChip = function DxcChip(_ref) {
81
33
  var label = _ref.label,
@@ -90,12 +42,12 @@ var DxcChip = function DxcChip(_ref) {
90
42
  _ref$tabIndex = _ref.tabIndex,
91
43
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
92
44
  var colorsTheme = (0, _useTheme["default"])();
93
- return _react["default"].createElement(_styledComponents.ThemeProvider, {
45
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
94
46
  theme: colorsTheme.chip
95
- }, _react["default"].createElement(StyledDxcChip, {
47
+ }, /*#__PURE__*/_react["default"].createElement(StyledDxcChip, {
96
48
  disabled: disabled,
97
49
  margin: margin
98
- }, prefixIcon ? _react["default"].createElement(IconContainer, {
50
+ }, prefixIcon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
99
51
  disabled: disabled,
100
52
  prefixIcon: true,
101
53
  label: label,
@@ -105,7 +57,7 @@ var DxcChip = function DxcChip(_ref) {
105
57
  return onClickPrefix && !disabled && onClickPrefix(label);
106
58
  },
107
59
  interactuable: typeof onClickPrefix === "function" && !disabled
108
- }, (0, _typeof2["default"])(prefixIcon) === "object" ? prefixIcon : _react["default"].createElement(prefixIcon)) : prefixIconSrc && _react["default"].createElement(PrefixIconContainer, {
60
+ }, (0, _typeof2["default"])(prefixIcon) === "object" ? prefixIcon : /*#__PURE__*/_react["default"].createElement(prefixIcon)) : prefixIconSrc && /*#__PURE__*/_react["default"].createElement(PrefixIconContainer, {
109
61
  disabled: disabled,
110
62
  src: prefixIconSrc,
111
63
  label: label,
@@ -114,11 +66,11 @@ var DxcChip = function DxcChip(_ref) {
114
66
  return onClickPrefix && !disabled && onClickPrefix(label);
115
67
  },
116
68
  interactuable: typeof onClickPrefix === "function" && !disabled
117
- }), label && _react["default"].createElement(ChipTextContainer, {
69
+ }), label && /*#__PURE__*/_react["default"].createElement(ChipTextContainer, {
118
70
  disabled: disabled,
119
71
  prefixIconSrc: prefixIconSrc,
120
72
  suffixIconSrc: suffixIconSrc
121
- }, label), suffixIcon ? _react["default"].createElement(IconContainer, {
73
+ }, label), suffixIcon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
122
74
  disabled: disabled,
123
75
  suffixIcon: true,
124
76
  mode: "suffix",
@@ -128,7 +80,7 @@ var DxcChip = function DxcChip(_ref) {
128
80
  return onClickSuffix && !disabled && onClickSuffix(label);
129
81
  },
130
82
  interactuable: typeof onClickSuffix === "function" && !disabled
131
- }, (0, _typeof2["default"])(suffixIcon) === "object" ? suffixIcon : _react["default"].createElement(suffixIcon)) : suffixIconSrc && _react["default"].createElement(SuffixIconContainer, {
83
+ }, (0, _typeof2["default"])(suffixIcon) === "object" ? suffixIcon : /*#__PURE__*/_react["default"].createElement(suffixIcon)) : suffixIconSrc && /*#__PURE__*/_react["default"].createElement(SuffixIconContainer, {
132
84
  disabled: disabled,
133
85
  src: suffixIconSrc,
134
86
  label: label,
@@ -152,13 +104,13 @@ var getCursor = function getCursor(interactuable, disabled) {
152
104
  return "cursor:default; outline:none;";
153
105
  };
154
106
 
155
- var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function (props) {
156
- return props.theme.borderRadius;
157
- }, function (_ref2) {
107
+ 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) {
158
108
  var margin = _ref2.margin;
159
109
  return "calc(100% - 40px - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
160
110
  }, function (props) {
161
111
  return props.disabled && props.theme.disabledBackgroundColor || props.theme.backgroundColor;
112
+ }, function (props) {
113
+ return props.theme.borderRadius;
162
114
  }, function (props) {
163
115
  return props.theme.borderThickness;
164
116
  }, function (props) {
@@ -173,9 +125,6 @@ var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function
173
125
  return props.theme.contentPaddingLeft;
174
126
  }, function (props) {
175
127
  return props.theme.contentPaddingRight;
176
- }, function (_ref3) {
177
- var disabled = _ref3.disabled;
178
- return disabled && "not-allowed";
179
128
  }, function (props) {
180
129
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
181
130
  }, function (props) {
@@ -186,9 +135,12 @@ var StyledDxcChip = _styledComponents["default"].div(_templateObject(), function
186
135
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
187
136
  }, function (props) {
188
137
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
138
+ }, function (_ref3) {
139
+ var disabled = _ref3.disabled;
140
+ return disabled && "not-allowed";
189
141
  });
190
142
 
191
- var ChipTextContainer = _styledComponents["default"].span(_templateObject2(), function (props) {
143
+ 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) {
192
144
  return props.theme.fontSize;
193
145
  }, function (props) {
194
146
  return props.theme.fontFamily;
@@ -197,44 +149,40 @@ var ChipTextContainer = _styledComponents["default"].span(_templateObject2(), fu
197
149
  }, function (props) {
198
150
  return props.theme.fontStyle;
199
151
  }, function (props) {
200
- return props.disabled && props.theme.disabledFontColor || props.theme.fontColor;
152
+ return props.disabled ? props.theme.disabledFontColor : props.theme.fontColor;
201
153
  }, function (_ref4) {
202
154
  var disabled = _ref4.disabled;
203
155
  return disabled && "not-allowed" || "default";
204
156
  });
205
157
 
206
- var SuffixIconContainer = _styledComponents["default"].img(_templateObject3(), function (props) {
158
+ var SuffixIconContainer = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n margin-left: ", ";\n width: ", ";\n height: ", ";\n"])), function (props) {
159
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
160
+ }, function (props) {
207
161
  return getCursor(props.interactuable, props.disabled);
208
162
  }, function (props) {
209
- return (props.label || props.suffixIconSrc) && "10px" || props.prefixIconSrc && "5px";
163
+ return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
210
164
  }, function (props) {
211
165
  return props.theme.iconSize;
212
166
  }, function (props) {
213
167
  return props.theme.iconSize;
214
- }, function (props) {
215
- return props.theme.iconPaddingLeft;
216
- }, function (props) {
217
- return props.theme.iconPaddingRight;
218
168
  });
219
169
 
220
- var PrefixIconContainer = _styledComponents["default"].img(_templateObject4(), function (props) {
170
+ var PrefixIconContainer = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n margin-right: ", ";\n width: ", ";\n height: ", ";\n"])), function (props) {
171
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
172
+ }, function (props) {
221
173
  return getCursor(props.interactuable, props.disabled);
222
174
  }, function (props) {
223
- return (props.label || props.suffixIconSrc) && "10px" || props.prefixIconSrc && "5px";
175
+ return (props.label || props.suffixIconSrc) && props.theme.iconSpacing || props.prefixIconSrc && "5px";
224
176
  }, function (props) {
225
177
  return props.theme.iconSize;
226
178
  }, function (props) {
227
179
  return props.theme.iconSize;
228
- }, function (props) {
229
- return props.theme.iconPaddingLeft;
230
- }, function (props) {
231
- return props.theme.iconPaddingRight;
232
180
  });
233
181
 
234
- var IconContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
235
- return props.disabled && props.theme.iconMaxWidth;
182
+ 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) {
183
+ return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
236
184
  }, function (props) {
237
- 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", ";");
185
+ 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", ";");
238
186
  }, function (props) {
239
187
  return getCursor(props.interactuable, props.disabled);
240
188
  }, function (props) {
@@ -242,28 +190,10 @@ var IconContainer = _styledComponents["default"].div(_templateObject5(), functio
242
190
  }, function (props) {
243
191
  return props.theme.iconSize;
244
192
  }, function (props) {
245
- return props.theme.iconPaddingLeft;
193
+ return props.theme.focusColor;
246
194
  }, function (props) {
247
- return props.theme.iconPaddingRight;
195
+ return props.disabled && "outline: none;";
248
196
  });
249
197
 
250
- DxcChip.propTypes = {
251
- label: _propTypes["default"].string,
252
- disabled: _propTypes["default"].bool,
253
- theme: _propTypes["default"].oneOf(["dark", "light"]),
254
- suffixIcon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
255
- prefixIcon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
256
- suffixIconSrc: _propTypes["default"].string,
257
- prefixIconSrc: _propTypes["default"].string,
258
- onClickSuffix: _propTypes["default"].func,
259
- onClickPrefix: _propTypes["default"].func,
260
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
261
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
262
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
263
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
264
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
265
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
266
- tabIndex: _propTypes["default"].number
267
- };
268
198
  var _default = DxcChip;
269
199
  exports["default"] = _default;
@@ -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
+ };