@dxc-technology/halstack-react 0.0.0-7550efd → 0.0.0-757bc34
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 +3 -3
- package/BackgroundColorContext.js +6 -18
- package/HalstackContext.d.ts +1347 -6
- package/HalstackContext.js +125 -110
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -157
- package/accordion/Accordion.stories.tsx +101 -125
- 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 +30 -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/alert/Alert.js +19 -55
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.js +4 -17
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +18 -56
- 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.js +11 -35
- package/bulleted-list/BulletedList.stories.tsx +8 -92
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.d.ts +1 -1
- package/button/Button.js +65 -100
- package/button/Button.stories.tsx +152 -91
- package/button/Button.test.js +18 -17
- package/button/types.d.ts +8 -4
- 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 +141 -178
- 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 +1499 -0
- package/common/variables.js +1008 -1145
- package/container/Container.d.ts +4 -0
- package/container/Container.js +198 -0
- package/container/Container.stories.tsx +229 -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 +61 -116
- package/dialog/Dialog.stories.tsx +320 -166
- package/dialog/Dialog.test.js +269 -32
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.js +72 -125
- package/dropdown/Dropdown.stories.tsx +210 -84
- package/dropdown/Dropdown.test.js +410 -402
- package/dropdown/DropdownMenu.js +20 -37
- package/dropdown/DropdownMenuItem.js +10 -35
- package/dropdown/types.d.ts +17 -19
- 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 +1 -1
- package/flex/Flex.js +40 -40
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +84 -8
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +53 -104
- package/footer/Footer.stories.tsx +41 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +2 -2
- package/footer/Icons.js +2 -7
- package/footer/types.d.ts +21 -28
- 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 +41 -116
- 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 +2 -7
- 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 +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +29 -66
- package/layout/ApplicationLayout.stories.tsx +1 -1
- 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 +5 -6
- package/link/Link.js +25 -46
- package/link/Link.stories.tsx +60 -0
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +6 -3
- package/main.js +25 -51
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +17 -52
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +111 -7
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +37 -44
- package/nav-tabs/Tab.js +117 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
- package/nav-tabs/types.js +5 -0
- 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 +37 -40
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +22 -55
- 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 +3 -4
- package/paragraph/Paragraph.js +6 -17
- package/paragraph/Paragraph.stories.tsx +0 -17
- 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 -32
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +21 -47
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
- package/progress-bar/ProgressBar.test.js +36 -53
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.js +15 -39
- package/quick-nav/QuickNav.stories.tsx +112 -20
- 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 +59 -105
- 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.d.ts +1 -1
- package/select/Listbox.js +17 -73
- package/select/Option.js +20 -50
- package/select/Select.js +95 -156
- package/select/Select.stories.tsx +497 -153
- package/select/Select.test.js +1934 -1775
- package/select/types.d.ts +16 -17
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +80 -149
- package/sidenav/Sidenav.stories.tsx +165 -63
- package/sidenav/Sidenav.test.js +3 -10
- package/sidenav/types.d.ts +31 -28
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +57 -96
- package/slider/Slider.test.js +108 -104
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.js +27 -63
- 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/switch/Switch.d.ts +3 -3
- package/switch/Switch.js +112 -144
- package/switch/Switch.stories.tsx +33 -34
- package/switch/Switch.test.js +70 -102
- package/switch/types.d.ts +8 -3
- package/table/Table.js +7 -26
- 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.js +22 -44
- package/tabs/Tabs.js +59 -141
- package/tabs/Tabs.stories.tsx +45 -5
- package/tabs/Tabs.test.js +66 -123
- package/tabs/types.d.ts +19 -19
- 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 +89 -0
- package/text-input/TextInput.js +272 -441
- package/text-input/TextInput.stories.tsx +266 -274
- package/text-input/TextInput.test.js +1402 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.js +63 -100
- package/textarea/Textarea.stories.tsx +175 -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 +95 -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 +2 -2
- package/typography/Typography.js +15 -123
- package/typography/Typography.stories.tsx +1 -1
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1251 -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 +121 -0
- package/wizard/Wizard.js +16 -51
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +8 -9
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- 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/slider/Slider.stories.tsx +0 -183
- package/tabs-nav/Tab.js +0 -130
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{tabs-nav → grid}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/switch/Switch.js
CHANGED
|
@@ -1,85 +1,57 @@
|
|
|
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
|
|
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
19
|
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
33
|
-
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
20
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
21
|
+
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); }
|
|
22
|
+
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; }
|
|
23
|
+
var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
43
24
|
var defaultChecked = _ref.defaultChecked,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
25
|
+
checked = _ref.checked,
|
|
26
|
+
value = _ref.value,
|
|
27
|
+
_ref$label = _ref.label,
|
|
28
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
29
|
+
_ref$labelPosition = _ref.labelPosition,
|
|
30
|
+
labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
|
|
31
|
+
_ref$name = _ref.name,
|
|
32
|
+
name = _ref$name === void 0 ? "" : _ref$name,
|
|
33
|
+
_ref$disabled = _ref.disabled,
|
|
34
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
35
|
+
_ref$optional = _ref.optional,
|
|
36
|
+
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
37
|
+
onChange = _ref.onChange,
|
|
38
|
+
margin = _ref.margin,
|
|
39
|
+
_ref$size = _ref.size,
|
|
40
|
+
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
41
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
42
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
63
43
|
var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
44
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
45
|
+
switchId = _useState2[0];
|
|
67
46
|
var labelId = "label-".concat(switchId);
|
|
68
|
-
|
|
69
47
|
var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
48
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
49
|
+
innerChecked = _useState4[0],
|
|
50
|
+
setInnerChecked = _useState4[1];
|
|
78
51
|
var colorsTheme = (0, _useTheme["default"])();
|
|
79
52
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
80
53
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
81
54
|
var refTrack = (0, _react.useRef)(null);
|
|
82
|
-
|
|
83
55
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
84
56
|
switch (event.key) {
|
|
85
57
|
case "Enter":
|
|
@@ -89,95 +61,110 @@ var DxcSwitch = function DxcSwitch(_ref) {
|
|
|
89
61
|
refTrack.current.focus();
|
|
90
62
|
var isChecked = !(checked !== null && checked !== void 0 ? checked : innerChecked);
|
|
91
63
|
setInnerChecked(isChecked);
|
|
92
|
-
|
|
93
|
-
if (typeof onChange === "function") {
|
|
94
|
-
onChange(isChecked);
|
|
95
|
-
}
|
|
96
|
-
|
|
64
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
|
|
97
65
|
break;
|
|
98
66
|
}
|
|
99
67
|
};
|
|
100
|
-
|
|
101
68
|
var handlerSwitchChange = function handlerSwitchChange(event) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
}
|
|
69
|
+
checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
|
|
70
|
+
return !innerChecked;
|
|
71
|
+
});
|
|
72
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
|
|
116
73
|
};
|
|
117
|
-
|
|
118
74
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
119
75
|
theme: colorsTheme["switch"]
|
|
120
76
|
}, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
|
|
121
77
|
margin: margin,
|
|
122
78
|
size: size,
|
|
123
|
-
onKeyDown: handleOnKeyDown
|
|
124
|
-
|
|
79
|
+
onKeyDown: handleOnKeyDown,
|
|
80
|
+
disabled: disabled,
|
|
81
|
+
onClick: !disabled ? handlerSwitchChange : undefined,
|
|
82
|
+
ref: ref
|
|
83
|
+
}, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
125
84
|
id: labelId,
|
|
126
85
|
labelPosition: labelPosition,
|
|
127
|
-
onClick: !disabled ? handlerSwitchChange : undefined,
|
|
128
86
|
disabled: disabled,
|
|
129
87
|
backgroundType: backgroundType,
|
|
130
|
-
|
|
131
|
-
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(
|
|
132
|
-
labelPosition: labelPosition,
|
|
133
|
-
hasLabel: hasLabel,
|
|
134
|
-
htmlFor: labelId,
|
|
135
|
-
onClick: disabled === true ? function () {} : handlerSwitchChange
|
|
136
|
-
}, /*#__PURE__*/_react["default"].createElement(SwitchInput, {
|
|
88
|
+
label: label
|
|
89
|
+
}, label, " ", optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
137
90
|
type: "checkbox",
|
|
138
|
-
role: "switch",
|
|
139
91
|
name: name,
|
|
140
|
-
|
|
141
|
-
disabled: disabled,
|
|
92
|
+
"aria-hidden": true,
|
|
142
93
|
value: value,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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, {
|
|
94
|
+
disabled: disabled,
|
|
95
|
+
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
96
|
+
readOnly: true
|
|
97
|
+
}), /*#__PURE__*/_react["default"].createElement(SwitchBase, null, /*#__PURE__*/_react["default"].createElement(SwitchTrack, {
|
|
98
|
+
role: "switch",
|
|
153
99
|
backgroundType: backgroundType,
|
|
154
|
-
"
|
|
155
|
-
|
|
100
|
+
"aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
101
|
+
"aria-disabled": disabled,
|
|
102
|
+
disabled: disabled,
|
|
103
|
+
"aria-labelledby": labelId,
|
|
104
|
+
tabIndex: !disabled ? tabIndex : -1,
|
|
156
105
|
ref: refTrack
|
|
157
|
-
})), labelPosition === "after" &&
|
|
106
|
+
})), labelPosition === "after" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
158
107
|
id: labelId,
|
|
159
108
|
labelPosition: labelPosition,
|
|
160
|
-
onClick: !disabled ? handlerSwitchChange : undefined,
|
|
161
109
|
disabled: disabled,
|
|
162
110
|
backgroundType: backgroundType,
|
|
163
|
-
|
|
111
|
+
label: label
|
|
164
112
|
}, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
|
|
165
|
-
};
|
|
166
|
-
|
|
113
|
+
});
|
|
167
114
|
var sizes = {
|
|
168
115
|
small: "60px",
|
|
169
116
|
medium: "240px",
|
|
170
117
|
large: "480px",
|
|
171
118
|
fillParent: "100%",
|
|
172
|
-
fitContent: "
|
|
119
|
+
fitContent: "fit-content"
|
|
173
120
|
};
|
|
174
|
-
|
|
175
121
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
176
122
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
177
123
|
};
|
|
178
|
-
|
|
179
|
-
|
|
124
|
+
var getDisabledColor = function getDisabledColor(props, element, subelement) {
|
|
125
|
+
switch (element) {
|
|
126
|
+
case "track":
|
|
127
|
+
switch (subelement) {
|
|
128
|
+
case "check":
|
|
129
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
|
|
130
|
+
case "uncheck":
|
|
131
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
|
|
132
|
+
}
|
|
133
|
+
case "thumb":
|
|
134
|
+
switch (subelement) {
|
|
135
|
+
case "check":
|
|
136
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
|
|
137
|
+
case "uncheck":
|
|
138
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
|
|
139
|
+
}
|
|
140
|
+
case "label":
|
|
141
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor;
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
var getNotDisabledColor = function getNotDisabledColor(props, element, subelement) {
|
|
145
|
+
switch (element) {
|
|
146
|
+
case "track":
|
|
147
|
+
switch (subelement) {
|
|
148
|
+
case "check":
|
|
149
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
|
|
150
|
+
case "uncheck":
|
|
151
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
|
|
152
|
+
}
|
|
153
|
+
case "thumb":
|
|
154
|
+
switch (subelement) {
|
|
155
|
+
case "check":
|
|
156
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
|
|
157
|
+
case "uncheck":
|
|
158
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
|
|
159
|
+
}
|
|
160
|
+
case "label":
|
|
161
|
+
return props.backgroundType && props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
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
165
|
return calculateWidth(props.margin, props.size);
|
|
166
|
+
}, function (props) {
|
|
167
|
+
return props.disabled === true ? "not-allowed" : "pointer";
|
|
181
168
|
}, function (props) {
|
|
182
169
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
183
170
|
}, function (props) {
|
|
@@ -189,9 +176,8 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
|
|
|
189
176
|
}, function (props) {
|
|
190
177
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
191
178
|
});
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
179
|
+
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) {
|
|
180
|
+
return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
|
|
195
181
|
}, function (props) {
|
|
196
182
|
return props.theme.labelFontFamily;
|
|
197
183
|
}, function (props) {
|
|
@@ -201,23 +187,18 @@ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_tem
|
|
|
201
187
|
}, function (props) {
|
|
202
188
|
return props.theme.labelFontWeight;
|
|
203
189
|
}, function (props) {
|
|
204
|
-
return props.
|
|
205
|
-
}, function (props) {
|
|
206
|
-
return !props.hasLabel ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
|
|
190
|
+
return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
|
|
207
191
|
}, function (props) {
|
|
208
192
|
return props.labelPosition === "before" && "order: -1";
|
|
209
193
|
});
|
|
210
|
-
|
|
211
|
-
var
|
|
212
|
-
|
|
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) {
|
|
194
|
+
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"])));
|
|
195
|
+
var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
|
|
196
|
+
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
197
|
return props.theme.trackWidth;
|
|
219
198
|
}, function (props) {
|
|
220
199
|
return props.theme.trackHeight;
|
|
200
|
+
}, function (props) {
|
|
201
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
221
202
|
}, function (props) {
|
|
222
203
|
return "".concat(props.backgroundType === "dark" ? props.theme.thumbFocusColorOnDark : props.theme.thumbFocusColor, " solid 2px");
|
|
223
204
|
}, function (props) {
|
|
@@ -225,27 +206,14 @@ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templa
|
|
|
225
206
|
}, function (props) {
|
|
226
207
|
return props.theme.thumbHeight;
|
|
227
208
|
}, function (props) {
|
|
228
|
-
return props.
|
|
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;
|
|
209
|
+
return props.disabled ? getDisabledColor(props, "thumb", "uncheck") : getNotDisabledColor(props, "thumb", "uncheck");
|
|
241
210
|
}, function (props) {
|
|
242
|
-
return props.
|
|
211
|
+
return props.disabled ? getDisabledColor(props, "track", "uncheck") : getNotDisabledColor(props, "track", "uncheck");
|
|
243
212
|
}, function (props) {
|
|
244
|
-
return props.
|
|
213
|
+
return props.disabled ? getDisabledColor(props, "track", "check") : getNotDisabledColor(props, "track", "check");
|
|
245
214
|
}, function (props) {
|
|
246
215
|
return props.theme.thumbShift;
|
|
247
216
|
}, function (props) {
|
|
248
|
-
return props.
|
|
217
|
+
return props.disabled ? getDisabledColor(props, "thumb", "check") : getNotDisabledColor(props, "thumb", "check");
|
|
249
218
|
});
|
|
250
|
-
var _default = DxcSwitch;
|
|
251
|
-
exports["default"] = _default;
|
|
219
|
+
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
|
|
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
|
);
|