@dxc-technology/halstack-react 0.0.0-28a98e5 → 0.0.0-293a019

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 (389) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +2 -5
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +120 -175
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +69 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +63 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  14. package/accordion-group/AccordionGroup.test.js +126 -0
  15. package/accordion-group/types.d.ts +79 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/alert/Alert.js +10 -30
  19. package/alert/Alert.stories.tsx +198 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +6 -4
  25. package/badge/types.d.ts +5 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +51 -0
  29. package/bleed/Bleed.stories.tsx +342 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/box/Box.js +31 -69
  34. package/box/Box.stories.tsx +147 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +44 -0
  37. package/box/types.js +5 -0
  38. package/bulleted-list/BulletedList.d.ts +7 -0
  39. package/bulleted-list/BulletedList.js +125 -0
  40. package/bulleted-list/BulletedList.stories.tsx +206 -0
  41. package/bulleted-list/types.d.ts +38 -0
  42. package/bulleted-list/types.js +5 -0
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +59 -88
  45. package/button/Button.stories.tsx +403 -284
  46. package/button/Button.test.js +35 -0
  47. package/button/types.d.ts +12 -16
  48. package/card/Card.d.ts +4 -0
  49. package/card/Card.js +47 -87
  50. package/card/Card.stories.tsx +200 -0
  51. package/card/Card.test.js +50 -0
  52. package/card/ice-cream.jpg +0 -0
  53. package/card/types.d.ts +68 -0
  54. package/card/types.js +5 -0
  55. package/checkbox/Checkbox.d.ts +4 -0
  56. package/checkbox/Checkbox.js +108 -133
  57. package/checkbox/Checkbox.stories.tsx +260 -0
  58. package/checkbox/Checkbox.test.js +155 -0
  59. package/checkbox/types.d.ts +68 -0
  60. package/checkbox/types.js +5 -0
  61. package/chip/Chip.d.ts +4 -0
  62. package/chip/Chip.js +37 -118
  63. package/chip/Chip.stories.tsx +214 -0
  64. package/chip/Chip.test.js +54 -0
  65. package/chip/types.d.ts +45 -0
  66. package/chip/types.js +5 -0
  67. package/common/OpenSans.css +68 -80
  68. package/common/coreTokens.d.ts +146 -0
  69. package/common/coreTokens.js +167 -0
  70. package/common/utils.d.ts +1 -0
  71. package/common/utils.js +4 -4
  72. package/common/variables.d.ts +1482 -0
  73. package/common/variables.js +1100 -1306
  74. package/date-input/Calendar.d.ts +4 -0
  75. package/date-input/Calendar.js +258 -0
  76. package/date-input/DateInput.d.ts +4 -0
  77. package/date-input/DateInput.js +173 -300
  78. package/date-input/DateInput.stories.tsx +304 -0
  79. package/date-input/DateInput.test.js +835 -0
  80. package/date-input/DatePicker.d.ts +4 -0
  81. package/date-input/DatePicker.js +146 -0
  82. package/date-input/Icons.d.ts +6 -0
  83. package/date-input/Icons.js +75 -0
  84. package/date-input/YearPicker.d.ts +4 -0
  85. package/date-input/YearPicker.js +126 -0
  86. package/date-input/types.d.ts +158 -0
  87. package/date-input/types.js +5 -0
  88. package/dialog/Dialog.d.ts +4 -0
  89. package/dialog/Dialog.js +78 -113
  90. package/dialog/Dialog.stories.tsx +319 -0
  91. package/dialog/Dialog.test.js +369 -0
  92. package/dialog/types.d.ts +44 -0
  93. package/dialog/types.js +5 -0
  94. package/dropdown/Dropdown.d.ts +4 -0
  95. package/dropdown/Dropdown.js +244 -306
  96. package/dropdown/Dropdown.stories.tsx +438 -0
  97. package/dropdown/Dropdown.test.js +586 -0
  98. package/dropdown/DropdownMenu.d.ts +4 -0
  99. package/dropdown/DropdownMenu.js +74 -0
  100. package/dropdown/DropdownMenuItem.d.ts +4 -0
  101. package/dropdown/DropdownMenuItem.js +79 -0
  102. package/dropdown/types.d.ts +100 -0
  103. package/dropdown/types.js +5 -0
  104. package/file-input/FileInput.d.ts +4 -0
  105. package/file-input/FileInput.js +183 -168
  106. package/file-input/FileInput.stories.tsx +618 -0
  107. package/file-input/FileInput.test.js +457 -0
  108. package/file-input/FileItem.d.ts +4 -0
  109. package/file-input/FileItem.js +50 -81
  110. package/file-input/types.d.ts +129 -0
  111. package/file-input/types.js +5 -0
  112. package/flex/Flex.d.ts +4 -0
  113. package/flex/Flex.js +71 -0
  114. package/flex/Flex.stories.tsx +112 -0
  115. package/flex/types.d.ts +97 -0
  116. package/flex/types.js +5 -0
  117. package/footer/Footer.d.ts +4 -0
  118. package/footer/Footer.js +37 -151
  119. package/footer/Footer.stories.tsx +228 -0
  120. package/footer/Footer.test.js +97 -0
  121. package/footer/Icons.d.ts +2 -0
  122. package/footer/Icons.js +4 -4
  123. package/footer/types.d.ts +66 -0
  124. package/footer/types.js +5 -0
  125. package/grid/Grid.d.ts +7 -0
  126. package/grid/Grid.js +91 -0
  127. package/grid/Grid.stories.tsx +219 -0
  128. package/grid/types.d.ts +115 -0
  129. package/grid/types.js +5 -0
  130. package/header/Header.d.ts +8 -0
  131. package/header/Header.js +127 -150
  132. package/header/Header.stories.tsx +315 -0
  133. package/header/Header.test.js +79 -0
  134. package/header/Icons.d.ts +2 -0
  135. package/header/Icons.js +4 -29
  136. package/header/types.d.ts +48 -0
  137. package/header/types.js +5 -0
  138. package/heading/Heading.d.ts +4 -0
  139. package/heading/Heading.js +8 -25
  140. package/heading/Heading.stories.tsx +54 -0
  141. package/heading/Heading.test.js +186 -0
  142. package/heading/types.d.ts +33 -0
  143. package/heading/types.js +5 -0
  144. package/inset/Inset.d.ts +3 -0
  145. package/inset/Inset.js +51 -0
  146. package/inset/Inset.stories.tsx +230 -0
  147. package/inset/types.d.ts +37 -0
  148. package/inset/types.js +5 -0
  149. package/layout/ApplicationLayout.d.ts +20 -0
  150. package/layout/ApplicationLayout.js +72 -136
  151. package/layout/ApplicationLayout.stories.tsx +162 -0
  152. package/layout/Icons.d.ts +5 -0
  153. package/layout/Icons.js +13 -2
  154. package/layout/SidenavContext.d.ts +5 -0
  155. package/layout/SidenavContext.js +19 -0
  156. package/layout/types.d.ts +41 -0
  157. package/layout/types.js +5 -0
  158. package/link/Link.d.ts +4 -0
  159. package/link/Link.js +62 -109
  160. package/link/Link.stories.tsx +253 -0
  161. package/link/Link.test.js +81 -0
  162. package/link/types.d.ts +54 -0
  163. package/link/types.js +5 -0
  164. package/main.d.ts +13 -12
  165. package/main.js +68 -54
  166. package/nav-tabs/NavTabs.d.ts +8 -0
  167. package/nav-tabs/NavTabs.js +125 -0
  168. package/nav-tabs/NavTabs.stories.tsx +260 -0
  169. package/nav-tabs/NavTabs.test.js +82 -0
  170. package/nav-tabs/Tab.d.ts +4 -0
  171. package/nav-tabs/Tab.js +150 -0
  172. package/nav-tabs/types.d.ts +53 -0
  173. package/nav-tabs/types.js +5 -0
  174. package/number-input/NumberInput.d.ts +4 -0
  175. package/number-input/NumberInput.js +16 -68
  176. package/number-input/NumberInput.stories.tsx +115 -0
  177. package/number-input/NumberInput.test.js +542 -0
  178. package/number-input/NumberInputContext.d.ts +4 -0
  179. package/number-input/NumberInputContext.js +5 -2
  180. package/number-input/numberInputContextTypes.d.ts +19 -0
  181. package/number-input/numberInputContextTypes.js +5 -0
  182. package/number-input/types.d.ts +124 -0
  183. package/number-input/types.js +5 -0
  184. package/package.json +23 -24
  185. package/paginator/Icons.d.ts +5 -0
  186. package/paginator/Icons.js +16 -28
  187. package/paginator/Paginator.d.ts +4 -0
  188. package/paginator/Paginator.js +21 -79
  189. package/paginator/Paginator.stories.tsx +87 -0
  190. package/paginator/Paginator.test.js +305 -0
  191. package/paginator/types.d.ts +38 -0
  192. package/paginator/types.js +5 -0
  193. package/paragraph/Paragraph.d.ts +5 -0
  194. package/paragraph/Paragraph.js +38 -0
  195. package/paragraph/Paragraph.stories.tsx +44 -0
  196. package/password-input/PasswordInput.d.ts +4 -0
  197. package/password-input/PasswordInput.js +24 -57
  198. package/password-input/PasswordInput.stories.tsx +131 -0
  199. package/password-input/PasswordInput.test.js +181 -0
  200. package/password-input/types.d.ts +110 -0
  201. package/password-input/types.js +5 -0
  202. package/progress-bar/ProgressBar.d.ts +4 -0
  203. package/progress-bar/ProgressBar.js +64 -76
  204. package/progress-bar/ProgressBar.stories.jsx +93 -0
  205. package/progress-bar/ProgressBar.test.js +110 -0
  206. package/progress-bar/types.d.ts +37 -0
  207. package/progress-bar/types.js +5 -0
  208. package/quick-nav/QuickNav.d.ts +4 -0
  209. package/quick-nav/QuickNav.js +117 -0
  210. package/quick-nav/QuickNav.stories.tsx +356 -0
  211. package/quick-nav/types.d.ts +21 -0
  212. package/quick-nav/types.js +5 -0
  213. package/radio-group/Radio.d.ts +4 -0
  214. package/radio-group/Radio.js +156 -0
  215. package/radio-group/RadioGroup.d.ts +4 -0
  216. package/radio-group/RadioGroup.js +283 -0
  217. package/radio-group/RadioGroup.stories.tsx +214 -0
  218. package/radio-group/RadioGroup.test.js +722 -0
  219. package/radio-group/types.d.ts +114 -0
  220. package/radio-group/types.js +5 -0
  221. package/resultsetTable/Icons.d.ts +7 -0
  222. package/resultsetTable/Icons.js +51 -0
  223. package/resultsetTable/ResultsetTable.d.ts +4 -0
  224. package/resultsetTable/ResultsetTable.js +54 -133
  225. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  226. package/resultsetTable/ResultsetTable.test.js +325 -0
  227. package/resultsetTable/types.d.ts +67 -0
  228. package/resultsetTable/types.js +5 -0
  229. package/select/Icons.d.ts +10 -0
  230. package/select/Icons.js +93 -0
  231. package/select/Listbox.d.ts +4 -0
  232. package/select/Listbox.js +169 -0
  233. package/select/Option.d.ts +4 -0
  234. package/select/Option.js +97 -0
  235. package/select/Select.d.ts +4 -0
  236. package/select/Select.js +255 -453
  237. package/select/Select.stories.tsx +971 -0
  238. package/select/Select.test.js +2228 -0
  239. package/select/types.d.ts +210 -0
  240. package/select/types.js +5 -0
  241. package/sidenav/Icons.d.ts +7 -0
  242. package/sidenav/Icons.js +51 -0
  243. package/sidenav/Sidenav.d.ts +10 -0
  244. package/sidenav/Sidenav.js +147 -54
  245. package/sidenav/Sidenav.stories.tsx +282 -0
  246. package/sidenav/Sidenav.test.js +44 -0
  247. package/sidenav/types.d.ts +76 -0
  248. package/sidenav/types.js +5 -0
  249. package/slider/Slider.d.ts +4 -0
  250. package/slider/Slider.js +160 -158
  251. package/slider/Slider.stories.tsx +240 -0
  252. package/slider/Slider.test.js +250 -0
  253. package/slider/types.d.ts +86 -0
  254. package/slider/types.js +5 -0
  255. package/spinner/Spinner.d.ts +4 -0
  256. package/spinner/Spinner.js +26 -49
  257. package/spinner/Spinner.stories.jsx +129 -0
  258. package/spinner/Spinner.test.js +64 -0
  259. package/spinner/types.d.ts +32 -0
  260. package/spinner/types.js +5 -0
  261. package/switch/Switch.d.ts +4 -0
  262. package/switch/Switch.js +156 -102
  263. package/switch/Switch.stories.tsx +171 -0
  264. package/switch/Switch.test.js +225 -0
  265. package/switch/types.d.ts +66 -0
  266. package/switch/types.js +5 -0
  267. package/table/Table.d.ts +4 -0
  268. package/table/Table.js +6 -6
  269. package/table/Table.stories.jsx +356 -0
  270. package/table/Table.test.js +26 -0
  271. package/table/types.d.ts +21 -0
  272. package/table/types.js +5 -0
  273. package/tabs/Tab.d.ts +4 -0
  274. package/tabs/Tab.js +132 -0
  275. package/tabs/Tabs.d.ts +4 -0
  276. package/tabs/Tabs.js +361 -159
  277. package/tabs/Tabs.stories.tsx +226 -0
  278. package/tabs/Tabs.test.js +350 -0
  279. package/tabs/types.d.ts +92 -0
  280. package/tabs/types.js +5 -0
  281. package/tag/Tag.d.ts +4 -0
  282. package/tag/Tag.js +38 -65
  283. package/tag/Tag.stories.tsx +155 -0
  284. package/tag/Tag.test.js +60 -0
  285. package/tag/types.d.ts +69 -0
  286. package/tag/types.js +5 -0
  287. package/text-input/Icons.d.ts +8 -0
  288. package/text-input/Icons.js +60 -0
  289. package/text-input/Suggestion.d.ts +4 -0
  290. package/text-input/Suggestion.js +84 -0
  291. package/text-input/Suggestions.d.ts +4 -0
  292. package/text-input/Suggestions.js +134 -0
  293. package/text-input/TextInput.d.ts +4 -0
  294. package/text-input/TextInput.js +259 -404
  295. package/text-input/TextInput.stories.tsx +569 -0
  296. package/text-input/TextInput.test.js +1723 -0
  297. package/text-input/types.d.ts +197 -0
  298. package/text-input/types.js +5 -0
  299. package/textarea/Textarea.d.ts +4 -0
  300. package/textarea/Textarea.js +41 -80
  301. package/textarea/Textarea.stories.jsx +216 -0
  302. package/textarea/Textarea.test.js +435 -0
  303. package/textarea/types.d.ts +137 -0
  304. package/textarea/types.js +5 -0
  305. package/toggle-group/ToggleGroup.d.ts +4 -0
  306. package/toggle-group/ToggleGroup.js +24 -49
  307. package/toggle-group/ToggleGroup.stories.tsx +215 -0
  308. package/toggle-group/ToggleGroup.test.js +156 -0
  309. package/toggle-group/types.d.ts +105 -0
  310. package/toggle-group/types.js +5 -0
  311. package/typography/Typography.d.ts +4 -0
  312. package/typography/Typography.js +32 -0
  313. package/typography/Typography.stories.tsx +198 -0
  314. package/typography/types.d.ts +18 -0
  315. package/typography/types.js +5 -0
  316. package/useTheme.d.ts +1235 -0
  317. package/useTheme.js +3 -3
  318. package/useTranslatedLabels.d.ts +85 -0
  319. package/useTranslatedLabels.js +20 -0
  320. package/utils/BaseTypography.d.ts +21 -0
  321. package/utils/BaseTypography.js +108 -0
  322. package/utils/FocusLock.d.ts +13 -0
  323. package/utils/FocusLock.js +139 -0
  324. package/wizard/Wizard.d.ts +4 -0
  325. package/wizard/Wizard.js +119 -105
  326. package/wizard/Wizard.stories.tsx +253 -0
  327. package/wizard/Wizard.test.js +141 -0
  328. package/wizard/types.d.ts +64 -0
  329. package/wizard/types.js +5 -0
  330. package/ThemeContext.js +0 -246
  331. package/V3Select/V3Select.js +0 -455
  332. package/V3Select/index.d.ts +0 -27
  333. package/V3Textarea/V3Textarea.js +0 -260
  334. package/V3Textarea/index.d.ts +0 -27
  335. package/accordion/index.d.ts +0 -28
  336. package/accordion-group/index.d.ts +0 -16
  337. package/alert/index.d.ts +0 -51
  338. package/box/index.d.ts +0 -25
  339. package/card/index.d.ts +0 -22
  340. package/checkbox/index.d.ts +0 -24
  341. package/chip/index.d.ts +0 -22
  342. package/common/RequiredComponent.js +0 -32
  343. package/date/Date.js +0 -373
  344. package/date/index.d.ts +0 -27
  345. package/date-input/index.d.ts +0 -95
  346. package/dialog/index.d.ts +0 -18
  347. package/dropdown/index.d.ts +0 -26
  348. package/file-input/index.d.ts +0 -81
  349. package/footer/index.d.ts +0 -25
  350. package/header/index.d.ts +0 -25
  351. package/heading/index.d.ts +0 -17
  352. package/input-text/Icons.js +0 -22
  353. package/input-text/InputText.js +0 -611
  354. package/input-text/index.d.ts +0 -36
  355. package/link/index.d.ts +0 -23
  356. package/number-input/index.d.ts +0 -113
  357. package/paginator/index.d.ts +0 -20
  358. package/password-input/index.d.ts +0 -94
  359. package/progress-bar/index.d.ts +0 -18
  360. package/radio/Radio.js +0 -195
  361. package/radio/index.d.ts +0 -23
  362. package/resultsetTable/index.d.ts +0 -19
  363. package/select/index.d.ts +0 -131
  364. package/sidenav/index.d.ts +0 -13
  365. package/slider/index.d.ts +0 -29
  366. package/spinner/index.d.ts +0 -17
  367. package/switch/index.d.ts +0 -24
  368. package/table/index.d.ts +0 -13
  369. package/tabs/index.d.ts +0 -19
  370. package/tag/index.d.ts +0 -24
  371. package/text-input/index.d.ts +0 -135
  372. package/textarea/index.d.ts +0 -117
  373. package/toggle/Toggle.js +0 -186
  374. package/toggle/index.d.ts +0 -21
  375. package/toggle-group/index.d.ts +0 -21
  376. package/upload/Upload.js +0 -201
  377. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  378. package/upload/buttons-upload/Icons.js +0 -40
  379. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  380. package/upload/dragAndDropArea/Icons.js +0 -39
  381. package/upload/file-upload/FileToUpload.js +0 -115
  382. package/upload/file-upload/Icons.js +0 -66
  383. package/upload/files-upload/FilesToUpload.js +0 -109
  384. package/upload/index.d.ts +0 -15
  385. package/upload/transaction/Icons.js +0 -160
  386. package/upload/transaction/Transaction.js +0 -104
  387. package/upload/transactions/Transactions.js +0 -94
  388. package/wizard/Icons.js +0 -65
  389. package/wizard/index.d.ts +0 -18
