@dxc-technology/halstack-react 0.0.0-7f5e42c → 0.0.0-7ffa3f4

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 (306) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -6
  4. package/HalstackContext.js +125 -110
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +37 -100
  8. package/accordion/Accordion.stories.tsx +101 -124
  9. package/accordion/Accordion.test.js +20 -35
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -17
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +20 -59
  24. package/alert/Alert.stories.tsx +28 -0
  25. package/alert/Alert.test.js +29 -46
  26. package/alert/types.d.ts +5 -5
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +141 -43
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/bleed/Bleed.js +13 -21
  33. package/bleed/Bleed.stories.tsx +1 -0
  34. package/bleed/types.d.ts +2 -2
  35. package/box/Box.d.ts +1 -1
  36. package/box/Box.js +19 -60
  37. package/box/Box.stories.tsx +38 -51
  38. package/box/Box.test.js +2 -7
  39. package/box/types.d.ts +3 -14
  40. package/bulleted-list/BulletedList.js +19 -53
  41. package/bulleted-list/BulletedList.stories.tsx +8 -93
  42. package/bulleted-list/types.d.ts +32 -5
  43. package/button/Button.d.ts +1 -1
  44. package/button/Button.js +69 -105
  45. package/button/Button.stories.tsx +152 -91
  46. package/button/Button.test.js +20 -17
  47. package/button/types.d.ts +8 -4
  48. package/card/Card.d.ts +1 -1
  49. package/card/Card.js +48 -89
  50. package/card/Card.stories.tsx +12 -42
  51. package/card/Card.test.js +11 -22
  52. package/card/types.d.ts +6 -11
  53. package/checkbox/Checkbox.d.ts +2 -2
  54. package/checkbox/Checkbox.js +140 -182
  55. package/checkbox/Checkbox.stories.tsx +128 -94
  56. package/checkbox/Checkbox.test.js +160 -39
  57. package/checkbox/types.d.ts +11 -3
  58. package/chip/Chip.js +39 -79
  59. package/chip/Chip.stories.tsx +121 -26
  60. package/chip/Chip.test.js +16 -31
  61. package/chip/types.d.ts +4 -4
  62. package/common/OpenSans.css +68 -80
  63. package/common/coreTokens.d.ts +237 -0
  64. package/common/coreTokens.js +184 -0
  65. package/common/utils.d.ts +1 -0
  66. package/common/utils.js +6 -12
  67. package/common/variables.d.ts +1395 -0
  68. package/common/variables.js +921 -1162
  69. package/container/Container.d.ts +4 -0
  70. package/container/Container.js +194 -0
  71. package/container/Container.stories.tsx +214 -0
  72. package/container/types.d.ts +74 -0
  73. package/contextual-menu/ContextualMenu.d.ts +7 -0
  74. package/contextual-menu/ContextualMenu.js +71 -0
  75. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  76. package/contextual-menu/ContextualMenu.test.js +71 -0
  77. package/contextual-menu/MenuItemAction.d.ts +4 -0
  78. package/contextual-menu/MenuItemAction.js +46 -0
  79. package/contextual-menu/types.d.ts +22 -0
  80. package/date-input/Calendar.d.ts +4 -0
  81. package/date-input/Calendar.js +214 -0
  82. package/date-input/DateInput.js +150 -299
  83. package/date-input/DateInput.stories.tsx +203 -56
  84. package/date-input/DateInput.test.js +700 -371
  85. package/date-input/DatePicker.d.ts +4 -0
  86. package/date-input/DatePicker.js +115 -0
  87. package/date-input/Icons.d.ts +6 -0
  88. package/date-input/Icons.js +58 -0
  89. package/date-input/YearPicker.d.ts +4 -0
  90. package/date-input/YearPicker.js +100 -0
  91. package/date-input/types.d.ts +72 -15
  92. package/dialog/Dialog.d.ts +1 -1
  93. package/dialog/Dialog.js +60 -118
  94. package/dialog/Dialog.stories.tsx +320 -166
  95. package/dialog/Dialog.test.js +269 -32
  96. package/dialog/types.d.ts +18 -25
  97. package/dropdown/Dropdown.js +81 -132
  98. package/dropdown/Dropdown.stories.tsx +210 -84
  99. package/dropdown/Dropdown.test.js +410 -402
  100. package/dropdown/DropdownMenu.js +20 -37
  101. package/dropdown/DropdownMenuItem.js +10 -35
  102. package/dropdown/types.d.ts +17 -19
  103. package/file-input/FileInput.d.ts +2 -2
  104. package/file-input/FileInput.js +241 -355
  105. package/file-input/FileInput.stories.tsx +123 -12
  106. package/file-input/FileInput.test.js +369 -367
  107. package/file-input/FileItem.d.ts +4 -14
  108. package/file-input/FileItem.js +45 -96
  109. package/file-input/types.d.ts +25 -8
  110. package/flex/Flex.d.ts +1 -1
  111. package/flex/Flex.js +40 -40
  112. package/flex/Flex.stories.tsx +35 -26
  113. package/flex/types.d.ts +84 -8
  114. package/footer/Footer.d.ts +1 -1
  115. package/footer/Footer.js +70 -117
  116. package/footer/Footer.stories.tsx +60 -19
  117. package/footer/Footer.test.js +33 -57
  118. package/footer/Icons.d.ts +3 -2
  119. package/footer/Icons.js +66 -7
  120. package/footer/types.d.ts +25 -26
  121. package/grid/Grid.d.ts +7 -0
  122. package/grid/Grid.js +76 -0
  123. package/grid/Grid.stories.tsx +219 -0
  124. package/grid/types.d.ts +115 -0
  125. package/grid/types.js +5 -0
  126. package/header/Header.d.ts +4 -3
  127. package/header/Header.js +48 -133
  128. package/header/Header.stories.tsx +115 -36
  129. package/header/Header.test.js +13 -26
  130. package/header/Icons.d.ts +2 -2
  131. package/header/Icons.js +2 -7
  132. package/header/types.d.ts +5 -19
  133. package/heading/Heading.js +10 -32
  134. package/heading/Heading.test.js +71 -88
  135. package/heading/types.d.ts +7 -7
  136. package/image/Image.d.ts +4 -0
  137. package/image/Image.js +70 -0
  138. package/image/Image.stories.tsx +129 -0
  139. package/image/types.d.ts +72 -0
  140. package/image/types.js +5 -0
  141. package/inset/Inset.js +13 -21
  142. package/inset/Inset.stories.tsx +2 -1
  143. package/inset/types.d.ts +2 -2
  144. package/layout/ApplicationLayout.d.ts +5 -5
  145. package/layout/ApplicationLayout.js +29 -66
  146. package/layout/ApplicationLayout.stories.tsx +1 -1
  147. package/layout/Icons.d.ts +8 -5
  148. package/layout/Icons.js +51 -59
  149. package/layout/SidenavContext.d.ts +1 -1
  150. package/layout/SidenavContext.js +3 -9
  151. package/layout/types.d.ts +5 -6
  152. package/link/Link.js +25 -46
  153. package/link/Link.stories.tsx +60 -0
  154. package/link/Link.test.js +24 -44
  155. package/link/types.d.ts +14 -14
  156. package/main.d.ts +9 -5
  157. package/main.js +40 -59
  158. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  159. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  160. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  161. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  162. package/nav-tabs/Tab.js +118 -0
  163. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  164. package/nav-tabs/types.js +5 -0
  165. package/number-input/NumberInput.d.ts +7 -0
  166. package/number-input/NumberInput.js +47 -37
  167. package/number-input/NumberInput.stories.tsx +42 -26
  168. package/number-input/NumberInput.test.js +860 -377
  169. package/number-input/types.d.ts +11 -5
  170. package/package.json +37 -40
  171. package/paginator/Icons.d.ts +5 -0
  172. package/paginator/Icons.js +21 -47
  173. package/paginator/Paginator.js +23 -59
  174. package/paginator/Paginator.stories.tsx +24 -0
  175. package/paginator/Paginator.test.js +253 -226
  176. package/paginator/types.d.ts +3 -3
  177. package/paragraph/Paragraph.d.ts +3 -4
  178. package/paragraph/Paragraph.js +6 -22
  179. package/paragraph/Paragraph.stories.tsx +0 -17
  180. package/password-input/Icons.d.ts +6 -0
  181. package/password-input/Icons.js +35 -0
  182. package/password-input/PasswordInput.js +57 -126
  183. package/password-input/PasswordInput.stories.tsx +1 -33
  184. package/password-input/PasswordInput.test.js +160 -142
  185. package/password-input/types.d.ts +8 -7
  186. package/progress-bar/ProgressBar.d.ts +2 -2
  187. package/progress-bar/ProgressBar.js +23 -55
  188. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  189. package/progress-bar/ProgressBar.test.js +36 -53
  190. package/progress-bar/types.d.ts +4 -3
  191. package/quick-nav/QuickNav.js +15 -39
  192. package/quick-nav/QuickNav.stories.tsx +112 -20
  193. package/quick-nav/types.d.ts +10 -10
  194. package/radio-group/Radio.d.ts +1 -1
  195. package/radio-group/Radio.js +59 -76
  196. package/radio-group/RadioGroup.js +59 -105
  197. package/radio-group/RadioGroup.stories.tsx +132 -18
  198. package/radio-group/RadioGroup.test.js +518 -457
  199. package/radio-group/types.d.ts +10 -10
  200. package/resultset-table/Icons.d.ts +7 -0
  201. package/resultset-table/Icons.js +47 -0
  202. package/resultset-table/ResultsetTable.d.ts +7 -0
  203. package/resultset-table/ResultsetTable.js +166 -0
  204. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +152 -30
  205. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +167 -144
  206. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  207. package/resultset-table/types.js +5 -0
  208. package/select/Icons.d.ts +7 -7
  209. package/select/Icons.js +1 -5
  210. package/select/Listbox.d.ts +1 -1
  211. package/select/Listbox.js +17 -73
  212. package/select/Option.js +27 -50
  213. package/select/Select.js +123 -176
  214. package/select/Select.stories.tsx +497 -153
  215. package/select/Select.test.js +1970 -1775
  216. package/select/types.d.ts +16 -17
  217. package/sidenav/Icons.d.ts +7 -0
  218. package/sidenav/Icons.js +47 -0
  219. package/sidenav/Sidenav.d.ts +2 -2
  220. package/sidenav/Sidenav.js +81 -153
  221. package/sidenav/Sidenav.stories.tsx +165 -63
  222. package/sidenav/Sidenav.test.js +3 -10
  223. package/sidenav/types.d.ts +31 -28
  224. package/slider/Slider.d.ts +2 -2
  225. package/slider/Slider.js +83 -131
  226. package/slider/Slider.test.js +108 -104
  227. package/slider/types.d.ts +7 -3
  228. package/spinner/Spinner.js +31 -75
  229. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  230. package/spinner/Spinner.test.js +26 -35
  231. package/spinner/types.d.ts +3 -3
  232. package/status-light/StatusLight.d.ts +4 -0
  233. package/status-light/StatusLight.js +51 -0
  234. package/status-light/StatusLight.stories.tsx +74 -0
  235. package/status-light/StatusLight.test.js +25 -0
  236. package/status-light/types.d.ts +17 -0
  237. package/status-light/types.js +5 -0
  238. package/switch/Switch.d.ts +3 -3
  239. package/switch/Switch.js +113 -150
  240. package/switch/Switch.stories.tsx +33 -34
  241. package/switch/Switch.test.js +70 -102
  242. package/switch/types.d.ts +8 -3
  243. package/table/DropdownTheme.js +62 -0
  244. package/table/Table.d.ts +6 -2
  245. package/table/Table.js +87 -35
  246. package/table/Table.stories.tsx +658 -0
  247. package/table/Table.test.js +95 -8
  248. package/table/types.d.ts +48 -6
  249. package/tabs/Tab.js +26 -45
  250. package/tabs/Tabs.js +62 -145
  251. package/tabs/Tabs.stories.tsx +46 -6
  252. package/tabs/Tabs.test.js +66 -123
  253. package/tabs/types.d.ts +19 -19
  254. package/tag/Tag.js +29 -61
  255. package/tag/Tag.stories.tsx +14 -1
  256. package/tag/Tag.test.js +20 -31
  257. package/tag/types.d.ts +7 -7
  258. package/text-input/Icons.d.ts +8 -0
  259. package/text-input/Icons.js +56 -0
  260. package/text-input/Suggestion.js +40 -28
  261. package/text-input/Suggestions.d.ts +4 -0
  262. package/text-input/Suggestions.js +84 -0
  263. package/text-input/TextInput.js +301 -497
  264. package/text-input/TextInput.stories.tsx +266 -274
  265. package/text-input/TextInput.test.js +1419 -1375
  266. package/text-input/types.d.ts +43 -16
  267. package/textarea/Textarea.js +70 -113
  268. package/textarea/Textarea.stories.tsx +174 -0
  269. package/textarea/Textarea.test.js +152 -183
  270. package/textarea/types.d.ts +9 -5
  271. package/toggle-group/ToggleGroup.d.ts +2 -2
  272. package/toggle-group/ToggleGroup.js +92 -106
  273. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  274. package/toggle-group/ToggleGroup.test.js +69 -88
  275. package/toggle-group/types.d.ts +26 -17
  276. package/typography/Typography.d.ts +2 -2
  277. package/typography/Typography.js +15 -123
  278. package/typography/Typography.stories.tsx +1 -1
  279. package/typography/types.d.ts +1 -1
  280. package/useTheme.d.ts +1147 -1
  281. package/useTheme.js +2 -9
  282. package/useTranslatedLabels.d.ts +84 -1
  283. package/useTranslatedLabels.js +1 -7
  284. package/utils/BaseTypography.d.ts +21 -0
  285. package/utils/BaseTypography.js +94 -0
  286. package/utils/FocusLock.d.ts +13 -0
  287. package/utils/FocusLock.js +124 -0
  288. package/wizard/Wizard.js +16 -51
  289. package/wizard/Wizard.stories.tsx +20 -0
  290. package/wizard/Wizard.test.js +54 -81
  291. package/wizard/types.d.ts +8 -9
  292. package/card/ice-cream.jpg +0 -0
  293. package/common/RequiredComponent.js +0 -32
  294. package/number-input/NumberInputContext.d.ts +0 -4
  295. package/number-input/NumberInputContext.js +0 -19
  296. package/number-input/numberInputContextTypes.d.ts +0 -19
  297. package/resultsetTable/ResultsetTable.d.ts +0 -4
  298. package/resultsetTable/ResultsetTable.js +0 -254
  299. package/slider/Slider.stories.tsx +0 -183
  300. package/table/Table.stories.jsx +0 -277
  301. package/tabs-nav/Tab.js +0 -130
  302. package/textarea/Textarea.stories.jsx +0 -157
  303. /package/{resultsetTable → action-icon}/types.js +0 -0
  304. /package/{tabs-nav → container}/types.js +0 -0
  305. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  306. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
