@dxc-technology/halstack-react 0.0.0-74ba970 → 0.0.0-752ca0a
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 +1349 -5
- package/HalstackContext.js +117 -77
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +14 -37
- package/accordion/Accordion.stories.tsx +104 -113
- package/accordion/Accordion.test.js +1 -1
- package/accordion/types.d.ts +2 -13
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +23 -44
- package/accordion-group/AccordionGroup.stories.tsx +77 -76
- package/accordion-group/AccordionGroup.test.js +7 -17
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +2 -13
- 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.d.ts +1 -1
- package/box/Box.js +7 -26
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +0 -11
- 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.d.ts +1 -1
- package/button/Button.js +48 -60
- package/button/Button.stories.tsx +151 -9
- package/button/Button.test.js +12 -1
- package/button/types.d.ts +7 -3
- package/card/Card.d.ts +1 -1
- package/card/Card.js +27 -45
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -6
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +71 -51
- package/checkbox/Checkbox.stories.tsx +146 -58
- package/checkbox/Checkbox.test.js +84 -11
- package/checkbox/types.d.ts +10 -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 +1499 -0
- package/common/variables.js +1004 -1134
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +138 -239
- package/date-input/DateInput.stories.tsx +209 -33
- package/date-input/DateInput.test.js +519 -149
- 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 +55 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +54 -85
- package/dialog/Dialog.stories.tsx +154 -170
- package/dialog/Dialog.test.js +302 -3
- package/dialog/types.d.ts +0 -12
- package/dropdown/Dropdown.js +40 -39
- package/dropdown/Dropdown.stories.tsx +210 -84
- package/dropdown/Dropdown.test.js +21 -26
- 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 +174 -220
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +39 -63
- package/file-input/types.d.ts +18 -1
- package/flex/Flex.d.ts +1 -1
- package/flex/Flex.js +33 -19
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +83 -7
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +44 -64
- package/footer/Footer.stories.tsx +36 -21
- package/footer/Footer.test.js +16 -26
- package/footer/types.d.ts +10 -11
- 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 +4 -3
- package/header/Header.js +20 -49
- package/header/Header.stories.tsx +115 -36
- package/header/Header.test.js +2 -2
- package/header/types.d.ts +1 -14
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/image/Image.d.ts +4 -0
- package/image/Image.js +85 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.stories.tsx +2 -1
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +15 -12
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +7 -4
- package/layout/Icons.js +52 -56
- 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 +4 -2
- package/main.js +17 -1
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +8 -11
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +110 -6
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
- package/{tabs-nav → nav-tabs}/Tab.js +48 -32
- package/{tabs-nav → nav-tabs}/types.d.ts +8 -9
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +6 -4
- package/number-input/NumberInput.test.js +317 -98
- package/package.json +9 -14
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +8 -16
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +58 -48
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +5 -5
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +39 -0
- package/password-input/PasswordInput.js +35 -82
- package/password-input/PasswordInput.stories.tsx +1 -0
- package/password-input/PasswordInput.test.js +34 -40
- 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.js +11 -12
- package/quick-nav/QuickNav.stories.tsx +111 -19
- package/radio-group/Radio.js +10 -10
- package/radio-group/RadioGroup.js +15 -13
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/radio-group/RadioGroup.test.js +117 -60
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -108
- 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 +59 -36
- package/select/Select.stories.tsx +497 -153
- package/select/Select.test.js +345 -292
- 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 +17 -14
- 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 +3 -3
- 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 +224 -228
- package/text-input/TextInput.stories.tsx +132 -5
- package/text-input/TextInput.test.js +757 -658
- package/text-input/types.d.ts +9 -0
- package/textarea/Textarea.js +27 -26
- package/textarea/Textarea.stories.jsx +68 -1
- package/textarea/Textarea.test.js +61 -19
- package/textarea/types.d.ts +4 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +85 -59
- package/toggle-group/ToggleGroup.stories.tsx +48 -3
- package/toggle-group/ToggleGroup.test.js +38 -24
- package/toggle-group/types.d.ts +22 -13
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +14 -113
- package/typography/Typography.stories.tsx +1 -1
- package/useTheme.d.ts +1251 -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/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/{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/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,
|
|
@@ -61,6 +61,8 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
61
61
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
62
62
|
_ref$optional = _ref.optional,
|
|
63
63
|
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
64
|
+
_ref$readOnly = _ref.readOnly,
|
|
65
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
64
66
|
onChange = _ref.onChange,
|
|
65
67
|
margin = _ref.margin,
|
|
66
68
|
_ref$size = _ref.size,
|
|
@@ -83,14 +85,16 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
83
85
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
84
86
|
|
|
85
87
|
var handleCheckboxChange = function handleCheckboxChange() {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
if (!disabled && !readOnly) {
|
|
89
|
+
var _checkboxRef$current;
|
|
90
|
+
|
|
91
|
+
document.activeElement !== (checkboxRef === null || checkboxRef === void 0 ? void 0 : checkboxRef.current) && (checkboxRef === null || checkboxRef === void 0 ? void 0 : (_checkboxRef$current = checkboxRef.current) === null || _checkboxRef$current === void 0 ? void 0 : _checkboxRef$current.focus());
|
|
92
|
+
var newChecked = checked !== null && checked !== void 0 ? checked : innerChecked;
|
|
93
|
+
checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
|
|
94
|
+
return !innerChecked;
|
|
95
|
+
});
|
|
96
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(!newChecked);
|
|
97
|
+
}
|
|
94
98
|
};
|
|
95
99
|
|
|
96
100
|
var handleKeyboard = function handleKeyboard(event) {
|
|
@@ -105,15 +109,18 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
105
109
|
theme: colorsTheme.checkbox
|
|
106
110
|
}, /*#__PURE__*/_react["default"].createElement(MainContainer, {
|
|
107
111
|
disabled: disabled,
|
|
108
|
-
|
|
112
|
+
readOnly: readOnly,
|
|
113
|
+
onClick: handleCheckboxChange,
|
|
109
114
|
margin: margin,
|
|
110
115
|
size: size,
|
|
111
116
|
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
112
|
-
backgroundType: backgroundType
|
|
113
|
-
|
|
117
|
+
backgroundType: backgroundType,
|
|
118
|
+
ref: ref
|
|
119
|
+
}, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
114
120
|
id: labelId,
|
|
115
121
|
disabled: disabled,
|
|
116
|
-
backgroundType: backgroundType
|
|
122
|
+
backgroundType: backgroundType,
|
|
123
|
+
labelPosition: labelPosition
|
|
117
124
|
}, label, optional && " ".concat(translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
118
125
|
type: "checkbox",
|
|
119
126
|
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
@@ -128,18 +135,16 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
128
135
|
tabIndex: disabled ? -1 : tabIndex,
|
|
129
136
|
"aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
130
137
|
"aria-disabled": disabled,
|
|
138
|
+
"aria-readonly": readOnly,
|
|
131
139
|
"aria-required": !disabled && !optional,
|
|
132
140
|
"aria-labelledby": labelId,
|
|
133
141
|
backgroundType: backgroundType,
|
|
134
142
|
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
135
143
|
disabled: disabled,
|
|
144
|
+
readOnly: readOnly,
|
|
136
145
|
ref: checkboxRef
|
|
137
|
-
}, (checked !== null && checked !== void 0 ? checked : innerChecked) && checkedIcon))
|
|
138
|
-
|
|
139
|
-
disabled: disabled,
|
|
140
|
-
backgroundType: backgroundType
|
|
141
|
-
}, optional && "".concat(translatedLabels.formFields.optionalLabel, " "), label)));
|
|
142
|
-
};
|
|
146
|
+
}, (checked !== null && checked !== void 0 ? checked : innerChecked) && checkedIcon))));
|
|
147
|
+
});
|
|
143
148
|
|
|
144
149
|
var sizes = {
|
|
145
150
|
small: "120px",
|
|
@@ -150,53 +155,70 @@ var sizes = {
|
|
|
150
155
|
};
|
|
151
156
|
|
|
152
157
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
153
|
-
|
|
154
|
-
return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return sizes[size];
|
|
158
|
+
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
158
159
|
};
|
|
159
160
|
|
|
160
161
|
var getDisabledColor = function getDisabledColor(props, element) {
|
|
161
162
|
switch (element) {
|
|
162
163
|
case "check":
|
|
163
|
-
return props.backgroundType
|
|
164
|
+
return props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
|
|
164
165
|
|
|
165
166
|
case "background":
|
|
166
|
-
return props.backgroundType
|
|
167
|
+
return props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
|
|
167
168
|
|
|
168
169
|
case "border":
|
|
169
|
-
return props.backgroundType
|
|
170
|
+
return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
|
|
170
171
|
|
|
171
172
|
case "label":
|
|
172
|
-
return props.backgroundType
|
|
173
|
+
return props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
var getReadOnlyColor = function getReadOnlyColor(props, element) {
|
|
178
|
+
switch (element) {
|
|
179
|
+
case "check":
|
|
180
|
+
return props.theme.readOnlyCheckColor;
|
|
181
|
+
|
|
182
|
+
case "background":
|
|
183
|
+
return props.theme.readOnlyBackgroundColorChecked;
|
|
184
|
+
|
|
185
|
+
case "hoverBackground":
|
|
186
|
+
return props.theme.hoverReadOnlyBackgroundColorChecked;
|
|
187
|
+
|
|
188
|
+
case "border":
|
|
189
|
+
return props.theme.readOnlyBorderColor;
|
|
190
|
+
|
|
191
|
+
case "hoverBorder":
|
|
192
|
+
return props.theme.hoverReadOnlyBorderColor;
|
|
173
193
|
}
|
|
174
194
|
};
|
|
175
195
|
|
|
176
|
-
var
|
|
196
|
+
var getEnabledColor = function getEnabledColor(props, element) {
|
|
177
197
|
switch (element) {
|
|
178
198
|
case "check":
|
|
179
|
-
return props.backgroundType
|
|
199
|
+
return props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
|
|
180
200
|
|
|
181
201
|
case "background":
|
|
182
|
-
return props.backgroundType
|
|
202
|
+
return props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
|
|
183
203
|
|
|
184
204
|
case "hoverBackground":
|
|
185
|
-
return props.backgroundType
|
|
205
|
+
return props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
|
|
186
206
|
|
|
187
207
|
case "border":
|
|
188
|
-
return props.backgroundType
|
|
208
|
+
return props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
|
|
189
209
|
|
|
190
210
|
case "hoverBorder":
|
|
191
|
-
return props.backgroundType
|
|
211
|
+
return props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
|
|
192
212
|
|
|
193
213
|
case "label":
|
|
194
|
-
return props.backgroundType
|
|
214
|
+
return props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
|
|
195
215
|
}
|
|
196
216
|
};
|
|
197
217
|
|
|
198
|
-
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.
|
|
218
|
+
var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n order: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
219
|
+
return props.labelPosition === "before" ? 0 : 1;
|
|
220
|
+
}, function (props) {
|
|
221
|
+
return props.disabled ? getDisabledColor(props, "label") : getEnabledColor(props, "label");
|
|
200
222
|
}, function (props) {
|
|
201
223
|
return props.theme.fontFamily;
|
|
202
224
|
}, function (props) {
|
|
@@ -209,19 +231,21 @@ var ValueInput = _styledComponents["default"].input(_templateObject2 || (_templa
|
|
|
209
231
|
|
|
210
232
|
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
233
|
|
|
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") :
|
|
234
|
+
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) {
|
|
235
|
+
return props.disabled ? getDisabledColor(props, "border") : props.readOnly ? getReadOnlyColor(props, "border") : getEnabledColor(props, "border");
|
|
214
236
|
}, function (props) {
|
|
215
|
-
return props.checked ? props.disabled ? getDisabledColor(props, "check") :
|
|
237
|
+
return props.checked ? props.disabled ? getDisabledColor(props, "check") : props.readOnly ? getReadOnlyColor(props, "check") : getEnabledColor(props, "check") : "transparent";
|
|
216
238
|
}, function (props) {
|
|
217
|
-
return props.disabled ? getDisabledColor(props, "background") :
|
|
239
|
+
return props.disabled ? getDisabledColor(props, "background") : props.readOnly ? getReadOnlyColor(props, "background") : getEnabledColor(props, "background");
|
|
218
240
|
}, function (props) {
|
|
219
241
|
return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
220
242
|
}, function (props) {
|
|
221
243
|
return props.disabled && "pointer-events: none;";
|
|
222
244
|
});
|
|
223
245
|
|
|
224
|
-
var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
246
|
+
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 color: ", ";\n }\n"])), function (props) {
|
|
247
|
+
return props.theme.checkLabelSpacing;
|
|
248
|
+
}, function (props) {
|
|
225
249
|
return calculateWidth(props.margin, props.size);
|
|
226
250
|
}, function (props) {
|
|
227
251
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -234,15 +258,11 @@ var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
234
258
|
}, function (props) {
|
|
235
259
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
236
260
|
}, function (props) {
|
|
237
|
-
return props.disabled ? "not-allowed" : "pointer";
|
|
238
|
-
}, function (props) {
|
|
239
|
-
return props.theme.checkLabelSpacing;
|
|
261
|
+
return props.disabled ? "not-allowed" : props.readOnly ? "default" : "pointer";
|
|
240
262
|
}, Checkbox, function (props) {
|
|
241
|
-
|
|
242
|
-
}, function (props) {
|
|
243
|
-
return props.checked ? props.disabled ? getDisabledColor(props, "check") : getNotDisabledColor(props, "check") : "transparent";
|
|
263
|
+
if (!props.disabled) return props.readOnly ? getReadOnlyColor(props, "hoverBorder") : getEnabledColor(props, "hoverBorder");
|
|
244
264
|
}, function (props) {
|
|
245
|
-
|
|
265
|
+
if (!props.disabled) return props.readOnly ? getReadOnlyColor(props, "hoverBackground") : getEnabledColor(props, "hoverBackground");
|
|
246
266
|
});
|
|
247
267
|
|
|
248
268
|
var _default = DxcCheckbox;
|
|
@@ -4,42 +4,71 @@ 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
41
|
<ExampleContainer>
|
|
37
|
-
<Title title="
|
|
38
|
-
<DxcCheckbox label="Checkbox"
|
|
42
|
+
<Title title="Read-only" theme="light" level={4} />
|
|
43
|
+
<DxcCheckbox label="Checkbox" readOnly />
|
|
44
|
+
</ExampleContainer>
|
|
45
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
46
|
+
<Title title="Hovered read-only" theme="light" level={4} />
|
|
47
|
+
<DxcCheckbox label="Checkbox" readOnly />
|
|
39
48
|
</ExampleContainer>
|
|
40
49
|
<ExampleContainer>
|
|
41
|
-
<Title title="
|
|
42
|
-
<DxcCheckbox label="Checkbox"
|
|
50
|
+
<Title title="Read-only, checked and optional" theme="light" level={4} />
|
|
51
|
+
<DxcCheckbox label="Checkbox" readOnly defaultChecked optional />
|
|
52
|
+
</ExampleContainer>
|
|
53
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
54
|
+
<Title title="Hovered read-only and checked" theme="light" level={4} />
|
|
55
|
+
<DxcCheckbox label="Checkbox" readOnly defaultChecked optional />
|
|
56
|
+
</ExampleContainer>
|
|
57
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
58
|
+
<Title title="Focused" theme="light" level={4} />
|
|
59
|
+
<DxcCheckbox label="Focused" />
|
|
60
|
+
</ExampleContainer>
|
|
61
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
62
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
63
|
+
<DxcCheckbox label="Hovered" />
|
|
64
|
+
</ExampleContainer>
|
|
65
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
66
|
+
<Title title="Hovered and checked" theme="light" level={4} />
|
|
67
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
68
|
+
</ExampleContainer>
|
|
69
|
+
<ExampleContainer>
|
|
70
|
+
<Title title="Optional" theme="light" level={4} />
|
|
71
|
+
<DxcCheckbox label="Checkbox" optional />
|
|
43
72
|
</ExampleContainer>
|
|
44
73
|
<ExampleContainer>
|
|
45
74
|
<Title title="Label after" theme="light" level={4} />
|
|
@@ -53,25 +82,9 @@ const Checkbox = () => (
|
|
|
53
82
|
<Title title="Optional with label after" theme="light" level={4} />
|
|
54
83
|
<DxcCheckbox label="Checkbox" optional labelPosition="after" />
|
|
55
84
|
</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
85
|
<ExampleContainer>
|
|
61
86
|
<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 />
|
|
87
|
+
<DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
|
|
75
88
|
</ExampleContainer>
|
|
76
89
|
<BackgroundColorProvider color="#333333">
|
|
77
90
|
<DarkContainer>
|
|
@@ -84,20 +97,28 @@ const Checkbox = () => (
|
|
|
84
97
|
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
85
98
|
</ExampleContainer>
|
|
86
99
|
<ExampleContainer>
|
|
87
|
-
<Title title="
|
|
88
|
-
<DxcCheckbox label="Checkbox"
|
|
100
|
+
<Title title="Disabled" theme="dark" level={4} />
|
|
101
|
+
<DxcCheckbox label="Checkbox" disabled />
|
|
89
102
|
</ExampleContainer>
|
|
90
103
|
<ExampleContainer>
|
|
91
|
-
<Title title="Disabled and
|
|
92
|
-
<DxcCheckbox label="Checkbox" disabled defaultChecked />
|
|
104
|
+
<Title title="Disabled, checked and optional" theme="dark" level={4} />
|
|
105
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked optional />
|
|
93
106
|
</ExampleContainer>
|
|
94
|
-
<ExampleContainer>
|
|
95
|
-
<Title title="
|
|
96
|
-
<DxcCheckbox label="
|
|
107
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
108
|
+
<Title title="Focused" theme="dark" level={4} />
|
|
109
|
+
<DxcCheckbox label="Focused" />
|
|
110
|
+
</ExampleContainer>
|
|
111
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
112
|
+
<Title title="Hovered" theme="dark" level={4} />
|
|
113
|
+
<DxcCheckbox label="Hovered" />
|
|
114
|
+
</ExampleContainer>
|
|
115
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
116
|
+
<Title title="Hovered and checked" theme="dark" level={4} />
|
|
117
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
97
118
|
</ExampleContainer>
|
|
98
119
|
<ExampleContainer>
|
|
99
|
-
<Title title="
|
|
100
|
-
<DxcCheckbox label="Checkbox"
|
|
120
|
+
<Title title="Optional" theme="dark" level={4} />
|
|
121
|
+
<DxcCheckbox label="Checkbox" optional />
|
|
101
122
|
</ExampleContainer>
|
|
102
123
|
<ExampleContainer>
|
|
103
124
|
<Title title="Label after" theme="dark" level={4} />
|
|
@@ -111,25 +132,9 @@ const Checkbox = () => (
|
|
|
111
132
|
<Title title="Optional with label after" theme="dark" level={4} />
|
|
112
133
|
<DxcCheckbox label="Checkbox" optional labelPosition="after" />
|
|
113
134
|
</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
135
|
<ExampleContainer>
|
|
119
136
|
<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 />
|
|
137
|
+
<DxcCheckbox label="Checkbox" disabled labelPosition="after" optional />
|
|
133
138
|
</ExampleContainer>
|
|
134
139
|
</DarkContainer>
|
|
135
140
|
</BackgroundColorProvider>
|
|
@@ -178,11 +183,94 @@ const Checkbox = () => (
|
|
|
178
183
|
<Title title="Xxlarge" theme="light" level={4} />
|
|
179
184
|
<DxcCheckbox label="Xxlarge" margin="xxlarge" />
|
|
180
185
|
</ExampleContainer>
|
|
186
|
+
<ExampleContainer>
|
|
187
|
+
<Title title="Overflow container" theme="light" level={4} />
|
|
188
|
+
<ScrollableContainer id="scroll-container">
|
|
189
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
190
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
191
|
+
<DxcCheckbox label="Checkbox" />
|
|
192
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
193
|
+
<DxcCheckbox label="Checkbox" />
|
|
194
|
+
<DxcCheckbox label="Checkbox" />
|
|
195
|
+
<DxcCheckbox label="Checkbox" />
|
|
196
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
197
|
+
</ScrollableContainer>
|
|
198
|
+
</ExampleContainer>
|
|
199
|
+
<ExampleContainer>
|
|
200
|
+
<Title title="Label overflow" theme="light" level={4} />
|
|
201
|
+
<SmallContainer>
|
|
202
|
+
<DxcCheckbox label="Very long label to check its overflowing" defaultChecked />
|
|
203
|
+
<DxcCheckbox label="Very long label to check its overflowing" labelPosition="after" />
|
|
204
|
+
</SmallContainer>
|
|
205
|
+
</ExampleContainer>
|
|
206
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
207
|
+
<ExampleContainer>
|
|
208
|
+
<Title title="Default" theme="light" level={4} />
|
|
209
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
210
|
+
<DxcCheckbox label="Checkbox" />
|
|
211
|
+
</HalstackProvider>
|
|
212
|
+
</ExampleContainer>
|
|
213
|
+
<ExampleContainer>
|
|
214
|
+
<Title title="Checked" theme="light" level={4} />
|
|
215
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
216
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
217
|
+
</HalstackProvider>
|
|
218
|
+
</ExampleContainer>
|
|
219
|
+
<ExampleContainer>
|
|
220
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
221
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
222
|
+
<DxcCheckbox label="Checkbox" disabled />
|
|
223
|
+
</HalstackProvider>
|
|
224
|
+
</ExampleContainer>
|
|
225
|
+
<ExampleContainer>
|
|
226
|
+
<Title title="Disabled checked" theme="light" level={4} />
|
|
227
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
228
|
+
<DxcCheckbox label="Checkbox" defaultChecked disabled />
|
|
229
|
+
</HalstackProvider>
|
|
230
|
+
</ExampleContainer>
|
|
231
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
232
|
+
<Title title="Focused" theme="light" level={4} />
|
|
233
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
234
|
+
<DxcCheckbox label="Focused" />
|
|
235
|
+
</HalstackProvider>
|
|
236
|
+
</ExampleContainer>
|
|
237
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
238
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
239
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
240
|
+
<DxcCheckbox label="Hovered" />
|
|
241
|
+
</HalstackProvider>
|
|
242
|
+
</ExampleContainer>
|
|
243
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
244
|
+
<Title title="Hovered and checked" theme="light" level={4} />
|
|
245
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
246
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
247
|
+
</HalstackProvider>
|
|
248
|
+
</ExampleContainer>
|
|
181
249
|
</>
|
|
182
250
|
);
|
|
183
251
|
|
|
184
252
|
export const Chromatic = Checkbox.bind({});
|
|
253
|
+
|
|
185
254
|
Chromatic.play = async () => {
|
|
186
|
-
|
|
187
|
-
|
|
255
|
+
const listEl = document.getElementById("scroll-container");
|
|
256
|
+
listEl?.scrollTo?.({ top: 50 });
|
|
188
257
|
};
|
|
258
|
+
|
|
259
|
+
const ScrollableContainer = styled.div`
|
|
260
|
+
display: flex;
|
|
261
|
+
flex-direction: column;
|
|
262
|
+
gap: 14px;
|
|
263
|
+
width: 200px;
|
|
264
|
+
height: 200px;
|
|
265
|
+
border: 1px solid #000;
|
|
266
|
+
padding: 14px;
|
|
267
|
+
overflow: auto;
|
|
268
|
+
`;
|
|
269
|
+
|
|
270
|
+
const SmallContainer = styled.div`
|
|
271
|
+
display: flex;
|
|
272
|
+
flex-direction: column;
|
|
273
|
+
gap: 14px;
|
|
274
|
+
width: 150px;
|
|
275
|
+
height: 150px;
|
|
276
|
+
`;
|