@dxc-technology/halstack-react 0.0.0-fdc49d2 → 0.0.0-ff5083e
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/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.js +5 -27
- package/accordion/Accordion.stories.tsx +3 -3
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +13 -15
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +24 -6
- package/accordion-group/types.d.ts +4 -0
- package/alert/Alert.js +4 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +31 -32
- package/bleed/types.d.ts +1 -1
- package/box/Box.js +22 -32
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +120 -0
- package/bulleted-list/BulletedList.stories.tsx +203 -0
- package/bulleted-list/types.d.ts +11 -0
- package/{list → bulleted-list}/types.js +0 -0
- package/button/Button.js +14 -11
- package/card/Card.js +24 -27
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +38 -28
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/types.d.ts +3 -3
- package/common/variables.js +197 -84
- package/date-input/DateInput.js +38 -20
- package/date-input/DateInput.test.js +9 -22
- package/date-input/types.d.ts +12 -9
- package/dialog/Dialog.js +4 -32
- package/dropdown/Dropdown.js +13 -17
- package/file-input/FileInput.js +9 -6
- package/file-input/FileItem.js +7 -5
- package/footer/Footer.js +15 -88
- package/header/Header.js +27 -48
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +18 -2
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +32 -32
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +4 -3
- package/layout/ApplicationLayout.js +82 -114
- package/layout/ApplicationLayout.stories.tsx +14 -59
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +5 -10
- package/link/Link.d.ts +3 -2
- package/link/Link.js +57 -74
- package/link/Link.stories.tsx +87 -52
- package/link/Link.test.js +7 -15
- package/link/types.d.ts +7 -23
- package/main.d.ts +6 -5
- package/main.js +37 -23
- package/number-input/NumberInput.test.js +2 -4
- package/number-input/types.d.ts +13 -10
- package/package.json +6 -5
- package/paginator/Paginator.js +17 -38
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +3 -6
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.js +1 -1
- package/progress-bar/ProgressBar.stories.jsx +11 -11
- package/quick-nav/QuickNav.js +75 -23
- package/quick-nav/QuickNav.stories.tsx +13 -13
- package/quick-nav/types.d.ts +4 -8
- package/radio-group/Radio.js +1 -1
- package/radio-group/RadioGroup.js +8 -6
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +152 -0
- package/select/Option.js +1 -1
- package/select/Select.js +66 -161
- package/select/Select.stories.tsx +14 -2
- package/select/Select.test.js +335 -231
- package/select/types.d.ts +33 -11
- package/sidenav/Sidenav.d.ts +1 -1
- package/sidenav/Sidenav.js +20 -9
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +2 -1
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +31 -10
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +1 -1
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +19 -16
- package/switch/Switch.stories.tsx +8 -8
- package/switch/types.d.ts +2 -2
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +9 -11
- package/tabs/Tabs.stories.tsx +0 -8
- package/tabs/Tabs.test.js +26 -9
- package/tabs/types.d.ts +4 -0
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +132 -0
- package/tabs-nav/types.d.ts +53 -0
- package/{radio → tabs-nav}/types.js +0 -0
- package/tag/Tag.js +5 -8
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +55 -0
- package/text-input/TextInput.js +48 -76
- package/text-input/TextInput.test.js +22 -35
- package/text-input/types.d.ts +27 -12
- package/textarea/Textarea.js +10 -19
- package/textarea/types.d.ts +10 -7
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +5 -4
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +35 -4
- package/toggle-group/types.d.ts +8 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +175 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/typography/typographyContextTypes.d.ts +16 -0
- package/typography/typographyContextTypes.js +5 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.js +35 -29
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
package/header/Header.js
CHANGED
|
@@ -29,6 +29,8 @@ var _variables = require("../common/variables.js");
|
|
|
29
29
|
|
|
30
30
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
31
31
|
|
|
32
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
33
|
+
|
|
32
34
|
var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext"));
|
|
33
35
|
|
|
34
36
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
|
|
@@ -64,14 +66,14 @@ var Dropdown = function Dropdown(props) {
|
|
|
64
66
|
|
|
65
67
|
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"])));
|
|
66
68
|
|
|
67
|
-
var getLogoElement = function getLogoElement(themeInput) {
|
|
69
|
+
var getLogoElement = function getLogoElement(themeInput, logoLabel) {
|
|
68
70
|
if (!themeInput) {
|
|
69
71
|
return _Icons.dxcLogo;
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
if (typeof themeInput === "string") {
|
|
73
75
|
return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
74
|
-
alt:
|
|
76
|
+
alt: logoLabel,
|
|
75
77
|
src: themeInput
|
|
76
78
|
});
|
|
77
79
|
}
|
|
@@ -90,33 +92,21 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
90
92
|
_ref$tabIndex = _ref.tabIndex,
|
|
91
93
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
92
94
|
var colorsTheme = (0, _useTheme["default"])();
|
|
95
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
93
96
|
var ref = (0, _react.useRef)(null);
|
|
94
97
|
|
|
95
|
-
var _useState = (0, _react.useState)(),
|
|
98
|
+
var _useState = (0, _react.useState)(false),
|
|
96
99
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
isResponsive = _useState2[0],
|
|
101
|
+
setIsResponsive = _useState2[1];
|
|
99
102
|
|
|
100
103
|
var _useState3 = (0, _react.useState)(false),
|
|
101
104
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
isMenuVisible = _useState6[0],
|
|
108
|
-
setIsMenuVisible = _useState6[1];
|
|
109
|
-
|
|
110
|
-
var handleResize = function handleResize(refWidth) {
|
|
111
|
-
if (refWidth) {
|
|
112
|
-
setRefSize(refWidth);
|
|
113
|
-
|
|
114
|
-
if (refWidth <= _variables.responsiveSizes.tablet && !isResponsive) {
|
|
115
|
-
setIsResponsive(true);
|
|
116
|
-
} else {
|
|
117
|
-
setIsResponsive(false);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
105
|
+
isMenuVisible = _useState4[0],
|
|
106
|
+
setIsMenuVisible = _useState4[1];
|
|
107
|
+
|
|
108
|
+
var handleResize = function handleResize() {
|
|
109
|
+
setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches && !isResponsive);
|
|
120
110
|
};
|
|
121
111
|
|
|
122
112
|
var ContentContainerComponent = function ContentContainerComponent() {
|
|
@@ -138,24 +128,19 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
138
128
|
};
|
|
139
129
|
|
|
140
130
|
var headerLogo = (0, _react.useMemo)(function () {
|
|
141
|
-
return getLogoElement(colorsTheme.header.logo);
|
|
131
|
+
return getLogoElement(colorsTheme.header.logo, translatedLabels.formFields.logoAlternativeText);
|
|
142
132
|
}, [colorsTheme.header.logo]);
|
|
143
133
|
var headerResponsiveLogo = (0, _react.useMemo)(function () {
|
|
144
|
-
return getLogoElement(colorsTheme.header.logoResponsive);
|
|
134
|
+
return getLogoElement(colorsTheme.header.logoResponsive, translatedLabels.formFields.logoAlternativeText);
|
|
145
135
|
}, [colorsTheme.header.logoResponsive]);
|
|
146
|
-
|
|
147
|
-
var handleEventListener = function handleEventListener() {
|
|
148
|
-
handleResize(ref.current.offsetWidth);
|
|
149
|
-
};
|
|
150
|
-
|
|
151
136
|
(0, _react.useEffect)(function () {
|
|
152
137
|
if (ref.current) {
|
|
153
|
-
window.addEventListener("resize",
|
|
154
|
-
handleResize(
|
|
138
|
+
window.addEventListener("resize", handleResize);
|
|
139
|
+
handleResize();
|
|
155
140
|
}
|
|
156
141
|
|
|
157
142
|
return function () {
|
|
158
|
-
window.removeEventListener("resize",
|
|
143
|
+
window.removeEventListener("resize", handleResize);
|
|
159
144
|
};
|
|
160
145
|
}, []);
|
|
161
146
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
@@ -176,8 +161,7 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
176
161
|
underlined: underlined,
|
|
177
162
|
onClick: handleMenu
|
|
178
163
|
}, hamburgerIcon, /*#__PURE__*/_react["default"].createElement(HamburguerTitle, null, "Menu"))), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
|
|
179
|
-
hasVisibility: isMenuVisible
|
|
180
|
-
refSize: refSize
|
|
164
|
+
hasVisibility: isMenuVisible
|
|
181
165
|
}, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
182
166
|
color: colorsTheme.header.menuBackgroundColor
|
|
183
167
|
}, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null)), /*#__PURE__*/_react["default"].createElement(CloseContainer, {
|
|
@@ -186,8 +170,7 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
186
170
|
className: "closeIcon"
|
|
187
171
|
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(Overlay, {
|
|
188
172
|
onClick: handleMenu,
|
|
189
|
-
hasVisibility: isMenuVisible
|
|
190
|
-
refSize: refSize
|
|
173
|
+
hasVisibility: isMenuVisible
|
|
191
174
|
}))), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
192
175
|
color: colorsTheme.header.backgroundColor
|
|
193
176
|
}, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null))));
|
|
@@ -276,16 +259,14 @@ var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_te
|
|
|
276
259
|
|
|
277
260
|
var MainContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-grow: 1;\n"])));
|
|
278
261
|
|
|
279
|
-
var ResponsiveMenu = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-evenly;\n background-color: ", ";\n position: fixed;\n top: 0;\n right: 0;\n z-index: ", ";\n width: ", ";\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) {
|
|
262
|
+
var ResponsiveMenu = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-evenly;\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) {
|
|
280
263
|
return props.theme.menuBackgroundColor;
|
|
281
264
|
}, function (props) {
|
|
282
265
|
return props.theme.menuZindex;
|
|
283
|
-
}, function (props) {
|
|
284
|
-
return props.
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
return props.theme.menuMobileWidth;
|
|
288
|
-
});
|
|
266
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
267
|
+
return props.theme.menuTabletWidth;
|
|
268
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
269
|
+
return props.theme.menuMobileWidth;
|
|
289
270
|
}, function (props) {
|
|
290
271
|
return props.hasVisibility ? "translateX(0)" : "translateX(100vw)";
|
|
291
272
|
}, function (props) {
|
|
@@ -306,7 +287,7 @@ var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templa
|
|
|
306
287
|
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
307
288
|
});
|
|
308
289
|
|
|
309
|
-
var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n
|
|
290
|
+
var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n\n @media (max-width: ", "rem) {\n //mobile phones\n display: none;\n }\n\n transition: opacity 0.2s 0.2s ease-in-out;\n z-index: ", ";\n"])), function (props) {
|
|
310
291
|
return props.theme.overlayColor;
|
|
311
292
|
}, function (props) {
|
|
312
293
|
return props.theme.overlayOpacity;
|
|
@@ -314,9 +295,7 @@ var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateOb
|
|
|
314
295
|
return props.hasVisibility ? "visible" : "hidden";
|
|
315
296
|
}, function (props) {
|
|
316
297
|
return props.hasVisibility ? "1" : "0";
|
|
317
|
-
}, function (props) {
|
|
318
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "none" : "";
|
|
319
|
-
}, function (props) {
|
|
298
|
+
}, _variables.responsiveSizes.small, function (props) {
|
|
320
299
|
return props.theme.overlayZindex;
|
|
321
300
|
});
|
|
322
301
|
|
|
@@ -26,15 +26,6 @@ export const Chromatic = () => (
|
|
|
26
26
|
<Title title="Underlined with text" theme="light" level={4} />
|
|
27
27
|
<DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
|
|
28
28
|
</ExampleContainer>
|
|
29
|
-
<ExampleContainer>
|
|
30
|
-
<Title title="Responsive" theme="light" level={4} />
|
|
31
|
-
<div style={{ width: "400px" }}>
|
|
32
|
-
<DxcHeader
|
|
33
|
-
responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
34
|
-
underlined
|
|
35
|
-
/>
|
|
36
|
-
</div>
|
|
37
|
-
</ExampleContainer>
|
|
38
29
|
<Title title="Margins" theme="light" level={2} />
|
|
39
30
|
<ExampleContainer>
|
|
40
31
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
@@ -104,59 +95,78 @@ export const Chromatic = () => (
|
|
|
104
95
|
</>
|
|
105
96
|
);
|
|
106
97
|
|
|
107
|
-
const
|
|
98
|
+
export const ResponsiveHeader = () => (
|
|
108
99
|
<ExampleContainer>
|
|
109
100
|
<Title title="Responsive" theme="light" level={4} />
|
|
110
|
-
<
|
|
111
|
-
<DxcHeader
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
</div>
|
|
101
|
+
<DxcHeader
|
|
102
|
+
content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
103
|
+
responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
104
|
+
underlined
|
|
105
|
+
/>
|
|
116
106
|
</ExampleContainer>
|
|
117
107
|
);
|
|
118
108
|
|
|
119
109
|
const RespHeaderFocus = () => (
|
|
120
110
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
121
|
-
<Title title="Responsive" theme="light" level={4} />
|
|
122
|
-
<
|
|
123
|
-
<DxcHeader
|
|
124
|
-
responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
|
|
125
|
-
underlined
|
|
126
|
-
/>
|
|
127
|
-
</div>
|
|
111
|
+
<Title title="Responsive focus" theme="light" level={4} />
|
|
112
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
128
113
|
</ExampleContainer>
|
|
129
114
|
);
|
|
130
115
|
|
|
131
116
|
const RespHeaderHover = () => (
|
|
132
117
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
133
|
-
<Title title="Responsive" theme="light" level={4} />
|
|
134
|
-
<
|
|
135
|
-
<DxcHeader
|
|
136
|
-
responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
|
|
137
|
-
underlined
|
|
138
|
-
/>
|
|
139
|
-
</div>
|
|
118
|
+
<Title title="Responsive hover" theme="light" level={4} />
|
|
119
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
140
120
|
</ExampleContainer>
|
|
141
121
|
);
|
|
142
122
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
123
|
+
const RespHeaderMenu = () => (
|
|
124
|
+
<ExampleContainer>
|
|
125
|
+
<Title title="Responsive menu" theme="light" level={4} />
|
|
126
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
ResponsiveHeader.parameters = {
|
|
131
|
+
viewport: {
|
|
132
|
+
defaultViewport: "iphonex",
|
|
133
|
+
},
|
|
134
|
+
chromatic: { viewports: [720] },
|
|
148
135
|
};
|
|
149
136
|
|
|
150
137
|
export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
|
|
138
|
+
ResponsiveHeaderFocus.parameters = {
|
|
139
|
+
viewport: {
|
|
140
|
+
defaultViewport: "iphonex",
|
|
141
|
+
},
|
|
142
|
+
chromatic: { viewports: [720] },
|
|
143
|
+
};
|
|
151
144
|
ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
|
|
152
145
|
const canvas = within(canvasElement);
|
|
153
146
|
await waitFor(() => canvas.findByText("Menu"));
|
|
154
|
-
await userEvent.click(canvas.getByText("Menu"));
|
|
155
147
|
};
|
|
156
148
|
|
|
157
149
|
export const ResponsiveHeaderHover = RespHeaderHover.bind({});
|
|
150
|
+
ResponsiveHeaderHover.parameters = {
|
|
151
|
+
viewport: {
|
|
152
|
+
defaultViewport: "iphonex",
|
|
153
|
+
},
|
|
154
|
+
chromatic: { viewports: [720] },
|
|
155
|
+
};
|
|
158
156
|
ResponsiveHeaderHover.play = async ({ canvasElement }) => {
|
|
159
157
|
const canvas = within(canvasElement);
|
|
160
158
|
await waitFor(() => canvas.findByText("Menu"));
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
export const ResponsiveHeaderMenu = RespHeaderMenu.bind({});
|
|
162
|
+
ResponsiveHeaderMenu.parameters = {
|
|
163
|
+
viewport: {
|
|
164
|
+
defaultViewport: "iphonex",
|
|
165
|
+
},
|
|
166
|
+
chromatic: { viewports: [720] },
|
|
167
|
+
};
|
|
168
|
+
ResponsiveHeaderMenu.play = async ({ canvasElement }) => {
|
|
169
|
+
const canvas = within(canvasElement);
|
|
170
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
161
171
|
await userEvent.click(canvas.getByText("Menu"));
|
|
162
172
|
};
|
package/header/Header.test.js
CHANGED
|
@@ -8,9 +8,17 @@ var _react2 = require("@testing-library/react");
|
|
|
8
8
|
|
|
9
9
|
var _Header = _interopRequireDefault(require("./Header"));
|
|
10
10
|
|
|
11
|
-
var _linkedin = _interopRequireDefault(require("../../app/src/images/linkedin.svg"));
|
|
12
|
-
|
|
13
11
|
describe("Header component tests", function () {
|
|
12
|
+
beforeAll(function () {
|
|
13
|
+
Object.defineProperty(window, "matchMedia", {
|
|
14
|
+
writable: true,
|
|
15
|
+
value: jest.fn().mockImplementation(function () {
|
|
16
|
+
return {
|
|
17
|
+
matches: false
|
|
18
|
+
};
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
});
|
|
14
22
|
test("Header renders with default logo", function () {
|
|
15
23
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], null)),
|
|
16
24
|
getByTitle = _render.getByTitle;
|
|
@@ -50,6 +58,14 @@ describe("Header component tests", function () {
|
|
|
50
58
|
configurable: true,
|
|
51
59
|
value: 425
|
|
52
60
|
});
|
|
61
|
+
Object.defineProperty(window, "matchMedia", {
|
|
62
|
+
writable: true,
|
|
63
|
+
value: jest.fn().mockImplementation(function () {
|
|
64
|
+
return {
|
|
65
|
+
matches: true
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
});
|
|
53
69
|
|
|
54
70
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
55
71
|
responsiveContent: function responsiveContent(closeMenu) {
|
package/inset/Inset.js
CHANGED
|
@@ -36,40 +36,7 @@ function Inset(_ref) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
function getSpacingValue(spacingName) {
|
|
39
|
-
|
|
40
|
-
case "none":
|
|
41
|
-
return "0rem";
|
|
42
|
-
|
|
43
|
-
case "xxxsmall":
|
|
44
|
-
return "0.125rem";
|
|
45
|
-
|
|
46
|
-
case "xxsmall":
|
|
47
|
-
return "0.25rem";
|
|
48
|
-
|
|
49
|
-
case "xsmall":
|
|
50
|
-
return "0.5rem";
|
|
51
|
-
|
|
52
|
-
case "small":
|
|
53
|
-
return "1rem";
|
|
54
|
-
|
|
55
|
-
case "medium":
|
|
56
|
-
return "1.5rem";
|
|
57
|
-
|
|
58
|
-
case "large":
|
|
59
|
-
return "2rem";
|
|
60
|
-
|
|
61
|
-
case "xlarge":
|
|
62
|
-
return "3rem";
|
|
63
|
-
|
|
64
|
-
case "xxlarge":
|
|
65
|
-
return "4rem";
|
|
66
|
-
|
|
67
|
-
case "xxxlarge":
|
|
68
|
-
return "5rem";
|
|
69
|
-
|
|
70
|
-
default:
|
|
71
|
-
return "0rem";
|
|
72
|
-
}
|
|
39
|
+
return spacingName ? spacingName : "0rem";
|
|
73
40
|
}
|
|
74
41
|
|
|
75
42
|
var StyledInset = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (_ref2) {
|
package/inset/Inset.stories.tsx
CHANGED
|
@@ -19,187 +19,187 @@ export const Chromatic = () => (
|
|
|
19
19
|
</Container>
|
|
20
20
|
<Title title="space = none" level={4} />
|
|
21
21
|
<Container>
|
|
22
|
-
<DxcInset space="
|
|
22
|
+
<DxcInset space="0rem">
|
|
23
23
|
<Placeholder></Placeholder>
|
|
24
24
|
</DxcInset>
|
|
25
25
|
</Container>
|
|
26
26
|
<Title title="space = xxxsmall" level={4} />
|
|
27
27
|
<Container>
|
|
28
|
-
<DxcInset space="
|
|
28
|
+
<DxcInset space="0.125rem">
|
|
29
29
|
<Placeholder></Placeholder>
|
|
30
30
|
</DxcInset>
|
|
31
31
|
</Container>
|
|
32
32
|
<Title title="space = xxsmall" level={4} />
|
|
33
33
|
<Container>
|
|
34
|
-
<DxcInset space="
|
|
34
|
+
<DxcInset space="0.25rem">
|
|
35
35
|
<Placeholder></Placeholder>
|
|
36
36
|
</DxcInset>
|
|
37
37
|
</Container>
|
|
38
38
|
<Title title="space = xsmall" level={4} />
|
|
39
39
|
<Container>
|
|
40
|
-
<DxcInset space="
|
|
40
|
+
<DxcInset space="0.5rem">
|
|
41
41
|
<Placeholder></Placeholder>
|
|
42
42
|
</DxcInset>
|
|
43
43
|
</Container>
|
|
44
44
|
<Title title="space = small" level={4} />
|
|
45
45
|
<Container>
|
|
46
|
-
<DxcInset space="
|
|
46
|
+
<DxcInset space="1rem">
|
|
47
47
|
<Placeholder></Placeholder>
|
|
48
48
|
</DxcInset>
|
|
49
49
|
</Container>
|
|
50
50
|
<Title title="space = medium" level={4} />
|
|
51
51
|
<Container>
|
|
52
|
-
<DxcInset space="
|
|
52
|
+
<DxcInset space="1.5rem">
|
|
53
53
|
<Placeholder></Placeholder>
|
|
54
54
|
</DxcInset>
|
|
55
55
|
</Container>
|
|
56
56
|
<Title title="space = large" level={4} />
|
|
57
57
|
<Container>
|
|
58
|
-
<DxcInset space="
|
|
58
|
+
<DxcInset space="2rem">
|
|
59
59
|
<Placeholder></Placeholder>
|
|
60
60
|
</DxcInset>
|
|
61
61
|
</Container>
|
|
62
62
|
<Title title="space = xlarge" level={4} />
|
|
63
63
|
<Container>
|
|
64
|
-
<DxcInset space="
|
|
64
|
+
<DxcInset space="3rem">
|
|
65
65
|
<Placeholder></Placeholder>
|
|
66
66
|
</DxcInset>
|
|
67
67
|
</Container>
|
|
68
68
|
<Title title="space = xxlarge" level={4} />
|
|
69
69
|
<Container>
|
|
70
|
-
<DxcInset space="
|
|
70
|
+
<DxcInset space="4rem">
|
|
71
71
|
<Placeholder></Placeholder>
|
|
72
72
|
</DxcInset>
|
|
73
73
|
</Container>
|
|
74
74
|
<Title title="space = xxxlarge" level={4} />
|
|
75
75
|
<Container>
|
|
76
|
-
<DxcInset space="
|
|
76
|
+
<DxcInset space="5rem">
|
|
77
77
|
<Placeholder></Placeholder>
|
|
78
78
|
</DxcInset>
|
|
79
79
|
</Container>
|
|
80
80
|
<Title title="horizontal = none" level={4} />
|
|
81
81
|
<Container>
|
|
82
|
-
<DxcInset horizontal="
|
|
82
|
+
<DxcInset horizontal="0rem">
|
|
83
83
|
<Placeholder></Placeholder>
|
|
84
84
|
</DxcInset>
|
|
85
85
|
</Container>
|
|
86
86
|
<Title title="horizontal = xxxsmall" level={4} />
|
|
87
87
|
<Container>
|
|
88
|
-
<DxcInset horizontal="
|
|
88
|
+
<DxcInset horizontal="0.125rem">
|
|
89
89
|
<Placeholder></Placeholder>
|
|
90
90
|
</DxcInset>
|
|
91
91
|
</Container>
|
|
92
92
|
<Title title="horizontal = xxsmall" level={4} />
|
|
93
93
|
<Container>
|
|
94
|
-
<DxcInset horizontal="
|
|
94
|
+
<DxcInset horizontal="0.25rem">
|
|
95
95
|
<Placeholder></Placeholder>
|
|
96
96
|
</DxcInset>
|
|
97
97
|
</Container>
|
|
98
98
|
<Title title="horizontal = xsmall" level={4} />
|
|
99
99
|
<Container>
|
|
100
|
-
<DxcInset horizontal="
|
|
100
|
+
<DxcInset horizontal="0.5rem">
|
|
101
101
|
<Placeholder></Placeholder>
|
|
102
102
|
</DxcInset>
|
|
103
103
|
</Container>
|
|
104
104
|
<Title title="horizontal = small" level={4} />
|
|
105
105
|
<Container>
|
|
106
|
-
<DxcInset horizontal="
|
|
106
|
+
<DxcInset horizontal="1rem">
|
|
107
107
|
<Placeholder></Placeholder>
|
|
108
108
|
</DxcInset>
|
|
109
109
|
</Container>
|
|
110
110
|
<Title title="horizontal = medium" level={4} />
|
|
111
111
|
<Container>
|
|
112
|
-
<DxcInset horizontal="
|
|
112
|
+
<DxcInset horizontal="1.5rem">
|
|
113
113
|
<Placeholder></Placeholder>
|
|
114
114
|
</DxcInset>
|
|
115
115
|
</Container>
|
|
116
116
|
<Title title="horizontal = large" level={4} />
|
|
117
117
|
<Container>
|
|
118
|
-
<DxcInset horizontal="
|
|
118
|
+
<DxcInset horizontal="2rem">
|
|
119
119
|
<Placeholder></Placeholder>
|
|
120
120
|
</DxcInset>
|
|
121
121
|
</Container>
|
|
122
122
|
<Title title="horizontal = xlarge" level={4} />
|
|
123
123
|
<Container>
|
|
124
|
-
<DxcInset horizontal="
|
|
124
|
+
<DxcInset horizontal="3rem">
|
|
125
125
|
<Placeholder></Placeholder>
|
|
126
126
|
</DxcInset>
|
|
127
127
|
</Container>
|
|
128
128
|
<Title title="horizontal = xxlarge" level={4} />
|
|
129
129
|
<Container>
|
|
130
|
-
<DxcInset horizontal="
|
|
130
|
+
<DxcInset horizontal="4rem">
|
|
131
131
|
<Placeholder></Placeholder>
|
|
132
132
|
</DxcInset>
|
|
133
133
|
</Container>
|
|
134
134
|
<Title title="horizontal = xxxlarge" level={4} />
|
|
135
135
|
<Container>
|
|
136
|
-
<DxcInset horizontal="
|
|
136
|
+
<DxcInset horizontal="5rem">
|
|
137
137
|
<Placeholder></Placeholder>
|
|
138
138
|
</DxcInset>
|
|
139
139
|
</Container>
|
|
140
140
|
<Title title="vertical = none" level={4} />
|
|
141
141
|
<Container>
|
|
142
|
-
<DxcInset vertical="
|
|
142
|
+
<DxcInset vertical="0rem">
|
|
143
143
|
<Placeholder></Placeholder>
|
|
144
144
|
</DxcInset>
|
|
145
145
|
</Container>
|
|
146
146
|
<Title title="vertical = xxxsmall" level={4} />
|
|
147
147
|
<Container>
|
|
148
|
-
<DxcInset vertical="
|
|
148
|
+
<DxcInset vertical="0.125rem">
|
|
149
149
|
<Placeholder></Placeholder>
|
|
150
150
|
</DxcInset>
|
|
151
151
|
</Container>
|
|
152
152
|
<Title title="vertical = xxsmall" level={4} />
|
|
153
153
|
<Container>
|
|
154
|
-
<DxcInset vertical="
|
|
154
|
+
<DxcInset vertical="0.25rem">
|
|
155
155
|
<Placeholder></Placeholder>
|
|
156
156
|
</DxcInset>
|
|
157
157
|
</Container>
|
|
158
158
|
<Title title="vertical = xsmall" level={4} />
|
|
159
159
|
<Container>
|
|
160
|
-
<DxcInset vertical="
|
|
160
|
+
<DxcInset vertical="0.5rem">
|
|
161
161
|
<Placeholder></Placeholder>
|
|
162
162
|
</DxcInset>
|
|
163
163
|
</Container>
|
|
164
164
|
<Title title="vertical = small" level={4} />
|
|
165
165
|
<Container>
|
|
166
|
-
<DxcInset vertical="
|
|
166
|
+
<DxcInset vertical="1rem">
|
|
167
167
|
<Placeholder></Placeholder>
|
|
168
168
|
</DxcInset>
|
|
169
169
|
</Container>
|
|
170
170
|
<Title title="vertical = medium" level={4} />
|
|
171
171
|
<Container>
|
|
172
|
-
<DxcInset vertical="
|
|
172
|
+
<DxcInset vertical="1.5rem">
|
|
173
173
|
<Placeholder></Placeholder>
|
|
174
174
|
</DxcInset>
|
|
175
175
|
</Container>
|
|
176
176
|
<Title title="vertical = large" level={4} />
|
|
177
177
|
<Container>
|
|
178
|
-
<DxcInset vertical="
|
|
178
|
+
<DxcInset vertical="2rem">
|
|
179
179
|
<Placeholder></Placeholder>
|
|
180
180
|
</DxcInset>
|
|
181
181
|
</Container>
|
|
182
182
|
<Title title="vertical = xlarge" level={4} />
|
|
183
183
|
<Container>
|
|
184
|
-
<DxcInset vertical="
|
|
184
|
+
<DxcInset vertical="3rem">
|
|
185
185
|
<Placeholder></Placeholder>
|
|
186
186
|
</DxcInset>
|
|
187
187
|
</Container>
|
|
188
188
|
<Title title="vertical = xxlarge" level={4} />
|
|
189
189
|
<Container>
|
|
190
|
-
<DxcInset vertical="
|
|
190
|
+
<DxcInset vertical="4rem">
|
|
191
191
|
<Placeholder></Placeholder>
|
|
192
192
|
</DxcInset>
|
|
193
193
|
</Container>
|
|
194
194
|
<Title title="vertical = xxxlarge" level={4} />
|
|
195
195
|
<Container>
|
|
196
|
-
<DxcInset vertical="
|
|
196
|
+
<DxcInset vertical="5rem">
|
|
197
197
|
<Placeholder></Placeholder>
|
|
198
198
|
</DxcInset>
|
|
199
199
|
</Container>
|
|
200
200
|
<Title title="top = xxsmall, right= medium, bottom = large and left = xxlarge" level={4} />
|
|
201
201
|
<Container>
|
|
202
|
-
<DxcInset top="
|
|
202
|
+
<DxcInset top="0.25rem" right="1.5rem" bottom="2rem" left="4rem">
|
|
203
203
|
<Placeholder></Placeholder>
|
|
204
204
|
</DxcInset>
|
|
205
205
|
</Container>
|
|
@@ -207,7 +207,7 @@ export const Chromatic = () => (
|
|
|
207
207
|
<Container>
|
|
208
208
|
<DxcStack gutter="medium" divider>
|
|
209
209
|
<Placeholder></Placeholder>
|
|
210
|
-
<DxcInset top="
|
|
210
|
+
<DxcInset top="0.25rem" right="1.5rem" bottom="2rem" left="4rem">
|
|
211
211
|
<Placeholder></Placeholder>
|
|
212
212
|
</DxcInset>
|
|
213
213
|
<Placeholder></Placeholder>
|
package/inset/types.d.ts
CHANGED
|
@@ -1,13 +1,37 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare type Spacing = "
|
|
2
|
+
declare type Spacing = "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
|
|
3
3
|
declare type Props = {
|
|
4
|
+
/**
|
|
5
|
+
* Applies the spacing scale to all sides.
|
|
6
|
+
*/
|
|
4
7
|
space?: Spacing;
|
|
8
|
+
/**
|
|
9
|
+
* Applies the spacing scale to the left and right sides.
|
|
10
|
+
*/
|
|
5
11
|
horizontal?: Spacing;
|
|
12
|
+
/**
|
|
13
|
+
* Applies the spacing scale to the top and bottom sides.
|
|
14
|
+
*/
|
|
6
15
|
vertical?: Spacing;
|
|
16
|
+
/**
|
|
17
|
+
* Applies the spacing scale to the top side.
|
|
18
|
+
*/
|
|
7
19
|
top?: Spacing;
|
|
20
|
+
/**
|
|
21
|
+
* Applies the spacing scale to the right side.
|
|
22
|
+
*/
|
|
8
23
|
right?: Spacing;
|
|
24
|
+
/**
|
|
25
|
+
* Applies the spacing scale to the bottom side.
|
|
26
|
+
*/
|
|
9
27
|
bottom?: Spacing;
|
|
28
|
+
/**
|
|
29
|
+
* Applies the spacing scale to the left side.
|
|
30
|
+
*/
|
|
10
31
|
left?: Spacing;
|
|
32
|
+
/**
|
|
33
|
+
* Custom content inside the inset.
|
|
34
|
+
*/
|
|
11
35
|
children: React.ReactNode;
|
|
12
36
|
};
|
|
13
37
|
export default Props;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import AppLayoutPropsType, { AppLayoutFooterPropsType, AppLayoutMainPropsType, AppLayoutHeaderPropsType } from "./types";
|
|
2
|
+
import AppLayoutPropsType, { AppLayoutSidenavPropsType, AppLayoutFooterPropsType, AppLayoutMainPropsType, AppLayoutHeaderPropsType } from "./types";
|
|
3
3
|
declare const DxcApplicationLayout: {
|
|
4
|
-
({ children }: AppLayoutPropsType): JSX.Element;
|
|
4
|
+
({ visibilityToggleLabel, children }: AppLayoutPropsType): JSX.Element;
|
|
5
5
|
Header: ({ children }: AppLayoutHeaderPropsType) => JSX.Element;
|
|
6
6
|
Main: ({ children }: AppLayoutMainPropsType) => JSX.Element;
|
|
7
7
|
Footer: ({ children }: AppLayoutFooterPropsType) => JSX.Element;
|
|
8
|
-
SideNav: (
|
|
8
|
+
SideNav: ({ ...childProps }: AppLayoutSidenavPropsType) => JSX.Element;
|
|
9
|
+
useResponsiveSidenavVisibility: () => (isSidenavVisible: boolean) => void;
|
|
9
10
|
};
|
|
10
11
|
export default DxcApplicationLayout;
|