@dxc-technology/halstack-react 0.0.0-82fa030 → 0.0.0-850ec24

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 (373) 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/box/Box.js +126 -0
  23. package/box/Box.stories.tsx +132 -0
  24. package/box/types.d.ts +43 -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/card/Card.js +164 -0
  33. package/card/Card.stories.tsx +201 -0
  34. package/card/ice-cream.jpg +0 -0
  35. package/card/types.d.ts +67 -0
  36. package/card/types.js +5 -0
  37. package/checkbox/Checkbox.d.ts +4 -0
  38. package/checkbox/Checkbox.js +253 -0
  39. package/checkbox/Checkbox.stories.tsx +192 -0
  40. package/checkbox/types.d.ts +60 -0
  41. package/checkbox/types.js +5 -0
  42. package/chip/Chip.js +221 -0
  43. package/chip/Chip.stories.tsx +121 -0
  44. package/chip/index.d.ts +22 -0
  45. package/{dist/common → common}/OpenSans.css +0 -0
  46. package/{dist/common → common}/RequiredComponent.js +5 -19
  47. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  48. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  49. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  50. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  51. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  52. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  53. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  54. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  55. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  56. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  57. package/common/utils.js +22 -0
  58. package/common/variables.js +1577 -0
  59. package/{dist/date → date}/Date.js +87 -70
  60. package/date/index.d.ts +27 -0
  61. package/date-input/DateInput.d.ts +4 -0
  62. package/date-input/DateInput.js +361 -0
  63. package/date-input/DateInput.stories.tsx +138 -0
  64. package/date-input/types.d.ts +100 -0
  65. package/date-input/types.js +5 -0
  66. package/dialog/Dialog.d.ts +4 -0
  67. package/dialog/Dialog.js +165 -0
  68. package/dialog/Dialog.stories.tsx +212 -0
  69. package/dialog/types.d.ts +43 -0
  70. package/dialog/types.js +5 -0
  71. package/dropdown/Dropdown.d.ts +4 -0
  72. package/dropdown/Dropdown.js +417 -0
  73. package/dropdown/types.d.ts +89 -0
  74. package/dropdown/types.js +5 -0
  75. package/file-input/FileInput.d.ts +4 -0
  76. package/file-input/FileInput.js +511 -0
  77. package/file-input/FileItem.d.ts +14 -0
  78. package/file-input/FileItem.js +182 -0
  79. package/file-input/types.d.ts +87 -0
  80. package/file-input/types.js +5 -0
  81. package/footer/Footer.d.ts +4 -0
  82. package/footer/Footer.js +266 -0
  83. package/footer/Footer.stories.jsx +151 -0
  84. package/footer/Icons.js +77 -0
  85. package/footer/types.d.ts +61 -0
  86. package/footer/types.js +5 -0
  87. package/header/Header.d.ts +7 -0
  88. package/header/Header.js +324 -0
  89. package/header/Header.stories.tsx +162 -0
  90. package/header/Icons.js +34 -0
  91. package/header/types.d.ts +47 -0
  92. package/header/types.js +5 -0
  93. package/heading/Heading.d.ts +4 -0
  94. package/heading/Heading.js +159 -0
  95. package/heading/Heading.stories.tsx +53 -0
  96. package/heading/types.d.ts +33 -0
  97. package/heading/types.js +5 -0
  98. package/input-text/Icons.js +22 -0
  99. package/input-text/InputText.js +611 -0
  100. package/input-text/index.d.ts +36 -0
  101. package/{dist/layout → layout}/ApplicationLayout.js +42 -142
  102. package/layout/Icons.js +55 -0
  103. package/link/Link.d.ts +3 -0
  104. package/link/Link.js +161 -0
  105. package/link/Link.stories.tsx +146 -0
  106. package/link/types.d.ts +74 -0
  107. package/link/types.js +5 -0
  108. package/main.d.ts +44 -0
  109. package/{dist/main.js → main.js} +137 -53
  110. package/number-input/NumberInput.d.ts +4 -0
  111. package/number-input/NumberInput.js +86 -0
  112. package/number-input/NumberInput.stories.tsx +115 -0
  113. package/{dist/ThemeContext.js → number-input/NumberInputContext.js} +3 -2
  114. package/number-input/types.d.ts +117 -0
  115. package/number-input/types.js +5 -0
  116. package/package.json +37 -23
  117. package/paginator/Icons.js +66 -0
  118. package/paginator/Paginator.d.ts +4 -0
  119. package/paginator/Paginator.js +198 -0
  120. package/paginator/Paginator.stories.tsx +63 -0
  121. package/paginator/types.d.ts +38 -0
  122. package/paginator/types.js +5 -0
  123. package/password-input/PasswordInput.d.ts +4 -0
  124. package/password-input/PasswordInput.js +162 -0
  125. package/password-input/PasswordInput.stories.tsx +131 -0
  126. package/password-input/types.d.ts +100 -0
  127. package/password-input/types.js +5 -0
  128. package/progress-bar/ProgressBar.d.ts +4 -0
  129. package/progress-bar/ProgressBar.js +170 -0
  130. package/progress-bar/ProgressBar.stories.jsx +58 -0
  131. package/progress-bar/types.d.ts +37 -0
  132. package/progress-bar/types.js +5 -0
  133. package/radio/Radio.d.ts +4 -0
  134. package/radio/Radio.js +174 -0
  135. package/radio/Radio.stories.tsx +192 -0
  136. package/radio/types.d.ts +54 -0
  137. package/radio/types.js +5 -0
  138. package/resultsetTable/ResultsetTable.js +274 -0
  139. package/resultsetTable/index.d.ts +19 -0
  140. package/select/Select.js +865 -0
  141. package/select/Select.stories.tsx +572 -0
  142. package/select/index.d.ts +131 -0
  143. package/sidenav/Sidenav.d.ts +9 -0
  144. package/sidenav/Sidenav.js +136 -0
  145. package/sidenav/types.d.ts +50 -0
  146. package/sidenav/types.js +5 -0
  147. package/slider/Slider.d.ts +4 -0
  148. package/slider/Slider.js +317 -0
  149. package/slider/Slider.stories.tsx +177 -0
  150. package/slider/types.d.ts +78 -0
  151. package/slider/types.js +5 -0
  152. package/spinner/Spinner.d.ts +4 -0
  153. package/spinner/Spinner.js +250 -0
  154. package/spinner/Spinner.stories.jsx +102 -0
  155. package/spinner/types.d.ts +32 -0
  156. package/spinner/types.js +5 -0
  157. package/switch/Switch.d.ts +4 -0
  158. package/switch/Switch.js +179 -0
  159. package/switch/Switch.stories.tsx +160 -0
  160. package/switch/types.d.ts +58 -0
  161. package/switch/types.js +5 -0
  162. package/table/Table.d.ts +4 -0
  163. package/table/Table.js +118 -0
  164. package/table/Table.stories.jsx +276 -0
  165. package/table/types.d.ts +21 -0
  166. package/table/types.js +5 -0
  167. package/tabs/Tabs.d.ts +4 -0
  168. package/tabs/Tabs.js +211 -0
  169. package/tabs/types.d.ts +70 -0
  170. package/tabs/types.js +5 -0
  171. package/tag/Tag.d.ts +4 -0
  172. package/tag/Tag.js +193 -0
  173. package/tag/Tag.stories.tsx +145 -0
  174. package/tag/types.d.ts +60 -0
  175. package/tag/types.js +5 -0
  176. package/text-input/TextInput.js +825 -0
  177. package/text-input/index.d.ts +135 -0
  178. package/textarea/Textarea.js +317 -0
  179. package/textarea/Textarea.stories.jsx +135 -0
  180. package/textarea/index.d.ts +117 -0
  181. package/{dist/toggle → toggle}/Toggle.js +30 -67
  182. package/toggle/index.d.ts +21 -0
  183. package/toggle-group/ToggleGroup.js +243 -0
  184. package/toggle-group/ToggleGroup.stories.tsx +178 -0
  185. package/toggle-group/index.d.ts +21 -0
  186. package/{dist/upload → upload}/Upload.js +23 -22
  187. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  188. package/upload/buttons-upload/Icons.js +40 -0
  189. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  190. package/upload/dragAndDropArea/Icons.js +39 -0
  191. package/upload/file-upload/FileToUpload.js +115 -0
  192. package/upload/file-upload/Icons.js +66 -0
  193. package/upload/files-upload/FilesToUpload.js +109 -0
  194. package/upload/index.d.ts +15 -0
  195. package/upload/transaction/Icons.js +160 -0
  196. package/upload/transaction/Transaction.js +104 -0
  197. package/upload/transactions/Transactions.js +94 -0
  198. package/useTheme.js +22 -0
  199. package/wizard/Icons.js +65 -0
  200. package/wizard/Wizard.d.ts +4 -0
  201. package/wizard/Wizard.js +231 -0
  202. package/wizard/Wizard.stories.jsx +224 -0
  203. package/wizard/types.d.ts +64 -0
  204. package/wizard/types.js +5 -0
  205. package/README.md +0 -66
  206. package/babel.config.js +0 -4
  207. package/dist/accordion/Accordion.js +0 -248
  208. package/dist/accordion/Accordion.stories.js +0 -207
  209. package/dist/accordion/readme.md +0 -96
  210. package/dist/alert/Alert.js +0 -304
  211. package/dist/alert/Alert.stories.js +0 -158
  212. package/dist/alert/close.svg +0 -4
  213. package/dist/alert/error.svg +0 -4
  214. package/dist/alert/info.svg +0 -4
  215. package/dist/alert/readme.md +0 -43
  216. package/dist/alert/success.svg +0 -4
  217. package/dist/alert/warning.svg +0 -4
  218. package/dist/box/Box.js +0 -148
  219. package/dist/button/Button.js +0 -202
  220. package/dist/button/Button.stories.js +0 -224
  221. package/dist/button/readme.md +0 -93
  222. package/dist/card/Card.js +0 -217
  223. package/dist/checkbox/Checkbox.js +0 -240
  224. package/dist/checkbox/Checkbox.stories.js +0 -144
  225. package/dist/checkbox/readme.md +0 -116
  226. package/dist/chip/Chip.js +0 -173
  227. package/dist/common/services/example-service.js +0 -10
  228. package/dist/common/services/example-service.test.js +0 -12
  229. package/dist/common/utils.js +0 -42
  230. package/dist/common/variables.js +0 -434
  231. package/dist/date/Date.stories.js +0 -205
  232. package/dist/date/calendar.svg +0 -1
  233. package/dist/date/calendar_dark.svg +0 -1
  234. package/dist/date/readme.md +0 -73
  235. package/dist/dialog/Dialog.js +0 -197
  236. package/dist/dialog/Dialog.stories.js +0 -217
  237. package/dist/dialog/readme.md +0 -32
  238. package/dist/dropdown/Dropdown.js +0 -416
  239. package/dist/dropdown/Dropdown.stories.js +0 -249
  240. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  241. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  242. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  243. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  244. package/dist/dropdown/readme.md +0 -69
  245. package/dist/footer/Footer.js +0 -346
  246. package/dist/footer/Footer.stories.js +0 -94
  247. package/dist/footer/dxc_logo_wht.png +0 -0
  248. package/dist/footer/readme.md +0 -41
  249. package/dist/header/Header.js +0 -373
  250. package/dist/header/Header.stories.js +0 -176
  251. package/dist/header/close_icon.svg +0 -1
  252. package/dist/header/dxc_logo_black.png +0 -0
  253. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  254. package/dist/header/dxc_logo_white.png +0 -0
  255. package/dist/header/hamb_menu_black.svg +0 -1
  256. package/dist/header/hamb_menu_white.svg +0 -1
  257. package/dist/header/readme.md +0 -33
  258. package/dist/heading/Heading.js +0 -153
  259. package/dist/input-text/InputText.js +0 -519
  260. package/dist/input-text/InputText.stories.js +0 -209
  261. package/dist/input-text/error.svg +0 -1
  262. package/dist/input-text/readme.md +0 -91
  263. package/dist/layout/facebook.svg +0 -45
  264. package/dist/layout/linkedin.svg +0 -50
  265. package/dist/layout/twitter.svg +0 -53
  266. package/dist/link/Link.js +0 -171
  267. package/dist/link/readme.md +0 -51
  268. package/dist/paginator/Paginator.js +0 -196
  269. package/dist/paginator/images/next.svg +0 -3
  270. package/dist/paginator/images/nextPage.svg +0 -3
  271. package/dist/paginator/images/previous.svg +0 -3
  272. package/dist/paginator/images/previousPage.svg +0 -3
  273. package/dist/paginator/readme.md +0 -50
  274. package/dist/progress-bar/ProgressBar.js +0 -185
  275. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  276. package/dist/progress-bar/readme.md +0 -63
  277. package/dist/radio/Radio.js +0 -195
  278. package/dist/radio/Radio.stories.js +0 -166
  279. package/dist/radio/readme.md +0 -70
  280. package/dist/resultsetTable/ResultsetTable.js +0 -333
  281. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  282. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  283. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  284. package/dist/select/Select.js +0 -453
  285. package/dist/select/Select.stories.js +0 -235
  286. package/dist/select/readme.md +0 -72
  287. package/dist/sidenav/Sidenav.js +0 -128
  288. package/dist/slider/Slider.js +0 -266
  289. package/dist/slider/Slider.stories.js +0 -241
  290. package/dist/slider/readme.md +0 -64
  291. package/dist/spinner/Spinner.js +0 -193
  292. package/dist/spinner/Spinner.stories.js +0 -183
  293. package/dist/spinner/readme.md +0 -65
  294. package/dist/switch/Switch.js +0 -199
  295. package/dist/switch/Switch.stories.js +0 -134
  296. package/dist/switch/readme.md +0 -133
  297. package/dist/table/Table.js +0 -105
  298. package/dist/tabs/Tabs.js +0 -172
  299. package/dist/tabs/Tabs.stories.js +0 -130
  300. package/dist/tabs/readme.md +0 -78
  301. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  302. package/dist/tabs-for-sections/readme.md +0 -78
  303. package/dist/tag/Tag.js +0 -234
  304. package/dist/textarea/Textarea.js +0 -227
  305. package/dist/toggle/Toggle.stories.js +0 -297
  306. package/dist/toggle/readme.md +0 -80
  307. package/dist/toggle-group/ToggleGroup.js +0 -214
  308. package/dist/toggle-group/readme.md +0 -82
  309. package/dist/upload/Upload.stories.js +0 -72
  310. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -122
  311. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  312. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  313. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -279
  314. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  315. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  316. package/dist/upload/file-upload/FileToUpload.js +0 -158
  317. package/dist/upload/file-upload/audio-icon.svg +0 -4
  318. package/dist/upload/file-upload/close.svg +0 -4
  319. package/dist/upload/file-upload/file-icon.svg +0 -4
  320. package/dist/upload/file-upload/video-icon.svg +0 -4
  321. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  322. package/dist/upload/readme.md +0 -37
  323. package/dist/upload/transaction/Transaction.js +0 -155
  324. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  325. package/dist/upload/transaction/audio-icon.svg +0 -4
  326. package/dist/upload/transaction/error-icon.svg +0 -4
  327. package/dist/upload/transaction/file-icon-err.svg +0 -4
  328. package/dist/upload/transaction/file-icon.svg +0 -4
  329. package/dist/upload/transaction/image-icon-err.svg +0 -4
  330. package/dist/upload/transaction/image-icon.svg +0 -4
  331. package/dist/upload/transaction/success-icon.svg +0 -4
  332. package/dist/upload/transaction/video-icon-err.svg +0 -4
  333. package/dist/upload/transaction/video-icon.svg +0 -4
  334. package/dist/upload/transactions/Transactions.js +0 -120
  335. package/dist/wizard/Wizard.js +0 -327
  336. package/dist/wizard/invalid_icon.svg +0 -6
  337. package/dist/wizard/valid_icon.svg +0 -6
  338. package/dist/wizard/validation-wrong.svg +0 -6
  339. package/test/Accordion.test.js +0 -33
  340. package/test/Alert.test.js +0 -53
  341. package/test/Box.test.js +0 -10
  342. package/test/Button.test.js +0 -18
  343. package/test/Card.test.js +0 -30
  344. package/test/Checkbox.test.js +0 -45
  345. package/test/Chip.test.js +0 -25
  346. package/test/Date.test.js +0 -393
  347. package/test/Dialog.test.js +0 -23
  348. package/test/Dropdown.test.js +0 -130
  349. package/test/Footer.test.js +0 -99
  350. package/test/Header.test.js +0 -39
  351. package/test/Heading.test.js +0 -35
  352. package/test/InputText.test.js +0 -236
  353. package/test/Link.test.js +0 -33
  354. package/test/Paginator.test.js +0 -165
  355. package/test/ProgressBar.test.js +0 -35
  356. package/test/Radio.test.js +0 -37
  357. package/test/ResultsetTable.test.js +0 -282
  358. package/test/Select.test.js +0 -191
  359. package/test/Sidenav.test.js +0 -45
  360. package/test/Slider.test.js +0 -82
  361. package/test/Spinner.test.js +0 -27
  362. package/test/Switch.test.js +0 -45
  363. package/test/Table.test.js +0 -36
  364. package/test/Tabs.test.js +0 -88
  365. package/test/TabsForSections.test.js +0 -34
  366. package/test/Tag.test.js +0 -32
  367. package/test/TextArea.test.js +0 -52
  368. package/test/Toggle.test.js +0 -43
  369. package/test/ToggleGroup.test.js +0 -81
  370. package/test/Upload.test.js +0 -60
  371. package/test/Wizard.test.js +0 -130
  372. package/test/mocks/pngMock.js +0 -1
  373. package/test/mocks/svgMock.js +0 -1
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
22
+ var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
23
+
24
+ var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
25
+
26
+ var _variables = require("../common/variables.js");
27
+
28
+ var _utils = require("../common/utils.js");
29
+
30
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
31
+
32
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
33
+
34
+ var _templateObject, _templateObject2, _templateObject3;
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ var DxcCheckbox = function DxcCheckbox(_ref) {
41
+ var checked = _ref.checked,
42
+ value = _ref.value,
43
+ _ref$label = _ref.label,
44
+ label = _ref$label === void 0 ? "" : _ref$label,
45
+ _ref$labelPosition = _ref.labelPosition,
46
+ labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
47
+ _ref$name = _ref.name,
48
+ name = _ref$name === void 0 ? "" : _ref$name,
49
+ _ref$disabled = _ref.disabled,
50
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
51
+ onChange = _ref.onChange,
52
+ _ref$required = _ref.required,
53
+ required = _ref$required === void 0 ? false : _ref$required,
54
+ margin = _ref.margin,
55
+ _ref$size = _ref.size,
56
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
57
+ _ref$tabIndex = _ref.tabIndex,
58
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
59
+
60
+ var _useState = (0, _react.useState)(false),
61
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
+ innerChecked = _useState2[0],
63
+ setInnerChecked = _useState2[1];
64
+
65
+ var _useState3 = (0, _react.useState)(false),
66
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
67
+ isLabelHovered = _useState4[0],
68
+ setIsLabelHovered = _useState4[1];
69
+
70
+ var colorsTheme = (0, _useTheme["default"])();
71
+ var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
72
+
73
+ var handlerCheckboxChange = function handlerCheckboxChange(checkboxValue) {
74
+ if (checked === undefined) {
75
+ var isChecked = checkboxValue.target.checked === undefined ? !innerChecked : checkboxValue.target.checked;
76
+ setInnerChecked(isChecked);
77
+
78
+ if (typeof onChange === "function") {
79
+ onChange(isChecked);
80
+ }
81
+ } else {
82
+ if (typeof onChange === "function") {
83
+ onChange(!checked);
84
+ }
85
+ }
86
+ };
87
+
88
+ var handleLabelHover = function handleLabelHover() {
89
+ setIsLabelHovered(!isLabelHovered);
90
+ };
91
+
92
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
93
+ theme: colorsTheme.checkbox
94
+ }, /*#__PURE__*/_react["default"].createElement(CheckboxContainer, {
95
+ id: name,
96
+ brightness: _variables.componentTokens,
97
+ label: label,
98
+ labelPosition: labelPosition,
99
+ disabled: disabled,
100
+ margin: margin,
101
+ size: size,
102
+ backgroundType: backgroundType,
103
+ isLabelHovered: isLabelHovered
104
+ }, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
105
+ checked: checked != undefined ? checked : innerChecked,
106
+ inputProps: {
107
+ name: name,
108
+ "aria-label": label,
109
+ role: "checkbox",
110
+ "aria-checked": checked != undefined ? checked : innerChecked
111
+ },
112
+ onChange: handlerCheckboxChange,
113
+ value: value,
114
+ disabled: disabled,
115
+ disableRipple: true,
116
+ className: "test",
117
+ tabIndex: tabIndex
118
+ }), /*#__PURE__*/_react["default"].createElement(CheckboxBlackBack, {
119
+ labelPosition: labelPosition,
120
+ disabled: disabled,
121
+ checked: checked != undefined ? checked : innerChecked,
122
+ backgroundType: backgroundType
123
+ }), required && /*#__PURE__*/_react["default"].createElement(_RequiredComponent["default"], null), label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
124
+ labelPosition: labelPosition,
125
+ onClick: disabled === true ? function (e) {} : handlerCheckboxChange,
126
+ disabled: disabled,
127
+ className: "labelContainer",
128
+ backgroundType: backgroundType,
129
+ onMouseOver: handleLabelHover,
130
+ onMouseOut: handleLabelHover
131
+ }, label)));
132
+ };
133
+
134
+ var sizes = {
135
+ small: "120px",
136
+ medium: "240px",
137
+ large: "480px",
138
+ fillParent: "100%",
139
+ fitContent: "unset"
140
+ };
141
+
142
+ var calculateWidth = function calculateWidth(margin, size) {
143
+ if (size === "fillParent") {
144
+ return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
145
+ }
146
+
147
+ return sizes[size];
148
+ };
149
+
150
+ var getDisabledColor = function getDisabledColor(props, element) {
151
+ switch (element) {
152
+ case "check":
153
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
154
+ break;
155
+
156
+ case "background":
157
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
158
+ break;
159
+
160
+ case "border":
161
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
162
+ break;
163
+
164
+ case "label":
165
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
166
+ break;
167
+ }
168
+ };
169
+
170
+ var getNotDisabledColor = function getNotDisabledColor(props, element) {
171
+ switch (element) {
172
+ case "check":
173
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
174
+ break;
175
+
176
+ case "background":
177
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
178
+ break;
179
+
180
+ case "border":
181
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
182
+ break;
183
+
184
+ case "label":
185
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
186
+ break;
187
+ }
188
+ };
189
+
190
+ var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
191
+ return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
192
+ }, function (props) {
193
+ return props.disabled ? "not-allowed" : "pointer";
194
+ }, function (props) {
195
+ return props.theme.fontFamily;
196
+ }, function (props) {
197
+ return props.theme.fontSize;
198
+ }, function (props) {
199
+ return props.theme.fontWeight;
200
+ });
201
+
202
+ var CheckboxContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n position: relative;\n flex-direction: ", ";\n .MuiCheckbox-colorSecondary {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n &.Mui-disabled {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n opacity: 0.34;\n }\n }\n }\n &.Mui-checked {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n\n &:hover {\n background-color: transparent;\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n background-color: transparent;\n color: ", ";\n }\n }\n }\n }\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n width: 24px;\n height: 24px;\n }\n }\n }\n\n .MuiIconButton-colorSecondary {\n &:hover {\n background-color: transparent;\n }\n }\n .MuiButtonBase-root {\n &:hover {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n }\n\n &.Mui-focusVisible {\n .MuiIconButton-label {\n box-shadow: 0 0 0 2px\n ", ";\n }\n }\n z-index: 1;\n margin-left: ", ";\n margin-right: ", ";\n padding: 0px;\n left: ", ";\n right: ", ";\n }\n"])), function (props) {
203
+ return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
204
+ }, function (props) {
205
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
206
+ }, function (props) {
207
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
208
+ }, function (props) {
209
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
210
+ }, function (props) {
211
+ return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
212
+ }, function (props) {
213
+ return calculateWidth(props.margin, props.size);
214
+ }, function (props) {
215
+ return props.disabled ? "not-allowed" : "pointer";
216
+ }, function (props) {
217
+ return props.labelPosition === "before" ? "row-reverse" : "row";
218
+ }, function (props) {
219
+ return props.isLabelHovered ? props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor : getNotDisabledColor(props, "border");
220
+ }, function (props) {
221
+ return getDisabledColor(props, "border");
222
+ }, function (props) {
223
+ return props.disabled ? getDisabledColor(props, "background") : getNotDisabledColor(props, "background");
224
+ }, function (props) {
225
+ return props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
226
+ }, function (props) {
227
+ return props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
228
+ }, function (props) {
229
+ return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
230
+ }, function (props) {
231
+ return props.labelPosition === "before" && props.label ? props.theme.checkLabelSpacing : "0";
232
+ }, function (props) {
233
+ return props.labelPosition === "after" && props.label ? props.theme.checkLabelSpacing : "0";
234
+ }, function (props) {
235
+ return props.labelPosition === "before" ? "unset" : "1px";
236
+ }, function (props) {
237
+ return props.labelPosition === "before" ? "1px" : "unset";
238
+ });
239
+
240
+ var CheckboxBlackBack = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n width: 16px;\n height: 16px;\n position: absolute;\n left: ", ";\n right: ", ";\n z-index: 0;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
241
+ return !props.checked ? "transparent" : props.disabled ? getDisabledColor(props, "check") : getNotDisabledColor(props, "check");
242
+ }, function (props) {
243
+ return props.labelPosition === "before" ? "unset" : "5px";
244
+ }, function (props) {
245
+ return props.labelPosition === "before" ? "5px" : "unset";
246
+ }, function (props) {
247
+ return props.labelPosition === "after" ? "0px" : "";
248
+ }, function (props) {
249
+ return props.labelPosition === "before" ? "0px" : "";
250
+ });
251
+
252
+ var _default = DxcCheckbox;
253
+ exports["default"] = _default;
@@ -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
+ });