package/switch/Switch.js CHANGED
@@ -1,183 +1,165 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
14
  var _uuid = require("uuid");
23
-
24
- var _variables = require("../common/variables.js");
25
-
26
- var _utils = require("../common/utils.js");
27
-
15
+ var _variables = require("../common/variables");
16
+ var _utils = require("../common/utils");
28
17
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
-
30
18
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
31
-
32
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
-
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
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 DxcSwitch = function DxcSwitch(_ref) {
41
- var _ref2;
42
-
19
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
22
+ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
43
23
  var defaultChecked = _ref.defaultChecked,
44
- checked = _ref.checked,
45
- value = _ref.value,
46
- _ref$label = _ref.label,
47
- label = _ref$label === void 0 ? "" : _ref$label,
48
- _ref$labelPosition = _ref.labelPosition,
49
- labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
50
- _ref$name = _ref.name,
51
- name = _ref$name === void 0 ? "" : _ref$name,
52
- _ref$disabled = _ref.disabled,
53
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
54
- _ref$optional = _ref.optional,
55
- optional = _ref$optional === void 0 ? false : _ref$optional,
56
- onChange = _ref.onChange,
57
- margin = _ref.margin,
58
- _ref$size = _ref.size,
59
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
60
- _ref$tabIndex = _ref.tabIndex,
61
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
62
-
24
+ checked = _ref.checked,
25
+ value = _ref.value,
26
+ _ref$label = _ref.label,
27
+ label = _ref$label === void 0 ? "" : _ref$label,
28
+ _ref$labelPosition = _ref.labelPosition,
29
+ labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
30
+ _ref$name = _ref.name,
31
+ name = _ref$name === void 0 ? "" : _ref$name,
32
+ _ref$disabled = _ref.disabled,
33
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
34
+ _ref$optional = _ref.optional,
35
+ optional = _ref$optional === void 0 ? false : _ref$optional,
36
+ onChange = _ref.onChange,
37
+ margin = _ref.margin,
38
+ _ref$size = _ref.size,
39
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
40
+ _ref$tabIndex = _ref.tabIndex,
41
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
63
42
  var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
64
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
65
- switchId = _useState2[0];
66
-
43
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
44
+ switchId = _useState2[0];
67
45
  var labelId = "label-".concat(switchId);
68
-
69
46
  var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
70
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
71
- innerChecked = _useState4[0],
72
- setInnerChecked = _useState4[1];
73
-
74
- var _useState5 = (0, _react.useState)((_ref2 = label !== "" && label !== null && label !== undefined) !== null && _ref2 !== void 0 ? _ref2 : false),
75
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
76
- hasLabel = _useState6[0];
77
-
47
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
48
+ innerChecked = _useState4[0],
49
+ setInnerChecked = _useState4[1];
78
50
  var colorsTheme = (0, _useTheme["default"])();
79
51
  var translatedLabels = (0, _useTranslatedLabels["default"])();
80
- var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
81
52
  var refTrack = (0, _react.useRef)(null);
82
-
83
53
  var handleOnKeyDown = function handleOnKeyDown(event) {
84
54
  switch (event.key) {
85
55
  case "Enter":
86
56
  case " ":
87
- //Space
57
+ // Space
88
58
  event.preventDefault();
89
59
  refTrack.current.focus();
90
60
  var isChecked = !(checked !== null && checked !== void 0 ? checked : innerChecked);
91
61
  setInnerChecked(isChecked);
92
-
93
- if (typeof onChange === "function") {
94
- onChange(isChecked);
95
- }
96
-
62
+ onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
97
63
  break;
98
64
  }
99
65
  };
100
-
101
66
  var handlerSwitchChange = function handlerSwitchChange(event) {
102
- if (checked === undefined) {
103
- var _event$target$checked;
104
-
105
- var isChecked = (_event$target$checked = event.target.checked) !== null && _event$target$checked !== void 0 ? _event$target$checked : !innerChecked;
106
- setInnerChecked(isChecked);
107
-
108
- if (typeof onChange === "function") {
109
- onChange(isChecked);
110
- }
111
- } else {
112
- if (typeof onChange === "function") {
113
- onChange(!checked);
114
- }
115
- }
67
+ checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
68
+ return !innerChecked;
69
+ });
70
+ onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
116
71
  };
