@dxc-technology/halstack-react 0.0.0-b9523dd → 0.0.0-b98c25c
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 +10 -0
- package/BackgroundColorContext.js +1 -4
- package/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +124 -137
- package/accordion/Accordion.stories.tsx +306 -0
- package/accordion/Accordion.test.js +71 -0
- package/accordion/types.d.ts +12 -11
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +16 -37
- package/accordion-group/AccordionGroup.stories.tsx +251 -0
- package/accordion-group/AccordionGroup.test.js +126 -0
- package/accordion-group/types.d.ts +17 -10
- package/alert/Alert.js +7 -4
- package/alert/Alert.stories.tsx +170 -0
- package/alert/Alert.test.js +92 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +6 -4
- package/badge/types.d.ts +5 -0
- package/{radio → badge}/types.js +0 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +51 -0
- package/bleed/Bleed.stories.tsx +341 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- package/box/Box.d.ts +4 -0
- package/box/Box.js +29 -65
- package/box/{Box.stories.jsx → Box.stories.tsx} +0 -0
- package/box/Box.test.js +18 -0
- package/box/types.d.ts +44 -0
- package/box/types.js +5 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/bulleted-list/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +62 -83
- package/button/Button.stories.tsx +231 -241
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +10 -14
- package/card/Card.js +26 -30
- package/card/Card.stories.tsx +201 -0
- package/card/Card.test.js +50 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +5 -6
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +104 -108
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/Checkbox.test.js +155 -0
- package/checkbox/types.d.ts +11 -7
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +16 -76
- package/chip/Chip.stories.tsx +119 -0
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/variables.js +319 -380
- package/date-input/DateInput.js +66 -55
- package/date-input/DateInput.stories.tsx +138 -0
- package/date-input/DateInput.test.js +479 -0
- package/date-input/types.d.ts +16 -9
- package/dialog/Dialog.js +50 -53
- package/dialog/Dialog.stories.tsx +267 -0
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -273
- package/dropdown/Dropdown.stories.tsx +312 -0
- package/dropdown/Dropdown.test.js +591 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +30 -19
- package/file-input/FileInput.d.ts +4 -0
- package/file-input/FileInput.js +172 -111
- package/file-input/FileInput.stories.tsx +507 -0
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.d.ts +14 -0
- package/file-input/FileItem.js +16 -23
- package/file-input/types.d.ts +112 -0
- package/file-input/types.js +5 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +21 -0
- package/flex/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +32 -113
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +4 -4
- package/footer/types.d.ts +23 -18
- package/header/Header.js +97 -116
- package/header/Header.stories.tsx +172 -0
- package/header/Header.test.js +79 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +7 -4
- package/heading/Heading.d.ts +4 -0
- package/heading/Heading.js +7 -24
- package/heading/Heading.stories.tsx +54 -0
- package/heading/Heading.test.js +186 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +51 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +20 -0
- package/layout/ApplicationLayout.js +71 -135
- package/layout/ApplicationLayout.stories.tsx +162 -0
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +42 -0
- package/layout/types.js +5 -0
- package/link/Link.d.ts +4 -0
- package/link/Link.js +60 -107
- package/link/Link.stories.tsx +193 -0
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +54 -0
- package/link/types.js +5 -0
- package/main.d.ts +12 -12
- package/main.js +64 -58
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +16 -68
- package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +5 -5
- package/number-input/NumberInput.test.js +506 -0
- package/number-input/NumberInputContext.d.ts +4 -0
- package/number-input/NumberInputContext.js +5 -2
- package/number-input/numberInputContextTypes.d.ts +19 -0
- package/number-input/numberInputContextTypes.js +5 -0
- package/number-input/types.d.ts +124 -0
- package/number-input/types.js +5 -0
- package/package.json +16 -12
- package/paginator/Paginator.js +19 -46
- package/paginator/Paginator.test.js +308 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/password-input/PasswordInput.js +22 -55
- package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +3 -3
- package/password-input/PasswordInput.test.js +180 -0
- package/password-input/types.d.ts +110 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +59 -53
- package/progress-bar/ProgressBar.stories.jsx +60 -0
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +115 -0
- package/quick-nav/QuickNav.stories.tsx +300 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +156 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +279 -0
- package/radio-group/RadioGroup.stories.tsx +101 -0
- package/radio-group/RadioGroup.test.js +665 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +9 -29
- package/resultsetTable/ResultsetTable.stories.tsx +275 -0
- package/resultsetTable/ResultsetTable.test.js +348 -0
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +198 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +158 -380
- package/select/Select.stories.tsx +627 -0
- package/select/Select.test.js +2175 -0
- package/select/types.d.ts +210 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +10 -0
- package/sidenav/Sidenav.js +186 -63
- package/sidenav/Sidenav.stories.tsx +180 -0
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +73 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +145 -109
- package/slider/Slider.stories.tsx +183 -0
- package/slider/Slider.test.js +250 -0
- package/slider/types.d.ts +8 -9
- package/spinner/Spinner.js +3 -3
- package/spinner/Spinner.stories.jsx +1 -0
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +149 -67
- package/switch/Switch.stories.tsx +138 -0
- package/switch/Switch.test.js +225 -0
- package/switch/types.d.ts +9 -6
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +2 -1
- package/table/Table.test.js +26 -0
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +364 -108
- package/tabs/Tabs.stories.tsx +186 -0
- package/tabs/Tabs.test.js +351 -0
- package/tabs/types.d.ts +41 -20
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +21 -52
- package/tag/{Tag.stories.jsx → Tag.stories.tsx} +26 -29
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +69 -0
- package/tag/types.js +5 -0
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +57 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +166 -328
- package/text-input/TextInput.stories.tsx +481 -0
- package/text-input/TextInput.test.js +1713 -0
- package/text-input/types.d.ts +192 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +39 -79
- package/textarea/Textarea.stories.jsx +37 -15
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +137 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +4 -0
- package/toggle-group/ToggleGroup.js +18 -46
- package/toggle-group/ToggleGroup.stories.tsx +173 -0
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +105 -0
- package/toggle-group/types.js +5 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -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 +2 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.d.ts +4 -0
- package/wizard/Wizard.js +118 -104
- package/wizard/Wizard.stories.tsx +233 -0
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +65 -0
- package/wizard/types.js +5 -0
- package/ThemeContext.js +0 -246
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/box/index.d.ts +0 -25
- package/chip/index.d.ts +0 -22
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/file-input/index.d.ts +0 -81
- package/heading/index.d.ts +0 -17
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/link/index.d.ts +0 -23
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/sidenav/index.d.ts +0 -13
- package/tag/index.d.ts +0 -24
- package/text-input/index.d.ts +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/toggle-group/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
- package/wizard/index.d.ts +0 -18
package/switch/Switch.js
CHANGED
|
@@ -19,26 +19,27 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
|
|
22
|
+
var _uuid = require("uuid");
|
|
25
23
|
|
|
26
24
|
var _variables = require("../common/variables.js");
|
|
27
25
|
|
|
28
26
|
var _utils = require("../common/utils.js");
|
|
29
27
|
|
|
30
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
28
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
29
|
+
|
|
30
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
31
31
|
|
|
32
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext
|
|
32
|
+
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
33
33
|
|
|
34
|
-
var _templateObject, _templateObject2;
|
|
34
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
35
35
|
|
|
36
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
37
|
|
|
38
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
39
|
|
|
40
40
|
var DxcSwitch = function DxcSwitch(_ref) {
|
|
41
|
-
var
|
|
41
|
+
var defaultChecked = _ref.defaultChecked,
|
|
42
|
+
checked = _ref.checked,
|
|
42
43
|
value = _ref.value,
|
|
43
44
|
_ref$label = _ref.label,
|
|
44
45
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
@@ -48,57 +49,90 @@ var DxcSwitch = function DxcSwitch(_ref) {
|
|
|
48
49
|
name = _ref$name === void 0 ? "" : _ref$name,
|
|
49
50
|
_ref$disabled = _ref.disabled,
|
|
50
51
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
52
|
+
_ref$optional = _ref.optional,
|
|
53
|
+
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
51
54
|
onChange = _ref.onChange,
|
|
52
|
-
_ref$required = _ref.required,
|
|
53
|
-
required = _ref$required === void 0 ? false : _ref$required,
|
|
54
55
|
margin = _ref.margin,
|
|
55
56
|
_ref$size = _ref.size,
|
|
56
57
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
57
58
|
_ref$tabIndex = _ref.tabIndex,
|
|
58
59
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
59
60
|
|
|
60
|
-
var _useState = (0, _react.useState)(
|
|
61
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState,
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
|
|
62
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
63
|
+
switchId = _useState2[0];
|
|
64
|
+
|
|
65
|
+
var labelId = "label-".concat(switchId);
|
|
66
|
+
|
|
67
|
+
var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
|
|
68
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
69
|
+
innerChecked = _useState4[0],
|
|
70
|
+
setInnerChecked = _useState4[1];
|
|
64
71
|
|
|
65
72
|
var colorsTheme = (0, _useTheme["default"])();
|
|
73
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
66
74
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
75
|
+
var refTrack = (0, _react.useRef)(null);
|
|
67
76
|
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
78
|
+
switch (event.key) {
|
|
79
|
+
case "Enter":
|
|
80
|
+
case " ":
|
|
81
|
+
//Space
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
refTrack.current.focus();
|
|
84
|
+
var isChecked = !(checked !== null && checked !== void 0 ? checked : innerChecked);
|
|
85
|
+
setInnerChecked(isChecked);
|
|
86
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
};
|
|
71
90
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
91
|
+
var handlerSwitchChange = function handlerSwitchChange(event) {
|
|
92
|
+
checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
|
|
93
|
+
return !innerChecked;
|
|
94
|
+
});
|
|
95
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
|
|
76
96
|
};
|
|
77
97
|
|
|
78
98
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
79
99
|
theme: colorsTheme["switch"]
|
|
80
100
|
}, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
|
|
81
101
|
margin: margin,
|
|
102
|
+
size: size,
|
|
103
|
+
onKeyDown: handleOnKeyDown,
|
|
82
104
|
disabled: disabled,
|
|
105
|
+
onClick: !disabled ? handlerSwitchChange : undefined
|
|
106
|
+
}, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
107
|
+
id: labelId,
|
|
83
108
|
labelPosition: labelPosition,
|
|
84
|
-
|
|
85
|
-
backgroundType: backgroundType
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
},
|
|
92
|
-
onChange: handlerSwitchChange,
|
|
109
|
+
disabled: disabled,
|
|
110
|
+
backgroundType: backgroundType,
|
|
111
|
+
label: label
|
|
112
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
113
|
+
type: "checkbox",
|
|
114
|
+
name: name,
|
|
115
|
+
"aria-hidden": true,
|
|
93
116
|
value: value,
|
|
94
117
|
disabled: disabled,
|
|
95
|
-
|
|
96
|
-
|
|
118
|
+
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
119
|
+
readOnly: true
|
|
120
|
+
}), /*#__PURE__*/_react["default"].createElement(SwitchBase, null, /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
|
|
121
|
+
role: "switch",
|
|
122
|
+
backgroundType: backgroundType,
|
|
123
|
+
"aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
124
|
+
"aria-disabled": disabled,
|
|
125
|
+
disabled: disabled,
|
|
126
|
+
"aria-labelledby": labelId,
|
|
127
|
+
tabIndex: !disabled ? tabIndex : -1,
|
|
128
|
+
ref: refTrack
|
|
129
|
+
})), labelPosition === "after" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
130
|
+
id: labelId,
|
|
97
131
|
labelPosition: labelPosition,
|
|
98
|
-
onClick: !disabled && handlerSwitchChange,
|
|
99
132
|
disabled: disabled,
|
|
100
|
-
backgroundType: backgroundType
|
|
101
|
-
|
|
133
|
+
backgroundType: backgroundType,
|
|
134
|
+
label: label
|
|
135
|
+
}, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
|
|
102
136
|
};
|
|
103
137
|
|
|
104
138
|
var sizes = {
|
|
@@ -106,17 +140,67 @@ var sizes = {
|
|
|
106
140
|
medium: "240px",
|
|
107
141
|
large: "480px",
|
|
108
142
|
fillParent: "100%",
|
|
109
|
-
fitContent: "
|
|
143
|
+
fitContent: "fit-content"
|
|
110
144
|
};
|
|
111
145
|
|
|
112
146
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
113
147
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
114
148
|
};
|
|
115
149
|
|
|
116
|
-
var
|
|
150
|
+
var getDisabledColor = function getDisabledColor(props, element, subelement) {
|
|
151
|
+
switch (element) {
|
|
152
|
+
case "track":
|
|
153
|
+
switch (subelement) {
|
|
154
|
+
case "check":
|
|
155
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
|
|
156
|
+
|
|
157
|
+
case "uncheck":
|
|
158
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
case "thumb":
|
|
162
|
+
switch (subelement) {
|
|
163
|
+
case "check":
|
|
164
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
|
|
165
|
+
|
|
166
|
+
case "uncheck":
|
|
167
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
case "label":
|
|
171
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor;
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
var getNotDisabledColor = function getNotDisabledColor(props, element, subelement) {
|
|
176
|
+
switch (element) {
|
|
177
|
+
case "track":
|
|
178
|
+
switch (subelement) {
|
|
179
|
+
case "check":
|
|
180
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
|
|
181
|
+
|
|
182
|
+
case "uncheck":
|
|
183
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
case "thumb":
|
|
187
|
+
switch (subelement) {
|
|
188
|
+
case "check":
|
|
189
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
|
|
190
|
+
|
|
191
|
+
case "uncheck":
|
|
192
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
case "label":
|
|
196
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
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) {
|
|
117
201
|
return calculateWidth(props.margin, props.size);
|
|
118
202
|
}, function (props) {
|
|
119
|
-
return props.
|
|
203
|
+
return props.disabled === true ? "not-allowed" : "pointer";
|
|
120
204
|
}, function (props) {
|
|
121
205
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
122
206
|
}, function (props) {
|
|
@@ -127,52 +211,50 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
|
|
|
127
211
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
128
212
|
}, function (props) {
|
|
129
213
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
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) {
|
|
217
|
+
return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
|
|
130
218
|
}, function (props) {
|
|
131
|
-
return props.
|
|
132
|
-
}, function (props) {
|
|
133
|
-
return props.theme.trackWidth;
|
|
134
|
-
}, function (props) {
|
|
135
|
-
return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
|
|
136
|
-
}, function (props) {
|
|
137
|
-
return props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
|
|
138
|
-
}, function (props) {
|
|
139
|
-
return props.theme.trackHeight;
|
|
140
|
-
}, function (props) {
|
|
141
|
-
return props.theme.thumbWidth;
|
|
219
|
+
return props.theme.labelFontFamily;
|
|
142
220
|
}, function (props) {
|
|
143
|
-
return props.theme.
|
|
221
|
+
return props.theme.labelFontSize;
|
|
144
222
|
}, function (props) {
|
|
145
|
-
return props.
|
|
223
|
+
return props.disabled ? props.theme.disabledLabelFontStyle : props.theme.labelFontStyle;
|
|
146
224
|
}, function (props) {
|
|
147
|
-
return props.
|
|
225
|
+
return props.theme.labelFontWeight;
|
|
148
226
|
}, function (props) {
|
|
149
|
-
return props.
|
|
227
|
+
return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
|
|
150
228
|
}, function (props) {
|
|
151
|
-
return props.
|
|
229
|
+
return props.labelPosition === "before" && "order: -1";
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
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"])));
|
|
233
|
+
|
|
234
|
+
var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
|
|
235
|
+
|
|
236
|
+
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 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 &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
|
|
237
|
+
return props.theme.trackWidth;
|
|
152
238
|
}, function (props) {
|
|
153
|
-
return props.
|
|
239
|
+
return props.theme.trackHeight;
|
|
154
240
|
}, function (props) {
|
|
155
|
-
return props.
|
|
241
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
156
242
|
}, function (props) {
|
|
157
|
-
return props.theme.
|
|
243
|
+
return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
|
|
158
244
|
}, function (props) {
|
|
159
|
-
return props.
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n cursor: ", ";\n ", "\n"])), function (props) {
|
|
163
|
-
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
245
|
+
return props.theme.thumbWidth;
|
|
164
246
|
}, function (props) {
|
|
165
|
-
return props.theme.
|
|
247
|
+
return props.theme.thumbHeight;
|
|
166
248
|
}, function (props) {
|
|
167
|
-
return props.
|
|
249
|
+
return props.disabled ? getDisabledColor(props, "thumb", "uncheck") : getNotDisabledColor(props, "thumb", "uncheck");
|
|
168
250
|
}, function (props) {
|
|
169
|
-
return props.disabled ? props
|
|
251
|
+
return props.disabled ? getDisabledColor(props, "track", "uncheck") : getNotDisabledColor(props, "track", "uncheck");
|
|
170
252
|
}, function (props) {
|
|
171
|
-
return props.
|
|
253
|
+
return props.disabled ? getDisabledColor(props, "track", "check") : getNotDisabledColor(props, "track", "check");
|
|
172
254
|
}, function (props) {
|
|
173
|
-
return props.
|
|
255
|
+
return props.theme.thumbShift;
|
|
174
256
|
}, function (props) {
|
|
175
|
-
return props.
|
|
257
|
+
return props.disabled ? getDisabledColor(props, "thumb", "check") : getNotDisabledColor(props, "thumb", "check");
|
|
176
258
|
});
|
|
177
259
|
|
|
178
260
|
var _default = DxcSwitch;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcSwitch from "./Switch";
|
|
3
|
+
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
4
|
+
import Title from "../../.storybook/components/Title";
|
|
5
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: "Switch",
|
|
10
|
+
component: DxcSwitch,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const Chromatic = () => (
|
|
14
|
+
<>
|
|
15
|
+
<ExampleContainer>
|
|
16
|
+
<Title title="With label after" theme="light" level={4} />
|
|
17
|
+
<DxcSwitch label="Switch" labelPosition="after" />
|
|
18
|
+
</ExampleContainer>
|
|
19
|
+
<ExampleContainer>
|
|
20
|
+
<Title title="Without label" theme="light" level={4} />
|
|
21
|
+
<DxcSwitch />
|
|
22
|
+
</ExampleContainer>
|
|
23
|
+
<ExampleContainer pseudoState="pseudo-focus-visible">
|
|
24
|
+
<Title title="Focused" theme="light" level={4} />
|
|
25
|
+
<DxcSwitch label="Switch" labelPosition="after" />
|
|
26
|
+
</ExampleContainer>
|
|
27
|
+
<ExampleContainer>
|
|
28
|
+
<Title title="Checked" theme="light" level={4} />
|
|
29
|
+
<DxcSwitch label="Switch" defaultChecked />
|
|
30
|
+
</ExampleContainer>
|
|
31
|
+
<ExampleContainer>
|
|
32
|
+
<Title title="Optional" theme="light" level={4} />
|
|
33
|
+
<DxcSwitch label="Switch" optional />
|
|
34
|
+
</ExampleContainer>
|
|
35
|
+
<ExampleContainer>
|
|
36
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
37
|
+
<DxcSwitch label="Switch" disabled />
|
|
38
|
+
</ExampleContainer>
|
|
39
|
+
<ExampleContainer>
|
|
40
|
+
<Title title="Disabled optional" theme="light" level={4} />
|
|
41
|
+
<DxcSwitch label="Switch" disabled optional labelPosition="after" />
|
|
42
|
+
</ExampleContainer>
|
|
43
|
+
<ExampleContainer>
|
|
44
|
+
<Title title="Disabled checked" theme="light" level={4} />
|
|
45
|
+
<DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
|
|
46
|
+
</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
|
+
<Title title="Margins" theme="light" level={2} />
|
|
80
|
+
<ExampleContainer>
|
|
81
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
82
|
+
<DxcSwitch label="Xxsmall" margin="xxsmall" />
|
|
83
|
+
</ExampleContainer>
|
|
84
|
+
<ExampleContainer>
|
|
85
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
86
|
+
<DxcSwitch label="Xsmall" margin="xsmall" />
|
|
87
|
+
</ExampleContainer>
|
|
88
|
+
<ExampleContainer>
|
|
89
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
90
|
+
<DxcSwitch label="Small" margin="small" />
|
|
91
|
+
</ExampleContainer>
|
|
92
|
+
<ExampleContainer>
|
|
93
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
94
|
+
<DxcSwitch label="Medium" margin="medium" />
|
|
95
|
+
</ExampleContainer>
|
|
96
|
+
<ExampleContainer>
|
|
97
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
98
|
+
<DxcSwitch label="Large" margin="large" />
|
|
99
|
+
</ExampleContainer>
|
|
100
|
+
<ExampleContainer>
|
|
101
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
102
|
+
<DxcSwitch label="Xlarge" margin="xlarge" />
|
|
103
|
+
</ExampleContainer>
|
|
104
|
+
<ExampleContainer>
|
|
105
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
106
|
+
<DxcSwitch label="Xxlarge" margin="xxlarge" />
|
|
107
|
+
</ExampleContainer>
|
|
108
|
+
<Title title="Sizes" theme="light" level={2} />
|
|
109
|
+
<ExampleContainer>
|
|
110
|
+
<Title title="Small size" theme="light" level={4} />
|
|
111
|
+
<DxcSwitch label="Small" size="small" />
|
|
112
|
+
</ExampleContainer>
|
|
113
|
+
<ExampleContainer>
|
|
114
|
+
<Title title="Medium size (with large label)" theme="light" level={4} />
|
|
115
|
+
<DxcSwitch label="Very very very large label or even huge" size="medium" />
|
|
116
|
+
</ExampleContainer>
|
|
117
|
+
<ExampleContainer>
|
|
118
|
+
<Title title="Medium size (with long label)" theme="light" level={4} />
|
|
119
|
+
<DxcSwitch
|
|
120
|
+
label="Large texttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
|
|
121
|
+
labelPosition="after"
|
|
122
|
+
size="medium"
|
|
123
|
+
/>
|
|
124
|
+
</ExampleContainer>
|
|
125
|
+
<ExampleContainer>
|
|
126
|
+
<Title title="Large size" theme="light" level={4} />
|
|
127
|
+
<DxcSwitch label="Large" size="large" />
|
|
128
|
+
</ExampleContainer>
|
|
129
|
+
<ExampleContainer>
|
|
130
|
+
<Title title="FillParent size" theme="light" level={4} />
|
|
131
|
+
<DxcSwitch label="FillParent" size="fillParent" />
|
|
132
|
+
</ExampleContainer>
|
|
133
|
+
<ExampleContainer>
|
|
134
|
+
<Title title="FitContent size" theme="light" level={4} />
|
|
135
|
+
<DxcSwitch label="FitContent" size="fitContent" />
|
|
136
|
+
</ExampleContainer>
|
|
137
|
+
</>
|
|
138
|
+
);
|