@dxc-technology/halstack-react 0.0.0-c18d61a → 0.0.0-c1a6e05
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 +2 -2
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +1329 -5
- package/HalstackContext.js +117 -77
- package/accordion/Accordion.js +13 -24
- package/accordion/Accordion.stories.tsx +102 -13
- package/accordion/Accordion.test.js +1 -1
- package/accordion/types.d.ts +3 -3
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +23 -44
- package/accordion-group/AccordionGroup.test.js +1 -1
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +2 -2
- package/alert/Alert.js +4 -8
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/bleed/Bleed.stories.tsx +1 -0
- package/box/Box.js +3 -5
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/bulleted-list/BulletedList.js +4 -2
- package/bulleted-list/BulletedList.stories.tsx +7 -1
- package/bulleted-list/types.d.ts +31 -4
- package/button/Button.js +13 -16
- package/button/Button.stories.tsx +151 -9
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +3 -3
- package/card/Card.js +12 -13
- package/card/Card.stories.tsx +12 -13
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +18 -17
- package/checkbox/Checkbox.stories.tsx +131 -59
- package/checkbox/Checkbox.test.js +1 -1
- package/checkbox/types.d.ts +6 -2
- package/chip/Chip.js +28 -49
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +3 -5
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1482 -0
- package/common/variables.js +981 -1129
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +134 -237
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +494 -138
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +51 -0
- package/dialog/Dialog.js +61 -74
- package/dialog/Dialog.stories.tsx +211 -159
- package/dialog/Dialog.test.js +302 -3
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.js +37 -37
- package/dropdown/Dropdown.stories.tsx +210 -84
- package/dropdown/Dropdown.test.js +20 -24
- package/dropdown/DropdownMenu.js +12 -18
- package/dropdown/DropdownMenuItem.js +4 -17
- package/dropdown/types.d.ts +3 -3
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +28 -52
- package/file-input/FileInput.stories.tsx +96 -17
- package/file-input/FileInput.test.js +14 -55
- package/file-input/FileItem.d.ts +2 -12
- package/file-input/FileItem.js +29 -41
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.js +4 -2
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +70 -5
- package/footer/Footer.js +6 -8
- package/footer/Footer.stories.tsx +91 -0
- package/footer/Footer.test.js +14 -26
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +3 -2
- package/header/Header.js +21 -23
- package/header/Header.stories.tsx +149 -6
- package/header/Header.test.js +2 -2
- package/header/types.d.ts +2 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.stories.tsx +2 -1
- package/layout/ApplicationLayout.d.ts +3 -3
- package/layout/ApplicationLayout.js +1 -1
- package/layout/types.d.ts +2 -3
- package/link/Link.js +4 -4
- package/link/Link.stories.tsx +60 -0
- package/link/Link.test.js +2 -4
- package/link/types.d.ts +2 -2
- package/main.d.ts +3 -2
- package/main.js +9 -1
- package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
- package/{tabs-nav → nav-tabs}/Tab.js +37 -17
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.test.js +6 -7
- package/package.json +8 -13
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +6 -14
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +44 -47
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +5 -5
- package/password-input/PasswordInput.test.js +1 -1
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +5 -5
- package/progress-bar/ProgressBar.stories.jsx +35 -2
- package/progress-bar/ProgressBar.test.js +1 -1
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.stories.tsx +14 -0
- package/radio-group/Radio.js +10 -10
- package/radio-group/RadioGroup.js +8 -10
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/radio-group/RadioGroup.test.js +1 -1
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -106
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +41 -64
- package/resultsetTable/types.d.ts +1 -1
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +5 -34
- package/select/Option.js +11 -24
- package/select/Select.js +56 -35
- package/select/Select.stories.tsx +494 -150
- package/select/Select.test.js +76 -81
- package/select/types.d.ts +2 -2
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +66 -96
- package/sidenav/Sidenav.stories.tsx +165 -63
- package/sidenav/types.d.ts +21 -18
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +11 -11
- package/slider/Slider.stories.tsx +57 -0
- package/slider/Slider.test.js +1 -1
- package/slider/types.d.ts +6 -2
- package/spinner/Spinner.js +17 -23
- package/spinner/Spinner.stories.jsx +53 -27
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +3 -3
- package/switch/Switch.js +7 -6
- package/switch/Switch.stories.tsx +33 -0
- package/switch/Switch.test.js +1 -1
- package/switch/types.d.ts +8 -3
- package/table/Table.js +2 -2
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.js +12 -15
- package/tabs/Tabs.js +11 -17
- package/tabs/Tabs.stories.tsx +45 -5
- package/tabs/Tabs.test.js +4 -5
- package/tabs/types.d.ts +2 -2
- package/tag/Tag.js +7 -9
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +1 -1
- package/text-input/Suggestion.js +34 -7
- package/text-input/TextInput.js +11 -15
- package/text-input/TextInput.stories.tsx +93 -5
- package/text-input/TextInput.test.js +587 -635
- package/textarea/Textarea.js +3 -4
- package/textarea/Textarea.stories.jsx +60 -1
- package/textarea/Textarea.test.js +2 -4
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +7 -4
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/toggle-group/types.d.ts +1 -1
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +14 -113
- package/typography/Typography.stories.tsx +1 -1
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +1 -1
- package/useTranslatedLabels.d.ts +84 -1
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.js +2 -2
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +5 -6
- package/common/RequiredComponent.js +0 -32
- /package/{tabs-nav → grid}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
package/checkbox/Checkbox.js
CHANGED
|
@@ -19,9 +19,9 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var _variables = require("../common/variables
|
|
22
|
+
var _variables = require("../common/variables");
|
|
23
23
|
|
|
24
|
-
var _utils = require("../common/utils
|
|
24
|
+
var _utils = require("../common/utils");
|
|
25
25
|
|
|
26
26
|
var _uuid = require("uuid");
|
|
27
27
|
|
|
@@ -46,7 +46,7 @@ var checkedIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
|
46
46
|
d: "M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"
|
|
47
47
|
}));
|
|
48
48
|
|
|
49
|
-
var DxcCheckbox = function
|
|
49
|
+
var DxcCheckbox = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
50
50
|
var checked = _ref.checked,
|
|
51
51
|
_ref$defaultChecked = _ref.defaultChecked,
|
|
52
52
|
defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
|
|
@@ -109,7 +109,8 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
109
109
|
margin: margin,
|
|
110
110
|
size: size,
|
|
111
111
|
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
112
|
-
backgroundType: backgroundType
|
|
112
|
+
backgroundType: backgroundType,
|
|
113
|
+
ref: ref
|
|
113
114
|
}, label && labelPosition === "before" && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
114
115
|
id: labelId,
|
|
115
116
|
disabled: disabled,
|
|
@@ -139,7 +140,7 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
139
140
|
disabled: disabled,
|
|
140
141
|
backgroundType: backgroundType
|
|
141
142
|
}, optional && "".concat(translatedLabels.formFields.optionalLabel, " "), label)));
|
|
142
|
-
};
|
|
143
|
+
});
|
|
143
144
|
|
|
144
145
|
var sizes = {
|
|
145
146
|
small: "120px",
|
|
@@ -173,7 +174,7 @@ var getDisabledColor = function getDisabledColor(props, element) {
|
|
|
173
174
|
}
|
|
174
175
|
};
|
|
175
176
|
|
|
176
|
-
var
|
|
177
|
+
var getEnabledColor = function getEnabledColor(props, element) {
|
|
177
178
|
switch (element) {
|
|
178
179
|
case "check":
|
|
179
180
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
|
|
@@ -196,7 +197,7 @@ var getNotDisabledColor = function getNotDisabledColor(props, element) {
|
|
|
196
197
|
};
|
|
197
198
|
|
|
198
199
|
var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
199
|
-
return props.disabled ? getDisabledColor(props, "label") :
|
|
200
|
+
return props.disabled ? getDisabledColor(props, "label") : getEnabledColor(props, "label");
|
|
200
201
|
}, function (props) {
|
|
201
202
|
return props.theme.fontFamily;
|
|
202
203
|
}, function (props) {
|
|
@@ -209,19 +210,21 @@ var ValueInput = _styledComponents["default"].input(_templateObject2 || (_templa
|
|
|
209
210
|
|
|
210
211
|
var CheckboxContainer = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
|
|
211
212
|
|
|
212
|
-
var Checkbox = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 18px;\n width: 18px;\n border: solid
|
|
213
|
-
return props.disabled ? getDisabledColor(props, "border") :
|
|
213
|
+
var Checkbox = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 18px;\n width: 18px;\n border: 2px solid\n ", ";\n border-radius: 2px;\n background-color: ", ";\n color: ", ";\n\n &:focus {\n outline: 2px solid\n ", ";\n outline-offset: 2px;\n }\n svg {\n position: absolute;\n width: 22px;\n height: 22px;\n }\n ", "\n"])), function (props) {
|
|
214
|
+
return props.disabled ? getDisabledColor(props, "border") : getEnabledColor(props, "border");
|
|
214
215
|
}, function (props) {
|
|
215
|
-
return props.checked ? props.disabled ? getDisabledColor(props, "check") :
|
|
216
|
+
return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
|
|
216
217
|
}, function (props) {
|
|
217
|
-
return props.disabled ? getDisabledColor(props, "background") :
|
|
218
|
+
return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "background");
|
|
218
219
|
}, function (props) {
|
|
219
220
|
return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
220
221
|
}, function (props) {
|
|
221
222
|
return props.disabled && "pointer-events: none;";
|
|
222
223
|
});
|
|
223
224
|
|
|
224
|
-
var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
225
|
+
var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: ", ";\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n\n &:hover ", " {\n border: 2px solid\n ", ";\n background-color: ", ";\n color: ", ";\n }\n"])), function (props) {
|
|
226
|
+
return props.theme.checkLabelSpacing;
|
|
227
|
+
}, function (props) {
|
|
225
228
|
return calculateWidth(props.margin, props.size);
|
|
226
229
|
}, function (props) {
|
|
227
230
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -235,14 +238,12 @@ var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
235
238
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
236
239
|
}, function (props) {
|
|
237
240
|
return props.disabled ? "not-allowed" : "pointer";
|
|
238
|
-
}, function (props) {
|
|
239
|
-
return props.theme.checkLabelSpacing;
|
|
240
241
|
}, Checkbox, function (props) {
|
|
241
|
-
return props.disabled ? getDisabledColor(props, "border") :
|
|
242
|
+
return props.disabled ? getDisabledColor(props, "border") : getEnabledColor(props, "hoverBorder");
|
|
242
243
|
}, function (props) {
|
|
243
|
-
return props.checked ? props.disabled ? getDisabledColor(props, "check") :
|
|
244
|
+
return props.checked ? props.disabled ? getDisabledColor(props, "check") : getEnabledColor(props, "check") : "transparent";
|
|
244
245
|
}, function (props) {
|
|
245
|
-
return props.disabled ? getDisabledColor(props, "background") :
|
|
246
|
+
return props.disabled ? getDisabledColor(props, "background") : getEnabledColor(props, "hoverBackground");
|
|
246
247
|
});
|
|
247
248
|
|
|
248
249
|
var _default = DxcCheckbox;
|
|
@@ -4,42 +4,55 @@ import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
|
4
4
|
import Title from "../../.storybook/components/Title";
|
|
5
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
6
|
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
7
|
-
import
|
|
7
|
+
import styled from "styled-components";
|
|
8
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
8
9
|
|
|
9
10
|
export default {
|
|
10
11
|
title: "Checkbox",
|
|
11
12
|
component: DxcCheckbox,
|
|
12
13
|
};
|
|
13
14
|
|
|
15
|
+
const opinionatedTheme = {
|
|
16
|
+
checkbox: {
|
|
17
|
+
baseColor: "#0067b3",
|
|
18
|
+
checkColor: "#ffffff",
|
|
19
|
+
fontColor: "#000000",
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
14
23
|
const Checkbox = () => (
|
|
15
24
|
<>
|
|
16
25
|
<ExampleContainer>
|
|
17
26
|
<Title title="Default" theme="light" level={4} />
|
|
18
27
|
<DxcCheckbox label="Checkbox" />
|
|
19
28
|
</ExampleContainer>
|
|
20
|
-
<ExampleContainer>
|
|
21
|
-
<Title title="Focused" theme="light" level={4} />
|
|
22
|
-
<DxcCheckbox label="Focused" />
|
|
23
|
-
</ExampleContainer>
|
|
24
29
|
<ExampleContainer>
|
|
25
30
|
<Title title="Checked" theme="light" level={4} />
|
|
26
31
|
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
27
32
|
</ExampleContainer>
|
|
28
33
|
<ExampleContainer>
|
|
29
|
-
<Title title="
|
|
30
|
-
<DxcCheckbox label="Checkbox"
|
|
34
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
35
|
+
<DxcCheckbox label="Checkbox" disabled />
|
|
31
36
|
</ExampleContainer>
|
|
32
37
|
<ExampleContainer>
|
|
33
|
-
<Title title="Disabled and
|
|
34
|
-
<DxcCheckbox label="Checkbox" disabled defaultChecked />
|
|
38
|
+
<Title title="Disabled, checked and optional" theme="light" level={4} />
|
|
39
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked optional />
|
|
35
40
|
</ExampleContainer>
|
|
36
|
-
<ExampleContainer>
|
|
37
|
-
<Title title="
|
|
38
|
-
<DxcCheckbox label="
|
|
41
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
42
|
+
<Title title="Focused" theme="light" level={4} />
|
|
43
|
+
<DxcCheckbox label="Focused" />
|
|
44
|
+
</ExampleContainer>
|
|
45
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
46
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
47
|
+
<DxcCheckbox label="Hovered" />
|
|
48
|
+
</ExampleContainer>
|
|
49
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
50
|
+
<Title title="Hovered and checked" theme="light" level={4} />
|
|
51
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
39
52
|
</ExampleContainer>
|
|
40
53
|
<ExampleContainer>
|
|
41
|
-
<Title title="
|
|
42
|
-
<DxcCheckbox label="Checkbox"
|
|
54
|
+
<Title title="Optional" theme="light" level={4} />
|
|
55
|
+
<DxcCheckbox label="Checkbox" optional />
|
|
43
56
|
</ExampleContainer>
|
|
44
57
|
<ExampleContainer>
|
|
45
58
|
<Title title="Label after" theme="light" level={4} />
|
|
@@ -53,25 +66,9 @@ const Checkbox = () => (
|
|
|
53
66
|
<Title title="Optional with label after" theme="light" level={4} />
|
|
54
67
|
<DxcCheckbox label="Checkbox" optional labelPosition="after" />
|
|
55
68
|
</ExampleContainer>
|
|
56
|
-
<ExampleContainer>
|
|
57
|
-
<Title title="Disabled and checked with label after" theme="light" level={4} />
|
|
58
|
-
<DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
|
|
59
|
-
</ExampleContainer>
|
|
60
69
|
<ExampleContainer>
|
|
61
70
|
<Title title="Disabled and optional with label after" theme="light" level={4} />
|
|
62
|
-
<DxcCheckbox label="Checkbox" disabled
|
|
63
|
-
</ExampleContainer>
|
|
64
|
-
<ExampleContainer>
|
|
65
|
-
<Title title="Disabled, optional and checked with label after" theme="light" level={4} />
|
|
66
|
-
<DxcCheckbox label="Checkbox" disabled optional defaultChecked labelPosition="after" />
|
|
67
|
-
</ExampleContainer>
|
|
68
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
69
|
-
<Title title="Hovered" theme="light" level={4} />
|
|
70
|
-
<DxcCheckbox label="Hovered" />
|
|
71
|
-
</ExampleContainer>
|
|
72
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
73
|
-
<Title title="Hovered and checked" theme="light" level={4} />
|
|
74
|
-
<DxcCheckbox label="Hovered" defaultChecked />
|
|
71
|
+
<DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
|
|
75
72
|
</ExampleContainer>
|
|
76
73
|
<BackgroundColorProvider color="#333333">
|
|
77
74
|
<DarkContainer>
|
|
@@ -84,20 +81,28 @@ const Checkbox = () => (
|
|
|
84
81
|
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
85
82
|
</ExampleContainer>
|
|
86
83
|
<ExampleContainer>
|
|
87
|
-
<Title title="
|
|
88
|
-
<DxcCheckbox label="Checkbox"
|
|
84
|
+
<Title title="Disabled" theme="dark" level={4} />
|
|
85
|
+
<DxcCheckbox label="Checkbox" disabled />
|
|
89
86
|
</ExampleContainer>
|
|
90
87
|
<ExampleContainer>
|
|
91
|
-
<Title title="Disabled and
|
|
92
|
-
<DxcCheckbox label="Checkbox" disabled defaultChecked />
|
|
88
|
+
<Title title="Disabled, checked and optional" theme="dark" level={4} />
|
|
89
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked optional />
|
|
93
90
|
</ExampleContainer>
|
|
94
|
-
<ExampleContainer>
|
|
95
|
-
<Title title="
|
|
96
|
-
<DxcCheckbox label="
|
|
91
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
92
|
+
<Title title="Focused" theme="dark" level={4} />
|
|
93
|
+
<DxcCheckbox label="Focused" />
|
|
94
|
+
</ExampleContainer>
|
|
95
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
96
|
+
<Title title="Hovered" theme="dark" level={4} />
|
|
97
|
+
<DxcCheckbox label="Hovered" />
|
|
98
|
+
</ExampleContainer>
|
|
99
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
100
|
+
<Title title="Hovered and checked" theme="dark" level={4} />
|
|
101
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
97
102
|
</ExampleContainer>
|
|
98
103
|
<ExampleContainer>
|
|
99
|
-
<Title title="
|
|
100
|
-
<DxcCheckbox label="Checkbox"
|
|
104
|
+
<Title title="Optional" theme="dark" level={4} />
|
|
105
|
+
<DxcCheckbox label="Checkbox" optional />
|
|
101
106
|
</ExampleContainer>
|
|
102
107
|
<ExampleContainer>
|
|
103
108
|
<Title title="Label after" theme="dark" level={4} />
|
|
@@ -111,25 +116,9 @@ const Checkbox = () => (
|
|
|
111
116
|
<Title title="Optional with label after" theme="dark" level={4} />
|
|
112
117
|
<DxcCheckbox label="Checkbox" optional labelPosition="after" />
|
|
113
118
|
</ExampleContainer>
|
|
114
|
-
<ExampleContainer>
|
|
115
|
-
<Title title="Disabled and checked with label after" theme="dark" level={4} />
|
|
116
|
-
<DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
|
|
117
|
-
</ExampleContainer>
|
|
118
119
|
<ExampleContainer>
|
|
119
120
|
<Title title="Disabled and optional with label after" theme="dark" level={4} />
|
|
120
|
-
<DxcCheckbox label="Checkbox" disabled
|
|
121
|
-
</ExampleContainer>
|
|
122
|
-
<ExampleContainer>
|
|
123
|
-
<Title title="Disabled, optional and checked with label after" theme="dark" level={4} />
|
|
124
|
-
<DxcCheckbox label="Checkbox" disabled optional defaultChecked labelPosition="after" />
|
|
125
|
-
</ExampleContainer>
|
|
126
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
127
|
-
<Title title="Hovered" theme="dark" level={4} />
|
|
128
|
-
<DxcCheckbox label="Hovered" />
|
|
129
|
-
</ExampleContainer>
|
|
130
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
131
|
-
<Title title="Hovered and checked" theme="dark" level={4} />
|
|
132
|
-
<DxcCheckbox label="Hovered" defaultChecked />
|
|
121
|
+
<DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
|
|
133
122
|
</ExampleContainer>
|
|
134
123
|
</DarkContainer>
|
|
135
124
|
</BackgroundColorProvider>
|
|
@@ -178,11 +167,94 @@ const Checkbox = () => (
|
|
|
178
167
|
<Title title="Xxlarge" theme="light" level={4} />
|
|
179
168
|
<DxcCheckbox label="Xxlarge" margin="xxlarge" />
|
|
180
169
|
</ExampleContainer>
|
|
170
|
+
<ExampleContainer>
|
|
171
|
+
<Title title="Overflow container" theme="light" level={4} />
|
|
172
|
+
<ScrollableContainer id="scroll-container">
|
|
173
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
174
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
175
|
+
<DxcCheckbox label="Checkbox" />
|
|
176
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
177
|
+
<DxcCheckbox label="Checkbox" />
|
|
178
|
+
<DxcCheckbox label="Checkbox" />
|
|
179
|
+
<DxcCheckbox label="Checkbox" />
|
|
180
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
181
|
+
</ScrollableContainer>
|
|
182
|
+
</ExampleContainer>
|
|
183
|
+
<ExampleContainer>
|
|
184
|
+
<Title title="Label overflow" theme="light" level={4} />
|
|
185
|
+
<SmallContainer>
|
|
186
|
+
<DxcCheckbox label="Very long label to check its overflowing" defaultChecked />
|
|
187
|
+
<DxcCheckbox label="Very long label to check its overflowing" labelPosition="after" />
|
|
188
|
+
</SmallContainer>
|
|
189
|
+
</ExampleContainer>
|
|
190
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
191
|
+
<ExampleContainer>
|
|
192
|
+
<Title title="Default" theme="light" level={4} />
|
|
193
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
194
|
+
<DxcCheckbox label="Checkbox" />
|
|
195
|
+
</HalstackProvider>
|
|
196
|
+
</ExampleContainer>
|
|
197
|
+
<ExampleContainer>
|
|
198
|
+
<Title title="Checked" theme="light" level={4} />
|
|
199
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
200
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
201
|
+
</HalstackProvider>
|
|
202
|
+
</ExampleContainer>
|
|
203
|
+
<ExampleContainer>
|
|
204
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
205
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
206
|
+
<DxcCheckbox label="Checkbox" disabled />
|
|
207
|
+
</HalstackProvider>
|
|
208
|
+
</ExampleContainer>
|
|
209
|
+
<ExampleContainer>
|
|
210
|
+
<Title title="Disabled checked" theme="light" level={4} />
|
|
211
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
212
|
+
<DxcCheckbox label="Checkbox" defaultChecked disabled />
|
|
213
|
+
</HalstackProvider>
|
|
214
|
+
</ExampleContainer>
|
|
215
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
216
|
+
<Title title="Focused" theme="light" level={4} />
|
|
217
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
218
|
+
<DxcCheckbox label="Focused" />
|
|
219
|
+
</HalstackProvider>
|
|
220
|
+
</ExampleContainer>
|
|
221
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
222
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
223
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
224
|
+
<DxcCheckbox label="Hovered" />
|
|
225
|
+
</HalstackProvider>
|
|
226
|
+
</ExampleContainer>
|
|
227
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
228
|
+
<Title title="Hovered and checked" theme="light" level={4} />
|
|
229
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
230
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
231
|
+
</HalstackProvider>
|
|
232
|
+
</ExampleContainer>
|
|
181
233
|
</>
|
|
182
234
|
);
|
|
183
235
|
|
|
184
236
|
export const Chromatic = Checkbox.bind({});
|
|
237
|
+
|
|
185
238
|
Chromatic.play = async () => {
|
|
186
|
-
|
|
187
|
-
|
|
239
|
+
const listEl = document.getElementById("scroll-container");
|
|
240
|
+
listEl?.scrollTo?.({ top: 50 });
|
|
188
241
|
};
|
|
242
|
+
|
|
243
|
+
const ScrollableContainer = styled.div`
|
|
244
|
+
display: flex;
|
|
245
|
+
flex-direction: column;
|
|
246
|
+
gap: 14px;
|
|
247
|
+
width: 200px;
|
|
248
|
+
height: 200px;
|
|
249
|
+
border: 1px solid #000;
|
|
250
|
+
padding: 14px;
|
|
251
|
+
overflow: auto;
|
|
252
|
+
`;
|
|
253
|
+
|
|
254
|
+
const SmallContainer = styled.div`
|
|
255
|
+
display: flex;
|
|
256
|
+
flex-direction: column;
|
|
257
|
+
gap: 14px;
|
|
258
|
+
width: 150px;
|
|
259
|
+
height: 150px;
|
|
260
|
+
`;
|
|
@@ -8,7 +8,7 @@ var _react2 = require("@testing-library/react");
|
|
|
8
8
|
|
|
9
9
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
10
|
|
|
11
|
-
var _Checkbox = _interopRequireDefault(require("./Checkbox"));
|
|
11
|
+
var _Checkbox = _interopRequireDefault(require("./Checkbox.tsx"));
|
|
12
12
|
|
|
13
13
|
describe("Checkbox component tests", function () {
|
|
14
14
|
test("Checkbox renders with correct aria-labelledby and aria-required", function () {
|
package/checkbox/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
declare type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
@@ -61,4 +61,8 @@ declare type Props = {
|
|
|
61
61
|
*/
|
|
62
62
|
tabIndex?: number;
|
|
63
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* Reference to the component.
|
|
66
|
+
*/
|
|
67
|
+
export declare type RefType = HTMLDivElement;
|
|
64
68
|
export default Props;
|
package/chip/Chip.js
CHANGED
|
@@ -17,13 +17,13 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
17
17
|
|
|
18
18
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
19
19
|
|
|
20
|
-
var _variables = require("../common/variables
|
|
20
|
+
var _variables = require("../common/variables");
|
|
21
21
|
|
|
22
|
-
var _utils = require("../common/utils
|
|
22
|
+
var _utils = require("../common/utils");
|
|
23
23
|
|
|
24
24
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
25
|
|
|
26
|
-
var _templateObject, _templateObject2, _templateObject3
|
|
26
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
27
27
|
|
|
28
28
|
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); }
|
|
29
29
|
|
|
@@ -42,53 +42,42 @@ var DxcChip = function DxcChip(_ref) {
|
|
|
42
42
|
var colorsTheme = (0, _useTheme["default"])();
|
|
43
43
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
44
44
|
theme: colorsTheme.chip
|
|
45
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement(Chip, {
|
|
46
46
|
disabled: disabled,
|
|
47
47
|
margin: margin
|
|
48
48
|
}, prefixIcon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
49
|
+
role: typeof onClickPrefix === "function" ? "button" : undefined,
|
|
49
50
|
disabled: disabled,
|
|
50
|
-
|
|
51
|
-
label: label,
|
|
52
|
-
mode: "prefix",
|
|
51
|
+
interactuable: typeof onClickPrefix === "function" && !disabled,
|
|
53
52
|
tabIndex: typeof onClickPrefix === "function" && !disabled ? tabIndex : -1,
|
|
54
53
|
onClick: function onClick() {
|
|
55
54
|
return onClickPrefix && !disabled && onClickPrefix();
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
}, typeof prefixIcon === "string" ? /*#__PURE__*/_react["default"].createElement(PrefixIconContainer, {
|
|
55
|
+
}
|
|
56
|
+
}, typeof prefixIcon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
59
57
|
src: prefixIcon
|
|
60
|
-
}) : prefixIcon), label && /*#__PURE__*/_react["default"].createElement(
|
|
58
|
+
}) : prefixIcon), label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
61
59
|
disabled: disabled
|
|
62
60
|
}, label), suffixIcon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
61
|
+
role: typeof onClickSuffix === "function" ? "button" : undefined,
|
|
63
62
|
disabled: disabled,
|
|
64
|
-
|
|
65
|
-
mode: "suffix",
|
|
66
|
-
label: label,
|
|
63
|
+
interactuable: typeof onClickSuffix === "function" && !disabled,
|
|
67
64
|
tabIndex: typeof onClickSuffix === "function" && !disabled ? tabIndex : -1,
|
|
68
65
|
onClick: function onClick() {
|
|
69
|
-
return
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
}, typeof suffixIcon === "string" ? /*#__PURE__*/_react["default"].createElement(SuffixIconContainer, {
|
|
66
|
+
return !disabled && (onClickSuffix === null || onClickSuffix === void 0 ? void 0 : onClickSuffix());
|
|
67
|
+
}
|
|
68
|
+
}, typeof suffixIcon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
73
69
|
src: suffixIcon
|
|
74
70
|
}) : suffixIcon)));
|
|
75
71
|
};
|
|
76
72
|
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
return "cursor:not-allowed;";
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (interactuable) {
|
|
83
|
-
return "cursor:pointer;";
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return "cursor:default; outline:none;";
|
|
73
|
+
var calculateWidth = function calculateWidth(margin) {
|
|
74
|
+
return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
87
75
|
};
|
|
88
76
|
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
77
|
+
var Chip = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n gap: ", ";\n min-height: 40px;\n max-width: ", ";\n background-color: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n cursor: ", ";\n"])), function (props) {
|
|
78
|
+
return props.theme.iconSpacing;
|
|
79
|
+
}, function (props) {
|
|
80
|
+
return calculateWidth(props.margin);
|
|
92
81
|
}, function (props) {
|
|
93
82
|
return props.disabled && props.theme.disabledBackgroundColor || props.theme.backgroundColor;
|
|
94
83
|
}, function (props) {
|
|
@@ -117,12 +106,12 @@ var StyledDxcChip = _styledComponents["default"].div(_templateObject || (_templa
|
|
|
117
106
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
|
|
118
107
|
}, function (props) {
|
|
119
108
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
120
|
-
}, function (
|
|
121
|
-
var disabled =
|
|
109
|
+
}, function (_ref2) {
|
|
110
|
+
var disabled = _ref2.disabled;
|
|
122
111
|
return disabled && "not-allowed";
|
|
123
112
|
});
|
|
124
113
|
|
|
125
|
-
var
|
|
114
|
+
var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-style: ", ";\n color: ", ";\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n"])), function (props) {
|
|
126
115
|
return props.theme.fontSize;
|
|
127
116
|
}, function (props) {
|
|
128
117
|
return props.theme.fontFamily;
|
|
@@ -132,29 +121,19 @@ var ChipTextContainer = _styledComponents["default"].span(_templateObject2 || (_
|
|
|
132
121
|
return props.theme.fontStyle;
|
|
133
122
|
}, function (props) {
|
|
134
123
|
return props.disabled ? props.theme.disabledFontColor : props.theme.fontColor;
|
|
135
|
-
}, function (_ref4) {
|
|
136
|
-
var disabled = _ref4.disabled;
|
|
137
|
-
return disabled && "not-allowed" || "default";
|
|
138
124
|
});
|
|
139
125
|
|
|
140
|
-
var
|
|
141
|
-
|
|
142
|
-
var PrefixIconContainer = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
143
|
-
|
|
144
|
-
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n ", "\n width: ", ";\n height: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n &:focus {\n outline-color: ", ";\n outline-width: 2px;\n ", "\n }\n"])), function (props) {
|
|
126
|
+
var IconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n border-radius: 0.25rem;\n color: ", ";\n ", "\n\n ", "\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
|
|
145
127
|
return props.disabled ? props.theme.disabledIconColor : props.theme.iconColor;
|
|
128
|
+
}, function (_ref3) {
|
|
129
|
+
var interactuable = _ref3.interactuable;
|
|
130
|
+
return interactuable && "cursor: pointer;";
|
|
146
131
|
}, function (props) {
|
|
147
|
-
return props.
|
|
148
|
-
}, function (props) {
|
|
149
|
-
return getCursor(props.interactuable, props.disabled);
|
|
132
|
+
return props.interactuable && "\n &:hover {\n color: ".concat(props.theme.hoverIconColor, ";\n }\n &:focus,\n &:focus-visible {\n outline: ").concat(props.theme.focusBorderThickness, " solid ").concat(props.theme.focusColor, ";\n }\n &:active {\n color: ").concat(props.theme.activeIconColor, ";\n }\n ");
|
|
150
133
|
}, function (props) {
|
|
151
134
|
return props.theme.iconSize;
|
|
152
135
|
}, function (props) {
|
|
153
136
|
return props.theme.iconSize;
|
|
154
|
-
}, function (props) {
|
|
155
|
-
return props.theme.focusColor;
|
|
156
|
-
}, function (props) {
|
|
157
|
-
return props.disabled && "outline: none;";
|
|
158
137
|
});
|
|
159
138
|
|
|
160
139
|
var _default = DxcChip;
|