@dxc-technology/halstack-react 10.0.0 → 11.0.0
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 +5 -17
- package/HalstackContext.d.ts +26 -6
- package/HalstackContext.js +9 -34
- package/README.md +47 -0
- package/accordion/Accordion.js +21 -58
- package/accordion/Accordion.stories.tsx +1 -15
- package/accordion/Accordion.test.js +18 -33
- package/accordion/types.d.ts +5 -5
- package/accordion-group/AccordionGroup.js +15 -42
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +42 -60
- package/accordion-group/AccordionGroupAccordion.js +9 -21
- package/accordion-group/types.d.ts +6 -6
- package/alert/Alert.js +14 -46
- package/alert/Alert.test.js +28 -45
- package/alert/types.d.ts +5 -5
- package/badge/Badge.js +4 -17
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +13 -21
- package/bleed/types.d.ts +2 -2
- package/box/Box.js +10 -29
- package/box/Box.test.js +1 -6
- package/box/types.d.ts +3 -3
- package/bulleted-list/BulletedList.js +7 -33
- package/bulleted-list/BulletedList.stories.tsx +1 -91
- package/bulleted-list/types.d.ts +5 -5
- package/button/Button.js +23 -46
- package/button/Button.stories.tsx +5 -86
- package/button/Button.test.js +11 -21
- package/button/types.d.ts +4 -4
- package/card/Card.js +21 -44
- package/card/Card.test.js +10 -21
- package/card/types.d.ts +5 -5
- package/checkbox/Checkbox.js +81 -111
- package/checkbox/Checkbox.stories.tsx +16 -54
- package/checkbox/Checkbox.test.js +107 -63
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.js +12 -31
- package/chip/Chip.test.js +15 -28
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.js +1 -2
- package/common/utils.js +2 -8
- package/common/variables.d.ts +23 -6
- package/common/variables.js +25 -15
- package/date-input/Calendar.js +13 -57
- package/date-input/DateInput.js +50 -96
- package/date-input/DateInput.stories.tsx +11 -30
- package/date-input/DateInput.test.js +674 -701
- package/date-input/DatePicker.js +11 -42
- package/date-input/Icons.d.ts +6 -6
- package/date-input/Icons.js +6 -23
- package/date-input/YearPicker.js +8 -34
- package/date-input/types.d.ts +27 -21
- package/dialog/Dialog.js +11 -35
- package/dialog/Dialog.test.js +125 -187
- package/dialog/types.d.ts +18 -13
- package/dropdown/Dropdown.js +39 -93
- package/dropdown/Dropdown.test.js +391 -378
- package/dropdown/DropdownMenu.js +8 -19
- package/dropdown/DropdownMenuItem.js +5 -17
- package/dropdown/types.d.ts +17 -19
- package/file-input/FileInput.js +131 -220
- package/file-input/FileInput.stories.tsx +1 -1
- package/file-input/FileInput.test.js +293 -342
- package/file-input/FileItem.js +12 -39
- package/file-input/types.d.ts +9 -9
- package/flex/Flex.js +25 -39
- package/flex/types.d.ts +6 -6
- package/footer/Footer.js +9 -39
- package/footer/Footer.stories.tsx +8 -7
- package/footer/Footer.test.js +18 -32
- package/footer/Icons.d.ts +2 -2
- package/footer/Icons.js +2 -7
- package/footer/types.d.ts +13 -13
- package/grid/Grid.js +1 -16
- package/grid/types.d.ts +10 -10
- package/header/Header.d.ts +1 -1
- package/header/Header.js +19 -64
- package/header/Header.test.js +12 -25
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +2 -7
- package/header/types.d.ts +5 -7
- package/heading/Heading.js +9 -31
- package/heading/Heading.test.js +70 -87
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +13 -21
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +1 -1
- package/layout/ApplicationLayout.js +25 -65
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +3 -3
- package/link/Link.js +21 -42
- package/link/Link.test.js +23 -41
- package/link/types.d.ts +14 -14
- package/main.d.ts +3 -2
- package/main.js +10 -51
- package/nav-tabs/NavTabs.js +11 -43
- package/nav-tabs/NavTabs.stories.tsx +1 -1
- package/nav-tabs/NavTabs.test.js +36 -43
- package/nav-tabs/Tab.js +16 -45
- package/nav-tabs/types.d.ts +9 -9
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +700 -412
- package/number-input/types.d.ts +11 -5
- package/package.json +28 -26
- package/paginator/Icons.d.ts +5 -5
- package/paginator/Icons.js +5 -19
- package/paginator/Paginator.js +14 -39
- package/paginator/Paginator.test.js +224 -207
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.js +3 -14
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -32
- package/password-input/PasswordInput.test.js +157 -140
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.js +16 -42
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
- package/progress-bar/ProgressBar.test.js +35 -52
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +1 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +22 -54
- package/radio-group/RadioGroup.js +37 -83
- package/radio-group/RadioGroup.stories.tsx +10 -10
- package/radio-group/RadioGroup.test.js +504 -470
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.js +22 -58
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +72 -92
- package/{resultsetTable → resultset-table}/types.d.ts +7 -7
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.js +13 -39
- package/select/Option.js +9 -26
- package/select/Select.js +54 -138
- package/select/Select.stories.tsx +3 -3
- package/select/Select.test.js +1906 -1800
- package/select/types.d.ts +14 -15
- package/sidenav/Icons.d.ts +4 -4
- package/sidenav/Icons.js +1 -5
- package/sidenav/Sidenav.js +24 -63
- package/sidenav/Sidenav.test.js +3 -10
- package/sidenav/types.d.ts +18 -18
- package/slider/Slider.js +38 -86
- package/slider/Slider.test.js +107 -103
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.js +10 -40
- package/spinner/Spinner.test.js +25 -34
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.js +26 -69
- package/switch/Switch.stories.tsx +0 -34
- package/switch/Switch.test.js +51 -96
- package/switch/types.d.ts +4 -4
- package/table/Table.js +4 -23
- package/table/Table.test.js +1 -6
- package/table/types.d.ts +8 -8
- package/tabs/Tab.js +10 -29
- package/tabs/Tabs.js +48 -124
- package/tabs/Tabs.test.js +62 -118
- package/tabs/types.d.ts +19 -19
- package/tag/Tag.js +21 -51
- package/tag/Tag.test.js +19 -30
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +5 -5
- package/text-input/Icons.js +1 -5
- package/text-input/Suggestion.js +9 -26
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +12 -57
- package/text-input/TextInput.js +182 -263
- package/text-input/TextInput.stories.tsx +48 -152
- package/text-input/TextInput.test.js +1210 -1194
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.js +60 -96
- package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -99
- package/textarea/Textarea.test.js +150 -179
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.js +91 -105
- package/toggle-group/ToggleGroup.stories.tsx +7 -4
- package/toggle-group/ToggleGroup.test.js +68 -87
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.js +4 -13
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +20 -3
- package/useTheme.js +1 -8
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +2 -2
- package/utils/BaseTypography.js +16 -30
- package/utils/FocusLock.js +12 -36
- package/wizard/Wizard.js +14 -49
- package/wizard/Wizard.test.js +53 -80
- package/wizard/types.d.ts +6 -6
- 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/Icons.d.ts +0 -7
- package/slider/Slider.stories.tsx +0 -240
- /package/{resultsetTable → image}/types.js +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +0 -0
- /package/{number-input/numberInputContextTypes.js → resultset-table/types.js} +0 -0
- /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
- /package/table/{Table.stories.jsx → Table.stories.tsx} +0 -0
package/bulleted-list/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
3
|
+
type IconProps = {
|
|
4
4
|
/**
|
|
5
5
|
* Defines the style of the bullet point in the list.
|
|
6
6
|
*/
|
|
@@ -14,7 +14,7 @@ declare type IconProps = {
|
|
|
14
14
|
*/
|
|
15
15
|
children: React.ReactNode;
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
type OtherProps = {
|
|
18
18
|
/**
|
|
19
19
|
* Defines the style of the bullet point in the list.
|
|
20
20
|
*/
|
|
@@ -28,9 +28,9 @@ declare type OtherProps = {
|
|
|
28
28
|
*/
|
|
29
29
|
children: React.ReactNode;
|
|
30
30
|
};
|
|
31
|
-
|
|
31
|
+
type Props = IconProps | OtherProps;
|
|
32
32
|
export default Props;
|
|
33
|
-
export
|
|
33
|
+
export type BulletedListItemPropsType = {
|
|
34
34
|
/**
|
|
35
35
|
* Text to be shown in the list.
|
|
36
36
|
*/
|
package/button/Button.js
CHANGED
|
@@ -1,57 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
-
|
|
18
12
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
19
|
-
|
|
20
13
|
var _variables = require("../common/variables");
|
|
21
|
-
|
|
22
14
|
var _utils = require("../common/utils");
|
|
23
|
-
|
|
24
15
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
|
-
|
|
26
16
|
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
27
|
-
|
|
28
17
|
var _templateObject, _templateObject2, _templateObject3;
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
-
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
34
20
|
var DxcButton = function DxcButton(_ref) {
|
|
35
21
|
var _ref$label = _ref.label,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
22
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
23
|
+
_ref$mode = _ref.mode,
|
|
24
|
+
mode = _ref$mode === void 0 ? "primary" : _ref$mode,
|
|
25
|
+
_ref$disabled = _ref.disabled,
|
|
26
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
27
|
+
_ref$iconPosition = _ref.iconPosition,
|
|
28
|
+
iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
|
|
29
|
+
title = _ref.title,
|
|
30
|
+
_ref$type = _ref.type,
|
|
31
|
+
type = _ref$type === void 0 ? "button" : _ref$type,
|
|
32
|
+
icon = _ref.icon,
|
|
33
|
+
_ref$onClick = _ref.onClick,
|
|
34
|
+
_onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
|
|
35
|
+
margin = _ref.margin,
|
|
36
|
+
_ref$size = _ref.size,
|
|
37
|
+
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
38
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
39
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
55
40
|
var colorsTheme = (0, _useTheme["default"])();
|
|
56
41
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
57
42
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
@@ -76,7 +61,6 @@ var DxcButton = function DxcButton(_ref) {
|
|
|
76
61
|
src: icon
|
|
77
62
|
}) : icon)));
|
|
78
63
|
};
|
|
79
|
-
|
|
80
64
|
var sizes = {
|
|
81
65
|
small: "42px",
|
|
82
66
|
medium: "120px",
|
|
@@ -84,18 +68,15 @@ var sizes = {
|
|
|
84
68
|
fillParent: "100%",
|
|
85
69
|
fitContent: "fit-content"
|
|
86
70
|
};
|
|
87
|
-
|
|
88
71
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
89
72
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
90
73
|
};
|
|
91
|
-
|
|
92
74
|
var getButtonStyles = function getButtonStyles(props) {
|
|
93
75
|
var $mode = props.$mode,
|
|
94
|
-
|
|
95
|
-
|
|
76
|
+
backgroundType = props.backgroundType,
|
|
77
|
+
disabled = props.disabled;
|
|
96
78
|
return "\n border-radius: ".concat($mode === "primary" ? props.theme.primaryBorderRadius : $mode === "secondary" ? props.theme.secondaryBorderRadius : props.theme.textBorderRadius, ";\n border-width: ").concat($mode === "primary" ? props.theme.primaryBorderThickness : $mode === "secondary" ? props.theme.secondaryBorderThickness : props.theme.textBorderThickness, ";\n border-style: ").concat($mode === "primary" ? props.theme.primaryBorderStyle : $mode === "secondary" ? props.theme.secondaryBorderStyle : props.theme.textBorderStyle, ";\n font-family: ").concat($mode === "primary" ? props.theme.primaryFontFamily : $mode === "secondary" ? props.theme.secondaryFontFamily : props.theme.textFontFamily, ";\n font-size: ").concat($mode === "primary" ? props.theme.primaryFontSize : $mode === "secondary" ? props.theme.secondaryFontSize : props.theme.textFontSize, ";\n font-weight: ").concat($mode === "primary" ? props.theme.primaryFontWeight : $mode === "secondary" ? props.theme.secondaryFontWeight : props.theme.textFontWeight, ";\n background-color: ").concat($mode === "primary" ? backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor : $mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor : backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat($mode === "primary" ? backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor : $mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor : backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, ";\n border-color: ").concat($mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor : "", ";\n &:hover {\n background-color: ").concat($mode === "primary" ? backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor : $mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor : backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n color: ").concat($mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n }\n &:focus {\n border-color: ").concat($mode === "secondary" ? "transparent" : "", ";\n }\n &:active {\n background-color: ").concat($mode === "primary" ? backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor : $mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor : backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, ";\n color: ").concat($mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n border-color: ").concat($mode === "secondary" ? "transparent" : "", ";\n outline: none;\n box-shadow: ").concat(!disabled ? "0 0 0 2px ".concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor) : "", ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat($mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor : $mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor : backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n color: ").concat($mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor : $mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor : backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, ";\n border-color: ").concat($mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor : "", ";\n }\n ");
|
|
97
79
|
};
|
|
98
|
-
|
|
99
80
|
var Button = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: ", ";\n gap: 0.5rem;\n align-items: center;\n justify-content: center;\n width: ", ";\n height: 40px;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n cursor: pointer;\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n"])), function (props) {
|
|
100
81
|
return props.iconPosition === "after" ? "row" : "row-reverse";
|
|
101
82
|
}, function (props) {
|
|
@@ -131,14 +112,10 @@ var Button = _styledComponents["default"].button(_templateObject || (_templateOb
|
|
|
131
112
|
}, function (props) {
|
|
132
113
|
return getButtonStyles(props);
|
|
133
114
|
});
|
|
134
|
-
|
|
135
115
|
var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n line-height: ", ";\n font-size: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n text-transform: none;\n white-space: nowrap;\n"])), function (props) {
|
|
136
116
|
return props.theme.labelFontLineHeight;
|
|
137
117
|
}, function (props) {
|
|
138
118
|
return props.theme.fontSize;
|
|
139
119
|
});
|
|
140
|
-
|
|
141
120
|
var IconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n img,\n svg {\n height: 24px;\n width: 24px;\n }\n"])));
|
|
142
|
-
|
|
143
|
-
var _default = DxcButton;
|
|
144
|
-
exports["default"] = _default;
|
|
121
|
+
var _default = exports["default"] = DxcButton;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
3
2
|
import DxcButton from "./Button";
|
|
4
3
|
import DxcFlex from "./../flex/Flex";
|
|
5
4
|
import Title from "../../.storybook/components/Title";
|
|
6
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
7
|
-
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
8
6
|
import { HalstackProvider } from "../HalstackContext";
|
|
9
7
|
|
|
10
8
|
export default {
|
|
@@ -168,85 +166,6 @@ export const Chromatic = () => (
|
|
|
168
166
|
icon="https://www.freepnglogos.com/uploads/facebook-logo-design-1.png"
|
|
169
167
|
/>
|
|
170
168
|
</ExampleContainer>
|
|
171
|
-
<BackgroundColorProvider color="#333333">
|
|
172
|
-
<DarkContainer>
|
|
173
|
-
<Title title="Primary" theme="dark" level={2} />
|
|
174
|
-
<ExampleContainer>
|
|
175
|
-
<Title title="Enabled" theme="dark" level={4} />
|
|
176
|
-
<DxcButton label="Primary enabled" />
|
|
177
|
-
</ExampleContainer>
|
|
178
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
179
|
-
<Title title="Hovered" theme="dark" level={4} />
|
|
180
|
-
<DxcButton label="Primary hovered" />
|
|
181
|
-
</ExampleContainer>
|
|
182
|
-
<ExampleContainer pseudoState="pseudo-focus">
|
|
183
|
-
<Title title="Focused" theme="dark" level={4} />
|
|
184
|
-
<DxcButton label="Primary focused" />
|
|
185
|
-
</ExampleContainer>
|
|
186
|
-
<ExampleContainer pseudoState="pseudo-active">
|
|
187
|
-
<Title title="Actived" theme="dark" level={4} />
|
|
188
|
-
<DxcButton label="Primary actived" />
|
|
189
|
-
</ExampleContainer>
|
|
190
|
-
<ExampleContainer>
|
|
191
|
-
<Title title="Disabled" theme="dark" level={4} />
|
|
192
|
-
<DxcButton label="Primary disabled" disabled icon={iconSVG} />
|
|
193
|
-
</ExampleContainer>
|
|
194
|
-
<ExampleContainer>
|
|
195
|
-
<Title title="With icon" theme="dark" level={4} />
|
|
196
|
-
<DxcButton label="Primary" icon={iconSVG} />
|
|
197
|
-
</ExampleContainer>
|
|
198
|
-
<Title title="Secondary" theme="dark" level={2} />
|
|
199
|
-
<ExampleContainer>
|
|
200
|
-
<Title title="Enabled" theme="dark" level={4} />
|
|
201
|
-
<DxcButton mode="secondary" label="Secondary enabled" />
|
|
202
|
-
</ExampleContainer>
|
|
203
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
204
|
-
<Title title="Hovered" theme="dark" level={4} />
|
|
205
|
-
<DxcButton mode="secondary" label="Secondary hovered" />
|
|
206
|
-
</ExampleContainer>
|
|
207
|
-
<ExampleContainer pseudoState="pseudo-focus">
|
|
208
|
-
<Title title="Focused" theme="dark" level={4} />
|
|
209
|
-
<DxcButton mode="secondary" label="Secondary focused" />
|
|
210
|
-
</ExampleContainer>
|
|
211
|
-
<ExampleContainer pseudoState="pseudo-active">
|
|
212
|
-
<Title title="Actived" theme="dark" level={4} />
|
|
213
|
-
<DxcButton mode="secondary" label="Secondary actived" />
|
|
214
|
-
</ExampleContainer>
|
|
215
|
-
<ExampleContainer>
|
|
216
|
-
<Title title="Disabled" theme="dark" level={4} />
|
|
217
|
-
<DxcButton mode="secondary" disabled label="Secondary disabled" icon={iconSVG} />
|
|
218
|
-
</ExampleContainer>
|
|
219
|
-
<ExampleContainer>
|
|
220
|
-
<Title title="With icon" theme="dark" level={4} />
|
|
221
|
-
<DxcButton mode="secondary" label="Primary" icon={iconSVG} />
|
|
222
|
-
</ExampleContainer>
|
|
223
|
-
<Title title="Text" theme="dark" level={2} />
|
|
224
|
-
<ExampleContainer>
|
|
225
|
-
<Title title="Enabled" theme="dark" level={4} />
|
|
226
|
-
<DxcButton mode="text" label="Text enabled" />
|
|
227
|
-
</ExampleContainer>
|
|
228
|
-
<ExampleContainer pseudoState="pseudo-hover">
|
|
229
|
-
<Title title="Hovered" theme="dark" level={4} />
|
|
230
|
-
<DxcButton mode="text" label="Text hovered" />
|
|
231
|
-
</ExampleContainer>
|
|
232
|
-
<ExampleContainer pseudoState="pseudo-focus">
|
|
233
|
-
<Title title="Focused" theme="dark" level={4} />
|
|
234
|
-
<DxcButton mode="text" label="Text focused" />
|
|
235
|
-
</ExampleContainer>
|
|
236
|
-
<ExampleContainer pseudoState="pseudo-active">
|
|
237
|
-
<Title title="Actived" theme="dark" level={4} />
|
|
238
|
-
<DxcButton mode="text" label="Text actived" />
|
|
239
|
-
</ExampleContainer>
|
|
240
|
-
<ExampleContainer>
|
|
241
|
-
<Title title="Disabled" theme="dark" level={4} />
|
|
242
|
-
<DxcButton mode="text" label="Text disabled" disabled icon={iconSVG} />
|
|
243
|
-
</ExampleContainer>
|
|
244
|
-
<ExampleContainer>
|
|
245
|
-
<Title title="With icon" theme="dark" level={4} />
|
|
246
|
-
<DxcButton mode="text" label="Primary" icon={iconSVG} />
|
|
247
|
-
</ExampleContainer>
|
|
248
|
-
</DarkContainer>
|
|
249
|
-
</BackgroundColorProvider>
|
|
250
169
|
<Title title="Sizes" theme="light" level={2} />
|
|
251
170
|
<ExampleContainer>
|
|
252
171
|
<Title title="Small size" theme="light" level={4} />
|
|
@@ -254,7 +173,7 @@ export const Chromatic = () => (
|
|
|
254
173
|
</ExampleContainer>
|
|
255
174
|
<ExampleContainer>
|
|
256
175
|
<Title title="Medium size" theme="light" level={4} />
|
|
257
|
-
<DxcButton label="
|
|
176
|
+
<DxcButton label="MediumSize" size="medium" />
|
|
258
177
|
</ExampleContainer>
|
|
259
178
|
<ExampleContainer>
|
|
260
179
|
<Title title="Medium size with ellipsis" theme="light" level={4} />
|
|
@@ -262,11 +181,11 @@ export const Chromatic = () => (
|
|
|
262
181
|
</ExampleContainer>
|
|
263
182
|
<ExampleContainer>
|
|
264
183
|
<Title title="Medium size icon after" theme="light" level={4} />
|
|
265
|
-
<DxcButton label="
|
|
184
|
+
<DxcButton label="Medium" iconPosition="after" icon={iconSVG} size="medium" />
|
|
266
185
|
</ExampleContainer>
|
|
267
186
|
<ExampleContainer>
|
|
268
187
|
<Title title="Medium size icon before" theme="light" level={4} />
|
|
269
|
-
<DxcButton label="
|
|
188
|
+
<DxcButton label="Medium" iconPosition="before" icon={iconSVG} size="medium" />
|
|
270
189
|
</ExampleContainer>
|
|
271
190
|
<ExampleContainer>
|
|
272
191
|
<Title title="Medium size icon after with ellipsis" theme="light" level={4} />
|
|
@@ -286,11 +205,11 @@ export const Chromatic = () => (
|
|
|
286
205
|
</ExampleContainer>
|
|
287
206
|
<ExampleContainer>
|
|
288
207
|
<Title title="Large size icon after" theme="light" level={4} />
|
|
289
|
-
<DxcButton label="
|
|
208
|
+
<DxcButton label="LargeSizePrimaryButton" iconPosition="after" icon={iconSVG} size="large" />
|
|
290
209
|
</ExampleContainer>
|
|
291
210
|
<ExampleContainer>
|
|
292
211
|
<Title title="Large size icon before" theme="light" level={4} />
|
|
293
|
-
<DxcButton label="
|
|
212
|
+
<DxcButton label="LargeSizePrimaryButton" iconPosition="before" icon={iconSVG} size="large" />
|
|
294
213
|
</ExampleContainer>
|
|
295
214
|
<ExampleContainer>
|
|
296
215
|
<Title title="Large size icon after with ellipsis" theme="light" level={4} />
|
package/button/Button.test.js
CHANGED
|
@@ -1,44 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _Button = _interopRequireDefault(require("./Button.tsx"));
|
|
10
|
-
|
|
11
7
|
describe("Button component tests", function () {
|
|
12
8
|
test("Button renders with correct text", function () {
|
|
13
9
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
label: "Button"
|
|
11
|
+
})),
|
|
12
|
+
getByText = _render.getByText;
|
|
18
13
|
expect(getByText("Button")).toBeTruthy();
|
|
19
14
|
});
|
|
20
15
|
test("Calls correct function on click", function () {
|
|
21
16
|
var onClick = jest.fn();
|
|
22
|
-
|
|
23
17
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
label: "Button",
|
|
19
|
+
onClick: onClick
|
|
20
|
+
})),
|
|
21
|
+
getByText = _render2.getByText;
|
|
29
22
|
var button = getByText("Button");
|
|
30
|
-
|
|
31
23
|
_react2.fireEvent.click(button);
|
|
32
|
-
|
|
33
24
|
expect(onClick).toHaveBeenCalled();
|
|
34
25
|
});
|
|
35
26
|
test("Renders with correct accessibility attributes", function () {
|
|
36
27
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
label: "Home",
|
|
29
|
+
title: "Go home"
|
|
30
|
+
})),
|
|
31
|
+
getByRole = _render3.getByRole;
|
|
42
32
|
var button = getByRole("button");
|
|
43
33
|
expect(button.getAttribute("aria-label")).toBe("Go home");
|
|
44
34
|
expect(button.getAttribute("title")).toBe("Go home");
|
package/button/types.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
type Props = {
|
|
11
11
|
/**
|
|
12
12
|
* Text to be placed in the button.
|
|
13
13
|
*/
|
package/card/Card.js
CHANGED
|
@@ -1,60 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
14
|
var _variables = require("../common/variables");
|
|
23
|
-
|
|
24
15
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
|
-
|
|
26
16
|
var _Box = _interopRequireDefault(require("../box/Box"));
|
|
27
|
-
|
|
28
17
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
-
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
34
20
|
var DxcCard = function DxcCard(_ref) {
|
|
35
21
|
var imageSrc = _ref.imageSrc,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
22
|
+
_ref$imageBgColor = _ref.imageBgColor,
|
|
23
|
+
imageBgColor = _ref$imageBgColor === void 0 ? "black" : _ref$imageBgColor,
|
|
24
|
+
imagePadding = _ref.imagePadding,
|
|
25
|
+
_ref$imagePosition = _ref.imagePosition,
|
|
26
|
+
imagePosition = _ref$imagePosition === void 0 ? "before" : _ref$imagePosition,
|
|
27
|
+
linkHref = _ref.linkHref,
|
|
28
|
+
onClick = _ref.onClick,
|
|
29
|
+
_ref$imageCover = _ref.imageCover,
|
|
30
|
+
imageCover = _ref$imageCover === void 0 ? false : _ref$imageCover,
|
|
31
|
+
margin = _ref.margin,
|
|
32
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
33
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
|
|
34
|
+
_ref$outlined = _ref.outlined,
|
|
35
|
+
outlined = _ref$outlined === void 0 ? true : _ref$outlined,
|
|
36
|
+
children = _ref.children;
|
|
51
37
|
var colorsTheme = (0, _useTheme["default"])();
|
|
52
|
-
|
|
53
38
|
var _useState = (0, _react.useState)(false),
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
39
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
40
|
+
isHovered = _useState2[0],
|
|
41
|
+
changeIsHovered = _useState2[1];
|
|
58
42
|
return /*#__PURE__*/_react["default"].createElement(Card, {
|
|
59
43
|
hasAction: onClick || linkHref ? true : false,
|
|
60
44
|
margin: margin,
|
|
@@ -83,7 +67,6 @@ var DxcCard = function DxcCard(_ref) {
|
|
|
83
67
|
src: imageSrc
|
|
84
68
|
})), /*#__PURE__*/_react["default"].createElement(CardContent, null, children)))));
|
|
85
69
|
};
|
|
86
|
-
|
|
87
70
|
var Card = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n outline: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n text-decoration: none;\n ", "\n"])), function (_ref2) {
|
|
88
71
|
var hasAction = _ref2.hasAction;
|
|
89
72
|
return hasAction && "pointer" || "unset";
|
|
@@ -109,7 +92,6 @@ var Card = _styledComponents["default"].div(_templateObject || (_templateObject
|
|
|
109
92
|
var hasAction = _ref9.hasAction;
|
|
110
93
|
return hasAction && ":focus {\n outline: #0095ff auto 1px;\n }";
|
|
111
94
|
});
|
|
112
|
-
|
|
113
95
|
var CardContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: ", ";\n height: ", ";\n width: ", ";\n &:hover {\n border-color: ", ";\n }\n"])), function (props) {
|
|
114
96
|
return props.imagePosition === "after" ? "row-reverse" : "row";
|
|
115
97
|
}, function (props) {
|
|
@@ -120,7 +102,6 @@ var CardContainer = _styledComponents["default"].div(_templateObject2 || (_templ
|
|
|
120
102
|
var hasAction = _ref10.hasAction;
|
|
121
103
|
return hasAction ? "" : "unset";
|
|
122
104
|
});
|
|
123
|
-
|
|
124
105
|
var TagImage = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n object-fit: ", ";\n"])), function (_ref11) {
|
|
125
106
|
var imagePadding = _ref11.imagePadding;
|
|
126
107
|
return !imagePadding ? "100%" : (0, _typeof2["default"])(imagePadding) !== "object" && "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
|
|
@@ -131,13 +112,9 @@ var TagImage = _styledComponents["default"].img(_templateObject3 || (_templateOb
|
|
|
131
112
|
var imageCover = _ref13.imageCover;
|
|
132
113
|
return imageCover ? "cover" : "contain";
|
|
133
114
|
});
|
|
134
|
-
|
|
135
115
|
var ImageContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n width: 35%;\n height: 100%;\n background-color: ", ";\n"])), function (_ref14) {
|
|
136
116
|
var imageBgColor = _ref14.imageBgColor;
|
|
137
117
|
return imageBgColor;
|
|
138
118
|
});
|
|
139
|
-
|
|
140
119
|
var CardContent = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n overflow: hidden;\n"])));
|
|
141
|
-
|
|
142
|
-
var _default = DxcCard;
|
|
143
|
-
exports["default"] = _default;
|
|
120
|
+
var _default = exports["default"] = DxcCard;
|
package/card/Card.test.js
CHANGED
|
@@ -1,50 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _Card = _interopRequireDefault(require("./Card.tsx"));
|
|
10
|
-
|
|
11
7
|
describe("Card component tests", function () {
|
|
12
8
|
test("Card renders with correct content", function () {
|
|
13
9
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], null, "test-card")),
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
getByText = _render.getByText;
|
|
16
11
|
expect(getByText("test-card")).toBeTruthy();
|
|
17
12
|
});
|
|
18
13
|
test("Card renders with correct href", function () {
|
|
19
14
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
linkHref: "/testPage"
|
|
16
|
+
}, "test-card")),
|
|
17
|
+
getByRole = _render2.getByRole;
|
|
24
18
|
var card = getByRole("link");
|
|
25
19
|
expect(card.getAttribute("href")).toEqual("/testPage");
|
|
26
20
|
});
|
|
27
21
|
test("Card renders with correct image", function () {
|
|
28
22
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
imageSrc: "/testImage"
|
|
24
|
+
}, "test-card")),
|
|
25
|
+
getByRole = _render3.getByRole;
|
|
33
26
|
var card = getByRole("img");
|
|
34
27
|
expect(card.getAttribute("src")).toEqual("/testImage");
|
|
35
28
|
});
|
|
36
29
|
test("OnClick function is called", function () {
|
|
37
30
|
var onClick = jest.fn();
|
|
38
|
-
|
|
39
31
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
onClick: onClick
|
|
33
|
+
}, "test-card")),
|
|
34
|
+
getByText = _render4.getByText;
|
|
44
35
|
var card = getByText("test-card");
|
|
45
|
-
|
|
46
36
|
_react2.fireEvent.click(card);
|
|
47
|
-
|
|
48
37
|
expect(onClick).toHaveBeenCalled();
|
|
49
38
|
});
|
|
50
39
|
});
|
package/card/types.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Size = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
type Props = {
|
|
10
10
|
/**
|
|
11
11
|
* URL of the image that will be placed in the card component.
|
|
12
12
|
* In case of omission, the image container will not appear and
|
|
@@ -47,7 +47,7 @@ declare type Props = {
|
|
|
47
47
|
*/
|
|
48
48
|
margin?: Space | Size;
|
|
49
49
|
/**
|
|
50
|
-
* Value of the tabindex
|
|
50
|
+
* Value of the tabindex attribute applied when the component is clickable.
|
|
51
51
|
*/
|
|
52
52
|
tabIndex?: number;
|
|
53
53
|
/**
|
|
@@ -55,7 +55,7 @@ declare type Props = {
|
|
|
55
55
|
*/
|
|
56
56
|
outlined?: boolean;
|
|
57
57
|
/**
|
|
58
|
-
* Custom content that will be placed
|
|
58
|
+
* Custom content that will be placed inside the component.
|
|
59
59
|
*/
|
|
60
60
|
children?: React.ReactNode;
|
|
61
61
|
};
|