117
-
118
72
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
119
73
  theme: colorsTheme["switch"]
120
74
  }, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
121
75
  margin: margin,
122
76
  size: size,
123
- onKeyDown: handleOnKeyDown
124
- }, labelPosition === "before" && hasLabel && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
77
+ onKeyDown: handleOnKeyDown,
78
+ disabled: disabled,
79
+ onClick: !disabled ? handlerSwitchChange : undefined,
80
+ ref: ref
81
+ }, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
125
82
  id: labelId,
126
83
  labelPosition: labelPosition,
127
- onClick: !disabled ? handlerSwitchChange : undefined,
128
84
  disabled: disabled,
129
- backgroundType: backgroundType,
130
- hasLabel: hasLabel
131
- }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(SwitchBase, {
132
- labelPosition: labelPosition,
133
- hasLabel: hasLabel,
134
- htmlFor: labelId,
135
- onClick: disabled === true ? function () {} : handlerSwitchChange
136
- }, /*#__PURE__*/_react["default"].createElement(SwitchInput, {
85
+ label: label
86
+ }, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
137
87
  type: "checkbox",
138
- role: "switch",
139
88
  name: name,
140
- id: labelId,
141
- disabled: disabled,
89
+ "aria-hidden": true,
142
90
  value: value,
143
- "aria-labelledby": labelId,
144
- "aria-label": hasLabel ? label : undefined,
91
+ disabled: disabled,
92
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
93
+ readOnly: true
94
+ }), /*#__PURE__*/_react["default"].createElement(SwitchBase, null, /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
95
+ role: "switch",
145
96
  "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
146
- defaultChecked: defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : undefined,
147
- tabIndex: -1
148
- }), disabled ? /*#__PURE__*/_react["default"].createElement(DisabledSwitchTrack, {
149
- backgroundType: backgroundType,
150
- "data-checked": checked !== null && checked !== void 0 ? checked : innerChecked ? innerChecked : undefined,
151
- tabIndex: -1
152
- }) : /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
153
- backgroundType: backgroundType,
154
- "data-checked": checked !== null && checked !== void 0 ? checked : innerChecked ? innerChecked : undefined,
155
- tabIndex: tabIndex,
97
+ "aria-disabled": disabled,
98
+ disabled: disabled,
99
+ "aria-labelledby": labelId,
100
+ tabIndex: !disabled ? tabIndex : -1,
156
101
  ref: refTrack
