@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3df47e
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 +1221 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -181
- package/accordion/Accordion.stories.tsx +103 -127
- package/accordion/Accordion.test.js +32 -33
- package/accordion/types.d.ts +9 -16
- package/accordion-group/AccordionGroup.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +38 -107
- package/accordion-group/AccordionGroup.stories.tsx +95 -68
- package/accordion-group/AccordionGroup.test.js +55 -90
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +15 -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 +23 -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 -40
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -2
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +26 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +30 -81
- 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 +62 -113
- 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 +58 -102
- 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 +144 -182
- package/checkbox/Checkbox.stories.tsx +166 -136
- package/checkbox/Checkbox.test.js +163 -29
- package/checkbox/types.d.ts +18 -6
- 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 +1002 -1136
- 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 +171 -306
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +708 -369
- 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 +86 -22
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +68 -130
- 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 -304
- 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 +246 -357
- 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 +50 -99
- 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 -190
- 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 +67 -8
- 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 +99 -203
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +31 -28
- 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 +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +26 -2
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +84 -181
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +51 -48
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +13 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +61 -99
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +25 -53
- package/link/types.d.ts +15 -31
- package/main.d.ts +14 -13
- package/main.js +65 -101
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +93 -0
- package/nav-tabs/NavTabs.stories.tsx +276 -0
- package/nav-tabs/NavTabs.test.js +76 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +118 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +27 -43
- package/number-input/NumberInput.stories.tsx +44 -28
- package/number-input/NumberInput.test.js +703 -381
- package/number-input/types.d.ts +28 -15
- package/package.json +46 -47
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +34 -91
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- 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 -123
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +162 -147
- package/password-input/types.d.ts +21 -17
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +94 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.js +72 -116
- package/radio-group/RadioGroup.stories.tsx +135 -17
- package/radio-group/RadioGroup.test.js +529 -467
- package/radio-group/types.d.ts +86 -9
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +1 -1
- package/resultset-table/ResultsetTable.js +165 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +69 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
- package/{resultsetTable → resultset-table}/types.d.ts +13 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +89 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +143 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +87 -0
- package/select/Select.js +223 -502
- package/select/Select.stories.tsx +534 -145
- package/select/Select.test.js +2009 -1539
- package/select/types.d.ts +64 -25
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +131 -71
- 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 -180
- package/slider/Slider.test.js +198 -73
- package/slider/types.d.ts +11 -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 +149 -114
- package/switch/Switch.stories.tsx +44 -67
- package/switch/Switch.test.js +146 -39
- package/switch/types.d.ts +13 -5
- package/table/Table.d.ts +1 -1
- package/table/Table.js +25 -32
- package/table/{Table.stories.jsx → Table.stories.tsx} +178 -1
- package/table/Table.test.js +3 -8
- package/table/types.d.ts +12 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +116 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +316 -145
- package/tabs/Tabs.stories.tsx +120 -14
- package/tabs/Tabs.test.js +238 -67
- package/tabs/types.d.ts +29 -15
- package/tag/Tag.js +41 -78
- package/tag/Tag.stories.tsx +25 -8
- 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.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +324 -548
- package/text-input/TextInput.stories.tsx +272 -281
- package/text-input/TextInput.test.js +1425 -1377
- package/text-input/types.d.ts +70 -24
- package/textarea/Textarea.js +82 -134
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +168 -198
- package/textarea/types.d.ts +27 -16
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +92 -105
- package/toggle-group/ToggleGroup.stories.tsx +53 -8
- package/toggle-group/ToggleGroup.test.js +78 -66
- package/toggle-group/types.d.ts +34 -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 +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- 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.d.ts +1 -1
- package/wizard/Wizard.js +70 -101
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +73 -87
- package/wizard/types.d.ts +12 -8
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- 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/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- 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 -10
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- 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/{list → action-icon}/types.js +0 -0
- /package/{radio → 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/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
package/switch/Switch.js
CHANGED
|
@@ -1,122 +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
|
|
23
|
-
|
|
24
|
-
var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
|
|
25
|
-
|
|
26
|
-
var _variables = require("../common/variables.js");
|
|
27
|
-
|
|
28
|
-
var _utils = require("../common/utils.js");
|
|
29
|
-
|
|
14
|
+
var _uuid = require("uuid");
|
|
15
|
+
var _variables = require("../common/variables");
|
|
16
|
+
var _utils = require("../common/utils");
|
|
30
17
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
31
|
-
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
setInnerChecked = _useState2[1];
|
|
64
|
-
|
|
18
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
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) {
|
|
23
|
+
var defaultChecked = _ref.defaultChecked,
|
|
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;
|
|
42
|
+
var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
|
|
43
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
44
|
+
switchId = _useState2[0];
|
|
45
|
+
var labelId = "label-".concat(switchId);
|
|
46
|
+
var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
|
|
47
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
48
|
+
innerChecked = _useState4[0],
|
|
49
|
+
setInnerChecked = _useState4[1];
|
|
65
50
|
var colorsTheme = (0, _useTheme["default"])();
|
|
66
|
-
var
|
|
67
|
-
|
|
51
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
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
|
+
};
|
|
68
66
|
var handlerSwitchChange = function handlerSwitchChange(event) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
setInnerChecked(isChecked);
|
|
74
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(isChecked);
|
|
75
|
-
} 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);
|
|
76
71
|
};
|
|
77
|
-
|
|
78
72
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
79
73
|
theme: colorsTheme["switch"]
|
|
80
74
|
}, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
|
|
81
75
|
margin: margin,
|
|
76
|
+
size: size,
|
|
77
|
+
onKeyDown: handleOnKeyDown,
|
|
82
78
|
disabled: disabled,
|
|
79
|
+
onClick: !disabled ? handlerSwitchChange : undefined,
|
|
80
|
+
ref: ref
|
|
81
|
+
}, labelPosition === "before" && label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
82
|
+
id: labelId,
|
|
83
83
|
labelPosition: labelPosition,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
tabIndex: tabIndex
|
|
91
|
-
},
|
|
92
|
-
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,
|
|
93
90
|
value: value,
|
|
94
91
|
disabled: disabled,
|
|
95
|
-
|
|
96
|
-
|
|
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,
|
|
97
104
|
labelPosition: labelPosition,
|
|
98
|
-
onClick: !disabled && handlerSwitchChange,
|
|
99
105
|
disabled: disabled,
|
|
100
|
-
|
|
101
|
-
},
|
|
102
|
-
};
|
|
103
|
-
|
|
106
|
+
label: label
|
|
107
|
+
}, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
|
|
108
|
+
});
|
|
104
109
|
var sizes = {
|
|
105
110
|
small: "60px",
|
|
106
111
|
medium: "240px",
|
|
107
112
|
large: "480px",
|
|
108
113
|
fillParent: "100%",
|
|
109
|
-
fitContent: "
|
|
114
|
+
fitContent: "fit-content"
|
|
110
115
|
};
|
|
111
|
-
|
|
112
116
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
113
117
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
114
118
|
};
|
|
115
|
-
|
|
116
|
-
|
|
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) {
|
|
117
160
|
return calculateWidth(props.margin, props.size);
|
|
118
161
|
}, function (props) {
|
|
119
|
-
return props.
|
|
162
|
+
return props.disabled === true ? "not-allowed" : "pointer";
|
|
120
163
|
}, function (props) {
|
|
121
164
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
122
165
|
}, function (props) {
|
|
@@ -127,53 +170,45 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
|
|
|
127
170
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
128
171
|
}, function (props) {
|
|
129
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");
|
|
130
176
|
}, 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;
|
|
177
|
+
return props.theme.labelFontFamily;
|
|
142
178
|
}, function (props) {
|
|
143
|
-
return props.theme.
|
|
179
|
+
return props.theme.labelFontSize;
|
|
144
180
|
}, function (props) {
|
|
145
|
-
return props.
|
|
181
|
+
return props.disabled ? props.theme.disabledLabelFontStyle : props.theme.labelFontStyle;
|
|
146
182
|
}, function (props) {
|
|
147
|
-
return props.
|
|
183
|
+
return props.theme.labelFontWeight;
|
|
148
184
|
}, function (props) {
|
|
149
|
-
return props.
|
|
185
|
+
return !props.label ? "margin: 0px;" : props.labelPosition === "after" ? "margin-left: ".concat(props.theme.spaceBetweenLabelSwitch, ";") : "margin-right: ".concat(props.theme.spaceBetweenLabelSwitch, ";");
|
|
150
186
|
}, function (props) {
|
|
151
|
-
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;
|
|
152
193
|
}, function (props) {
|
|
153
|
-
return props.
|
|
194
|
+
return props.theme.trackHeight;
|
|
154
195
|
}, function (props) {
|
|
155
|
-
return props.
|
|
196
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
156
197
|
}, function (props) {
|
|
157
|
-
return props.theme.
|
|
198
|
+
return "".concat(props.theme.thumbFocusColor, " solid 2px");
|
|
158
199
|
}, function (props) {
|
|
159
|
-
return props.
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
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"])), function (props) {
|
|
163
|
-
return props.disabled ? props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor : props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
|
|
200
|
+
return props.theme.thumbWidth;
|
|
164
201
|
}, function (props) {
|
|
165
|
-
return props.theme.
|
|
202
|
+
return props.theme.thumbHeight;
|
|
166
203
|
}, function (props) {
|
|
167
|
-
return props.theme.
|
|
204
|
+
return props.disabled ? getDisabledColor(props.theme, "thumb", "uncheck") : getNotDisabledColor(props.theme, "thumb", "uncheck");
|
|
168
205
|
}, function (props) {
|
|
169
|
-
return props.disabled ? props.theme
|
|
206
|
+
return props.disabled ? getDisabledColor(props.theme, "track", "uncheck") : getNotDisabledColor(props.theme, "track", "uncheck");
|
|
170
207
|
}, function (props) {
|
|
171
|
-
return props.theme.
|
|
208
|
+
return props.disabled ? getDisabledColor(props.theme, "track", "check") : getNotDisabledColor(props.theme, "track", "check");
|
|
172
209
|
}, function (props) {
|
|
173
|
-
return props.
|
|
210
|
+
return props.theme.thumbShift;
|
|
174
211
|
}, function (props) {
|
|
175
|
-
return props.
|
|
212
|
+
return props.disabled ? getDisabledColor(props.theme, "thumb", "check") : getNotDisabledColor(props.theme, "thumb", "check");
|
|
176
213
|
});
|
|
177
|
-
|
|
178
|
-
var _default = DxcSwitch;
|
|
179
|
-
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,54 +26,30 @@ 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
|
-
<DxcSwitch label="Switch"
|
|
35
|
+
<DxcSwitch label="Switch" defaultChecked />
|
|
27
36
|
</ExampleContainer>
|
|
28
37
|
<ExampleContainer>
|
|
29
|
-
<Title title="
|
|
30
|
-
<DxcSwitch label="Switch"
|
|
38
|
+
<Title title="Optional" theme="light" level={4} />
|
|
39
|
+
<DxcSwitch label="Switch" optional />
|
|
31
40
|
</ExampleContainer>
|
|
32
41
|
<ExampleContainer>
|
|
33
42
|
<Title title="Disabled" theme="light" level={4} />
|
|
34
43
|
<DxcSwitch label="Switch" disabled />
|
|
35
44
|
</ExampleContainer>
|
|
36
45
|
<ExampleContainer>
|
|
37
|
-
<Title title="Disabled
|
|
38
|
-
<DxcSwitch label="Switch" disabled
|
|
46
|
+
<Title title="Disabled optional" theme="light" level={4} />
|
|
47
|
+
<DxcSwitch label="Switch" disabled optional labelPosition="after" />
|
|
39
48
|
</ExampleContainer>
|
|
40
49
|
<ExampleContainer>
|
|
41
50
|
<Title title="Disabled checked" theme="light" level={4} />
|
|
42
|
-
<DxcSwitch label="Switch" disabled
|
|
43
|
-
</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" checked />
|
|
53
|
-
</ExampleContainer>
|
|
54
|
-
<ExampleContainer>
|
|
55
|
-
<Title title="Required" theme="dark" level={4} />
|
|
56
|
-
<DxcSwitch label="Switch" required />
|
|
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 required" theme="dark" level={4} />
|
|
64
|
-
<DxcSwitch label="Switch" disabled required labelPosition="after" />
|
|
65
|
-
</ExampleContainer>
|
|
66
|
-
<ExampleContainer>
|
|
67
|
-
<Title title="Disabled checked" theme="dark" level={4} />
|
|
68
|
-
<DxcSwitch label="Switch" disabled checked labelPosition="after" />
|
|
69
|
-
</ExampleContainer>
|
|
70
|
-
</DarkContainer>
|
|
71
|
-
</BackgroundColorProvider>
|
|
51
|
+
<DxcSwitch label="Switch" disabled defaultChecked labelPosition="after" />
|
|
52
|
+
</ExampleContainer>
|
|
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("checkbox").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("checkbox").focus();
|
|
160
|
-
};
|