package/switch/Switch.js CHANGED
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
@@ -21,113 +19,189 @@ var _react = _interopRequireWildcard(require("react"));
21
19
 
22
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _core = require("@material-ui/core");
22
+ var _uuid = require("uuid");
27
23
 
28
- var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
24
+ var _variables = require("../common/variables");
29
25
 
30
- var _variables = require("../common/variables.js");
26
+ var _utils = require("../common/utils");
31
27
 
32
- var _utils = require("../common/utils.js");
28
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
33
29
 
34
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
30
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
35
31
 
36
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
32
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
37
33
 
38
- var _templateObject, _templateObject2;
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
39
35
 
40
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); }
41
37
 
42
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; }
43
39
 
44
- var DxcSwitch = function DxcSwitch(_ref) {
45
- var checked = _ref.checked,
40
+ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
41
+ var defaultChecked = _ref.defaultChecked,
42
+ checked = _ref.checked,
46
43
  value = _ref.value,
47
- label = _ref.label,
44
+ _ref$label = _ref.label,
45
+ label = _ref$label === void 0 ? "" : _ref$label,
48
46
  _ref$labelPosition = _ref.labelPosition,
49
47
  labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
50
- name = _ref.name,
48
+ _ref$name = _ref.name,
49
+ name = _ref$name === void 0 ? "" : _ref$name,
51
50
  _ref$disabled = _ref.disabled,
52
51
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
52
+ _ref$optional = _ref.optional,
53
+ optional = _ref$optional === void 0 ? false : _ref$optional,
53
54
  onChange = _ref.onChange,
54
- _ref$required = _ref.required,
55
- required = _ref$required === void 0 ? false : _ref$required,
56
55
  margin = _ref.margin,
57
56
  _ref$size = _ref.size,
58
57
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
59
58
  _ref$tabIndex = _ref.tabIndex,
60
59
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
61
60
 
62
- var _useState = (0, _react.useState)(0),
63
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
64
- innerChecked = _useState2[0],
65
- setInnerChecked = _useState2[1];
61
+ var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
62
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
63
+ switchId = _useState2[0];
64
+
65
+ var labelId = "label-".concat(switchId);
66
+
67
+ var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
68
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
69
+ innerChecked = _useState4[0],
70
+ setInnerChecked = _useState4[1];
66
71
 
67
72
  var colorsTheme = (0, _useTheme["default"])();
73
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
68
74
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
75
+ var refTrack = (0, _react.useRef)(null);
69
76
 
70
- var handlerSwitchChange = function handlerSwitchChange(newValue) {
71
- if (checked === undefined) {
72
- var isChecked = newValue.target.checked === undefined ? !innerChecked : newValue.target.checked;
73
- setInnerChecked(isChecked);
74
-
75
- if (typeof onChange === "function") {
76
- onChange(isChecked);
77
- }
78
- } else {
79
- if (typeof onChange === "function") {
80
- onChange(!checked);
81
- }
77
+ var handleOnKeyDown = function handleOnKeyDown(event) {
78
+ switch (event.key) {
79
+ case "Enter":
80
+ case " ":
81
+ //Space
82
+ event.preventDefault();
83
+ refTrack.current.focus();
84
+ var isChecked = !(checked !== null && checked !== void 0 ? checked : innerChecked);
85
+ setInnerChecked(isChecked);
86
+ onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
87
+ break;
82
88
  }
83
89
  };
84
90
 
91
+ var handlerSwitchChange = function handlerSwitchChange(event) {
92
+ checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
93
+ return !innerChecked;
94
+ });
95
+ onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
96
+ };
97
+
85
98
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
86
99
  theme: colorsTheme["switch"]
87
100
  }, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
