@dxc-technology/halstack-react 0.0.0-64fdce7 → 0.0.0-6501724
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +2 -2
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +1329 -5
- package/HalstackContext.js +113 -72
- package/accordion/Accordion.js +6 -11
- package/accordion/Accordion.stories.tsx +52 -3
- package/accordion/Accordion.test.js +1 -1
- package/accordion/types.d.ts +3 -3
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +23 -44
- package/accordion-group/AccordionGroup.test.js +1 -1
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +2 -2
- package/alert/Alert.js +4 -8
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/bleed/Bleed.stories.tsx +1 -0
- package/box/Box.js +3 -5
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/bulleted-list/BulletedList.js +4 -2
- package/bulleted-list/BulletedList.stories.tsx +7 -1
- package/bulleted-list/types.d.ts +31 -4
- package/button/Button.js +2 -3
- package/button/Button.stories.tsx +95 -10
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +3 -3
- package/card/Card.js +12 -13
- package/card/Card.stories.tsx +12 -13
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.js +3 -3
- package/checkbox/Checkbox.stories.tsx +52 -0
- package/checkbox/Checkbox.test.js +1 -1
- package/checkbox/types.d.ts +2 -2
- package/chip/Chip.js +25 -34
- package/chip/Chip.stories.tsx +80 -17
- package/chip/Chip.test.js +3 -5
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1482 -0
- package/common/variables.js +962 -1123
- package/date-input/DateInput.stories.tsx +67 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +55 -86
- package/dialog/Dialog.stories.tsx +145 -217
- package/dialog/Dialog.test.js +302 -3
- package/dialog/types.d.ts +0 -13
- package/dropdown/Dropdown.js +2 -2
- package/dropdown/Dropdown.stories.tsx +46 -1
- package/dropdown/Dropdown.test.js +3 -2
- package/dropdown/DropdownMenu.js +5 -1
- package/dropdown/DropdownMenuItem.js +0 -2
- package/dropdown/types.d.ts +3 -3
- package/file-input/FileInput.js +4 -8
- package/file-input/FileInput.stories.tsx +85 -2
- package/file-input/FileInput.test.js +1 -42
- package/file-input/FileItem.js +1 -0
- package/flex/Flex.js +4 -2
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +70 -5
- package/footer/Footer.js +6 -8
- package/footer/Footer.stories.tsx +91 -0
- package/footer/Footer.test.js +14 -26
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +3 -2
- package/header/Header.js +3 -3
- package/header/Header.stories.tsx +115 -5
- package/header/Header.test.js +2 -2
- package/header/types.d.ts +2 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.stories.tsx +2 -1
- package/layout/ApplicationLayout.d.ts +3 -3
- package/layout/ApplicationLayout.js +1 -1
- package/layout/types.d.ts +2 -3
- package/link/Link.js +3 -3
- package/link/Link.stories.tsx +60 -0
- package/link/Link.test.js +2 -4
- package/link/types.d.ts +2 -2
- package/main.d.ts +3 -2
- package/main.js +9 -1
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +8 -11
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +103 -1
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
- package/{tabs-nav → nav-tabs}/Tab.js +47 -29
- package/{tabs-nav → nav-tabs}/types.d.ts +8 -9
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.test.js +1 -1
- package/package.json +2 -2
- package/paginator/Paginator.js +2 -4
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +40 -37
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +5 -5
- package/password-input/PasswordInput.test.js +1 -1
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +5 -5
- package/progress-bar/ProgressBar.stories.jsx +35 -2
- package/progress-bar/ProgressBar.test.js +1 -1
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.stories.tsx +14 -0
- package/radio-group/Radio.js +10 -10
- package/radio-group/RadioGroup.js +8 -10
- package/radio-group/RadioGroup.stories.tsx +131 -18
- package/radio-group/RadioGroup.test.js +1 -1
- package/resultsetTable/ResultsetTable.js +2 -2
- package/resultsetTable/ResultsetTable.test.js +1 -1
- package/resultsetTable/types.d.ts +3 -3
- package/select/Select.js +13 -11
- package/select/Select.stories.tsx +477 -175
- package/select/Select.test.js +59 -59
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +66 -94
- package/sidenav/Sidenav.stories.tsx +110 -17
- package/sidenav/types.d.ts +21 -18
- package/slider/Slider.js +2 -3
- package/slider/Slider.stories.tsx +57 -0
- package/slider/Slider.test.js +1 -1
- package/slider/types.d.ts +2 -2
- package/spinner/Spinner.js +15 -21
- package/spinner/Spinner.stories.jsx +53 -27
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.js +2 -2
- package/switch/Switch.stories.tsx +33 -0
- package/switch/Switch.test.js +1 -1
- package/switch/types.d.ts +2 -2
- package/table/Table.js +2 -2
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +1 -1
- package/tabs/Tab.js +9 -10
- package/tabs/Tabs.js +11 -17
- package/tabs/Tabs.stories.tsx +38 -0
- package/tabs/Tabs.test.js +4 -5
- package/tabs/types.d.ts +2 -2
- package/tag/Tag.js +7 -9
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +1 -1
- package/text-input/Suggestion.js +2 -2
- package/text-input/TextInput.js +4 -4
- package/text-input/TextInput.stories.tsx +69 -1
- package/text-input/TextInput.test.js +1 -2
- package/textarea/Textarea.js +3 -4
- package/textarea/Textarea.stories.jsx +60 -1
- package/textarea/Textarea.test.js +2 -4
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +7 -4
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/toggle-group/types.d.ts +1 -1
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +14 -113
- package/typography/Typography.stories.tsx +1 -1
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +1 -1
- package/useTranslatedLabels.d.ts +84 -1
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.js +2 -2
- package/wizard/Wizard.stories.tsx +20 -0
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +5 -6
- /package/{tabs-nav → grid}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
package/grid/Grid.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
+
|
|
16
|
+
var _templateObject, _templateObject2;
|
|
17
|
+
|
|
18
|
+
var DxcGrid = function DxcGrid(props) {
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement(Grid, props);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var Grid = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: grid;\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n \n ", "\n ", "\n ", "\n ", "\n"])), function (_ref) {
|
|
23
|
+
var templateColumns = _ref.templateColumns;
|
|
24
|
+
return templateColumns && "grid-template-columns: ".concat(templateColumns.join(" "), ";");
|
|
25
|
+
}, function (_ref2) {
|
|
26
|
+
var templateRows = _ref2.templateRows;
|
|
27
|
+
return templateRows && "grid-template-rows: ".concat(templateRows.join(" "), ";");
|
|
28
|
+
}, function (_ref3) {
|
|
29
|
+
var templateAreas = _ref3.templateAreas;
|
|
30
|
+
return templateAreas && "grid-template-areas: ".concat(templateAreas.map(function (row) {
|
|
31
|
+
return "\"".concat(row, "\"");
|
|
32
|
+
}).join(" "), ";");
|
|
33
|
+
}, function (_ref4) {
|
|
34
|
+
var autoColumns = _ref4.autoColumns;
|
|
35
|
+
return autoColumns && "grid-auto-columns: ".concat(autoColumns, ";");
|
|
36
|
+
}, function (_ref5) {
|
|
37
|
+
var autoRows = _ref5.autoRows;
|
|
38
|
+
return autoRows && "grid-auto-rows: ".concat(autoRows, ";");
|
|
39
|
+
}, function (_ref6) {
|
|
40
|
+
var autoFlow = _ref6.autoFlow;
|
|
41
|
+
return autoFlow && "grid-auto-flow: ".concat(autoFlow, ";");
|
|
42
|
+
}, function (_ref7) {
|
|
43
|
+
var _gap$rowGap, _gap$columnGap;
|
|
44
|
+
|
|
45
|
+
var gap = _ref7.gap;
|
|
46
|
+
return gap != null && (typeof gap === "string" ? "gap: ".concat(gap, ";") : "row-gap: ".concat((_gap$rowGap = gap.rowGap) !== null && _gap$rowGap !== void 0 ? _gap$rowGap : "", "; column-gap: ").concat((_gap$columnGap = gap.columnGap) !== null && _gap$columnGap !== void 0 ? _gap$columnGap : "", ";"));
|
|
47
|
+
}, function (_ref8) {
|
|
48
|
+
var _placeItems$alignItem, _placeItems$justifyIt;
|
|
49
|
+
|
|
50
|
+
var placeItems = _ref8.placeItems;
|
|
51
|
+
return placeItems && (typeof placeItems === "string" ? "place-items: ".concat(placeItems) : "align-items: ".concat((_placeItems$alignItem = placeItems.alignItems) !== null && _placeItems$alignItem !== void 0 ? _placeItems$alignItem : "", "; justify-items: ").concat((_placeItems$justifyIt = placeItems.justifyItems) !== null && _placeItems$justifyIt !== void 0 ? _placeItems$justifyIt : "", ";"));
|
|
52
|
+
}, function (_ref9) {
|
|
53
|
+
var _placeContent$alignCo, _placeContent$justify;
|
|
54
|
+
|
|
55
|
+
var placeContent = _ref9.placeContent;
|
|
56
|
+
return placeContent && (typeof placeContent === "string" ? "place-content: ".concat(placeContent) : "align-content: ".concat((_placeContent$alignCo = placeContent.alignContent) !== null && _placeContent$alignCo !== void 0 ? _placeContent$alignCo : "", "; justify-content: ").concat((_placeContent$justify = placeContent.justifyContent) !== null && _placeContent$justify !== void 0 ? _placeContent$justify : "", ";"));
|
|
57
|
+
}, function (_ref10) {
|
|
58
|
+
var areaName = _ref10.areaName;
|
|
59
|
+
return areaName && "grid-area: ".concat(areaName, ";");
|
|
60
|
+
}, function (_ref11) {
|
|
61
|
+
var column = _ref11.column;
|
|
62
|
+
return column && "grid-column: ".concat(typeof column === "string" || typeof column === "number" ? column : "".concat(column.start, " / ").concat(column.end, ";"), ";");
|
|
63
|
+
}, function (_ref12) {
|
|
64
|
+
var row = _ref12.row;
|
|
65
|
+
return row && "grid-row: ".concat(typeof row === "string" || typeof row === "number" ? row : "".concat(row.start, " / ").concat(row.end, ";"), ";");
|
|
66
|
+
}, function (_ref13) {
|
|
67
|
+
var _placeSelf$alignSelf, _placeSelf$justifySel;
|
|
68
|
+
|
|
69
|
+
var placeSelf = _ref13.placeSelf;
|
|
70
|
+
return placeSelf && (typeof placeSelf === "string" ? "place-self: ".concat(placeSelf) : "align-self: ".concat((_placeSelf$alignSelf = placeSelf.alignSelf) !== null && _placeSelf$alignSelf !== void 0 ? _placeSelf$alignSelf : "", "; justify-self: ").concat((_placeSelf$justifySel = placeSelf.justifySelf) !== null && _placeSelf$justifySel !== void 0 ? _placeSelf$justifySel : "", ";"));
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
var GridItem = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n ", "\n ", "\n ", "\n"])), function (_ref14) {
|
|
74
|
+
var areaName = _ref14.areaName;
|
|
75
|
+
return areaName && "grid-area: ".concat(areaName, ";");
|
|
76
|
+
}, function (_ref15) {
|
|
77
|
+
var column = _ref15.column;
|
|
78
|
+
return column && "grid-column: ".concat(typeof column === "string" || typeof column === "number" ? column : "".concat(column.start, " / ").concat(column.end, ";"), ";");
|
|
79
|
+
}, function (_ref16) {
|
|
80
|
+
var row = _ref16.row;
|
|
81
|
+
return row && "grid-row: ".concat(typeof row === "string" || typeof row === "number" ? row : "".concat(row.start, " / ").concat(row.end, ";"), ";");
|
|
82
|
+
}, function (_ref17) {
|
|
83
|
+
var _placeSelf$alignSelf2, _placeSelf$justifySel2;
|
|
84
|
+
|
|
85
|
+
var placeSelf = _ref17.placeSelf;
|
|
86
|
+
return placeSelf && (typeof placeSelf === "string" ? "place-self: ".concat(placeSelf) : "align-self: ".concat((_placeSelf$alignSelf2 = placeSelf.alignSelf) !== null && _placeSelf$alignSelf2 !== void 0 ? _placeSelf$alignSelf2 : "", "; justify-self: ").concat((_placeSelf$justifySel2 = placeSelf.justifySelf) !== null && _placeSelf$justifySel2 !== void 0 ? _placeSelf$justifySel2 : "", ";"));
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
DxcGrid.GridItem = GridItem;
|
|
90
|
+
var _default = DxcGrid;
|
|
91
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Title from "../../.storybook/components/Title";
|
|
3
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
4
|
+
import styled from "styled-components";
|
|
5
|
+
import DxcGrid from "./Grid";
|
|
6
|
+
import DxcInset from "../inset/Inset";
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: "Grid",
|
|
10
|
+
component: DxcGrid,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const Chromatic = () => (
|
|
14
|
+
<>
|
|
15
|
+
<Title title="Default" level={4} />
|
|
16
|
+
<ExampleContainer>
|
|
17
|
+
<DxcGrid>
|
|
18
|
+
<ColoredContainer />
|
|
19
|
+
<ColoredContainer />
|
|
20
|
+
<ColoredContainer />
|
|
21
|
+
</DxcGrid>
|
|
22
|
+
</ExampleContainer>
|
|
23
|
+
<Title title="Place items" level={4} />
|
|
24
|
+
<ExampleContainer>
|
|
25
|
+
<DxcGrid templateRows={["200px"]} placeItems="center">
|
|
26
|
+
<ColoredContainer height="50px" width="50px" />
|
|
27
|
+
</DxcGrid>
|
|
28
|
+
<DxcGrid placeItems={{ justifyItems: "end" }}>
|
|
29
|
+
<ColoredContainer />
|
|
30
|
+
<ColoredContainer />
|
|
31
|
+
<ColoredContainer />
|
|
32
|
+
</DxcGrid>
|
|
33
|
+
<DxcGrid templateRows={["repeat(3, 100px)"]} placeItems={{ alignItems: "end", justifyItems: "center" }}>
|
|
34
|
+
<ColoredContainer height="50px" width="50px" />
|
|
35
|
+
<ColoredContainer height="50px" width="50px" />
|
|
36
|
+
<ColoredContainer height="50px" width="50px" />
|
|
37
|
+
</DxcGrid>
|
|
38
|
+
</ExampleContainer>
|
|
39
|
+
<Title title="Place content" level={4} />
|
|
40
|
+
<Container height="200px">
|
|
41
|
+
<DxcGrid placeContent="center">
|
|
42
|
+
<ColoredContainer height="50px" width="50px" />
|
|
43
|
+
<ColoredContainer height="50px" width="50px" />
|
|
44
|
+
</DxcGrid>
|
|
45
|
+
</Container>
|
|
46
|
+
<Container height="200px">
|
|
47
|
+
<DxcGrid placeContent={{ alignContent: "center" }}>
|
|
48
|
+
<ColoredContainer height="50px" width="50px" />
|
|
49
|
+
</DxcGrid>
|
|
50
|
+
</Container>
|
|
51
|
+
<Container height="200px">
|
|
52
|
+
<DxcGrid placeContent={{ alignContent: "center", justifyContent: "end" }}>
|
|
53
|
+
<ColoredContainer height="50px" width="50px" />
|
|
54
|
+
</DxcGrid>
|
|
55
|
+
</Container>
|
|
56
|
+
<Title title="Place self" level={4} />
|
|
57
|
+
<ExampleContainer>
|
|
58
|
+
<DxcGrid templateRows={["repeat(3, 100px)"]}>
|
|
59
|
+
<DxcGrid.GridItem placeSelf="center">
|
|
60
|
+
<ColoredContainer height="50px" width="50px" />
|
|
61
|
+
</DxcGrid.GridItem>
|
|
62
|
+
<DxcGrid.GridItem placeSelf={{ alignSelf: "end" }}>
|
|
63
|
+
<ColoredContainer height="40px" width="40px" />
|
|
64
|
+
<ColoredContainer height="30px" width="30px" />
|
|
65
|
+
</DxcGrid.GridItem>
|
|
66
|
+
<DxcGrid.GridItem placeSelf={{ alignSelf: "center", justifySelf: "end" }}>
|
|
67
|
+
<ColoredContainer height="50px" width="50px" />
|
|
68
|
+
</DxcGrid.GridItem>
|
|
69
|
+
</DxcGrid>
|
|
70
|
+
</ExampleContainer>
|
|
71
|
+
<Title title="Halstack layout using template areas" level={4} />
|
|
72
|
+
<ExampleContainer>
|
|
73
|
+
<DxcGrid
|
|
74
|
+
templateColumns={["repeat(4, 1fr)"]}
|
|
75
|
+
templateRows={["40px", "200px", "60px"]}
|
|
76
|
+
templateAreas={["header header header header", "sidenav main main main", "sidenav footer footer footer"]}
|
|
77
|
+
gap={{ rowGap: "0.5rem", columnGap: "1rem" }}
|
|
78
|
+
>
|
|
79
|
+
<DxcGrid.GridItem areaName="header" as="header">
|
|
80
|
+
<ColoredContainer height="100%" />
|
|
81
|
+
</DxcGrid.GridItem>
|
|
82
|
+
<DxcGrid.GridItem areaName="main" as="main">
|
|
83
|
+
<ColoredContainer height="100%" />
|
|
84
|
+
</DxcGrid.GridItem>
|
|
85
|
+
<DxcGrid.GridItem areaName="sidenav" as="nav">
|
|
86
|
+
<ColoredContainer height="100%" />
|
|
87
|
+
</DxcGrid.GridItem>
|
|
88
|
+
<DxcGrid.GridItem areaName="footer" as="footer">
|
|
89
|
+
<ColoredContainer height="100%" />
|
|
90
|
+
</DxcGrid.GridItem>
|
|
91
|
+
</DxcGrid>
|
|
92
|
+
</ExampleContainer>
|
|
93
|
+
<Title title="Template rows and columns with flexible sizes" level={4} />
|
|
94
|
+
<ExampleContainer>
|
|
95
|
+
<DxcGrid templateColumns={["1fr", "1fr", "1fr"]} templateRows={["1fr", "3fr", "1fr"]} gap="0.5rem">
|
|
96
|
+
<DxcGrid.GridItem column={{ start: 1, end: -1 }}>
|
|
97
|
+
<ColoredContainer color="yellow" height="100%">
|
|
98
|
+
Header
|
|
99
|
+
</ColoredContainer>
|
|
100
|
+
</DxcGrid.GridItem>
|
|
101
|
+
<DxcGrid.GridItem column={1}>
|
|
102
|
+
<ColoredContainer color="lightcyan" height="100%">
|
|
103
|
+
Sidenav
|
|
104
|
+
</ColoredContainer>
|
|
105
|
+
</DxcGrid.GridItem>
|
|
106
|
+
<DxcGrid
|
|
107
|
+
column={{ start: 2, end: -1 }}
|
|
108
|
+
templateRows={["repeat(4, 1fr)"]}
|
|
109
|
+
templateColumns={["repeat(2, 1fr)"]}
|
|
110
|
+
gap="1rem"
|
|
111
|
+
>
|
|
112
|
+
<ColoredContainer />
|
|
113
|
+
<ColoredContainer />
|
|
114
|
+
<ColoredContainer />
|
|
115
|
+
<ColoredContainer />
|
|
116
|
+
<ColoredContainer />
|
|
117
|
+
<ColoredContainer />
|
|
118
|
+
<ColoredContainer />
|
|
119
|
+
<ColoredContainer />
|
|
120
|
+
</DxcGrid>
|
|
121
|
+
<DxcGrid.GridItem column={{ start: 1, end: -1 }}>
|
|
122
|
+
<ColoredContainer color="black" height="100%">
|
|
123
|
+
Footer
|
|
124
|
+
</ColoredContainer>
|
|
125
|
+
</DxcGrid.GridItem>
|
|
126
|
+
</DxcGrid>
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
<Title title="Overlapping" level={4} />
|
|
129
|
+
<DxcInset bottom="2rem">
|
|
130
|
+
<ExampleContainer>
|
|
131
|
+
<DxcGrid templateRows={["50px", "50px"]}>
|
|
132
|
+
<ColoredContainer color="yellow" height="100px">
|
|
133
|
+
1
|
|
134
|
+
</ColoredContainer>
|
|
135
|
+
<ColoredContainer color="transparent" height="100px">
|
|
136
|
+
2
|
|
137
|
+
</ColoredContainer>
|
|
138
|
+
</DxcGrid>
|
|
139
|
+
</ExampleContainer>
|
|
140
|
+
</DxcInset>
|
|
141
|
+
<Title title="Implicit rows and columns" level={4} />
|
|
142
|
+
<ExampleContainer>
|
|
143
|
+
<DxcGrid templateColumns={["50px"]} templateRows={["50px", "50px"]} autoRows="50px" autoColumns="50px">
|
|
144
|
+
<DxcGrid.GridItem>
|
|
145
|
+
<ColoredContainer height="50px">1</ColoredContainer>
|
|
146
|
+
</DxcGrid.GridItem>
|
|
147
|
+
<DxcGrid.GridItem row={2}>
|
|
148
|
+
<ColoredContainer height="50px">3</ColoredContainer>
|
|
149
|
+
</DxcGrid.GridItem>
|
|
150
|
+
<DxcGrid.GridItem row={6} column={1}>
|
|
151
|
+
<ColoredContainer height="50px">5</ColoredContainer>
|
|
152
|
+
</DxcGrid.GridItem>
|
|
153
|
+
<DxcGrid.GridItem row={3}>
|
|
154
|
+
<ColoredContainer height="50px">4</ColoredContainer>
|
|
155
|
+
</DxcGrid.GridItem>
|
|
156
|
+
<DxcGrid.GridItem row={{ start: 1, end: 2 }} column={{ start: 5, end: "span 2" }}>
|
|
157
|
+
<ColoredContainer height="50px">2</ColoredContainer>
|
|
158
|
+
</DxcGrid.GridItem>
|
|
159
|
+
</DxcGrid>
|
|
160
|
+
</ExampleContainer>
|
|
161
|
+
<Title title="Autoflow 'row' (default)" level={4} />
|
|
162
|
+
<ExampleContainer>
|
|
163
|
+
<DxcGrid templateColumns={["repeat(5, 1fr)"]} templateRows={["1fr", "1fr"]} autoFlow="row" autoColumns="1fr">
|
|
164
|
+
<DxcGrid.GridItem row={{ start: 1, end: "span 2" }} column={1}>
|
|
165
|
+
<ColoredContainer height="100%">1</ColoredContainer>
|
|
166
|
+
</DxcGrid.GridItem>
|
|
167
|
+
<ColoredContainer color="lightyellow">2</ColoredContainer>
|
|
168
|
+
<ColoredContainer color="lightcyan">3</ColoredContainer>
|
|
169
|
+
<ColoredContainer color="lightgreen">4</ColoredContainer>
|
|
170
|
+
<DxcGrid.GridItem row={{ start: 1, end: -1 }} column={-2}>
|
|
171
|
+
<ColoredContainer color="lightpink" height="100%">
|
|
172
|
+
5
|
|
173
|
+
</ColoredContainer>
|
|
174
|
+
</DxcGrid.GridItem>
|
|
175
|
+
</DxcGrid>
|
|
176
|
+
</ExampleContainer>
|
|
177
|
+
<Title title="Autoflow 'column'" level={4} />
|
|
178
|
+
<ExampleContainer>
|
|
179
|
+
<DxcGrid templateColumns={["repeat(5, 1fr)"]} templateRows={["1fr", "1fr"]} autoFlow="column" autoColumns="1fr">
|
|
180
|
+
<DxcGrid.GridItem row={{ start: 1, end: -1 }} column={1}>
|
|
181
|
+
<ColoredContainer height="100%">1</ColoredContainer>
|
|
182
|
+
</DxcGrid.GridItem>
|
|
183
|
+
<ColoredContainer color="lightyellow">2</ColoredContainer>
|
|
184
|
+
<ColoredContainer color="lightcyan">3</ColoredContainer>
|
|
185
|
+
<ColoredContainer color="lightgreen">4</ColoredContainer>
|
|
186
|
+
<DxcGrid.GridItem row={{ start: 1, end: -1 }} column={-2}>
|
|
187
|
+
<ColoredContainer color="lightpink" height="100%">
|
|
188
|
+
5
|
|
189
|
+
</ColoredContainer>
|
|
190
|
+
</DxcGrid.GridItem>
|
|
191
|
+
</DxcGrid>
|
|
192
|
+
</ExampleContainer>
|
|
193
|
+
</>
|
|
194
|
+
);
|
|
195
|
+
|
|
196
|
+
const Container = styled.div<{ height?: string }>`
|
|
197
|
+
display: grid;
|
|
198
|
+
overflow: auto;
|
|
199
|
+
margin: 2.5rem;
|
|
200
|
+
${({ height }) => height && `height: ${height}`};
|
|
201
|
+
`;
|
|
202
|
+
|
|
203
|
+
const ColoredContainer = styled.div<{ color?: string; width?: string; height?: string }>`
|
|
204
|
+
box-sizing: border-box;
|
|
205
|
+
display: flex;
|
|
206
|
+
justify-content: center;
|
|
207
|
+
align-items: center;
|
|
208
|
+
background-color: ${({ color }) => color ?? "#e5d5f6"};
|
|
209
|
+
padding: 1rem;
|
|
210
|
+
border: 1px solid #a46ede;
|
|
211
|
+
border-radius: 0.5rem;
|
|
212
|
+
font-family: Open Sans, sans-serif;
|
|
213
|
+
font-size: 1.5rem;
|
|
214
|
+
font-weight: bold;
|
|
215
|
+
color: #a46ede;
|
|
216
|
+
|
|
217
|
+
${({ width }) => width && `width: ${width}`};
|
|
218
|
+
${({ height }) => height && `height: ${height}`};
|
|
219
|
+
`;
|
package/grid/types.d.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Spaces = "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
|
|
3
|
+
declare type Gap = {
|
|
4
|
+
rowGap: Spaces;
|
|
5
|
+
columnGap?: Spaces;
|
|
6
|
+
} | {
|
|
7
|
+
rowGap?: Spaces;
|
|
8
|
+
columnGap: Spaces;
|
|
9
|
+
} | Spaces;
|
|
10
|
+
declare type GridCell = {
|
|
11
|
+
start: number | string;
|
|
12
|
+
end: number | string;
|
|
13
|
+
};
|
|
14
|
+
declare type PlaceSelfValues = "auto" | "start" | "end" | "center" | "stretch" | "baseline";
|
|
15
|
+
declare type PlaceContentValues = "normal" | "start" | "end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | "baseline";
|
|
16
|
+
declare type PlaceItemsValues = "normal" | "start" | "end" | "center" | "stretch" | "baseline";
|
|
17
|
+
declare type PlaceObject<Type, Suffix extends string> = {
|
|
18
|
+
[Property in keyof Type as `${string & Property}${Capitalize<string & Suffix>}`]: Type[Property];
|
|
19
|
+
};
|
|
20
|
+
declare type PlaceGeneric<PlaceValues, Element extends string> = PlaceObject<{
|
|
21
|
+
justify?: PlaceValues;
|
|
22
|
+
align: PlaceValues;
|
|
23
|
+
}, Element> | PlaceObject<{
|
|
24
|
+
justify: PlaceValues;
|
|
25
|
+
align?: PlaceValues;
|
|
26
|
+
}, Element> | PlaceValues;
|
|
27
|
+
export declare type GridItemProps = {
|
|
28
|
+
/**
|
|
29
|
+
* Sets the name of an item so that it can be referenced by a template created with the grid-template-areas property.
|
|
30
|
+
*/
|
|
31
|
+
areaName?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the grid-column CSS property.
|
|
34
|
+
*
|
|
35
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column
|
|
36
|
+
*/
|
|
37
|
+
column?: number | string | GridCell;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the grid-row CSS property.
|
|
40
|
+
*
|
|
41
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-row
|
|
42
|
+
*/
|
|
43
|
+
row?: number | string | GridCell;
|
|
44
|
+
/**
|
|
45
|
+
* Sets the place-self CSS property.
|
|
46
|
+
*
|
|
47
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/place-self
|
|
48
|
+
*/
|
|
49
|
+
placeSelf?: PlaceGeneric<PlaceSelfValues, "self">;
|
|
50
|
+
/**
|
|
51
|
+
* Sets a custom HTML tag.
|
|
52
|
+
*/
|
|
53
|
+
as?: keyof HTMLElementTagNameMap;
|
|
54
|
+
/**
|
|
55
|
+
* Custom content inside the grid container.
|
|
56
|
+
*/
|
|
57
|
+
children: React.ReactNode;
|
|
58
|
+
};
|
|
59
|
+
declare type Props = GridItemProps & {
|
|
60
|
+
/**
|
|
61
|
+
* Sets the grid-auto-columns CSS property.
|
|
62
|
+
*
|
|
63
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-columns
|
|
64
|
+
*/
|
|
65
|
+
autoColumns?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Sets the grid-auto-flow CSS property.
|
|
68
|
+
*
|
|
69
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow
|
|
70
|
+
*/
|
|
71
|
+
autoFlow?: "row" | "column" | "row dense" | "column dense";
|
|
72
|
+
/**
|
|
73
|
+
* Sets the grid-auto-rows CSS property.
|
|
74
|
+
*
|
|
75
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-rows
|
|
76
|
+
*/
|
|
77
|
+
autoRows?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Sets the gap CSS property.
|
|
80
|
+
*
|
|
81
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/gap
|
|
82
|
+
*/
|
|
83
|
+
gap?: Spaces | Gap;
|
|
84
|
+
/**
|
|
85
|
+
* Sets the place-content CSS property.
|
|
86
|
+
*
|
|
87
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/place-content
|
|
88
|
+
*/
|
|
89
|
+
placeContent?: PlaceGeneric<PlaceContentValues, "content">;
|
|
90
|
+
/**
|
|
91
|
+
* Sets the place-items CSS property.
|
|
92
|
+
*
|
|
93
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/place-items
|
|
94
|
+
*/
|
|
95
|
+
placeItems?: PlaceGeneric<PlaceItemsValues, "items">;
|
|
96
|
+
/**
|
|
97
|
+
* Sets the grid-template-areas CSS property.
|
|
98
|
+
*
|
|
99
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-areas
|
|
100
|
+
*/
|
|
101
|
+
templateAreas?: string[];
|
|
102
|
+
/**
|
|
103
|
+
* Sets the grid-template-columns CSS property.
|
|
104
|
+
*
|
|
105
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
|
|
106
|
+
*/
|
|
107
|
+
templateColumns?: string[];
|
|
108
|
+
/**
|
|
109
|
+
* Sets the grid-template-rows CSS property.
|
|
110
|
+
*
|
|
111
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows
|
|
112
|
+
*/
|
|
113
|
+
templateRows?: string[];
|
|
114
|
+
};
|
|
115
|
+
export default Props;
|
package/header/Header.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcDropdown from "../dropdown/Dropdown";
|
|
2
3
|
import HeaderPropsType from "./types";
|
|
3
4
|
declare const DxcHeader: {
|
|
4
5
|
({ underlined, content, responsiveContent, onClick, margin, padding, tabIndex, }: HeaderPropsType): JSX.Element;
|
|
5
|
-
Dropdown: (props:
|
|
6
|
+
Dropdown: (props: React.ComponentProps<typeof DxcDropdown>) => JSX.Element;
|
|
6
7
|
};
|
|
7
8
|
export default DxcHeader;
|
package/header/Header.js
CHANGED
|
@@ -23,7 +23,7 @@ var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
|
|
|
23
23
|
|
|
24
24
|
var _Icons = require("./Icons");
|
|
25
25
|
|
|
26
|
-
var _variables = require("../common/variables
|
|
26
|
+
var _variables = require("../common/variables");
|
|
27
27
|
|
|
28
28
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
29
29
|
|
|
@@ -257,7 +257,7 @@ var HamburguerTrigger = _styledComponents["default"].button(_templateObject8 ||
|
|
|
257
257
|
|
|
258
258
|
var MainContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-grow: 1;\n"])));
|
|
259
259
|
|
|
260
|
-
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
|
|
260
|
+
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 width: ", ";\n }\n\n @media (not((max-width: ", "rem) and (min-width: ", "rem))) {\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) {
|
|
261
261
|
return props.theme.menuBackgroundColor;
|
|
262
262
|
}, function (props) {
|
|
263
263
|
return props.theme.menuZindex;
|
|
@@ -287,7 +287,7 @@ var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templa
|
|
|
287
287
|
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
288
288
|
});
|
|
289
289
|
|
|
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
|
|
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 display: none;\n }\n\n transition: opacity 0.2s 0.2s ease-in-out;\n z-index: ", ";\n"])), function (props) {
|
|
291
291
|
return props.theme.overlayColor;
|
|
292
292
|
}, function (props) {
|
|
293
293
|
return props.theme.overlayOpacity;
|
|
@@ -1,10 +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";
|
|
6
7
|
import DxcFlex from "../flex/Flex";
|
|
7
8
|
import DxcLink from "../link/Link";
|
|
9
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
8
10
|
|
|
9
11
|
export default {
|
|
10
12
|
title: "Header",
|
|
@@ -33,6 +35,58 @@ const options2: any = [
|
|
|
33
35
|
},
|
|
34
36
|
];
|
|
35
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
|
+
|
|
36
90
|
export const Chromatic = () => (
|
|
37
91
|
<>
|
|
38
92
|
<ExampleContainer>
|
|
@@ -95,7 +149,6 @@ export const Chromatic = () => (
|
|
|
95
149
|
<DxcHeader underlined margin="xxlarge" />
|
|
96
150
|
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
97
151
|
</ExampleContainer>
|
|
98
|
-
|
|
99
152
|
<Title title="Paddings" theme="light" level={2} />
|
|
100
153
|
<ExampleContainer>
|
|
101
154
|
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
@@ -125,6 +178,21 @@ export const Chromatic = () => (
|
|
|
125
178
|
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
126
179
|
<DxcHeader underlined padding="xxlarge" />
|
|
127
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>
|
|
128
196
|
</>
|
|
129
197
|
);
|
|
130
198
|
|
|
@@ -153,13 +221,29 @@ const RespHeaderHover = () => (
|
|
|
153
221
|
</ExampleContainer>
|
|
154
222
|
);
|
|
155
223
|
|
|
156
|
-
const
|
|
224
|
+
const RespHeaderMenuMobile = () => (
|
|
157
225
|
<ExampleContainer>
|
|
158
226
|
<Title title="Responsive menu" theme="light" level={4} />
|
|
159
227
|
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
160
228
|
</ExampleContainer>
|
|
161
229
|
);
|
|
162
230
|
|
|
231
|
+
const RespHeaderMenuTablet = () => (
|
|
232
|
+
<ExampleContainer>
|
|
233
|
+
<Title title="Responsive menu" theme="light" level={4} />
|
|
234
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
235
|
+
</ExampleContainer>
|
|
236
|
+
);
|
|
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
|
+
|
|
163
247
|
ResponsiveHeader.parameters = {
|
|
164
248
|
viewport: {
|
|
165
249
|
defaultViewport: "iphonex",
|
|
@@ -191,14 +275,40 @@ ResponsiveHeaderHover.play = async ({ canvasElement }) => {
|
|
|
191
275
|
await waitFor(() => canvas.findByText("Menu"));
|
|
192
276
|
};
|
|
193
277
|
|
|
194
|
-
export const
|
|
195
|
-
|
|
278
|
+
export const ResponsiveHeaderMenuMobile = RespHeaderMenuMobile.bind({});
|
|
279
|
+
ResponsiveHeaderMenuMobile.parameters = {
|
|
196
280
|
viewport: {
|
|
197
281
|
defaultViewport: "iphonex",
|
|
198
282
|
},
|
|
199
283
|
chromatic: { viewports: [375] },
|
|
200
284
|
};
|
|
201
|
-
|
|
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 }) => {
|
|
202
312
|
const canvas = within(canvasElement);
|
|
203
313
|
await waitFor(() => canvas.findByText("Menu"));
|
|
204
314
|
await userEvent.click(canvas.getByText("Menu"));
|
package/header/Header.test.js
CHANGED
|
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
6
6
|
|
|
7
7
|
var _react2 = require("@testing-library/react");
|
|
8
8
|
|
|
9
|
-
var _Header = _interopRequireDefault(require("./Header"));
|
|
9
|
+
var _Header = _interopRequireDefault(require("./Header.tsx"));
|
|
10
10
|
|
|
11
11
|
describe("Header component tests", function () {
|
|
12
12
|
beforeAll(function () {
|
|
@@ -68,7 +68,7 @@ describe("Header component tests", function () {
|
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
71
|
-
responsiveContent: function responsiveContent(
|
|
71
|
+
responsiveContent: function responsiveContent() {
|
|
72
72
|
return /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text");
|
|
73
73
|
}
|
|
74
74
|
})),
|