@dxc-technology/halstack-react 0.0.0-61a8ced → 0.0.0-62702b8
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 +74 -53
- 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 +57 -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 +42 -41
- package/dropdown/Dropdown.stories.tsx +210 -84
- package/dropdown/Dropdown.test.js +22 -27
- package/dropdown/DropdownMenu.js +12 -18
- package/dropdown/DropdownMenuItem.js +5 -18
- 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 +5 -3
- package/main.js +18 -2
- 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 +49 -33
- package/{tabs-nav → nav-tabs}/types.d.ts +8 -9
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +8 -4
- package/number-input/NumberInput.stories.tsx +47 -2
- package/number-input/NumberInput.test.js +354 -92
- package/number-input/types.d.ts +6 -0
- package/package.json +14 -19
- 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.d.ts +1 -1
- package/radio-group/Radio.js +50 -35
- package/radio-group/RadioGroup.js +29 -29
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +153 -99
- package/radio-group/types.d.ts +5 -5
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +51 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.js +49 -108
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +41 -64
- package/{resultsetTable → resultset-table}/types.d.ts +1 -1
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +5 -35
- 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 +95 -84
- package/switch/Switch.stories.tsx +33 -0
- package/switch/Switch.test.js +27 -14
- 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/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.js +40 -11
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +232 -342
- package/text-input/TextInput.stories.tsx +319 -184
- package/text-input/TextInput.test.js +848 -726
- package/text-input/types.d.ts +27 -2
- 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/{resultsetTable → grid}/types.js +0 -0
- /package/{tabs-nav → image}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.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,20 +85,21 @@ 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) {
|
|
97
101
|
switch (event.key) {
|
|
98
102
|
case " ":
|
|
99
|
-
case "Space":
|
|
100
103
|
event.preventDefault();
|
|
101
104
|
handleCheckboxChange();
|
|
102
105
|
}
|
|
@@ -106,16 +109,19 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
106
109
|
theme: colorsTheme.checkbox
|
|
107
110
|
}, /*#__PURE__*/_react["default"].createElement(MainContainer, {
|
|
108
111
|
disabled: disabled,
|
|
109
|
-
|
|
112
|
+
readOnly: readOnly,
|
|
113
|
+
onClick: handleCheckboxChange,
|
|
110
114
|
margin: margin,
|
|
111
115
|
size: size,
|
|
112
116
|
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
113
|
-
backgroundType: backgroundType
|
|
114
|
-
|
|
117
|
+
backgroundType: backgroundType,
|
|
118
|
+
ref: ref
|
|
119
|
+
}, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
115
120
|
id: labelId,
|
|
116
121
|
disabled: disabled,
|
|
117
|
-
backgroundType: backgroundType
|
|
118
|
-
|
|
122
|
+
backgroundType: backgroundType,
|
|
123
|
+
labelPosition: labelPosition
|
|
124
|
+
}, label, optional && " ".concat(translatedLabels.formFields.optionalLabel)), /*#__PURE__*/_react["default"].createElement(ValueInput, {
|
|
119
125
|
type: "checkbox",
|
|
120
126
|
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
121
127
|
name: name,
|
|
@@ -129,18 +135,16 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
129
135
|
tabIndex: disabled ? -1 : tabIndex,
|
|
130
136
|
"aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
131
137
|
"aria-disabled": disabled,
|
|
138
|
+
"aria-readonly": readOnly,
|
|
132
139
|
"aria-required": !disabled && !optional,
|
|
133
140
|
"aria-labelledby": labelId,
|
|
134
141
|
backgroundType: backgroundType,
|
|
135
142
|
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
136
143
|
disabled: disabled,
|
|
144
|
+
readOnly: readOnly,
|
|
137
145
|
ref: checkboxRef
|
|
138
|
-
}, (checked !== null && checked !== void 0 ? checked : innerChecked) && checkedIcon))
|
|
139
|
-
|
|
140
|
-
disabled: disabled,
|
|
141
|
-
backgroundType: backgroundType
|
|
142
|
-
}, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, "".concat(translatedLabels.formFields.optionalLabel, " ")), label)));
|
|
143
|
-
};
|
|
146
|
+
}, (checked !== null && checked !== void 0 ? checked : innerChecked) && checkedIcon))));
|
|
147
|
+
});
|
|
144
148
|
|
|
145
149
|
var sizes = {
|
|
146
150
|
small: "120px",
|
|
@@ -151,53 +155,70 @@ var sizes = {
|
|
|
151
155
|
};
|
|
152
156
|
|
|
153
157
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
154
|
-
|
|
155
|
-
return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
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];
|
|
159
159
|
};
|
|
160
160
|
|
|
161
161
|
var getDisabledColor = function getDisabledColor(props, element) {
|
|
162
162
|
switch (element) {
|
|
163
163
|
case "check":
|
|
164
|
-
return props.backgroundType
|
|
164
|
+
return props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
|
|
165
165
|
|
|
166
166
|
case "background":
|
|
167
|
-
return props.backgroundType
|
|
167
|
+
return props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
|
|
168
168
|
|
|
169
169
|
case "border":
|
|
170
|
-
return props.backgroundType
|
|
170
|
+
return props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
|
|
171
171
|
|
|
172
172
|
case "label":
|
|
173
|
-
return props.backgroundType
|
|
173
|
+
return props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
|
|
174
174
|
}
|
|
175
175
|
};
|
|
176
176
|
|
|
177
|
-
var
|
|
177
|
+
var getReadOnlyColor = function getReadOnlyColor(props, element) {
|
|
178
178
|
switch (element) {
|
|
179
179
|
case "check":
|
|
180
|
-
return props.
|
|
180
|
+
return props.theme.readOnlyCheckColor;
|
|
181
181
|
|
|
182
182
|
case "background":
|
|
183
|
-
return props.
|
|
183
|
+
return props.theme.readOnlyBackgroundColorChecked;
|
|
184
184
|
|
|
185
185
|
case "hoverBackground":
|
|
186
|
-
return props.
|
|
186
|
+
return props.theme.hoverReadOnlyBackgroundColorChecked;
|
|
187
187
|
|
|
188
188
|
case "border":
|
|
189
|
-
return props.
|
|
189
|
+
return props.theme.readOnlyBorderColor;
|
|
190
190
|
|
|
191
191
|
case "hoverBorder":
|
|
192
|
-
return props.
|
|
192
|
+
return props.theme.hoverReadOnlyBorderColor;
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
var getEnabledColor = function getEnabledColor(props, element) {
|
|
197
|
+
switch (element) {
|
|
198
|
+
case "check":
|
|
199
|
+
return props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
|
|
200
|
+
|
|
201
|
+
case "background":
|
|
202
|
+
return props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
|
|
203
|
+
|
|
204
|
+
case "hoverBackground":
|
|
205
|
+
return props.backgroundType === "dark" ? props.theme.hoverBackgroundColorCheckedOnDark : props.theme.hoverBackgroundColorChecked;
|
|
206
|
+
|
|
207
|
+
case "border":
|
|
208
|
+
return props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
|
|
209
|
+
|
|
210
|
+
case "hoverBorder":
|
|
211
|
+
return props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor;
|
|
193
212
|
|
|
194
213
|
case "label":
|
|
195
|
-
return props.backgroundType
|
|
214
|
+
return props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
|
|
196
215
|
}
|
|
197
216
|
};
|
|
198
217
|
|
|
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) {
|
|
200
|
-
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");
|
|
201
222
|
}, function (props) {
|
|
202
223
|
return props.theme.fontFamily;
|
|
203
224
|
}, function (props) {
|
|
@@ -210,17 +231,21 @@ var ValueInput = _styledComponents["default"].input(_templateObject2 || (_templa
|
|
|
210
231
|
|
|
211
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"])));
|
|
212
233
|
|
|
213
|
-
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
|
|
214
|
-
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");
|
|
215
236
|
}, function (props) {
|
|
216
|
-
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";
|
|
217
238
|
}, function (props) {
|
|
218
|
-
return props.disabled ? getDisabledColor(props, "background") :
|
|
239
|
+
return props.disabled ? getDisabledColor(props, "background") : props.readOnly ? getReadOnlyColor(props, "background") : getEnabledColor(props, "background");
|
|
219
240
|
}, function (props) {
|
|
220
241
|
return props.backgroundType === "dark" ? props.theme.focusColorOnDark : props.theme.focusColor;
|
|
242
|
+
}, function (props) {
|
|
243
|
+
return props.disabled && "pointer-events: none;";
|
|
221
244
|
});
|
|
222
245
|
|
|
223
|
-
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) {
|
|
224
249
|
return calculateWidth(props.margin, props.size);
|
|
225
250
|
}, function (props) {
|
|
226
251
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
@@ -233,15 +258,11 @@ var MainContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
233
258
|
}, function (props) {
|
|
234
259
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
235
260
|
}, function (props) {
|
|
236
|
-
return props.disabled ? "not-allowed" : "pointer";
|
|
237
|
-
}, function (props) {
|
|
238
|
-
return props.theme.checkLabelSpacing;
|
|
261
|
+
return props.disabled ? "not-allowed" : props.readOnly ? "default" : "pointer";
|
|
239
262
|
}, Checkbox, function (props) {
|
|
240
|
-
|
|
241
|
-
}, function (props) {
|
|
242
|
-
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");
|
|
243
264
|
}, function (props) {
|
|
244
|
-
|
|
265
|
+
if (!props.disabled) return props.readOnly ? getReadOnlyColor(props, "hoverBackground") : getEnabledColor(props, "hoverBackground");
|
|
245
266
|
});
|
|
246
267
|
|
|
247
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
|
+
`;
|