157
- })), labelPosition === "after" && hasLabel && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
102
+ })), labelPosition === "after" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
158
103
  id: labelId,
159
104
  labelPosition: labelPosition,
160
- onClick: !disabled ? handlerSwitchChange : undefined,
161
105
  disabled: disabled,
162
- backgroundType: backgroundType,
163
- hasLabel: hasLabel
106
+ label: label
164
107
  }, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
165
- };
166
-
108
+ });
167
109
  var sizes = {
168
110
  small: "60px",
169
111
  medium: "240px",
170
112
  large: "480px",
171
113
  fillParent: "100%",
172
- fitContent: "unset"
114
+ fitContent: "fit-content"
173
115
  };
174
-
175
116
  var calculateWidth = function calculateWidth(margin, size) {
176
117
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
177
118
  };
178
-
179
- var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: ", ";\n height: 40px;\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
119
+ var getDisabledColor = function getDisabledColor(theme, element, subElement) {
120
+ switch (element) {
121
+ case "track":
122
+ switch (subElement) {
123
+ case "check":
124
+ return theme.disabledCheckedTrackBackgroundColor;
125
+ case "uncheck":
126
+ return theme.disabledUncheckedTrackBackgroundColor;
127
+ }
128
+ case "thumb":
129
+ switch (subElement) {
130
+ case "check":
131
+ return theme.disabledCheckedThumbBackgroundColor;
132
+ case "uncheck":
133
+ return theme.disabledUncheckedThumbBackgroundColor;
134
+ }
135
+ case "label":
136
+ return theme.disabledLabelFontColor;
137
+ }
138
+ };
139
+ var getNotDisabledColor = function getNotDisabledColor(theme, element, subElement) {
140
+ switch (element) {
141
+ case "track":
142
+ switch (subElement) {
143
+ case "check":
144
+ return theme.checkedTrackBackgroundColor;
145
+ case "uncheck":
146
+ return theme.uncheckedTrackBackgroundColor;
147
+ }
148
+ case "thumb":
149
+ switch (subElement) {
150
+ case "check":
151
+ return theme.checkedThumbBackgroundColor;
152
+ case "uncheck":
153
+ return theme.uncheckedThumbBackgroundColor;
154
+ }
155
+ case "label":
156
+ return theme.labelFontColor;
157
+ }
158
+ };
159
+ 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) {
180
160
  return calculateWidth(props.margin, props.size);
161
+ }, function (props) {
162
+ return props.disabled === true ? "not-allowed" : "pointer";
181
163
  }, function (props) {
182
164
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
183
165
  }, function (props) {
@@ -189,9 +171,8 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
189
171
  }, function (props) {
190
172
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
191
173
  });