88
101
  margin: margin,
102
+ size: size,
103
+ onKeyDown: handleOnKeyDown,
89
104
  disabled: disabled,
105
+ onClick: !disabled ? handlerSwitchChange : undefined,
106
+ ref: ref
107
+ }, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
108
+ id: labelId,
90
109
  labelPosition: labelPosition,
91
- size: size,
92
- backgroundType: backgroundType
93
- }, /*#__PURE__*/_react["default"].createElement(_core.Switch, {
94
- checked: checked != undefined ? checked : innerChecked,
95
- inputProps: {
96
- name: name,
97
- tabIndex: tabIndex
98
- },
99
- onChange: handlerSwitchChange,
110
+ disabled: disabled,
111
+ backgroundType: backgroundType,
112
+ label: label
113
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
114
+ type: "checkbox",
115
+ name: name,
116
+ "aria-hidden": true,
100
117
  value: value,
101
118
  disabled: disabled,
102
- disableRipple: true
103
- }), /*#__PURE__*/_react["default"].createElement(LabelContainer, {
119
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
120
+ readOnly: true
121
+ }), /*#__PURE__*/_react["default"].createElement(SwitchBase, null, /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
122
+ role: "switch",
123
+ backgroundType: backgroundType,
124
+ "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
125
+ "aria-disabled": disabled,
126
+ disabled: disabled,
127
+ "aria-labelledby": labelId,
128
+ tabIndex: !disabled ? tabIndex : -1,
129
+ ref: refTrack
130
+ })), labelPosition === "after" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
131
+ id: labelId,
104
132
  labelPosition: labelPosition,
