@dxc-technology/halstack-react 0.0.0-8719165 → 0.0.0-87e1151
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/accordion/Accordion.js +122 -103
- package/accordion/Accordion.stories.tsx +1 -2
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +1 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +9 -2
- package/alert/Alert.js +1 -1
- package/box/Box.js +1 -1
- package/box/types.d.ts +1 -0
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.js +87 -95
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +2 -2
- package/common/variables.js +12 -4
- package/dialog/Dialog.js +4 -4
- package/dialog/Dialog.stories.tsx +56 -0
- package/dialog/types.d.ts +1 -0
- package/dropdown/Dropdown.js +6 -5
- package/dropdown/Dropdown.test.js +2 -3
- package/dropdown/DropdownMenuItem.js +1 -1
- package/footer/Footer.stories.tsx +8 -1
- package/footer/types.d.ts +1 -0
- package/header/Header.js +74 -72
- package/header/Header.stories.tsx +4 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/layout/ApplicationLayout.stories.tsx +1 -0
- package/number-input/NumberInput.test.js +1 -1
- package/package.json +8 -8
- package/password-input/PasswordInput.test.js +13 -12
- package/quick-nav/QuickNav.js +11 -12
- package/quick-nav/QuickNav.stories.tsx +97 -19
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +18 -20
- package/radio-group/RadioGroup.stories.tsx +1 -0
- package/radio-group/RadioGroup.test.js +28 -58
- package/radio-group/types.d.ts +2 -2
- package/select/Listbox.js +0 -1
- package/select/Select.js +2 -1
- package/slider/Slider.js +116 -92
- package/slider/Slider.stories.tsx +7 -1
- package/slider/Slider.test.js +121 -21
- package/slider/types.d.ts +2 -2
- package/switch/Switch.js +91 -81
- package/switch/Switch.test.js +26 -13
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +74 -0
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +14 -4
- package/tabs-nav/Tab.js +1 -1
- package/tag/Tag.js +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.js +7 -5
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +170 -258
- package/text-input/TextInput.stories.tsx +189 -181
- package/text-input/TextInput.test.js +165 -163
- package/text-input/types.d.ts +21 -2
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import DxcDialog from "./Dialog";
|
|
3
|
+
import DxcTextInput from "../text-input/TextInput";
|
|
4
|
+
import DxcButton from "../button/Button";
|
|
5
|
+
import DxcFlex from "../flex/Flex";
|
|
6
|
+
import DxcInset from "../inset/Inset";
|
|
3
7
|
import Title from "../../.storybook/components/Title";
|
|
4
8
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
9
|
|
|
@@ -30,6 +34,50 @@ export const DefaultDialog = () => (
|
|
|
30
34
|
</>
|
|
31
35
|
);
|
|
32
36
|
|
|
37
|
+
export const DialogWithInputs = () => (
|
|
38
|
+
<>
|
|
39
|
+
<ExampleContainer expanded={true}>
|
|
40
|
+
<Title title="Dialog with inputs" theme="light" level={4} />
|
|
41
|
+
<DxcDialog>
|
|
42
|
+
<DxcInset bottom="1rem">
|
|
43
|
+
<DxcFlex gap="2rem" direction="column">
|
|
44
|
+
<DxcFlex gap="1rem" direction="column">
|
|
45
|
+
<DxcTextInput size="fillParent" label="Name"></DxcTextInput>
|
|
46
|
+
<DxcTextInput size="fillParent" label="Surname"></DxcTextInput>
|
|
47
|
+
</DxcFlex>
|
|
48
|
+
<DxcFlex justifyContent="flex-end" gap="1rem">
|
|
49
|
+
<DxcButton label="Save"></DxcButton>
|
|
50
|
+
<DxcButton label="Cancel" mode="secondary"></DxcButton>
|
|
51
|
+
</DxcFlex>
|
|
52
|
+
</DxcFlex>
|
|
53
|
+
</DxcInset>
|
|
54
|
+
</DxcDialog>
|
|
55
|
+
</ExampleContainer>
|
|
56
|
+
</>
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
const RespDialog = () => (
|
|
60
|
+
<>
|
|
61
|
+
<ExampleContainer expanded={true}>
|
|
62
|
+
<Title title="Responsive dialog" theme="light" level={4} />
|
|
63
|
+
<DxcDialog>
|
|
64
|
+
<DxcInset bottom="1rem">
|
|
65
|
+
<DxcFlex gap="2rem" direction="column">
|
|
66
|
+
<DxcFlex gap="1rem" direction="column">
|
|
67
|
+
<DxcTextInput size="fillParent" label="Name"></DxcTextInput>
|
|
68
|
+
<DxcTextInput size="fillParent" label="Surname"></DxcTextInput>
|
|
69
|
+
</DxcFlex>
|
|
70
|
+
<DxcFlex justifyContent="flex-end" gap="1rem">
|
|
71
|
+
<DxcButton label="Save"></DxcButton>
|
|
72
|
+
<DxcButton label="Cancel" mode="secondary"></DxcButton>
|
|
73
|
+
</DxcFlex>
|
|
74
|
+
</DxcFlex>
|
|
75
|
+
</DxcInset>
|
|
76
|
+
</DxcDialog>
|
|
77
|
+
</ExampleContainer>
|
|
78
|
+
</>
|
|
79
|
+
);
|
|
80
|
+
|
|
33
81
|
export const DialogWithoutOverlay = () => (
|
|
34
82
|
<ExampleContainer expanded={true}>
|
|
35
83
|
<Title title="Dialog Without Overlay" theme="light" level={4} />
|
|
@@ -209,3 +257,11 @@ export const DialogWithXxlargePadding = () => (
|
|
|
209
257
|
</DxcDialog>
|
|
210
258
|
</ExampleContainer>
|
|
211
259
|
);
|
|
260
|
+
|
|
261
|
+
export const ResponsiveDialog = RespDialog.bind({});
|
|
262
|
+
ResponsiveDialog.parameters = {
|
|
263
|
+
viewport: {
|
|
264
|
+
defaultViewport: "iphonex",
|
|
265
|
+
},
|
|
266
|
+
chromatic: { viewports: [375] },
|
|
267
|
+
};
|
package/dialog/types.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ declare type Props = {
|
|
|
26
26
|
*/
|
|
27
27
|
onBackgroundClick?: () => void;
|
|
28
28
|
/**
|
|
29
|
+
* @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
|
|
29
30
|
* Size of the padding to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
30
31
|
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different padding sizes.
|
|
31
32
|
*/
|
package/dropdown/Dropdown.js
CHANGED
|
@@ -146,7 +146,7 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
146
146
|
handleOnOpenMenu();
|
|
147
147
|
break;
|
|
148
148
|
|
|
149
|
-
case "
|
|
149
|
+
case " ":
|
|
150
150
|
case "Down":
|
|
151
151
|
case "ArrowDown":
|
|
152
152
|
case "Enter":
|
|
@@ -186,7 +186,7 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
186
186
|
setNextIndexFocus();
|
|
187
187
|
break;
|
|
188
188
|
|
|
189
|
-
case "
|
|
189
|
+
case " ":
|
|
190
190
|
case "Enter":
|
|
191
191
|
event.preventDefault();
|
|
192
192
|
handleMenuItemOnClick(options[visualFocusIndex].value);
|
|
@@ -254,7 +254,8 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
254
254
|
}, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
255
255
|
open: isOpen
|
|
256
256
|
}, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
|
|
257
|
-
asChild: true
|
|
257
|
+
asChild: true,
|
|
258
|
+
type: undefined
|
|
258
259
|
}, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
|
|
259
260
|
opened: isOpen,
|
|
260
261
|
onClick: handleTriggerOnClick,
|
|
@@ -267,8 +268,8 @@ var DxcDropdown = function DxcDropdown(_ref) {
|
|
|
267
268
|
margin: margin,
|
|
268
269
|
size: size,
|
|
269
270
|
id: triggerId,
|
|
270
|
-
"aria-disabled": disabled,
|
|
271
271
|
"aria-haspopup": "true",
|
|
272
|
+
"aria-controls": menuId,
|
|
272
273
|
"aria-expanded": isOpen ? true : undefined,
|
|
273
274
|
tabIndex: tabIndex,
|
|
274
275
|
ref: triggerRef
|
|
@@ -302,7 +303,7 @@ var sizes = {
|
|
|
302
303
|
medium: "240px",
|
|
303
304
|
large: "480px",
|
|
304
305
|
fillParent: "100%",
|
|
305
|
-
fitContent: "
|
|
306
|
+
fitContent: "fit-content"
|
|
306
307
|
};
|
|
307
308
|
|
|
308
309
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
@@ -74,7 +74,6 @@ describe("Dropdown component tests", function () {
|
|
|
74
74
|
getByRole = _render.getByRole;
|
|
75
75
|
|
|
76
76
|
var dropdown = getByRole("button");
|
|
77
|
-
expect(dropdown.getAttribute("aria-disabled")).toBe("false");
|
|
78
77
|
expect(dropdown.getAttribute("aria-haspopup")).toBe("true");
|
|
79
78
|
expect(dropdown.getAttribute("aria-expanded")).toBeNull();
|
|
80
79
|
expect(dropdown.getAttribute("aria-activedescendant")).toBeNull();
|
|
@@ -82,6 +81,7 @@ describe("Dropdown component tests", function () {
|
|
|
82
81
|
_userEvent["default"].click(dropdown);
|
|
83
82
|
|
|
84
83
|
var menu = getByRole("menu");
|
|
84
|
+
expect(dropdown.getAttribute("aria-controls")).toBe(menu.id);
|
|
85
85
|
expect(dropdown.getAttribute("aria-expanded")).toBe("true");
|
|
86
86
|
expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
|
|
87
87
|
expect(menu.getAttribute("aria-orientation")).toBe("vertical");
|
|
@@ -123,7 +123,6 @@ describe("Dropdown component tests", function () {
|
|
|
123
123
|
queryByText = _render3.queryByText;
|
|
124
124
|
|
|
125
125
|
var dropdown = getByRole("button");
|
|
126
|
-
expect(dropdown.getAttribute("aria-disabled")).toBe("true");
|
|
127
126
|
expect(queryByRole("menu")).toBeFalsy();
|
|
128
127
|
|
|
129
128
|
_userEvent["default"].click(dropdown);
|
|
@@ -267,7 +266,7 @@ describe("Dropdown component tests", function () {
|
|
|
267
266
|
var dropdown = getByRole("button");
|
|
268
267
|
|
|
269
268
|
_react2.fireEvent.keyDown(dropdown, {
|
|
270
|
-
key: "
|
|
269
|
+
key: " ",
|
|
271
270
|
code: "Space",
|
|
272
271
|
keyCode: 32,
|
|
273
272
|
charCode: 32
|
|
@@ -49,7 +49,7 @@ var DropdownMenuItem = function DropdownMenuItem(_ref) {
|
|
|
49
49
|
}) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label)));
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n
|
|
52
|
+
var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
|
|
53
53
|
return props.theme.optionIconSpacing;
|
|
54
54
|
}, function (props) {
|
|
55
55
|
return props.theme.optionPaddingTop;
|
|
@@ -28,7 +28,14 @@ const social = [
|
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
href: "https://twitter.com/dxctechnology",
|
|
31
|
-
logo:
|
|
31
|
+
logo: (
|
|
32
|
+
<svg viewBox="0 0 248 204" fill="currentColor">
|
|
33
|
+
<path
|
|
34
|
+
fill="#1d9bf0"
|
|
35
|
+
d="M221.95 51.29c.15 2.17.15 4.34.15 6.53 0 66.73-50.8 143.69-143.69 143.69v-.04c-27.44.04-54.31-7.82-77.41-22.64 3.99.48 8 .72 12.02.73 22.74.02 44.83-7.61 62.72-21.66-21.61-.41-40.56-14.5-47.18-35.07 7.57 1.46 15.37 1.16 22.8-.87-23.56-4.76-40.51-25.46-40.51-49.5v-.64c7.02 3.91 14.88 6.08 22.92 6.32C11.58 63.31 4.74 33.79 18.14 10.71c25.64 31.55 63.47 50.73 104.08 52.76-4.07-17.54 1.49-35.92 14.61-48.25 20.34-19.12 52.33-18.14 71.45 2.19 11.31-2.23 22.15-6.38 32.07-12.26-3.77 11.69-11.66 21.62-22.2 27.93 10.01-1.18 19.79-3.86 29-7.95-6.78 10.16-15.32 19.01-25.2 26.16z"
|
|
36
|
+
/>
|
|
37
|
+
</svg>
|
|
38
|
+
),
|
|
32
39
|
},
|
|
33
40
|
{
|
|
34
41
|
href: "https://www.facebook.com/DXCTechnology/",
|
package/footer/types.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ declare type FooterPropsType = {
|
|
|
57
57
|
*/
|
|
58
58
|
margin?: Space | Size;
|
|
59
59
|
/**
|
|
60
|
+
* @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
|
|
60
61
|
* Size of the padding to be applied to the custom area of the component.
|
|
61
62
|
* You can pass an object with properties in order to specify different padding sizes.
|
|
62
63
|
*/
|
package/header/Header.js
CHANGED
|
@@ -19,8 +19,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var _AppBar = _interopRequireDefault(require("@material-ui/core/AppBar"));
|
|
23
|
-
|
|
24
22
|
var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
|
|
25
23
|
|
|
26
24
|
var _Icons = require("./Icons");
|
|
@@ -67,30 +65,37 @@ var Dropdown = function Dropdown(props) {
|
|
|
67
65
|
var HeaderDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n button {\n background-color: transparent;\n :hover {\n background-color: transparent;\n }\n }\n"])));
|
|
68
66
|
|
|
69
67
|
var getLogoElement = function getLogoElement(themeInput, logoLabel) {
|
|
70
|
-
if (!themeInput) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
if (typeof themeInput === "string") {
|
|
75
|
-
return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
76
|
-
alt: logoLabel,
|
|
77
|
-
src: themeInput
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return themeInput;
|
|
68
|
+
if (!themeInput) return _Icons.dxcLogo;else if (typeof themeInput === "string") return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
69
|
+
alt: logoLabel,
|
|
70
|
+
src: themeInput
|
|
71
|
+
});else return themeInput;
|
|
82
72
|
};
|
|
83
73
|
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
underlined = _ref$underlined === void 0 ? false : _ref$underlined,
|
|
87
|
-
content = _ref.content,
|
|
74
|
+
var Content = function Content(_ref) {
|
|
75
|
+
var isResponsive = _ref.isResponsive,
|
|
88
76
|
responsiveContent = _ref.responsiveContent,
|
|
89
|
-
|
|
90
|
-
margin = _ref.margin,
|
|
77
|
+
handleMenu = _ref.handleMenu,
|
|
91
78
|
padding = _ref.padding,
|
|
92
|
-
|
|
93
|
-
|
|
79
|
+
content = _ref.content;
|
|
80
|
+
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
81
|
+
return isResponsive ? /*#__PURE__*/_react["default"].createElement(MenuContent, {
|
|
82
|
+
backgroundType: backgroundType
|
|
83
|
+
}, responsiveContent(handleMenu)) : /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
84
|
+
padding: padding,
|
|
85
|
+
backgroundType: backgroundType
|
|
86
|
+
}, content);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var DxcHeader = function DxcHeader(_ref2) {
|
|
90
|
+
var _ref2$underlined = _ref2.underlined,
|
|
91
|
+
underlined = _ref2$underlined === void 0 ? false : _ref2$underlined,
|
|
92
|
+
content = _ref2.content,
|
|
93
|
+
responsiveContent = _ref2.responsiveContent,
|
|
94
|
+
onClick = _ref2.onClick,
|
|
95
|
+
margin = _ref2.margin,
|
|
96
|
+
padding = _ref2.padding,
|
|
97
|
+
_ref2$tabIndex = _ref2.tabIndex,
|
|
98
|
+
tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;
|
|
94
99
|
var colorsTheme = (0, _useTheme["default"])();
|
|
95
100
|
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
96
101
|
var ref = (0, _react.useRef)(null);
|
|
@@ -106,17 +111,7 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
106
111
|
setIsMenuVisible = _useState4[1];
|
|
107
112
|
|
|
108
113
|
var handleResize = function handleResize() {
|
|
109
|
-
setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
var ContentContainerComponent = function ContentContainerComponent() {
|
|
113
|
-
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
114
|
-
return isResponsive && /*#__PURE__*/_react["default"].createElement(MenuContent, {
|
|
115
|
-
backgroundType: backgroundType
|
|
116
|
-
}, responsiveContent(handleMenu)) || /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
117
|
-
padding: padding,
|
|
118
|
-
backgroundType: backgroundType
|
|
119
|
-
}, content);
|
|
114
|
+
setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
|
|
120
115
|
};
|
|
121
116
|
|
|
122
117
|
var handleMenu = function handleMenu() {
|
|
@@ -134,67 +129,74 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
134
129
|
return getLogoElement(colorsTheme.header.logoResponsive, translatedLabels.formFields.logoAlternativeText);
|
|
135
130
|
}, [colorsTheme.header.logoResponsive]);
|
|
136
131
|
(0, _react.useEffect)(function () {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
handleResize();
|
|
140
|
-
}
|
|
141
|
-
|
|
132
|
+
handleResize();
|
|
133
|
+
window.addEventListener("resize", handleResize);
|
|
142
134
|
return function () {
|
|
143
135
|
window.removeEventListener("resize", handleResize);
|
|
144
136
|
};
|
|
145
137
|
}, []);
|
|
138
|
+
(0, _react.useEffect)(function () {
|
|
139
|
+
!isResponsive && setIsMenuVisible(false);
|
|
140
|
+
}, [isResponsive]);
|
|
146
141
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
147
142
|
theme: colorsTheme.header
|
|
148
143
|
}, /*#__PURE__*/_react["default"].createElement(HeaderContainer, {
|
|
149
|
-
|
|
150
|
-
position: "static",
|
|
144
|
+
underlined: underlined,
|
|
151
145
|
margin: margin,
|
|
152
146
|
ref: ref
|
|
153
147
|
}, /*#__PURE__*/_react["default"].createElement(LogoAnchor, {
|
|
154
|
-
tabIndex:
|
|
155
|
-
interactuable:
|
|
148
|
+
tabIndex: onClick ? tabIndex : -1,
|
|
149
|
+
interactuable: onClick ? true : false,
|
|
156
150
|
onClick: onClick
|
|
157
151
|
}, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, headerLogo)), isResponsive && responsiveContent && /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(ChildContainer, {
|
|
158
152
|
padding: padding
|
|
159
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
153
|
+
}, /*#__PURE__*/_react["default"].createElement(HamburguerTrigger, {
|
|
160
154
|
tabIndex: tabIndex,
|
|
161
|
-
underlined: underlined,
|
|
162
155
|
onClick: handleMenu
|
|
163
|
-
}, hamburgerIcon,
|
|
156
|
+
}, hamburgerIcon, translatedLabels.header.hamburguerTitle)), /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
|
|
164
157
|
hasVisibility: isMenuVisible
|
|
165
|
-
}, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(
|
|
166
|
-
color: colorsTheme.header.menuBackgroundColor
|
|
167
|
-
}, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null)), /*#__PURE__*/_react["default"].createElement(CloseContainer, {
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(ResponsiveIconsContainer, null, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(CloseAction, {
|
|
168
159
|
tabIndex: tabIndex,
|
|
169
160
|
onClick: handleMenu,
|
|
170
|
-
|
|
171
|
-
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(
|
|
161
|
+
"aria-label": translatedLabels.header.closeIcon
|
|
162
|
+
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
163
|
+
color: colorsTheme.header.menuBackgroundColor
|
|
164
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
165
|
+
isResponsive: isResponsive,
|
|
166
|
+
responsiveContent: responsiveContent,
|
|
167
|
+
handleMenu: handleMenu,
|
|
168
|
+
padding: padding,
|
|
169
|
+
content: content
|
|
170
|
+
}))), /*#__PURE__*/_react["default"].createElement(Overlay, {
|
|
172
171
|
onClick: handleMenu,
|
|
173
172
|
hasVisibility: isMenuVisible
|
|
174
|
-
}))
|
|
173
|
+
})), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
175
174
|
color: colorsTheme.header.backgroundColor
|
|
176
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
175
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
176
|
+
isResponsive: isResponsive,
|
|
177
|
+
responsiveContent: responsiveContent,
|
|
178
|
+
handleMenu: handleMenu,
|
|
179
|
+
padding: padding,
|
|
180
|
+
content: content
|
|
181
|
+
}))));
|
|
177
182
|
};
|
|
178
183
|
|
|
179
184
|
DxcHeader.Dropdown = Dropdown;
|
|
180
|
-
|
|
185
|
+
|
|
186
|
+
var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: ", ";\n padding: ", ";\n background-color: ", ";\n border-bottom: ", ";\n min-height: ", ";\n box-shadow: none;\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n box-sizing: border-box;\n"])), function (props) {
|
|
181
187
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
188
|
+
}, function (props) {
|
|
189
|
+
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
182
190
|
}, function (props) {
|
|
183
191
|
return props.theme.backgroundColor;
|
|
184
192
|
}, function (props) {
|
|
185
|
-
return props
|
|
193
|
+
return props.underlined && "".concat(props.theme.underlinedThickness, " ").concat(props.theme.underlinedStyle, " ").concat(props.theme.underlinedColor);
|
|
186
194
|
}, function (props) {
|
|
187
195
|
return props.theme.minHeight;
|
|
188
|
-
}, function (props) {
|
|
189
|
-
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
190
196
|
});
|
|
191
197
|
|
|
192
|
-
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "
|
|
193
|
-
|
|
194
|
-
return "cursor: default; outline:none;";
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
return "cursor: pointer;";
|
|
198
|
+
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
|
|
199
|
+
return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none";
|
|
198
200
|
});
|
|
199
201
|
|
|
200
202
|
var LogoImg = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
@@ -235,15 +237,13 @@ var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_te
|
|
|
235
237
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
236
238
|
});
|
|
237
239
|
|
|
238
|
-
var
|
|
240
|
+
var HamburguerTrigger = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 54px;\n cursor: pointer;\n border: 1px solid transparent;\n border-radius: 2px;\n background-color: transparent;\n :hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " auto 1px;\n }\n & > svg {\n fill: ", ";\n }\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n text-transform: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
|
|
239
241
|
return props.theme.hamburguerHoverColor;
|
|
240
242
|
}, function (props) {
|
|
241
243
|
return props.theme.hamburguerFocusColor;
|
|
242
244
|
}, function (props) {
|
|
243
245
|
return props.theme.hamburguerIconColor;
|
|
244
|
-
})
|
|
245
|
-
|
|
246
|
-
var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n text-transform: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
|
|
246
|
+
}, function (props) {
|
|
247
247
|
return props.theme.hamburguerFontFamily;
|
|
248
248
|
}, function (props) {
|
|
249
249
|
return props.theme.hamburguerFontStyle;
|
|
@@ -257,9 +257,9 @@ var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_te
|
|
|
257
257
|
return props.theme.hamburguerFontColor;
|
|
258
258
|
});
|
|
259
259
|
|
|
260
|
-
var MainContainer = _styledComponents["default"].div(
|
|
260
|
+
var MainContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-grow: 1;\n"])));
|
|
261
261
|
|
|
262
|
-
var ResponsiveMenu = _styledComponents["default"].div(
|
|
262
|
+
var ResponsiveMenu = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n position: fixed;\n top: 0;\n right: 0;\n z-index: ", ";\n\n @media (max-width: ", "rem) and (min-width: ", "rem) {\n //tablet\n width: ", ";\n }\n\n @media (not((max-width: ", "rem) and (min-width: ", "rem))) {\n //mobile phones\n width: ", ";\n }\n\n height: 100vh;\n padding: 20px;\n transform: ", ";\n opacity: ", ";\n transition-property: transform, opacity;\n transition-duration: 0.6s;\n transition-timing-function: ease-in-out;\n box-sizing: border-box;\n"])), function (props) {
|
|
263
263
|
return props.theme.menuBackgroundColor;
|
|
264
264
|
}, function (props) {
|
|
265
265
|
return props.theme.menuZindex;
|
|
@@ -273,17 +273,19 @@ var ResponsiveMenu = _styledComponents["default"].div(_templateObject11 || (_tem
|
|
|
273
273
|
return props.hasVisibility ? "1" : "0.96";
|
|
274
274
|
});
|
|
275
275
|
|
|
276
|
-
var ResponsiveLogoContainer = _styledComponents["default"].div(
|
|
276
|
+
var ResponsiveLogoContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n display: flex;\n"])), function (props) {
|
|
277
277
|
return props.theme.logoHeight;
|
|
278
278
|
}, function (props) {
|
|
279
279
|
return props.theme.logoWidth;
|
|
280
280
|
});
|
|
281
281
|
|
|
282
|
-
var
|
|
282
|
+
var ResponsiveIconsContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n"])));
|
|
283
|
+
|
|
284
|
+
var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n padding: 6px;\n height: 36px;\n width: 36px;\n border: 1px solid transparent;\n border-radius: 2px;\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n background-color: transparent;\n :focus,\n :focus-visible {\n outline: ", " auto 1px;\n }\n"])), function (props) {
|
|
283
285
|
return props.theme.hamburguerFocusColor;
|
|
284
|
-
}
|
|
286
|
+
});
|
|
285
287
|
|
|
286
|
-
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n
|
|
288
|
+
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n color: ", ";\n"])), function (props) {
|
|
287
289
|
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
288
290
|
});
|
|
289
291
|
|
|
@@ -131,7 +131,7 @@ ResponsiveHeader.parameters = {
|
|
|
131
131
|
viewport: {
|
|
132
132
|
defaultViewport: "iphonex",
|
|
133
133
|
},
|
|
134
|
-
chromatic: { viewports: [
|
|
134
|
+
chromatic: { viewports: [375] },
|
|
135
135
|
};
|
|
136
136
|
|
|
137
137
|
export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
|
|
@@ -139,7 +139,7 @@ ResponsiveHeaderFocus.parameters = {
|
|
|
139
139
|
viewport: {
|
|
140
140
|
defaultViewport: "iphonex",
|
|
141
141
|
},
|
|
142
|
-
chromatic: { viewports: [
|
|
142
|
+
chromatic: { viewports: [375] },
|
|
143
143
|
};
|
|
144
144
|
ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
|
|
145
145
|
const canvas = within(canvasElement);
|
|
@@ -151,7 +151,7 @@ ResponsiveHeaderHover.parameters = {
|
|
|
151
151
|
viewport: {
|
|
152
152
|
defaultViewport: "iphonex",
|
|
153
153
|
},
|
|
154
|
-
chromatic: { viewports: [
|
|
154
|
+
chromatic: { viewports: [375] },
|
|
155
155
|
};
|
|
156
156
|
ResponsiveHeaderHover.play = async ({ canvasElement }) => {
|
|
157
157
|
const canvas = within(canvasElement);
|
|
@@ -163,7 +163,7 @@ ResponsiveHeaderMenu.parameters = {
|
|
|
163
163
|
viewport: {
|
|
164
164
|
defaultViewport: "iphonex",
|
|
165
165
|
},
|
|
166
|
-
chromatic: { viewports: [
|
|
166
|
+
chromatic: { viewports: [375] },
|
|
167
167
|
};
|
|
168
168
|
ResponsiveHeaderMenu.play = async ({ canvasElement }) => {
|
|
169
169
|
const canvas = within(canvasElement);
|
package/header/Icons.js
CHANGED
|
@@ -23,12 +23,12 @@ var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
|
23
23
|
id: "path14",
|
|
24
24
|
d: "M91.613-28.177v2.514H90.231V-28.15l-2.415-3.82h1.616l1.5,2.532,1.526-2.532h1.571ZM83.9-25.555A3.15,3.15,0,0,1,80.6-28.8v-.018a3.231,3.231,0,0,1,3.294-3.262,3.442,3.442,0,0,1,2.469.865l-.87,1.054a2.311,2.311,0,0,0-1.643-.64,1.891,1.891,0,0,0-1.8,1.964v.018a1.886,1.886,0,0,0,1.9,2,2.2,2.2,0,0,0,1.3-.378v-.9H83.858v-1.2h2.729v2.738A4.071,4.071,0,0,1,83.9-25.555Zm-6.416-3.261a1.913,1.913,0,0,0-1.9-1.982A1.883,1.883,0,0,0,73.7-28.835v.018a1.913,1.913,0,0,0,1.9,1.982A1.883,1.883,0,0,0,77.486-28.8Zm-1.9,3.261a3.225,3.225,0,0,1-3.33-3.243v-.018A3.255,3.255,0,0,1,75.6-32.078a3.225,3.225,0,0,1,3.331,3.243v.018A3.255,3.255,0,0,1,75.583-25.555Zm-9.173-.108V-31.97h1.382v5.045h3.133v1.261Zm-3.433-3.153a1.913,1.913,0,0,0-1.9-1.982,1.883,1.883,0,0,0-1.886,1.964v.018a1.913,1.913,0,0,0,1.9,1.982A1.883,1.883,0,0,0,62.978-28.8Zm-1.9,3.261a3.225,3.225,0,0,1-3.33-3.243v-.018a3.255,3.255,0,0,1,3.348-3.262,3.225,3.225,0,0,1,3.331,3.243v.018A3.255,3.255,0,0,1,61.075-25.555Zm-6.508-.108-3.043-4.009v4.009H50.159V-31.97h1.275l2.944,3.883V-31.97h1.364v6.306Zm-8.246,0v-2.531h-2.55v2.531H42.389V-31.97h1.382v2.5h2.55v-2.5H47.7v6.306Zm-8.432.108A3.178,3.178,0,0,1,34.666-28.8v-.018a3.2,3.2,0,0,1,3.276-3.262,3.237,3.237,0,0,1,2.478.973l-.88,1.018a2.315,2.315,0,0,0-1.606-.712,1.866,1.866,0,0,0-1.822,1.964v.018a1.87,1.87,0,0,0,1.822,1.982,2.265,2.265,0,0,0,1.651-.739l.88.891A3.206,3.206,0,0,1,37.889-25.555Zm-9.805-.108V-31.97h4.739v1.235H29.458v1.279h2.962v1.234H29.458V-26.9h3.411v1.234ZM24.322-30.69v5.027H22.939V-30.69H21.028v-1.28h5.206v1.28H24.322",
|
|
25
25
|
transform: "translate(-21.028 65.555)",
|
|
26
|
-
fill: "#
|
|
26
|
+
fill: "#010101"
|
|
27
27
|
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
28
28
|
id: "path16",
|
|
29
29
|
d: "M75.836-76.712a8.975,8.975,0,0,1,2.246-3.9,8.393,8.393,0,0,1,6.058-2.457h9.824v-5.67H84.139a14.611,14.611,0,0,0-10.232,4.221,14.509,14.509,0,0,0-3.076,4.536,11.913,11.913,0,0,0-.973,3.271Zm0,4.325a8.978,8.978,0,0,0,2.246,3.9,8.394,8.394,0,0,0,6.058,2.457h9.824v5.67H84.139A14.611,14.611,0,0,1,73.907-64.58a14.506,14.506,0,0,1-3.076-4.536,11.91,11.91,0,0,1-.973-3.271ZM57.522-69.832l-7.5,9.473H42.581L53.818-74.55,42.581-88.739H50.02l7.5,9.472,7.5-9.472h7.439L61.225-74.55l11.237,14.19H65.023Zm-12.336-6.88a11.935,11.935,0,0,0-.973-3.271,14.515,14.515,0,0,0-3.076-4.536A14.612,14.612,0,0,0,30.9-88.739H21.081v5.67H30.9a8.394,8.394,0,0,1,6.058,2.457,8.978,8.978,0,0,1,2.246,3.9Zm0,4.325a11.932,11.932,0,0,1-.973,3.271,14.511,14.511,0,0,1-3.076,4.536A14.611,14.611,0,0,1,30.9-60.359H21.081v-5.67H30.9a8.4,8.4,0,0,0,6.058-2.457,8.981,8.981,0,0,0,2.246-3.9h5.978",
|
|
30
30
|
transform: "translate(-21.049 88.739)",
|
|
31
|
-
fill: "#
|
|
31
|
+
fill: "#603494"
|
|
32
32
|
}))));
|
|
33
33
|
|
|
34
34
|
exports.dxcLogo = dxcLogo;
|
package/header/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
-
declare type Padding = {
|
|
2
|
+
export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
export declare type Padding = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
@@ -32,6 +32,7 @@ declare type Props = {
|
|
|
32
32
|
*/
|
|
33
33
|
margin?: Space;
|
|
34
34
|
/**
|
|
35
|
+
* @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
|
|
35
36
|
* Size of the padding to be applied to the custom area of the component
|
|
36
37
|
* ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
|
|
37
38
|
* You can pass an object with 'top', 'bottom', 'left' and 'right' properties in
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxc-technology/halstack-react",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-87e1151",
|
|
4
4
|
"description": "DXC Halstack React components library",
|
|
5
5
|
"repository": "dxc-technology/halstack-react",
|
|
6
|
-
"homepage": "
|
|
6
|
+
"homepage": "https://developer.dxc.com/halstack",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "DXC Technology",
|
|
10
10
|
"email": "DigitalInsurance@dxc.com",
|
|
11
|
-
"url": "https://dxc.com"
|
|
11
|
+
"url": "https://developer.dxc.com"
|
|
12
12
|
},
|
|
13
13
|
"main": "./main.js",
|
|
14
14
|
"types": "./main.d.ts",
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"react": "^18.
|
|
17
|
-
"react-dom": "^18.
|
|
16
|
+
"react": "^18.x",
|
|
17
|
+
"react-dom": "^18.x",
|
|
18
18
|
"styled-components": "^5.0.1"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@material-ui/lab": "4.0.0-alpha.17",
|
|
25
25
|
"@material-ui/pickers": "3.2.2",
|
|
26
26
|
"@material-ui/styles": "4.0.2",
|
|
27
|
-
"@radix-ui/react-popover": "
|
|
27
|
+
"@radix-ui/react-popover": "0.1.6",
|
|
28
28
|
"@types/styled-components": "^5.1.24",
|
|
29
29
|
"@types/uuid": "^8.3.4",
|
|
30
30
|
"color": "^3.1.3",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"eslint-plugin-storybook": "^0.5.5",
|
|
74
74
|
"identity-obj-proxy": "^3.0.0",
|
|
75
75
|
"jest": "^25.5.4",
|
|
76
|
-
"react": "^18.
|
|
77
|
-
"react-dom": "^18.
|
|
76
|
+
"react": "^18.x",
|
|
77
|
+
"react-dom": "^18.x",
|
|
78
78
|
"react-test-renderer": "^16.8.6",
|
|
79
79
|
"storybook-addon-pseudo-states": "^1.0.0",
|
|
80
80
|
"styled-components": "^5.0.1",
|