@dxc-technology/halstack-react 0.0.0-f53e801 → 0.0.0-f6290b3

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 (313) 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 +116 -160
  8. package/accordion/Accordion.stories.tsx +101 -125
  9. package/accordion/Accordion.test.js +25 -41
  10. package/accordion/types.d.ts +5 -16
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +30 -98
  13. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  14. package/accordion-group/AccordionGroup.test.js +52 -105
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +11 -16
  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 +927 -1164
  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/divider/Divider.d.ts +4 -0
  98. package/divider/Divider.js +36 -0
  99. package/divider/Divider.stories.tsx +223 -0
  100. package/divider/Divider.test.js +38 -0
  101. package/divider/types.d.ts +19 -0
  102. package/divider/types.js +5 -0
  103. package/dropdown/Dropdown.js +81 -132
  104. package/dropdown/Dropdown.stories.tsx +210 -84
  105. package/dropdown/Dropdown.test.js +410 -402
  106. package/dropdown/DropdownMenu.js +20 -37
  107. package/dropdown/DropdownMenuItem.js +10 -35
  108. package/dropdown/types.d.ts +18 -20
  109. package/file-input/FileInput.d.ts +2 -2
  110. package/file-input/FileInput.js +241 -355
  111. package/file-input/FileInput.stories.tsx +123 -12
  112. package/file-input/FileInput.test.js +369 -367
  113. package/file-input/FileItem.d.ts +4 -14
  114. package/file-input/FileItem.js +45 -96
  115. package/file-input/types.d.ts +25 -8
  116. package/flex/Flex.d.ts +1 -1
  117. package/flex/Flex.js +40 -40
  118. package/flex/Flex.stories.tsx +35 -26
  119. package/flex/types.d.ts +84 -8
  120. package/footer/Footer.d.ts +1 -1
  121. package/footer/Footer.js +70 -117
  122. package/footer/Footer.stories.tsx +60 -19
  123. package/footer/Footer.test.js +33 -57
  124. package/footer/Icons.d.ts +3 -2
  125. package/footer/Icons.js +66 -7
  126. package/footer/types.d.ts +25 -26
  127. package/grid/Grid.d.ts +7 -0
  128. package/grid/Grid.js +76 -0
  129. package/grid/Grid.stories.tsx +219 -0
  130. package/grid/types.d.ts +115 -0
  131. package/grid/types.js +5 -0
  132. package/header/Header.d.ts +4 -3
  133. package/header/Header.js +48 -133
  134. package/header/Header.stories.tsx +118 -39
  135. package/header/Header.test.js +13 -26
  136. package/header/Icons.d.ts +2 -2
  137. package/header/Icons.js +2 -7
  138. package/header/types.d.ts +7 -21
  139. package/heading/Heading.js +10 -32
  140. package/heading/Heading.test.js +71 -88
  141. package/heading/types.d.ts +7 -7
  142. package/image/Image.d.ts +4 -0
  143. package/image/Image.js +70 -0
  144. package/image/Image.stories.tsx +129 -0
  145. package/image/types.d.ts +72 -0
  146. package/image/types.js +5 -0
  147. package/inset/Inset.js +13 -21
  148. package/inset/Inset.stories.tsx +2 -1
  149. package/inset/types.d.ts +2 -2
  150. package/layout/ApplicationLayout.d.ts +5 -5
  151. package/layout/ApplicationLayout.js +29 -66
  152. package/layout/ApplicationLayout.stories.tsx +2 -1
  153. package/layout/Icons.d.ts +8 -5
  154. package/layout/Icons.js +51 -59
  155. package/layout/SidenavContext.d.ts +1 -1
  156. package/layout/SidenavContext.js +3 -9
  157. package/layout/types.d.ts +5 -6
  158. package/link/Link.js +25 -46
  159. package/link/Link.stories.tsx +60 -0
  160. package/link/Link.test.js +24 -44
  161. package/link/types.d.ts +14 -14
  162. package/main.d.ts +9 -5
  163. package/main.js +40 -59
  164. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  165. package/{tabs-nav → nav-tabs}/NavTabs.js +23 -55
  166. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  167. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  168. package/nav-tabs/Tab.js +118 -0
  169. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  170. package/nav-tabs/types.js +5 -0
  171. package/number-input/NumberInput.d.ts +7 -0
  172. package/number-input/NumberInput.js +47 -37
  173. package/number-input/NumberInput.stories.tsx +42 -26
  174. package/number-input/NumberInput.test.js +860 -377
  175. package/number-input/types.d.ts +11 -5
  176. package/package.json +39 -42
  177. package/paginator/Icons.d.ts +5 -0
  178. package/paginator/Icons.js +21 -47
  179. package/paginator/Paginator.js +23 -59
  180. package/paginator/Paginator.stories.tsx +24 -0
  181. package/paginator/Paginator.test.js +253 -226
  182. package/paginator/types.d.ts +3 -3
  183. package/paragraph/Paragraph.d.ts +3 -4
  184. package/paragraph/Paragraph.js +6 -22
  185. package/paragraph/Paragraph.stories.tsx +0 -17
  186. package/password-input/Icons.d.ts +6 -0
  187. package/password-input/Icons.js +35 -0
  188. package/password-input/PasswordInput.js +57 -126
  189. package/password-input/PasswordInput.stories.tsx +1 -33
  190. package/password-input/PasswordInput.test.js +160 -142
  191. package/password-input/types.d.ts +8 -7
  192. package/progress-bar/ProgressBar.d.ts +2 -2
  193. package/progress-bar/ProgressBar.js +23 -55
  194. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  195. package/progress-bar/ProgressBar.test.js +36 -53
  196. package/progress-bar/types.d.ts +4 -3
  197. package/quick-nav/QuickNav.js +15 -39
  198. package/quick-nav/QuickNav.stories.tsx +112 -20
  199. package/quick-nav/types.d.ts +10 -10
  200. package/radio-group/Radio.d.ts +1 -1
  201. package/radio-group/Radio.js +59 -76
  202. package/radio-group/RadioGroup.js +59 -105
  203. package/radio-group/RadioGroup.stories.tsx +132 -18
  204. package/radio-group/RadioGroup.test.js +518 -457
  205. package/radio-group/types.d.ts +10 -10
  206. package/resultset-table/Icons.d.ts +7 -0
  207. package/resultset-table/Icons.js +47 -0
  208. package/resultset-table/ResultsetTable.d.ts +7 -0
  209. package/resultset-table/ResultsetTable.js +166 -0
  210. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +152 -30
  211. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +167 -144
  212. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  213. package/resultset-table/types.js +5 -0
  214. package/select/Icons.d.ts +7 -7
  215. package/select/Icons.js +1 -5
  216. package/select/Listbox.d.ts +1 -1
  217. package/select/Listbox.js +17 -73
  218. package/select/Option.js +27 -50
  219. package/select/Select.js +123 -176
  220. package/select/Select.stories.tsx +497 -153
  221. package/select/Select.test.js +1970 -1775
  222. package/select/types.d.ts +16 -17
  223. package/sidenav/Icons.d.ts +7 -0
  224. package/sidenav/Icons.js +47 -0
  225. package/sidenav/Sidenav.d.ts +2 -2
  226. package/sidenav/Sidenav.js +82 -153
  227. package/sidenav/Sidenav.stories.tsx +165 -63
  228. package/sidenav/Sidenav.test.js +3 -10
  229. package/sidenav/types.d.ts +31 -28
  230. package/slider/Slider.d.ts +2 -2
  231. package/slider/Slider.js +146 -179
  232. package/slider/Slider.test.js +164 -97
  233. package/slider/types.d.ts +7 -3
  234. package/spinner/Spinner.js +31 -75
  235. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  236. package/spinner/Spinner.test.js +26 -35
  237. package/spinner/types.d.ts +3 -3
  238. package/status-light/StatusLight.d.ts +4 -0
  239. package/status-light/StatusLight.js +51 -0
  240. package/status-light/StatusLight.stories.tsx +74 -0
  241. package/status-light/StatusLight.test.js +25 -0
  242. package/status-light/types.d.ts +17 -0
  243. package/status-light/types.js +5 -0
  244. package/switch/Switch.d.ts +3 -3
  245. package/switch/Switch.js +113 -150
  246. package/switch/Switch.stories.tsx +33 -34
  247. package/switch/Switch.test.js +70 -102
  248. package/switch/types.d.ts +8 -3
  249. package/table/DropdownTheme.js +62 -0
  250. package/table/Table.d.ts +6 -2
  251. package/table/Table.js +87 -35
  252. package/table/Table.stories.tsx +658 -0
  253. package/table/Table.test.js +95 -8
  254. package/table/types.d.ts +48 -6
  255. package/tabs/Tab.d.ts +4 -0
  256. package/tabs/Tab.js +116 -0
  257. package/tabs/Tabs.js +314 -141
  258. package/tabs/Tabs.stories.tsx +120 -6
  259. package/tabs/Tabs.test.js +223 -69
  260. package/tabs/types.d.ts +28 -18
  261. package/tag/Tag.js +29 -61
  262. package/tag/Tag.stories.tsx +14 -1
  263. package/tag/Tag.test.js +20 -31
  264. package/tag/types.d.ts +7 -7
  265. package/text-input/Icons.d.ts +8 -0
  266. package/text-input/Icons.js +56 -0
  267. package/text-input/Suggestion.js +40 -28
  268. package/text-input/Suggestions.d.ts +4 -0
  269. package/text-input/Suggestions.js +84 -0
  270. package/text-input/TextInput.js +301 -497
  271. package/text-input/TextInput.stories.tsx +266 -274
  272. package/text-input/TextInput.test.js +1419 -1375
  273. package/text-input/types.d.ts +43 -16
  274. package/textarea/Textarea.js +70 -113
  275. package/textarea/Textarea.stories.tsx +174 -0
  276. package/textarea/Textarea.test.js +152 -183
  277. package/textarea/types.d.ts +9 -5
  278. package/toggle-group/ToggleGroup.d.ts +2 -2
  279. package/toggle-group/ToggleGroup.js +92 -106
  280. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  281. package/toggle-group/ToggleGroup.test.js +69 -88
  282. package/toggle-group/types.d.ts +26 -17
  283. package/typography/Typography.d.ts +2 -2
  284. package/typography/Typography.js +15 -123
  285. package/typography/Typography.stories.tsx +1 -1
  286. package/typography/types.d.ts +1 -1
  287. package/useTheme.d.ts +1147 -1
  288. package/useTheme.js +2 -9
  289. package/useTranslatedLabels.d.ts +84 -1
  290. package/useTranslatedLabels.js +1 -7
  291. package/utils/BaseTypography.d.ts +21 -0
  292. package/utils/BaseTypography.js +94 -0
  293. package/utils/FocusLock.d.ts +13 -0
  294. package/utils/FocusLock.js +124 -0
  295. package/wizard/Wizard.js +16 -51
  296. package/wizard/Wizard.stories.tsx +20 -0
  297. package/wizard/Wizard.test.js +54 -81
  298. package/wizard/types.d.ts +9 -10
  299. package/card/ice-cream.jpg +0 -0
  300. package/common/RequiredComponent.js +0 -32
  301. package/number-input/NumberInputContext.d.ts +0 -4
  302. package/number-input/NumberInputContext.js +0 -19
  303. package/number-input/numberInputContextTypes.d.ts +0 -19
  304. package/resultsetTable/ResultsetTable.d.ts +0 -4
  305. package/resultsetTable/ResultsetTable.js +0 -254
  306. package/slider/Slider.stories.tsx +0 -177
  307. package/table/Table.stories.jsx +0 -277
  308. package/tabs-nav/Tab.js +0 -130
  309. package/textarea/Textarea.stories.jsx +0 -157
  310. /package/{resultsetTable → action-icon}/types.js +0 -0
  311. /package/{tabs-nav → container}/types.js +0 -0
  312. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  313. /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
  );