@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c3c521c
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.
- package/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +5 -22
- package/HalstackContext.d.ts +1215 -6
- package/HalstackContext.js +125 -110
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -160
- package/accordion/Accordion.stories.tsx +102 -126
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +5 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +11 -16
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +47 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +20 -59
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +64 -63
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -60
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +89 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +63 -117
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +140 -182
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.js +39 -79
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +16 -31
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1367 -0
- package/common/variables.js +909 -1140
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +150 -299
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +73 -107
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -300
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +67 -0
- package/dropdown/types.d.ts +32 -14
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +241 -355
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +369 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +45 -96
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +70 -117
- package/footer/Footer.stories.tsx +60 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- package/footer/types.d.ts +25 -26
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +85 -168
- package/header/Header.stories.tsx +118 -39
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +5 -19
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +13 -21
- package/inset/Inset.stories.tsx +5 -4
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +50 -115
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +21 -32
- package/link/Link.js +25 -46
- package/link/Link.stories.tsx +73 -6
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +12 -13
- package/main.js +45 -103
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +28 -60
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
- package/nav-tabs/Tab.js +118 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +701 -377
- package/number-input/types.d.ts +11 -5
- package/package.json +43 -46
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +23 -59
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +253 -226
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +27 -45
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.js +67 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.js +159 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +101 -144
- package/{resultsetTable → resultset-table}/types.d.ts +7 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.js +17 -49
- package/select/Option.js +27 -50
- package/select/Select.js +132 -202
- package/select/Select.stories.tsx +497 -152
- package/select/Select.test.js +1966 -1758
- package/select/types.d.ts +16 -19
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +127 -78
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +148 -181
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.js +31 -75
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +145 -126
- package/switch/Switch.stories.tsx +37 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/Table.js +8 -30
- package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
- package/table/Table.test.js +3 -8
- package/table/types.d.ts +8 -8
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +116 -0
- package/tabs/Tabs.js +314 -141
- package/tabs/Tabs.stories.tsx +120 -6
- package/tabs/Tabs.test.js +223 -69
- package/tabs/types.d.ts +28 -18
- package/tag/Tag.js +29 -61
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +308 -506
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1402 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.js +70 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +92 -106
- package/toggle-group/ToggleGroup.stories.tsx +49 -4
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1119 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.js +24 -66
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +7 -7
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/inline/Inline.d.ts +0 -4
- package/inline/Inline.js +0 -54
- package/inline/Inline.stories.tsx +0 -264
- package/inline/types.d.ts +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -89
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/ResultsetTable.js +0 -254
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -4
- package/stack/Stack.js +0 -50
- package/stack/Stack.stories.tsx +0 -225
- package/stack/types.d.ts +0 -28
- package/tabs-nav/Tab.js +0 -132
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{inline → action-icon}/types.js +0 -0
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → grid}/types.js +0 -0
- /package/{tabs-nav → image}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/switch/Switch.js
CHANGED
|
@@ -1,136 +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
|
-
var _core = require("@material-ui/core");
|
|
23
|
-
|
|
24
14
|
var _uuid = require("uuid");
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
var _utils = require("../common/utils.js");
|
|
29
|
-
|
|
15
|
+
var _variables = require("../common/variables");
|
|
16
|
+
var _utils = require("../common/utils");
|
|
30
17
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
31
|
-
|
|
32
18
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
33
|
-
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
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); }
|
|
39
|
-
|
|
40
|
-
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; }
|
|
41
|
-
|
|
42
|
-
var DxcSwitch = function DxcSwitch(_ref) {
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
|
|
65
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
47
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
48
|
+
innerChecked = _useState4[0],
|
|
49
|
+
setInnerChecked = _useState4[1];
|
|
74
50
|
var colorsTheme = (0, _useTheme["default"])();
|
|
75
51
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
76
|
-
var
|
|
77
|
-
|
|
52
|
+
var refTrack = (0, _react.useRef)(null);
|
|
53
|
+
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
54
|
+
switch (event.key) {
|
|
55
|
+
case "Enter":
|
|
56
|
+
case " ":
|
|
57
|
+
// Space
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
refTrack.current.focus();
|
|
60
|
+
var isChecked = !(checked !== null && checked !== void 0 ? checked : innerChecked);
|
|
61
|
+
setInnerChecked(isChecked);
|
|
62
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
78
66
|
var handlerSwitchChange = function handlerSwitchChange(event) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
setInnerChecked(isChecked);
|
|
84
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
|
|
85
|
-
} else onChange === null || onChange === void 0 ? void 0 : onChange(!checked);
|
|
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);
|
|
86
71
|
};
|
|
87
|
-
|
|
88
|
-
var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
89
|
-
id: labelId,
|
|
90
|
-
labelPosition: labelPosition,
|
|
91
|
-
onClick: !disabled && handlerSwitchChange,
|
|
92
|
-
disabled: disabled,
|
|
93
|
-
backgroundType: backgroundType
|
|
94
|
-
}, labelPosition === "before" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, label, " ", optional && /*#__PURE__*/_react["default"].createElement("span", null, translatedLabels.formFields.optionalLabel)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, optional && /*#__PURE__*/_react["default"].createElement("span", null, translatedLabels.formFields.optionalLabel), " ", label));
|
|
95
|
-
|
|
96
72
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
97
73
|
theme: colorsTheme["switch"]
|
|
98
74
|
}, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
|
|
99
75
|
margin: margin,
|
|
76
|
+
size: size,
|
|
77
|
+
onKeyDown: handleOnKeyDown,
|
|
100
78
|
disabled: disabled,
|
|
79
|
+
onClick: !disabled ? handlerSwitchChange : undefined,
|
|
80
|
+
ref: ref
|
|
81
|
+
}, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
82
|
+
id: labelId,
|
|
101
83
|
labelPosition: labelPosition,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
"aria-labelledby": labelId,
|
|
109
|
-
role: "switch",
|
|
110
|
-
"aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
111
|
-
tabIndex: tabIndex
|
|
112
|
-
},
|
|
113
|
-
onChange: handlerSwitchChange,
|
|
84
|
+
disabled: disabled,
|
|
85
|
+
label: label
|
|
86
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
87
|
+
type: "checkbox",
|
|
88
|
+
name: name,
|
|
89
|
+
"aria-hidden": true,
|
|
114
90
|
value: value,
|
|
115
91
|
disabled: disabled,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
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",
|
|
96
|
+
"aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
97
|
+
"aria-disabled": disabled,
|
|
98
|
+
disabled: disabled,
|
|
99
|
+
"aria-labelledby": labelId,
|
|
100
|
+
tabIndex: !disabled ? tabIndex : -1,
|
|
101
|
+
ref: refTrack
|
|
102
|
+
})), labelPosition === "after" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
103
|
+
id: labelId,
|
|
104
|
+
labelPosition: labelPosition,
|
|
105
|
+
disabled: disabled,
|
|
106
|
+
label: label
|
|
107
|
+
}, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
|
|
108
|
+
});
|
|
120
109
|
var sizes = {
|
|
121
110
|
small: "60px",
|
|
122
111
|
medium: "240px",
|
|
123
112
|
large: "480px",
|
|
124
113
|
fillParent: "100%",
|
|
125
|
-
fitContent: "
|
|
114
|
+
fitContent: "fit-content"
|
|
126
115
|
};
|
|
127
|
-
|
|
128
116
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
129
117
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
130
118
|
};
|
|
131
|
-
|
|
132
|
-
|
|
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) {
|
|
133
160
|
return calculateWidth(props.margin, props.size);
|
|
161
|
+
}, function (props) {
|
|
162
|
+
return props.disabled === true ? "not-allowed" : "pointer";
|
|
134
163
|
}, function (props) {
|
|
135
164
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
136
165
|
}, function (props) {
|
|
@@ -141,55 +170,45 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
|
|
|
141
170
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
142
171
|
}, function (props) {
|
|
143
172
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
173
|
+
});
|
|
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");
|
|
144
176
|
}, function (props) {
|
|
145
|
-
return props.
|
|
146
|
-
}, function (props) {
|
|
147
|
-
return props.theme.trackWidth;
|
|
148
|
-
}, function (props) {
|
|
149
|
-
return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
|
|
150
|
-
}, function (props) {
|
|
151
|
-
return props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
|
|
152
|
-
}, function (props) {
|
|
153
|
-
return props.theme.trackHeight;
|
|
154
|
-
}, function (props) {
|
|
155
|
-
return props.theme.thumbWidth;
|
|
156
|
-
}, function (props) {
|
|
157
|
-
return props.theme.thumbHeight;
|
|
177
|
+
return props.theme.labelFontFamily;
|
|
158
178
|
}, function (props) {
|
|
159
|
-
return props.
|
|
179
|
+
return props.theme.labelFontSize;
|
|
160
180
|
}, function (props) {
|
|
161
|
-
return props.
|
|
181
|
+
return props.disabled ? props.theme.disabledLabelFontStyle : props.theme.labelFontStyle;
|
|
162
182
|
}, function (props) {
|
|
163
|
-
return props.
|
|
183
|
+
return props.theme.labelFontWeight;
|
|
164
184
|
}, function (props) {
|
|
165
|
-
return props.
|
|
185
|
+
return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
|
|
166
186
|
}, function (props) {
|
|
167
|
-
return props.
|
|
187
|
+
return props.labelPosition === "before" && "order: -1";
|
|
188
|
+
});
|
|
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) {
|
|
192
|
+
return props.theme.trackWidth;
|
|
168
193
|
}, function (props) {
|
|
169
|
-
return props.
|
|
194
|
+
return props.theme.trackHeight;
|
|
170
195
|
}, function (props) {
|
|
171
|
-
return props.
|
|
196
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
172
197
|
}, function (props) {
|
|
173
|
-
return
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
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"])), function (props) {
|
|
177
|
-
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
198
|
+
return "".concat(props.theme.thumbFocusColor, " solid 2px");
|
|
178
199
|
}, function (props) {
|
|
179
|
-
return props.theme.
|
|
200
|
+
return props.theme.thumbWidth;
|
|
180
201
|
}, function (props) {
|
|
181
|
-
return props.theme.
|
|
202
|
+
return props.theme.thumbHeight;
|
|
182
203
|
}, function (props) {
|
|
183
|
-
return props.disabled ? props.theme
|
|
204
|
+
return props.disabled ? getDisabledColor(props.theme, "thumb", "uncheck") : getNotDisabledColor(props.theme, "thumb", "uncheck");
|
|
184
205
|
}, function (props) {
|
|
185
|
-
return props.theme.
|
|
206
|
+
return props.disabled ? getDisabledColor(props.theme, "track", "uncheck") : getNotDisabledColor(props.theme, "track", "uncheck");
|
|
186
207
|
}, function (props) {
|
|
187
|
-
return props.disabled
|
|
208
|
+
return props.disabled ? getDisabledColor(props.theme, "track", "check") : getNotDisabledColor(props.theme, "track", "check");
|
|
188
209
|
}, function (props) {
|
|
189
|
-
return props.
|
|
210
|
+
return props.theme.thumbShift;
|
|
190
211
|
}, function (props) {
|
|
191
|
-
return props.
|
|
212
|
+
return props.disabled ? getDisabledColor(props.theme, "thumb", "check") : getNotDisabledColor(props.theme, "thumb", "check");
|
|
192
213
|
});
|
|
193
|
-
|
|
194
|
-
var _default = DxcSwitch;
|
|
195
|
-
exports["default"] = _default;
|
|
214
|
+
var _default = exports["default"] = DxcSwitch;
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { userEvent, within } from "@storybook/testing-library";
|
|
3
2
|
import DxcSwitch from "./Switch";
|
|
4
|
-
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
5
3
|
import Title from "../../.storybook/components/Title";
|
|
6
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
7
|
-
import
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
8
6
|
|
|
9
7
|
export default {
|
|
10
8
|
title: "Switch",
|
|
11
9
|
component: DxcSwitch,
|
|
12
10
|
};
|
|
13
11
|
|
|
12
|
+
const opinionatedTheme = {
|
|
13
|
+
switch: {
|
|
14
|
+
checkedBaseColor: "#5f249f",
|
|
15
|
+
fontColor: "#000000",
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
|
|
14
19
|
export const Chromatic = () => (
|
|
15
20
|
<>
|
|
16
21
|
<ExampleContainer>
|
|
@@ -21,6 +26,10 @@ export const Chromatic = () => (
|
|
|
21
26
|
<Title title="Without label" theme="light" level={4} />
|
|
22
27
|
<DxcSwitch />
|
|
23
28
|
</ExampleContainer>
|
|
29
|
+
<ExampleContainer pseudoState="pseudo-focus-visible">
|
|
30
|
+
<Title title="Focused" theme="light" level={4} />
|
|
31
|
+
<DxcSwitch label="Switch" labelPosition="after" />
|
|
32
|
+
</ExampleContainer>
|
|
24
33
|
<ExampleContainer>
|
|
25
34
|
<Title title="Checked" theme="light" level={4} />
|
|
26
35
|
<DxcSwitch label="Switch" defaultChecked />
|
|
@@ -41,34 +50,6 @@ export const Chromatic = () => (
|
|
|
41
50
|
<Title title="Disabled checked" theme="light" level={4} />
|
|
42
51
|
<DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
|
|
43
52
|
</ExampleContainer>
|
|
44
|
-
<BackgroundColorProvider color="#333333">
|
|
45
|
-
<DarkContainer>
|
|
46
|
-
<ExampleContainer>
|
|
47
|
-
<Title title="With label" theme="dark" level={4} />
|
|
48
|
-
<DxcSwitch label="Switch" />
|
|
49
|
-
</ExampleContainer>
|
|
50
|
-
<ExampleContainer>
|
|
51
|
-
<Title title="Checked" theme="dark" level={4} />
|
|
52
|
-
<DxcSwitch label="Switch" defaultChecked />
|
|
53
|
-
</ExampleContainer>
|
|
54
|
-
<ExampleContainer>
|
|
55
|
-
<Title title="Optional" theme="dark" level={4} />
|
|
56
|
-
<DxcSwitch label="Switch" optional />
|
|
57
|
-
</ExampleContainer>
|
|
58
|
-
<ExampleContainer>
|
|
59
|
-
<Title title="Disabled" theme="dark" level={4} />
|
|
60
|
-
<DxcSwitch label="Switch" disabled />
|
|
61
|
-
</ExampleContainer>
|
|
62
|
-
<ExampleContainer>
|
|
63
|
-
<Title title="Disabled optional" theme="dark" level={4} />
|
|
64
|
-
<DxcSwitch label="Switch" disabled optional labelPosition="after" />
|
|
65
|
-
</ExampleContainer>
|
|
66
|
-
<ExampleContainer>
|
|
67
|
-
<Title title="Disabled checked" theme="dark" level={4} />
|
|
68
|
-
<DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
|
|
69
|
-
</ExampleContainer>
|
|
70
|
-
</DarkContainer>
|
|
71
|
-
</BackgroundColorProvider>
|
|
72
53
|
<Title title="Margins" theme="light" level={2} />
|
|
73
54
|
<ExampleContainer>
|
|
74
55
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
@@ -127,34 +108,30 @@ export const Chromatic = () => (
|
|
|
127
108
|
<Title title="FitContent size" theme="light" level={4} />
|
|
128
109
|
<DxcSwitch label="FitContent" size="fitContent" />
|
|
129
110
|
</ExampleContainer>
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
FocusedSwitch.play = async ({ canvasElement }) => {
|
|
141
|
-
const canvas = within(canvasElement);
|
|
142
|
-
canvas.getByRole("switch").focus();
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
const DarkSwitch = () => (
|
|
146
|
-
<BackgroundColorProvider color="#333333">
|
|
147
|
-
<DarkContainer>
|
|
148
|
-
<ExampleContainer>
|
|
149
|
-
<Title title="Focused" theme="dark" level={4} />
|
|
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}>
|
|
150
121
|
<DxcSwitch label="Switch" />
|
|
151
|
-
</
|
|
152
|
-
</
|
|
153
|
-
|
|
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>
|
|
136
|
+
</>
|
|
154
137
|
);
|
|
155
|
-
|
|
156
|
-
export const FocusedSwitchOnDark = DarkSwitch.bind({});
|
|
157
|
-
FocusedSwitchOnDark.play = async ({ canvasElement }) => {
|
|
158
|
-
const canvas = within(canvasElement);
|
|
159
|
-
canvas.getByRole("switch").focus();
|
|
160
|
-
};
|