105
- onClick: disabled === true ? function () {} : handlerSwitchChange,
106
133
  disabled: disabled,
107
- backgroundType: backgroundType
108
- }, required && /*#__PURE__*/_react["default"].createElement(_RequiredComponent["default"], null), label)));
109
- };
134
+ backgroundType: backgroundType,
135
+ label: label
136
+ }, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
137
+ });
110
138
 
111
139
  var sizes = {
112
140
  small: "60px",
113
141
  medium: "240px",
114
142
  large: "480px",
115
143
  fillParent: "100%",
116
- fitContent: "unset"
144
+ fitContent: "fit-content"
117
145
  };
118
146
 
119
147
  var calculateWidth = function calculateWidth(margin, size) {
120
- if (size === "fillParent") {
121
- return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
148
+ return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
149
+ };
150
+
151
+ var getDisabledColor = function getDisabledColor(props, element, subelement) {
152
+ switch (element) {
153
+ case "track":
154
+ switch (subelement) {
155
+ case "check":
156
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
157
+
158
+ case "uncheck":
159
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
160
+ }
161
+
162
+ case "thumb":
163
+ switch (subelement) {
164
+ case "check":
165
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
166
+
167
+ case "uncheck":
168
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
169
+ }
170
+
171
+ case "label":
172
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor;
122
173
  }
174
+ };
123
175
 
124
- return sizes[size];
176
+ var getNotDisabledColor = function getNotDisabledColor(props, element, subelement) {
177
+ switch (element) {
178
+ case "track":
179
+ switch (subelement) {
180
+ case "check":
181
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
182
+
183
+ case "uncheck":
184
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
185
+ }
186
+
187
+ case "thumb":
188
+ switch (subelement) {
189
+ case "check":
190
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
191
+
192
+ case "uncheck":
193
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
194
+ }
195
+
196
+ case "label":
197
+ return props.backgroundType && props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
198
+ }
125
199
  };
126
200
 
127
- var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n display: inline-flex;\n align-items: center;\n flex-direction: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n opacity: 1;\n \n .MuiSwitch-root {\n align-items: center;\n width: ", ";\n height: 45px;\n margin: 3px;\n\n .Mui-focusVisible {\n border: ", ";\n padding: 7px;\n }\n\n .MuiSwitch-track {\n /*Enabled and unchecked bar*/\n background-color: ", ";\n height: ", ";\n }\n\n .MuiSwitch-switchBase + .MuiSwitch-track {\n opacity: 1;\n }\n\n .MuiIconButton-root {\n /*Enabled and unchecked*/\n top: unset;\n .MuiSwitch-thumb {\n /*Only for thumb in all states*/\n width: ", ";\n height: ", ";\n }\n color: ", ";\n &:hover {\n background-color: transparent;\n }\n &.Mui-disabled {\n /*Disabled and unchecked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and unchecked bar*/\n background-color: ", ";\n }\n }\n &.Mui-disabled.Mui-checked {\n /*Disabled and checked*/\n color: ", ";\n + .MuiSwitch-track {\n /*Disabled and checked bar*/\n background-color: ", ";\n }\n }\n &.Mui-checked {\n /*Enabled and checked*/\n color: ", ";\n transform: translateX(", ");\n &:hover {\n background-color: transparent;\n }\n + .MuiSwitch-track {\n /*Enabled and checked bar*/\n background-color: ", ";\n }\n }\n }\n }\n"])), function (props) {
201
+ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: ", ";\n height: 40px;\n cursor: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
128
202
  return calculateWidth(props.margin, props.size);