192
-
193
- 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 cursor: ", ";\n\n ", ";\n\n ", "\n"])), function (props) {
194
- return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
174
+ 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) {
175
+ return props.disabled ? getDisabledColor(props.theme, "label") : getNotDisabledColor(props.theme, "label");
195
176
  }, function (props) {
196
177
  return props.theme.labelFontFamily;
197
178
  }, function (props) {
@@ -201,51 +182,33 @@ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_tem
201
182
  }, function (props) {
202
183
  return props.theme.labelFontWeight;
203
184
  }, function (props) {
204
- return props.disabled === true ? "not-allowed" : "pointer";
205
- }, function (props) {
206
- return !props.hasLabel ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
185
+ return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
207
186
  }, function (props) {
208
187
  return props.labelPosition === "before" && "order: -1";
209
188
  });
210
-
211
- 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: ", ";\n"])), function (props) {
212
- return !props.hasLabel ? "0px 4px" : props.labelPosition === "before" ? "0 4px 0 12px" : "0 12px 0 4px";
213
- });
214
-
215
- var SwitchInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0px;\n"])));
216
-
217
- var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n transition: transform 0.2s ease;\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 transition: transform 0.2s ease;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n z-index: 1;\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 &[data-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
189
+ 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"])));
190
+ var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
191
+ 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) {
218
192
  return props.theme.trackWidth;
219
193
  }, function (props) {
220
194
  return props.theme.trackHeight;
221
195
  }, function (props) {
222
- return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
196
+ return props.disabled ? "not-allowed" : "pointer";
197
+ }, function (props) {
198
+ return "".concat(props.theme.thumbFocusColor, " solid 2px");
223
199
  }, function (props) {
224
200
  return props.theme.thumbWidth;
225
201
  }, function (props) {
226
202
  return props.theme.thumbHeight;
227
203
  }, function (props) {
228
- return props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
229
- }, function (props) {
230
- return props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
231
- }, function (props) {
232
- return props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
233
- }, function (props) {
234
- return props.theme.thumbShift;
235
- }, function (props) {
236
- return props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
237
- });
238
-
239
- var DisabledSwitchTrack = (0, _styledComponents["default"])(SwitchTrack)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: not-allowed;\n\n /* Unchecked */\n background-color: ", ";\n\n ::before {\n background-color: ", ";\n }\n\n /* Checked */\n &[data-checked=\"true\"] {\n background-color: ", ";\n\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
240
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
204
+ return props.disabled ? getDisabledColor(props.theme, "thumb", "uncheck") : getNotDisabledColor(props.theme, "thumb", "uncheck");
241
205
  }, function (props) {
242
- return props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
206
+ return props.disabled ? getDisabledColor(props.theme, "track", "uncheck") : getNotDisabledColor(props.theme, "track", "uncheck");
243
207
  }, function (props) {
244
- return props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
208
+ return props.disabled ? getDisabledColor(props.theme, "track", "check") : getNotDisabledColor(props.theme, "track", "check");
245
209
  }, function (props) {
246
210
  return props.theme.thumbShift;
247
211
  }, function (props) {
248
- return props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
212
+ return props.disabled ? getDisabledColor(props.theme, "thumb", "check") : getNotDisabledColor(props.theme, "thumb", "check");
249
213
  });
