@dxc-technology/halstack-react 8.0.0 → 9.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/HalstackContext.js +94 -45
- package/accordion/Accordion.js +7 -13
- package/accordion/Accordion.stories.tsx +102 -13
- package/alert/Alert.stories.tsx +28 -0
- package/box/Box.js +1 -3
- package/box/Box.stories.tsx +15 -0
- package/button/Button.js +11 -13
- package/button/Button.stories.tsx +150 -8
- package/checkbox/Checkbox.stories.tsx +52 -0
- package/chip/Chip.js +16 -22
- package/chip/Chip.stories.tsx +96 -9
- package/common/variables.js +280 -288
- package/date-input/Calendar.d.ts +1 -1
- package/date-input/Calendar.js +43 -43
- package/date-input/DateInput.js +74 -32
- package/date-input/DateInput.stories.tsx +183 -30
- package/date-input/DateInput.test.js +120 -37
- package/date-input/DatePicker.js +38 -52
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +1 -1
- package/date-input/YearPicker.js +23 -12
- package/date-input/types.d.ts +6 -8
- package/dialog/Dialog.js +60 -73
- package/dialog/Dialog.stories.tsx +211 -159
- package/dialog/Dialog.test.js +301 -2
- package/dropdown/Dropdown.js +3 -6
- package/dropdown/Dropdown.stories.tsx +210 -84
- package/dropdown/DropdownMenu.js +8 -18
- package/dropdown/DropdownMenuItem.js +4 -15
- package/file-input/FileInput.js +3 -6
- package/file-input/FileInput.stories.tsx +85 -2
- package/file-input/FileInput.test.js +0 -41
- package/file-input/FileItem.js +1 -0
- package/footer/Footer.stories.tsx +91 -0
- package/header/Header.js +18 -20
- package/header/Header.stories.tsx +149 -6
- package/link/Link.stories.tsx +60 -0
- package/main.d.ts +1 -1
- package/main.js +1 -1
- package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
- package/{tabs-nav → nav-tabs}/Tab.js +35 -15
- package/package.json +1 -1
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +5 -11
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +17 -10
- package/progress-bar/ProgressBar.js +4 -4
- package/progress-bar/ProgressBar.stories.jsx +35 -2
- package/quick-nav/QuickNav.stories.tsx +14 -0
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/resultsetTable/ResultsetTable.test.js +17 -22
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +5 -34
- package/select/Option.js +11 -24
- package/select/Select.js +43 -24
- package/select/Select.stories.tsx +492 -145
- package/select/Select.test.js +17 -22
- package/select/types.d.ts +2 -2
- package/sidenav/Sidenav.js +8 -10
- package/sidenav/Sidenav.stories.tsx +148 -46
- package/slider/Slider.js +4 -4
- package/slider/Slider.stories.tsx +57 -0
- package/spinner/Spinner.js +2 -2
- package/spinner/Spinner.stories.jsx +27 -1
- package/switch/Switch.js +1 -1
- package/switch/Switch.stories.tsx +33 -0
- package/table/Table.stories.jsx +80 -1
- package/tabs/Tab.js +3 -5
- package/tabs/Tabs.js +3 -3
- package/tabs/Tabs.stories.tsx +45 -5
- package/tag/Tag.stories.tsx +14 -1
- package/text-input/Suggestion.js +32 -5
- package/text-input/TextInput.js +7 -11
- package/text-input/TextInput.stories.tsx +92 -4
- package/text-input/TextInput.test.js +125 -25
- package/textarea/Textarea.stories.jsx +60 -1
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +139 -0
- package/wizard/Wizard.stories.tsx +20 -0
- /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/NavTabs.test.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/types.js +0 -0
|
@@ -454,45 +454,4 @@ describe("FileInput component tests", function () {
|
|
|
454
454
|
}
|
|
455
455
|
}, _callee6);
|
|
456
456
|
})));
|
|
457
|
-
test("File input sends value when submitted in a form", function () {
|
|
458
|
-
var newFile = new File(["newFile"], "newFile.pdf", {
|
|
459
|
-
type: "pdf"
|
|
460
|
-
});
|
|
461
|
-
var handlerOnSubmit = jest.fn(function (e) {
|
|
462
|
-
e.preventDefault();
|
|
463
|
-
var formData = new FormData(e.target);
|
|
464
|
-
var formProps = Object.fromEntries(formData);
|
|
465
|
-
expect(formProps).toStrictEqual({
|
|
466
|
-
file: newFile
|
|
467
|
-
});
|
|
468
|
-
});
|
|
469
|
-
|
|
470
|
-
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
|
|
471
|
-
onSubmit: handlerOnSubmit
|
|
472
|
-
}, /*#__PURE__*/_react["default"].createElement(_FileInput["default"], {
|
|
473
|
-
label: "File input label",
|
|
474
|
-
name: "file",
|
|
475
|
-
helperText: "File input helper text",
|
|
476
|
-
mode: "filedrop",
|
|
477
|
-
buttonLabel: "Choose",
|
|
478
|
-
dropAreaLabel: "(or drop the files)"
|
|
479
|
-
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
480
|
-
type: "submit"
|
|
481
|
-
}, "Submit"))),
|
|
482
|
-
getByText = _render17.getByText,
|
|
483
|
-
getByLabelText = _render17.getByLabelText;
|
|
484
|
-
|
|
485
|
-
var inputFile = getByLabelText("File input label", {
|
|
486
|
-
hidden: true
|
|
487
|
-
});
|
|
488
|
-
var submit = getByText("Submit");
|
|
489
|
-
|
|
490
|
-
_react2.fireEvent.change(inputFile, {
|
|
491
|
-
target: {
|
|
492
|
-
files: [newFile]
|
|
493
|
-
}
|
|
494
|
-
});
|
|
495
|
-
|
|
496
|
-
_userEvent["default"].click(submit);
|
|
497
|
-
});
|
|
498
457
|
});
|
package/file-input/FileItem.js
CHANGED
|
@@ -86,6 +86,7 @@ var FileItem = function FileItem(_ref) {
|
|
|
86
86
|
onClick: function onClick() {
|
|
87
87
|
onDelete(fileName);
|
|
88
88
|
},
|
|
89
|
+
type: "button",
|
|
89
90
|
title: translatedLabels.fileInput.deleteFileActionTitle,
|
|
90
91
|
"aria-label": translatedLabels.fileInput.deleteFileActionTitle,
|
|
91
92
|
tabIndex: tabIndex
|
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
import DxcFooter from "./Footer";
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
5
6
|
|
|
6
7
|
const social = [
|
|
7
8
|
{
|
|
@@ -85,6 +86,86 @@ export default {
|
|
|
85
86
|
component: DxcFooter,
|
|
86
87
|
};
|
|
87
88
|
|
|
89
|
+
const opinionatedTheme = {
|
|
90
|
+
footer: {
|
|
91
|
+
baseColor: "#000000",
|
|
92
|
+
fontColor: "#ffffff",
|
|
93
|
+
accentColor: "#0095ff",
|
|
94
|
+
logo: (
|
|
95
|
+
<svg id="g10" xmlns="http://www.w3.org/2000/svg" width="280.781" height="32" viewBox="0 0 280.781 32">
|
|
96
|
+
<g id="g12">
|
|
97
|
+
<path
|
|
98
|
+
id="path14"
|
|
99
|
+
d="M171.5-54.124v12.539h-3.6V-54.124h-4.973v-3.191h13.54v3.191H171.5"
|
|
100
|
+
transform="translate(-68.528 65.45)"
|
|
101
|
+
fill="#fff"
|
|
102
|
+
/>
|
|
103
|
+
<path
|
|
104
|
+
id="path16"
|
|
105
|
+
d="M189.96-41.585V-57.315h12.326v3.079h-8.753v3.191h7.7v3.078h-7.7v3.3h8.87v3.078H189.96"
|
|
106
|
+
transform="translate(-77.56 65.45)"
|
|
107
|
+
fill="#fff"
|
|
108
|
+
/>
|
|
109
|
+
<path
|
|
110
|
+
id="path18"
|
|
111
|
+
d="M223.558-41.438a8.1,8.1,0,0,1-8.382-8.1v-.045a8.161,8.161,0,0,1,8.522-8.146,8.6,8.6,0,0,1,6.444,2.431l-2.289,2.543a6.133,6.133,0,0,0-4.178-1.778,4.743,4.743,0,0,0-4.738,4.905v.045a4.752,4.752,0,0,0,4.738,4.95,6,6,0,0,0,4.295-1.845l2.288,2.228a8.491,8.491,0,0,1-6.7,2.813"
|
|
112
|
+
transform="translate(-86.019 65.583)"
|
|
113
|
+
fill="#fff"
|
|
114
|
+
/>
|
|
115
|
+
<path
|
|
116
|
+
id="path20"
|
|
117
|
+
d="M254.988-41.585V-47.9h-6.63v6.315h-3.6V-57.315h3.6v6.225h6.63v-6.225h3.594v15.731h-3.594"
|
|
118
|
+
transform="translate(-95.903 65.45)"
|
|
119
|
+
fill="#fff"
|
|
120
|
+
/>
|
|
121
|
+
<path
|
|
122
|
+
id="path22"
|
|
123
|
+
d="M285.991-41.585l-7.914-10v10h-3.549V-57.315h3.316l7.657,9.685v-9.685h3.549v15.731h-3.058"
|
|
124
|
+
transform="translate(-105.869 65.45)"
|
|
125
|
+
fill="#fff"
|
|
126
|
+
/>
|
|
127
|
+
<path
|
|
128
|
+
id="path24"
|
|
129
|
+
d="M317.2-49.583a4.869,4.869,0,0,0-4.949-4.95,4.793,4.793,0,0,0-4.9,4.905v.045a4.869,4.869,0,0,0,4.949,4.95,4.793,4.793,0,0,0,4.9-4.905Zm-4.949,8.145c-5.043,0-8.661-3.623-8.661-8.1v-.045c0-4.478,3.666-8.146,8.708-8.146s8.66,3.623,8.66,8.1v.045c0,4.477-3.664,8.145-8.708,8.145"
|
|
130
|
+
transform="translate(-115.631 65.583)"
|
|
131
|
+
fill="#fff"
|
|
132
|
+
/>
|
|
133
|
+
<path
|
|
134
|
+
id="path26"
|
|
135
|
+
d="M336.786-41.585V-57.315h3.6v12.584h8.148v3.146H336.786"
|
|
136
|
+
transform="translate(-126.654 65.45)"
|
|
137
|
+
fill="#fff"
|
|
138
|
+
/>
|
|
139
|
+
<path
|
|
140
|
+
id="path28"
|
|
141
|
+
d="M372.78-49.583a4.87,4.87,0,0,0-4.949-4.95,4.794,4.794,0,0,0-4.9,4.905v.045a4.869,4.869,0,0,0,4.949,4.95,4.794,4.794,0,0,0,4.9-4.905Zm-4.949,8.145c-5.043,0-8.662-3.623-8.662-8.1v-.045c0-4.478,3.666-8.146,8.708-8.146s8.661,3.623,8.661,8.1v.045c0,4.477-3.666,8.145-8.708,8.145"
|
|
142
|
+
transform="translate(-135.016 65.583)"
|
|
143
|
+
fill="#fff"
|
|
144
|
+
/>
|
|
145
|
+
<path
|
|
146
|
+
id="path30"
|
|
147
|
+
d="M399.735-41.438c-5.09,0-8.592-3.443-8.592-8.1v-.045a8.243,8.243,0,0,1,8.568-8.146,9.18,9.18,0,0,1,6.42,2.16l-2.265,2.634a6.141,6.141,0,0,0-4.272-1.6,4.807,4.807,0,0,0-4.692,4.905v.045a4.8,4.8,0,0,0,4.949,4.995,5.89,5.89,0,0,0,3.384-.945v-2.25h-3.618v-2.992h7.1v6.841a10.837,10.837,0,0,1-6.98,2.5"
|
|
148
|
+
transform="translate(-145.284 65.583)"
|
|
149
|
+
fill="#fff"
|
|
150
|
+
/>
|
|
151
|
+
<path
|
|
152
|
+
id="path32"
|
|
153
|
+
d="M428.664-47.855v6.27h-3.6v-6.2l-6.28-9.528h4.2L426.89-51l3.968-6.315h4.085l-6.28,9.46"
|
|
154
|
+
transform="translate(-154.162 65.45)"
|
|
155
|
+
fill="#fff"
|
|
156
|
+
/>
|
|
157
|
+
<path
|
|
158
|
+
id="path34"
|
|
159
|
+
d="M84.218-55.737a10.063,10.063,0,0,1,2.589-4.4,9.792,9.792,0,0,1,6.985-2.77h11.328V-69.3H93.792a17.041,17.041,0,0,0-11.8,4.759,16.344,16.344,0,0,0-3.547,5.115,13.247,13.247,0,0,0-1.122,3.688Zm0,4.877a10.065,10.065,0,0,0,2.589,4.4,9.793,9.793,0,0,0,6.985,2.77h11.328V-37.3H93.792a17.042,17.042,0,0,1-11.8-4.759,16.339,16.339,0,0,1-3.547-5.114,13.251,13.251,0,0,1-1.122-3.688ZM63.1-47.98,54.45-37.3H45.873l12.957-16-12.957-16H54.45L63.1-58.619l8.65-10.68h8.578l-12.957,16,12.957,16H71.749ZM48.875-55.737a13.212,13.212,0,0,0-1.122-3.688,16.359,16.359,0,0,0-3.546-5.115,17.043,17.043,0,0,0-11.8-4.759H21.08v6.393H32.408a9.79,9.79,0,0,1,6.985,2.77,10.072,10.072,0,0,1,2.59,4.4Zm0,4.877a13.215,13.215,0,0,1-1.122,3.688,16.353,16.353,0,0,1-3.546,5.114,17.044,17.044,0,0,1-11.8,4.759H21.08v-6.393H32.408a9.791,9.791,0,0,0,6.985-2.77,10.074,10.074,0,0,0,2.59-4.4h6.892"
|
|
160
|
+
transform="translate(-21.08 69.298)"
|
|
161
|
+
fill="#fff"
|
|
162
|
+
/>
|
|
163
|
+
</g>
|
|
164
|
+
</svg>
|
|
165
|
+
),
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
|
|
88
169
|
export const Chromatic = () => (
|
|
89
170
|
<>
|
|
90
171
|
<ExampleContainer>
|
|
@@ -133,5 +214,15 @@ export const Chromatic = () => (
|
|
|
133
214
|
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
134
215
|
<DxcFooter padding="xxlarge"></DxcFooter>
|
|
135
216
|
</ExampleContainer>
|
|
217
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
218
|
+
<ExampleContainer>
|
|
219
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
220
|
+
<DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
|
|
221
|
+
<div>
|
|
222
|
+
<a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
|
|
223
|
+
</div>
|
|
224
|
+
</DxcFooter>
|
|
225
|
+
</HalstackProvider>
|
|
226
|
+
</ExampleContainer>
|
|
136
227
|
</>
|
|
137
228
|
);
|
package/header/Header.js
CHANGED
|
@@ -39,14 +39,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
39
39
|
|
|
40
40
|
var closeIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
41
41
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42
|
-
height: "24",
|
|
43
42
|
viewBox: "0 0 24 24",
|
|
43
|
+
height: "24",
|
|
44
44
|
width: "24"
|
|
45
45
|
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
46
|
-
d: "
|
|
47
|
-
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
48
|
-
d: "M0 0h24v24H0z",
|
|
49
|
-
fill: "none"
|
|
46
|
+
d: "M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6Z"
|
|
50
47
|
}));
|
|
51
48
|
|
|
52
49
|
var hamburgerIcon = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
@@ -62,7 +59,7 @@ var Dropdown = function Dropdown(props) {
|
|
|
62
59
|
return /*#__PURE__*/_react["default"].createElement(HeaderDropdown, null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], props));
|
|
63
60
|
};
|
|
64
61
|
|
|
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"])));
|
|
62
|
+
var HeaderDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n button {\n background-color: transparent;\n :hover {\n background-color: transparent;\n }\n }\n"])));
|
|
66
63
|
|
|
67
64
|
var getLogoElement = function getLogoElement(themeInput, logoLabel) {
|
|
68
65
|
if (!themeInput) return _Icons.dxcLogo;else if (typeof themeInput === "string") return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
@@ -110,9 +107,9 @@ var DxcHeader = function DxcHeader(_ref2) {
|
|
|
110
107
|
isMenuVisible = _useState4[0],
|
|
111
108
|
setIsMenuVisible = _useState4[1];
|
|
112
109
|
|
|
113
|
-
var handleResize = function
|
|
110
|
+
var handleResize = (0, _react.useCallback)(function () {
|
|
114
111
|
setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
|
|
115
|
-
};
|
|
112
|
+
}, []);
|
|
116
113
|
|
|
117
114
|
var handleMenu = function handleMenu() {
|
|
118
115
|
if (isResponsive && !isMenuVisible) {
|
|
@@ -134,7 +131,7 @@ var DxcHeader = function DxcHeader(_ref2) {
|
|
|
134
131
|
return function () {
|
|
135
132
|
window.removeEventListener("resize", handleResize);
|
|
136
133
|
};
|
|
137
|
-
}, []);
|
|
134
|
+
}, [handleResize]);
|
|
138
135
|
(0, _react.useEffect)(function () {
|
|
139
136
|
!isResponsive && setIsMenuVisible(false);
|
|
140
137
|
}, [isResponsive]);
|
|
@@ -158,7 +155,8 @@ var DxcHeader = function DxcHeader(_ref2) {
|
|
|
158
155
|
}, /*#__PURE__*/_react["default"].createElement(ResponsiveIconsContainer, null, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(CloseAction, {
|
|
159
156
|
tabIndex: tabIndex,
|
|
160
157
|
onClick: handleMenu,
|
|
161
|
-
"aria-label": translatedLabels.header.closeIcon
|
|
158
|
+
"aria-label": translatedLabels.header.closeIcon,
|
|
159
|
+
title: translatedLabels.header.closeIcon
|
|
162
160
|
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
163
161
|
color: colorsTheme.header.menuBackgroundColor
|
|
164
162
|
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
@@ -183,7 +181,9 @@ var DxcHeader = function DxcHeader(_ref2) {
|
|
|
183
181
|
|
|
184
182
|
DxcHeader.Dropdown = Dropdown;
|
|
185
183
|
|
|
186
|
-
var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
184
|
+
var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n min-height: ", ";\n margin-bottom: ", ";\n padding: ", ";\n background-color: ", ";\n border-bottom: ", ";\n"])), function (props) {
|
|
185
|
+
return props.theme.minHeight;
|
|
186
|
+
}, function (props) {
|
|
187
187
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
188
188
|
}, function (props) {
|
|
189
189
|
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
@@ -191,12 +191,10 @@ var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_
|
|
|
191
191
|
return props.theme.backgroundColor;
|
|
192
192
|
}, function (props) {
|
|
193
193
|
return props.underlined && "".concat(props.theme.underlinedThickness, " ").concat(props.theme.underlinedStyle, " ").concat(props.theme.underlinedColor);
|
|
194
|
-
}, function (props) {
|
|
195
|
-
return props.theme.minHeight;
|
|
196
194
|
});
|
|
197
195
|
|
|
198
196
|
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
|
|
199
|
-
return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none";
|
|
197
|
+
return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none;";
|
|
200
198
|
});
|
|
201
199
|
|
|
202
200
|
var LogoImg = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
@@ -211,7 +209,7 @@ var LogoContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
211
209
|
return props.theme.logoWidth;
|
|
212
210
|
});
|
|
213
211
|
|
|
214
|
-
var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
212
|
+
var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-grow: 1;\n width: calc(100% - 186px);\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
|
|
215
213
|
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
216
214
|
}, function (props) {
|
|
217
215
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
@@ -223,9 +221,7 @@ var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_temp
|
|
|
223
221
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
224
222
|
});
|
|
225
223
|
|
|
226
|
-
var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
227
|
-
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
228
|
-
}, function (props) {
|
|
224
|
+
var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n flex-grow: 1;\n justify-content: flex-end;\n width: calc(100% - 186px);\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n color: ", ";\n"])), function (props) {
|
|
229
225
|
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
230
226
|
}, function (props) {
|
|
231
227
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
@@ -235,6 +231,8 @@ var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_te
|
|
|
235
231
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
236
232
|
}, function (props) {
|
|
237
233
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
234
|
+
}, function (props) {
|
|
235
|
+
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
238
236
|
});
|
|
239
237
|
|
|
240
238
|
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) {
|
|
@@ -281,11 +279,11 @@ var ResponsiveLogoContainer = _styledComponents["default"].div(_templateObject11
|
|
|
281
279
|
|
|
282
280
|
var ResponsiveIconsContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n"])));
|
|
283
281
|
|
|
284
|
-
var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
282
|
+
var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: center;\n align-content: center;\n padding: 6px;\n border: unset;\n border-radius: 2px;\n background-color: transparent;\n cursor: pointer;\n\n :focus,\n :focus-visible {\n outline: ", " auto 1px;\n }\n\n svg {\n height: 24px;\n width: 24px;\n }\n"])), function (props) {
|
|
285
283
|
return props.theme.hamburguerFocusColor;
|
|
286
284
|
});
|
|
287
285
|
|
|
288
|
-
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
286
|
+
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n height: 100%;\n color: ", ";\n"])), function (props) {
|
|
289
287
|
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
290
288
|
});
|
|
291
289
|
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import DxcHeader from "./Header";
|
|
3
|
+
import DxcButton from "../button/Button";
|
|
3
4
|
import Title from "../../.storybook/components/Title";
|
|
4
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
6
|
import { userEvent, waitFor, within } from "@storybook/testing-library";
|
|
7
|
+
import DxcFlex from "../flex/Flex";
|
|
8
|
+
import DxcLink from "../link/Link";
|
|
9
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
10
|
|
|
7
11
|
export default {
|
|
8
12
|
title: "Header",
|
|
@@ -16,16 +20,99 @@ const options: any = [
|
|
|
16
20
|
},
|
|
17
21
|
];
|
|
18
22
|
|
|
23
|
+
const options2: any = [
|
|
24
|
+
{
|
|
25
|
+
value: 1,
|
|
26
|
+
label: "Home",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
value: 2,
|
|
30
|
+
label: "Release notes",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
value: 3,
|
|
34
|
+
label: "Sign out",
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const opinionatedTheme = {
|
|
39
|
+
header: {
|
|
40
|
+
baseColor: "#ffffff",
|
|
41
|
+
accentColor: "#000000",
|
|
42
|
+
fontColor: "#000000",
|
|
43
|
+
menuBaseColor: "#ffffff",
|
|
44
|
+
hamburguerColor: "#000000",
|
|
45
|
+
logo: (
|
|
46
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="73" height="40" viewBox="0 0 73 40">
|
|
47
|
+
<g id="g10" transform="translate(0)">
|
|
48
|
+
<g id="g12">
|
|
49
|
+
<path
|
|
50
|
+
id="path14"
|
|
51
|
+
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"
|
|
52
|
+
transform="translate(-21.028 65.555)"
|
|
53
|
+
fill="#100f0d"
|
|
54
|
+
/>
|
|
55
|
+
<path
|
|
56
|
+
id="path16"
|
|
57
|
+
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"
|
|
58
|
+
transform="translate(-21.049 88.739)"
|
|
59
|
+
fill="#5f249f"
|
|
60
|
+
/>
|
|
61
|
+
</g>
|
|
62
|
+
</g>
|
|
63
|
+
</svg>
|
|
64
|
+
),
|
|
65
|
+
logoResponsive: (
|
|
66
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="73" height="40" viewBox="0 0 73 40">
|
|
67
|
+
<g id="g10" transform="translate(0)">
|
|
68
|
+
<g id="g12">
|
|
69
|
+
<path
|
|
70
|
+
id="path14"
|
|
71
|
+
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"
|
|
72
|
+
transform="translate(-21.028 65.555)"
|
|
73
|
+
fill="#100f0d"
|
|
74
|
+
/>
|
|
75
|
+
<path
|
|
76
|
+
id="path16"
|
|
77
|
+
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"
|
|
78
|
+
transform="translate(-21.049 88.739)"
|
|
79
|
+
fill="#5f249f"
|
|
80
|
+
/>
|
|
81
|
+
</g>
|
|
82
|
+
</g>
|
|
83
|
+
</svg>
|
|
84
|
+
),
|
|
85
|
+
contentColor: "#000000",
|
|
86
|
+
overlayColor: "#000000b3",
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
|
|
19
90
|
export const Chromatic = () => (
|
|
20
91
|
<>
|
|
21
92
|
<ExampleContainer>
|
|
22
93
|
<Title title="Default with dropdown" theme="light" level={4} />
|
|
23
|
-
<DxcHeader
|
|
94
|
+
<DxcHeader
|
|
95
|
+
content={<DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />}
|
|
96
|
+
/>
|
|
24
97
|
</ExampleContainer>
|
|
25
98
|
<ExampleContainer>
|
|
26
99
|
<Title title="Underlined with text" theme="light" level={4} />
|
|
27
100
|
<DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
|
|
28
101
|
</ExampleContainer>
|
|
102
|
+
<ExampleContainer>
|
|
103
|
+
<Title title="Underlined, dropdown and links" theme="light" level={4} />
|
|
104
|
+
<DxcHeader
|
|
105
|
+
content={
|
|
106
|
+
<DxcFlex alignItems="center" gap="4rem">
|
|
107
|
+
<DxcLink>Link 1</DxcLink>
|
|
108
|
+
<DxcLink>Link 2</DxcLink>
|
|
109
|
+
<DxcLink>Link 3</DxcLink>
|
|
110
|
+
<DxcHeader.Dropdown options={options2} label="Label" onSelectOption={() => {}} />
|
|
111
|
+
</DxcFlex>
|
|
112
|
+
}
|
|
113
|
+
underlined
|
|
114
|
+
/>
|
|
115
|
+
</ExampleContainer>
|
|
29
116
|
<Title title="Margins" theme="light" level={2} />
|
|
30
117
|
<ExampleContainer>
|
|
31
118
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
@@ -62,7 +149,6 @@ export const Chromatic = () => (
|
|
|
62
149
|
<DxcHeader underlined margin="xxlarge" />
|
|
63
150
|
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
64
151
|
</ExampleContainer>
|
|
65
|
-
|
|
66
152
|
<Title title="Paddings" theme="light" level={2} />
|
|
67
153
|
<ExampleContainer>
|
|
68
154
|
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
@@ -92,6 +178,21 @@ export const Chromatic = () => (
|
|
|
92
178
|
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
93
179
|
<DxcHeader underlined padding="xxlarge" />
|
|
94
180
|
</ExampleContainer>
|
|
181
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
182
|
+
<ExampleContainer>
|
|
183
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
184
|
+
<DxcHeader
|
|
185
|
+
underlined
|
|
186
|
+
content={<DxcButton label={"Custom Button"} />}
|
|
187
|
+
responsiveContent={(closeHandler) => (
|
|
188
|
+
<>
|
|
189
|
+
<DxcButton label={"Custom Button"} onClick={closeHandler} />
|
|
190
|
+
Custom content
|
|
191
|
+
</>
|
|
192
|
+
)}
|
|
193
|
+
/>
|
|
194
|
+
</HalstackProvider>
|
|
195
|
+
</ExampleContainer>
|
|
95
196
|
</>
|
|
96
197
|
);
|
|
97
198
|
|
|
@@ -120,13 +221,29 @@ const RespHeaderHover = () => (
|
|
|
120
221
|
</ExampleContainer>
|
|
121
222
|
);
|
|
122
223
|
|
|
123
|
-
const
|
|
224
|
+
const RespHeaderMenuMobile = () => (
|
|
225
|
+
<ExampleContainer>
|
|
226
|
+
<Title title="Responsive menu" theme="light" level={4} />
|
|
227
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
228
|
+
</ExampleContainer>
|
|
229
|
+
);
|
|
230
|
+
|
|
231
|
+
const RespHeaderMenuTablet = () => (
|
|
124
232
|
<ExampleContainer>
|
|
125
233
|
<Title title="Responsive menu" theme="light" level={4} />
|
|
126
234
|
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
127
235
|
</ExampleContainer>
|
|
128
236
|
);
|
|
129
237
|
|
|
238
|
+
const RespHeaderMenuOpinionated = () => (
|
|
239
|
+
<ExampleContainer>
|
|
240
|
+
<Title title="Responsive menu" theme="light" level={4} />
|
|
241
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
242
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
243
|
+
</HalstackProvider>
|
|
244
|
+
</ExampleContainer>
|
|
245
|
+
);
|
|
246
|
+
|
|
130
247
|
ResponsiveHeader.parameters = {
|
|
131
248
|
viewport: {
|
|
132
249
|
defaultViewport: "iphonex",
|
|
@@ -158,14 +275,40 @@ ResponsiveHeaderHover.play = async ({ canvasElement }) => {
|
|
|
158
275
|
await waitFor(() => canvas.findByText("Menu"));
|
|
159
276
|
};
|
|
160
277
|
|
|
161
|
-
export const
|
|
162
|
-
|
|
278
|
+
export const ResponsiveHeaderMenuMobile = RespHeaderMenuMobile.bind({});
|
|
279
|
+
ResponsiveHeaderMenuMobile.parameters = {
|
|
163
280
|
viewport: {
|
|
164
281
|
defaultViewport: "iphonex",
|
|
165
282
|
},
|
|
166
283
|
chromatic: { viewports: [375] },
|
|
167
284
|
};
|
|
168
|
-
|
|
285
|
+
ResponsiveHeaderMenuMobile.play = async ({ canvasElement }) => {
|
|
286
|
+
const canvas = within(canvasElement);
|
|
287
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
288
|
+
await userEvent.click(canvas.getByText("Menu"));
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
export const ResponsiveHeaderMenuTablet = RespHeaderMenuTablet.bind({});
|
|
292
|
+
ResponsiveHeaderMenuTablet.parameters = {
|
|
293
|
+
viewport: {
|
|
294
|
+
defaultViewport: "pixelxl",
|
|
295
|
+
},
|
|
296
|
+
chromatic: { viewports: [720] },
|
|
297
|
+
};
|
|
298
|
+
ResponsiveHeaderMenuTablet.play = async ({ canvasElement }) => {
|
|
299
|
+
const canvas = within(canvasElement);
|
|
300
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
301
|
+
await userEvent.click(canvas.getByText("Menu"));
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
export const ResponsiveHeaderMenuOpinionated = RespHeaderMenuOpinionated.bind({});
|
|
305
|
+
ResponsiveHeaderMenuOpinionated.parameters = {
|
|
306
|
+
viewport: {
|
|
307
|
+
defaultViewport: "pixelxl",
|
|
308
|
+
},
|
|
309
|
+
chromatic: { viewports: [720] },
|
|
310
|
+
};
|
|
311
|
+
ResponsiveHeaderMenuOpinionated.play = async ({ canvasElement }) => {
|
|
169
312
|
const canvas = within(canvasElement);
|
|
170
313
|
await waitFor(() => canvas.findByText("Menu"));
|
|
171
314
|
await userEvent.click(canvas.getByText("Menu"));
|
package/link/Link.stories.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
import DxcLink from "./Link";
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
5
6
|
|
|
6
7
|
export default {
|
|
7
8
|
title: "Link",
|
|
@@ -19,6 +20,12 @@ const icon = (
|
|
|
19
20
|
</svg>
|
|
20
21
|
);
|
|
21
22
|
|
|
23
|
+
const opinionatedTheme = {
|
|
24
|
+
link: {
|
|
25
|
+
baseColor: "#5f249f",
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
22
29
|
export const Chromatic = () => (
|
|
23
30
|
<>
|
|
24
31
|
<Title title="With anchor" theme="light" level={2} />
|
|
@@ -189,5 +196,58 @@ export const Chromatic = () => (
|
|
|
189
196
|
Test
|
|
190
197
|
</DxcLink>
|
|
191
198
|
</ExampleContainer>
|
|
199
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
200
|
+
<ExampleContainer>
|
|
201
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
202
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
203
|
+
<DxcLink disabled>Test</DxcLink>
|
|
204
|
+
</HalstackProvider>
|
|
205
|
+
</ExampleContainer>
|
|
206
|
+
<ExampleContainer>
|
|
207
|
+
<Title title="Icon before" theme="light" level={4} />
|
|
208
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
209
|
+
<DxcLink href="https://www.google.com" icon={icon} iconPosition="before">
|
|
210
|
+
Test
|
|
211
|
+
</DxcLink>
|
|
212
|
+
</HalstackProvider>
|
|
213
|
+
</ExampleContainer>
|
|
214
|
+
<ExampleContainer>
|
|
215
|
+
<Title title="Disabled" theme="light" level={4} />
|
|
216
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
217
|
+
<DxcLink disabled>Test</DxcLink>
|
|
218
|
+
</HalstackProvider>
|
|
219
|
+
</ExampleContainer>
|
|
220
|
+
<ExampleContainer>
|
|
221
|
+
<Title title="Icon after" theme="light" level={4} />{" "}
|
|
222
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
223
|
+
<DxcLink onClick={() => {}} icon={icon} iconPosition="after">
|
|
224
|
+
Test
|
|
225
|
+
</DxcLink>
|
|
226
|
+
</HalstackProvider>
|
|
227
|
+
</ExampleContainer>
|
|
228
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
229
|
+
<Title title="With link hovered" theme="light" level={4} />
|
|
230
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
231
|
+
<DxcLink onClick={() => {}}>Test</DxcLink>
|
|
232
|
+
</HalstackProvider>
|
|
233
|
+
</ExampleContainer>
|
|
234
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
235
|
+
<Title title="With link focused" theme="light" level={4} />
|
|
236
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
237
|
+
<DxcLink onClick={() => {}}>Test</DxcLink>
|
|
238
|
+
</HalstackProvider>
|
|
239
|
+
</ExampleContainer>
|
|
240
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
241
|
+
<Title title="With link active" theme="light" level={4} />
|
|
242
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
243
|
+
<DxcLink onClick={() => {}}>Test</DxcLink>
|
|
244
|
+
</HalstackProvider>
|
|
245
|
+
</ExampleContainer>
|
|
246
|
+
<ExampleContainer pseudoState="pseudo-visited">
|
|
247
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
248
|
+
<Title title="With link visited" theme="light" level={4} />
|
|
249
|
+
<DxcLink href="https://www.google.com">Test</DxcLink>
|
|
250
|
+
</HalstackProvider>
|
|
251
|
+
</ExampleContainer>
|
|
192
252
|
</>
|
|
193
253
|
);
|
package/main.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ import DxcRadioGroup from "./radio-group/RadioGroup";
|
|
|
34
34
|
import DxcBleed from "./bleed/Bleed";
|
|
35
35
|
import DxcInset from "./inset/Inset";
|
|
36
36
|
import DxcQuickNav from "./quick-nav/QuickNav";
|
|
37
|
-
import DxcNavTabs from "./tabs
|
|
37
|
+
import DxcNavTabs from "./nav-tabs/NavTabs";
|
|
38
38
|
import DxcFlex from "./flex/Flex";
|
|
39
39
|
import DxcTypography from "./typography/Typography";
|
|
40
40
|
import DxcParagraph from "./paragraph/Paragraph";
|
package/main.js
CHANGED
|
@@ -350,7 +350,7 @@ var _Inset = _interopRequireDefault(require("./inset/Inset"));
|
|
|
350
350
|
|
|
351
351
|
var _QuickNav = _interopRequireDefault(require("./quick-nav/QuickNav"));
|
|
352
352
|
|
|
353
|
-
var _NavTabs = _interopRequireDefault(require("./tabs
|
|
353
|
+
var _NavTabs = _interopRequireDefault(require("./nav-tabs/NavTabs"));
|
|
354
354
|
|
|
355
355
|
var _Flex = _interopRequireDefault(require("./flex/Flex"));
|
|
356
356
|
|
|
@@ -107,7 +107,7 @@ var DxcNavTabs = function DxcNavTabs(_ref) {
|
|
|
107
107
|
};
|
|
108
108
|
|
|
109
109
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
110
|
-
theme: colorsTheme.
|
|
110
|
+
theme: colorsTheme.navTabs
|
|
111
111
|
}, /*#__PURE__*/_react["default"].createElement(NavTabsContainer, {
|
|
112
112
|
onKeyDown: handleOnKeyDown,
|
|
113
113
|
role: "tablist",
|