129
203
  }, function (props) {
130
- return props.labelPosition === "after" ? "row" : "row-reverse";
204
+ return props.disabled === true ? "not-allowed" : "pointer";
131
205
  }, function (props) {
132
206
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
133
207
  }, function (props) {
@@ -138,71 +212,51 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
138
212
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
139
213
  }, function (props) {
140
214
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
215
+ });
216
+
217
+ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n ", ";\n\n ", "\n"])), function (props) {
218
+ return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
141
219
  }, function (props) {
142
- return props.disabled ? "not-allowed" : "default";
143
- }, function (props) {
144
- return props.theme.trackWidth;
145
- }, function (props) {
146
- return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
147
- }, function (props) {
148
- return props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
149
- }, function (props) {
150
- return props.theme.trackHeight;
151
- }, function (props) {
152
- return props.theme.thumbWidth;
220
+ return props.theme.labelFontFamily;
153
221
  }, function (props) {
154
- return props.theme.thumbHeight;
222
+ return props.theme.labelFontSize;
155
223
  }, function (props) {
156
- return props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
224
+ return props.disabled ? props.theme.disabledLabelFontStyle : props.theme.labelFontStyle;
157
225
  }, function (props) {
158
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
226
+ return props.theme.labelFontWeight;
159
227
  }, function (props) {
160
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
228
+ return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
161
229
  }, function (props) {
162
- return props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
230
+ return props.labelPosition === "before" && "order: -1";
231
+ });
232
+
233
+ var SwitchBase = _styledComponents["default"].label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0px 12px;\n"])));
234
+
235
+ var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
236
+
237
+ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n cursor: ", ";\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
238
+ return props.theme.trackWidth;
163
239
  }, function (props) {
164
- return props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
240
+ return props.theme.trackHeight;
165
241
  }, function (props) {
166
- return props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
242
+ return props.disabled ? "not-allowed" : "pointer";
167
243
  }, function (props) {
168
- return props.theme.thumbShift;
244
+ return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
169
245
  }, function (props) {
170
- return props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
171
- });
172
-
173
- var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n cursor: ", ";\n ", "\n"])), function (props) {
174
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
246
+ return props.theme.thumbWidth;
175
247
  }, function (props) {
176
- return props.theme.labelFontFamily;
248
+ return props.theme.thumbHeight;
177
249
  }, function (props) {
178
- return props.theme.labelFontSize;
250
+ return props.disabled ? getDisabledColor(props, "thumb", "uncheck") : getNotDisabledColor(props, "thumb", "uncheck");
179
251
  }, function (props) {
180
- return props.disabled ? props.theme.disabledLabelFontStyle : props.theme.labelFontStyle;
252
+ return props.disabled ? getDisabledColor(props, "track", "uncheck") : getNotDisabledColor(props, "track", "uncheck");
181
253
  }, function (props) {
182
- return props.theme.labelFontWeight;
254
+ return props.disabled ? getDisabledColor(props, "track", "check") : getNotDisabledColor(props, "track", "check");
183
255
  }, function (props) {
184
- return props.disabled === true ? "not-allowed" : "pointer";
256
+ return props.theme.thumbShift;
185
257
  }, function (props) {
186
- return props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
258
+ return props.disabled ? getDisabledColor(props, "thumb", "check") : getNotDisabledColor(props, "thumb", "check");
187
259
  });