250
- var _default = DxcSwitch;
251
- exports["default"] = _default;
214
+ var _default = exports["default"] = DxcSwitch;
@@ -1,15 +1,21 @@
1
1
  import React from "react";
2
2
  import DxcSwitch from "./Switch";
3
- import { BackgroundColorProvider } from "../BackgroundColorContext";
4
3
  import Title from "../../.storybook/components/Title";
5
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
- import DarkContainer from "../../.storybook/components/DarkSection";
5
+ import { HalstackProvider } from "../HalstackContext";
7
6
 
8
7
  export default {
9
8
  title: "Switch",
10
9
  component: DxcSwitch,
11
10
  };
12
11
 
12
+ const opinionatedTheme = {
13
+ switch: {
14
+ checkedBaseColor: "#5f249f",
15
+ fontColor: "#000000",
16
+ },
17
+ };
18
+
13
19
  export const Chromatic = () => (
14
20
  <>
15
21
  <ExampleContainer>
@@ -44,38 +50,6 @@ export const Chromatic = () => (
44
50
  <Title title="Disabled checked" theme="light" level={4} />
45
51
  <DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
46
52
  </ExampleContainer>
47
- <BackgroundColorProvider color="#333333">
48
- <DarkContainer>
49
- <ExampleContainer>
50
- <Title title="With label" theme="dark" level={4} />
51
- <DxcSwitch label="Switch" />
52
- </ExampleContainer>
53
- <ExampleContainer pseudoState="pseudo-focus-visible">
54
- <Title title="Focused" theme="dark" level={4} />
55
- <DxcSwitch label="Switch" labelPosition="after" />
56
- </ExampleContainer>
57
- <ExampleContainer>
58
- <Title title="Checked" theme="dark" level={4} />
59
- <DxcSwitch label="Switch" defaultChecked />
60
- </ExampleContainer>
61
- <ExampleContainer>
62
- <Title title="Optional" theme="dark" level={4} />
63
- <DxcSwitch label="Switch" optional />
64
- </ExampleContainer>
65
- <ExampleContainer>
66
- <Title title="Disabled" theme="dark" level={4} />
67
- <DxcSwitch label="Switch" disabled />
68
- </ExampleContainer>
69
- <ExampleContainer>
70
- <Title title="Disabled optional" theme="dark" level={4} />
71
- <DxcSwitch label="Switch" disabled optional labelPosition="after" />
72
- </ExampleContainer>
73
- <ExampleContainer>
74
- <Title title="Disabled checked" theme="dark" level={4} />
75
- <DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
76
- </ExampleContainer>
77
- </DarkContainer>
78
- </BackgroundColorProvider>
79
53
  <Title title="Margins" theme="light" level={2} />
80
54
  <ExampleContainer>
81
55
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -134,5 +108,30 @@ export const Chromatic = () => (
134
108
  <Title title="FitContent size" theme="light" level={4} />
135
109
  <DxcSwitch label="FitContent" size="fitContent" />
136
110
  </ExampleContainer>
111
+ <Title title="Opinionated theme" theme="light" level={2} />
112
+ <ExampleContainer>
113
+ <Title title="Checked" theme="light" level={4} />
114
+ <HalstackProvider theme={opinionatedTheme}>
115
+ <DxcSwitch label="Switch" defaultChecked />
116
+ </HalstackProvider>
117
+ </ExampleContainer>
118
+ <ExampleContainer>
119
+ <Title title="Default" theme="light" level={4} />
120
+ <HalstackProvider theme={opinionatedTheme}>
121
+ <DxcSwitch label="Switch" />
122
+ </HalstackProvider>
123
+ </ExampleContainer>
124
+ <ExampleContainer>
125
+ <Title title="Disabled" theme="light" level={4} />
126
+ <HalstackProvider theme={opinionatedTheme}>
127
+ <DxcSwitch label="Switch" disabled />
128
+ </HalstackProvider>
129
+ </ExampleContainer>
130
+ <ExampleContainer>
131
+ <Title title="Disabled checked" theme="light" level={4} />
132
+ <HalstackProvider theme={opinionatedTheme}>
133
+ <DxcSwitch label="Switch" disabled defaultChecked />
134
+ </HalstackProvider>
135
+ </ExampleContainer>
137
136
  </>
138
137
  );