188
260
 
189
- DxcSwitch.propTypes = {
190
- size: _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(sizes))),
191
- checked: _propTypes["default"].bool,
192
- value: _propTypes["default"].any,
193
- label: _propTypes["default"].string,
194
- labelPosition: _propTypes["default"].oneOf(["after", "before", ""]),
195
- name: _propTypes["default"].string,
196
- disabled: _propTypes["default"].bool,
197
- onChange: _propTypes["default"].func,
198
- required: _propTypes["default"].bool,
199
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
200
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
201
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
202
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
203
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
204
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
205
- tabIndex: _propTypes["default"].number
206
- };
207
261
  var _default = DxcSwitch;
208
262
  exports["default"] = _default;
@@ -0,0 +1,171 @@
1
+ import React from "react";
2
+ import DxcSwitch from "./Switch";
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 { HalstackProvider } from "../HalstackContext";
8
+
9
+ export default {
10
+ title: "Switch",
11
+ component: DxcSwitch,
12
+ };
13
+
14
+ const opinionatedTheme = {
15
+ switch: {
16
+ checkedBaseColor: "#5f249f",
17
+ fontColor: "#000000",
18
+ },
19
+ };
20
+
21
+ export const Chromatic = () => (
22
+ <>
23
+ <ExampleContainer>
24
+ <Title title="With label after" theme="light" level={4} />
25
+ <DxcSwitch label="Switch" labelPosition="after" />
26
+ </ExampleContainer>
27
+ <ExampleContainer>
28
+ <Title title="Without label" theme="light" level={4} />
29
+ <DxcSwitch />
30
+ </ExampleContainer>
31
+ <ExampleContainer pseudoState="pseudo-focus-visible">
32
+ <Title title="Focused" theme="light" level={4} />
33
+ <DxcSwitch label="Switch" labelPosition="after" />
34
+ </ExampleContainer>
35
+ <ExampleContainer>
36
+ <Title title="Checked" theme="light" level={4} />
37
+ <DxcSwitch label="Switch" defaultChecked />
38
+ </ExampleContainer>
39
+ <ExampleContainer>
40
+ <Title title="Optional" theme="light" level={4} />
41
+ <DxcSwitch label="Switch" optional />
42
+ </ExampleContainer>
43
+ <ExampleContainer>
44
+ <Title title="Disabled" theme="light" level={4} />
45
+ <DxcSwitch label="Switch" disabled />
46
+ </ExampleContainer>
47
+ <ExampleContainer>
48
+ <Title title="Disabled optional" theme="light" level={4} />
49
+ <DxcSwitch label="Switch" disabled optional labelPosition="after" />
50
+ </ExampleContainer>
51
+ <ExampleContainer>
52
+ <Title title="Disabled checked" theme="light" level={4} />
53
+ <DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
54
+ </ExampleContainer>
55
+ <BackgroundColorProvider color="#333333">
56
+ <DarkContainer>
57
+ <ExampleContainer>
58
+ <Title title="With label" theme="dark" level={4} />
59
+ <DxcSwitch label="Switch" />
60
+ </ExampleContainer>
61
+ <ExampleContainer pseudoState="pseudo-focus-visible">
62
+ <Title title="Focused" theme="dark" level={4} />
63
+ <DxcSwitch label="Switch" labelPosition="after" />
64
+ </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="Checked" theme="dark" level={4} />
67
+ <DxcSwitch label="Switch" defaultChecked />
68
+ </ExampleContainer>
69
+ <ExampleContainer>
70
+ <Title title="Optional" theme="dark" level={4} />
71
+ <DxcSwitch label="Switch" optional />
72
+ </ExampleContainer>
73
+ <ExampleContainer>
74
+ <Title title="Disabled" theme="dark" level={4} />
75
+ <DxcSwitch label="Switch" disabled />
76
+ </ExampleContainer>
77
+ <ExampleContainer>
78
+ <Title title="Disabled optional" theme="dark" level={4} />
79
+ <DxcSwitch label="Switch" disabled optional labelPosition="after" />
80
+ </ExampleContainer>
81
+ <ExampleContainer>
82
+ <Title title="Disabled checked" theme="dark" level={4} />
83
+ <DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
84
+ </ExampleContainer>
85
+ </DarkContainer>
86
+ </BackgroundColorProvider>
87
+ <Title title="Margins" theme="light" level={2} />
88
+ <ExampleContainer>
89
+ <Title title="Xxsmall margin" theme="light" level={4} />
90
+ <DxcSwitch label="Xxsmall" margin="xxsmall" />
91
+ </ExampleContainer>
92
+ <ExampleContainer>
93
+ <Title title="Xsmall margin" theme="light" level={4} />
94
+ <DxcSwitch label="Xsmall" margin="xsmall" />
95
+ </ExampleContainer>
96
+ <ExampleContainer>
97
+ <Title title="Small margin" theme="light" level={4} />
98
+ <DxcSwitch label="Small" margin="small" />
99
+ </ExampleContainer>
100
+ <ExampleContainer>
101
+ <Title title="Medium margin" theme="light" level={4} />
102
+ <DxcSwitch label="Medium" margin="medium" />
103
+ </ExampleContainer>
104
+ <ExampleContainer>
105
+ <Title title="Large margin" theme="light" level={4} />
106
+ <DxcSwitch label="Large" margin="large" />
107
+ </ExampleContainer>
108
+ <ExampleContainer>
109
+ <Title title="Xlarge margin" theme="light" level={4} />
110
+ <DxcSwitch label="Xlarge" margin="xlarge" />
111
+ </ExampleContainer>
112
+ <ExampleContainer>
113
+ <Title title="Xxlarge margin" theme="light" level={4} />
114
+ <DxcSwitch label="Xxlarge" margin="xxlarge" />
115
+ </ExampleContainer>
116
+ <Title title="Sizes" theme="light" level={2} />
117
+ <ExampleContainer>
118
+ <Title title="Small size" theme="light" level={4} />
119
+ <DxcSwitch label="Small" size="small" />
120
+ </ExampleContainer>
121
+ <ExampleContainer>
122
+ <Title title="Medium size (with large label)" theme="light" level={4} />
123
+ <DxcSwitch label="Very very very large label or even huge" size="medium" />
124
+ </ExampleContainer>
125
+ <ExampleContainer>
126
+ <Title title="Medium size (with long label)" theme="light" level={4} />
127
+ <DxcSwitch
128
+ label="Large texttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
129
+ labelPosition="after"
130
+ size="medium"
131
+ />
132
+ </ExampleContainer>
133
+ <ExampleContainer>
134
+ <Title title="Large size" theme="light" level={4} />
135
+ <DxcSwitch label="Large" size="large" />
136
+ </ExampleContainer>
137
+ <ExampleContainer>
138
+ <Title title="FillParent size" theme="light" level={4} />
139
+ <DxcSwitch label="FillParent" size="fillParent" />
140
+ </ExampleContainer>
141
+ <ExampleContainer>
142
+ <Title title="FitContent size" theme="light" level={4} />
143
+ <DxcSwitch label="FitContent" size="fitContent" />
144
+ </ExampleContainer>
145
+ <Title title="Opinionated theme" theme="light" level={2} />
146
+ <ExampleContainer>
147
+ <Title title="Checked" theme="light" level={4} />
148
+ <HalstackProvider theme={opinionatedTheme}>
149
+ <DxcSwitch label="Switch" defaultChecked />
150
+ </HalstackProvider>
151
+ </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="Default" theme="light" level={4} />
154
+ <HalstackProvider theme={opinionatedTheme}>
155
+ <DxcSwitch label="Switch" />
156
+ </HalstackProvider>
157
+ </ExampleContainer>
158
+ <ExampleContainer>
159
+ <Title title="Disabled" theme="light" level={4} />
160
+ <HalstackProvider theme={opinionatedTheme}>
161
+ <DxcSwitch label="Switch" disabled />
162
+ </HalstackProvider>
163
+ </ExampleContainer>
164
+ <ExampleContainer>
165
+ <Title title="Disabled checked" theme="light" level={4} />
166
+ <HalstackProvider theme={opinionatedTheme}>
167
+ <DxcSwitch label="Switch" disabled defaultChecked />
168
+ </HalstackProvider>
169
+ </ExampleContainer>
170
+ </>
171
+ );