@dxc-technology/halstack-react 0.0.0-5bbb9f7 → 0.0.0-5beed19
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 +1 -4
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +62 -63
- package/bleed/types.d.ts +1 -1
- package/box/Box.js +22 -32
- package/card/Card.js +34 -36
- package/common/variables.js +3 -18
- package/footer/Icons.js +1 -1
- package/inline/Inline.d.ts +4 -0
- package/inline/Inline.js +54 -0
- package/inline/Inline.stories.tsx +240 -0
- package/inline/types.d.ts +32 -0
- package/{radio → inline}/types.js +0 -0
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +33 -33
- package/inset/types.d.ts +1 -1
- package/layout/ApplicationLayout.d.ts +4 -3
- package/layout/ApplicationLayout.js +83 -102
- 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.js +15 -10
- package/list/List.js +1 -1
- package/list/List.stories.tsx +16 -22
- package/list/types.d.ts +1 -1
- package/main.d.ts +2 -2
- package/main.js +8 -8
- package/package.json +2 -1
- package/paginator/Paginator.test.js +42 -0
- package/quick-nav/QuickNav.js +4 -4
- package/resultsetTable/ResultsetTable.test.js +42 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +30 -7
- package/select/Select.js +46 -31
- package/select/Select.stories.tsx +130 -98
- package/select/Select.test.js +42 -0
- package/select/types.d.ts +3 -4
- package/sidenav/Sidenav.d.ts +1 -1
- package/sidenav/Sidenav.js +20 -9
- package/stack/Stack.d.ts +2 -1
- package/stack/Stack.js +23 -70
- package/stack/Stack.stories.tsx +120 -81
- package/stack/types.d.ts +11 -7
- package/tabs-nav/NavTabs.d.ts +2 -1
- package/tabs-nav/NavTabs.js +35 -16
- package/tabs-nav/Tab.js +26 -11
- package/tabs-nav/types.d.ts +6 -4
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -173
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
package/stack/Stack.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] =
|
|
8
|
+
exports["default"] = void 0;
|
|
9
9
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
|
|
@@ -15,83 +15,36 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
15
15
|
|
|
16
16
|
var _templateObject, _templateObject2;
|
|
17
17
|
|
|
18
|
-
function
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
align = _ref.align,
|
|
18
|
+
var DxcStack = function DxcStack(_ref) {
|
|
19
|
+
var _ref$alignX = _ref.alignX,
|
|
20
|
+
alignX = _ref$alignX === void 0 ? "stretch" : _ref$alignX,
|
|
22
21
|
_ref$as = _ref.as,
|
|
23
22
|
as = _ref$as === void 0 ? "div" : _ref$as,
|
|
23
|
+
_ref$divider = _ref.divider,
|
|
24
|
+
divider = _ref$divider === void 0 ? false : _ref$divider,
|
|
25
|
+
_ref$gutter = _ref.gutter,
|
|
26
|
+
gutter = _ref$gutter === void 0 ? "0rem" : _ref$gutter,
|
|
27
|
+
_ref$reverse = _ref.reverse,
|
|
28
|
+
reverse = _ref$reverse === void 0 ? false : _ref$reverse,
|
|
24
29
|
children = _ref.children;
|
|
25
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement(Stack, {
|
|
26
31
|
gutter: gutter,
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
alignX: alignX,
|
|
33
|
+
reverse: reverse,
|
|
29
34
|
as: as
|
|
30
35
|
}, _react["default"].Children.map(children, function (child, index) {
|
|
31
36
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, child, divider && index !== _react["default"].Children.count(children) - 1 && /*#__PURE__*/_react["default"].createElement(Divider, null));
|
|
32
37
|
}));
|
|
33
|
-
}
|
|
38
|
+
};
|
|
34
39
|
|
|
35
|
-
var Divider = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: 1px;\n background-color: #999999;\n"])));
|
|
40
|
+
var Divider = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: #999999;\n"])));
|
|
36
41
|
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
case "center":
|
|
45
|
-
return "center";
|
|
46
|
-
|
|
47
|
-
case "end":
|
|
48
|
-
return "flex-end";
|
|
49
|
-
|
|
50
|
-
case "baseline":
|
|
51
|
-
return "baseline";
|
|
52
|
-
|
|
53
|
-
case "stretch":
|
|
54
|
-
return "stretch";
|
|
55
|
-
|
|
56
|
-
default:
|
|
57
|
-
return "initial";
|
|
58
|
-
}
|
|
59
|
-
}, function (_ref3) {
|
|
60
|
-
var gutter = _ref3.gutter,
|
|
61
|
-
divider = _ref3.divider;
|
|
62
|
-
|
|
63
|
-
switch (gutter) {
|
|
64
|
-
case "none":
|
|
65
|
-
return "0";
|
|
66
|
-
|
|
67
|
-
case "xxxsmall":
|
|
68
|
-
return "calc(0.125rem / ".concat(divider ? 2 : 1, ")");
|
|
69
|
-
|
|
70
|
-
case "xxsmall":
|
|
71
|
-
return "calc(0.25rem / ".concat(divider ? 2 : 1, ")");
|
|
72
|
-
|
|
73
|
-
case "xsmall":
|
|
74
|
-
return "calc(0.5rem / ".concat(divider ? 2 : 1, ")");
|
|
75
|
-
|
|
76
|
-
case "small":
|
|
77
|
-
return "calc(1rem / ".concat(divider ? 2 : 1, ")");
|
|
78
|
-
|
|
79
|
-
case "medium":
|
|
80
|
-
return "calc(1.5rem / ".concat(divider ? 2 : 1, ")");
|
|
81
|
-
|
|
82
|
-
case "large":
|
|
83
|
-
return "calc(2rem / ".concat(divider ? 2 : 1, ")");
|
|
84
|
-
|
|
85
|
-
case "xlarge":
|
|
86
|
-
return "calc(3rem / ".concat(divider ? 2 : 1, ")");
|
|
87
|
-
|
|
88
|
-
case "xxlarge":
|
|
89
|
-
return "calc(4rem / ".concat(divider ? 2 : 1, ")");
|
|
90
|
-
|
|
91
|
-
case "xxxlarge":
|
|
92
|
-
return "calc(5rem / ".concat(divider ? 2 : 1, ")");
|
|
42
|
+
var Stack = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n ", "\n"])), function (_ref2) {
|
|
43
|
+
var alignX = _ref2.alignX,
|
|
44
|
+
gutter = _ref2.gutter,
|
|
45
|
+
reverse = _ref2.reverse;
|
|
46
|
+
return "\n flex-direction: ".concat(reverse ? "column-reverse" : "column", ";\n align-items: ").concat(alignX === "start" || alignX === "end" ? "flex-".concat(alignX) : alignX, ";\n gap: ").concat(gutter, ";\n ");
|
|
47
|
+
});
|
|
93
48
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
97
|
-
});
|
|
49
|
+
var _default = DxcStack;
|
|
50
|
+
exports["default"] = _default;
|
package/stack/Stack.stories.tsx
CHANGED
|
@@ -13,148 +13,187 @@ export const Chromatic = () => (
|
|
|
13
13
|
<Title title="Default" theme="light" level={4} />
|
|
14
14
|
<Container>
|
|
15
15
|
<DxcStack>
|
|
16
|
-
<Placeholder
|
|
17
|
-
<Placeholder
|
|
18
|
-
<Placeholder
|
|
16
|
+
<Placeholder />
|
|
17
|
+
<Placeholder />
|
|
18
|
+
<Placeholder />
|
|
19
|
+
<Placeholder />
|
|
20
|
+
<Placeholder />
|
|
19
21
|
</DxcStack>
|
|
20
22
|
</Container>
|
|
21
|
-
<Title title="
|
|
23
|
+
<Title title="Default with divider" theme="light" level={4} />
|
|
22
24
|
<Container>
|
|
23
|
-
<DxcStack
|
|
24
|
-
<Placeholder
|
|
25
|
-
<Placeholder
|
|
26
|
-
<Placeholder
|
|
25
|
+
<DxcStack divider>
|
|
26
|
+
<Placeholder />
|
|
27
|
+
<Placeholder />
|
|
28
|
+
<Placeholder />
|
|
27
29
|
</DxcStack>
|
|
28
30
|
</Container>
|
|
29
|
-
<Title title="
|
|
31
|
+
<Title title="Alignment with divider" theme="light" level={4} />
|
|
30
32
|
<Container>
|
|
31
|
-
<DxcStack
|
|
33
|
+
<DxcStack alignX="end" divider>
|
|
32
34
|
<Placeholder paddingLeft={20}></Placeholder>
|
|
33
|
-
<Placeholder
|
|
35
|
+
<Placeholder />
|
|
34
36
|
<Placeholder paddingLeft={60}></Placeholder>
|
|
35
37
|
</DxcStack>
|
|
36
38
|
</Container>
|
|
37
|
-
<Title title="
|
|
39
|
+
<Title title="Default with one child" theme="light" level={4} />
|
|
38
40
|
<Container>
|
|
39
|
-
<DxcStack
|
|
40
|
-
<Placeholder
|
|
41
|
-
<Placeholder></Placeholder>
|
|
42
|
-
<Placeholder paddingLeft={60}></Placeholder>
|
|
41
|
+
<DxcStack divider>
|
|
42
|
+
<Placeholder />
|
|
43
43
|
</DxcStack>
|
|
44
44
|
</Container>
|
|
45
|
-
<Title title="
|
|
45
|
+
<Title title="Wrap" theme="light" level={4} />
|
|
46
|
+
<FlexContainer customHeight>
|
|
47
|
+
<DxcStack>
|
|
48
|
+
<Placeholder />
|
|
49
|
+
<Placeholder />
|
|
50
|
+
<Placeholder />
|
|
51
|
+
<Placeholder />
|
|
52
|
+
<Placeholder />
|
|
53
|
+
</DxcStack>
|
|
54
|
+
</FlexContainer>
|
|
55
|
+
<Title title="AlignX = start" theme="light" level={4} />
|
|
46
56
|
<Container>
|
|
47
|
-
<DxcStack
|
|
57
|
+
<DxcStack alignX="start">
|
|
58
|
+
<Placeholder paddingLeft={20}></Placeholder>
|
|
59
|
+
<Placeholder />
|
|
60
|
+
<Placeholder paddingRight={60}></Placeholder>
|
|
48
61
|
<Placeholder paddingLeft={20}></Placeholder>
|
|
49
|
-
<Placeholder></Placeholder>
|
|
50
|
-
<Placeholder paddingLeft={60}></Placeholder>
|
|
51
62
|
</DxcStack>
|
|
52
63
|
</Container>
|
|
53
|
-
<Title title="
|
|
64
|
+
<Title title="AlignX = end" theme="light" level={4} />
|
|
54
65
|
<Container>
|
|
55
|
-
<DxcStack
|
|
66
|
+
<DxcStack alignX="end">
|
|
56
67
|
<Placeholder paddingLeft={20}></Placeholder>
|
|
57
|
-
<Placeholder
|
|
68
|
+
<Placeholder />
|
|
58
69
|
<Placeholder paddingLeft={60}></Placeholder>
|
|
59
70
|
</DxcStack>
|
|
60
71
|
</Container>
|
|
61
|
-
<Title title="
|
|
72
|
+
<Title title="AlignX = center" theme="light" level={4} />
|
|
62
73
|
<Container>
|
|
63
|
-
<DxcStack
|
|
64
|
-
<Placeholder></Placeholder>
|
|
65
|
-
<Placeholder
|
|
66
|
-
<Placeholder></Placeholder>
|
|
74
|
+
<DxcStack alignX="center">
|
|
75
|
+
<Placeholder paddingLeft={20}></Placeholder>
|
|
76
|
+
<Placeholder />
|
|
77
|
+
<Placeholder paddingLeft={60}></Placeholder>
|
|
78
|
+
<Placeholder paddingLeft={20}></Placeholder>
|
|
67
79
|
</DxcStack>
|
|
68
80
|
</Container>
|
|
69
|
-
<Title title="
|
|
81
|
+
<Title title="AlignX = baseline" theme="light" level={4} />
|
|
70
82
|
<Container>
|
|
71
|
-
<DxcStack
|
|
72
|
-
<Placeholder></Placeholder>
|
|
73
|
-
<Placeholder
|
|
74
|
-
<Placeholder></Placeholder>
|
|
83
|
+
<DxcStack alignX="baseline">
|
|
84
|
+
<Placeholder paddingLeft={20}></Placeholder>
|
|
85
|
+
<Placeholder />
|
|
86
|
+
<Placeholder paddingLeft={60}></Placeholder>
|
|
75
87
|
</DxcStack>
|
|
76
88
|
</Container>
|
|
77
|
-
<Title title="
|
|
89
|
+
<Title title="AlignX with wrapped items" theme="light" level={4} />
|
|
90
|
+
<FlexContainer customHeight>
|
|
91
|
+
<DxcStack alignX="center">
|
|
92
|
+
<Placeholder />
|
|
93
|
+
<Placeholder paddingRight={60} />
|
|
94
|
+
<Placeholder paddingLeft={20} />
|
|
95
|
+
<Placeholder />
|
|
96
|
+
<Placeholder paddingRight={20} />
|
|
97
|
+
<Placeholder paddingLeft={60} />
|
|
98
|
+
</DxcStack>
|
|
99
|
+
</FlexContainer>
|
|
100
|
+
<Title title="Gutter = 0rem" theme="light" level={4} />
|
|
78
101
|
<Container>
|
|
79
|
-
<DxcStack gutter="
|
|
80
|
-
<Placeholder
|
|
81
|
-
<Placeholder
|
|
82
|
-
<Placeholder
|
|
102
|
+
<DxcStack gutter="0rem">
|
|
103
|
+
<Placeholder />
|
|
104
|
+
<Placeholder />
|
|
105
|
+
<Placeholder />
|
|
106
|
+
<Placeholder />
|
|
107
|
+
<Placeholder />
|
|
83
108
|
</DxcStack>
|
|
84
109
|
</Container>
|
|
85
|
-
<Title title="
|
|
110
|
+
<Title title="Gutter = 0.125rem" theme="light" level={4} />
|
|
86
111
|
<Container>
|
|
87
|
-
<DxcStack gutter="
|
|
88
|
-
<Placeholder
|
|
89
|
-
<Placeholder
|
|
90
|
-
<Placeholder
|
|
112
|
+
<DxcStack gutter="0.125rem">
|
|
113
|
+
<Placeholder />
|
|
114
|
+
<Placeholder />
|
|
115
|
+
<Placeholder />
|
|
91
116
|
</DxcStack>
|
|
92
117
|
</Container>
|
|
93
|
-
<Title title="
|
|
118
|
+
<Title title="Gutter = 0.25rem" theme="light" level={4} />
|
|
94
119
|
<Container>
|
|
95
|
-
<DxcStack gutter="
|
|
96
|
-
<Placeholder
|
|
97
|
-
<Placeholder
|
|
98
|
-
<Placeholder
|
|
120
|
+
<DxcStack gutter="0.25rem">
|
|
121
|
+
<Placeholder />
|
|
122
|
+
<Placeholder />
|
|
123
|
+
<Placeholder />
|
|
124
|
+
<Placeholder />
|
|
125
|
+
<Placeholder />
|
|
99
126
|
</DxcStack>
|
|
100
127
|
</Container>
|
|
101
|
-
<Title title="
|
|
128
|
+
<Title title="Gutter = 0.5rem" theme="light" level={4} />
|
|
102
129
|
<Container>
|
|
103
|
-
<DxcStack gutter="
|
|
104
|
-
<Placeholder
|
|
105
|
-
<Placeholder
|
|
106
|
-
<Placeholder
|
|
130
|
+
<DxcStack gutter="0.5rem">
|
|
131
|
+
<Placeholder />
|
|
132
|
+
<Placeholder />
|
|
133
|
+
<Placeholder />
|
|
107
134
|
</DxcStack>
|
|
108
135
|
</Container>
|
|
109
|
-
<Title title="
|
|
136
|
+
<Title title="Gutter = 0.75rem" theme="light" level={4} />
|
|
110
137
|
<Container>
|
|
111
|
-
<DxcStack gutter="
|
|
112
|
-
<Placeholder
|
|
113
|
-
<Placeholder
|
|
114
|
-
<Placeholder
|
|
138
|
+
<DxcStack gutter="0.75rem">
|
|
139
|
+
<Placeholder />
|
|
140
|
+
<Placeholder />
|
|
141
|
+
<Placeholder />
|
|
142
|
+
<Placeholder />
|
|
143
|
+
<Placeholder />
|
|
115
144
|
</DxcStack>
|
|
116
145
|
</Container>
|
|
117
|
-
<Title title="
|
|
146
|
+
<Title title="Gutter = 1rem" theme="light" level={4} />
|
|
118
147
|
<Container>
|
|
119
|
-
<DxcStack gutter="
|
|
120
|
-
<Placeholder
|
|
121
|
-
<Placeholder
|
|
122
|
-
<Placeholder
|
|
148
|
+
<DxcStack gutter="1rem">
|
|
149
|
+
<Placeholder />
|
|
150
|
+
<Placeholder />
|
|
151
|
+
<Placeholder />
|
|
123
152
|
</DxcStack>
|
|
124
153
|
</Container>
|
|
125
|
-
<Title title="
|
|
154
|
+
<Title title="Gutter = 1.5rem" theme="light" level={4} />
|
|
126
155
|
<Container>
|
|
127
|
-
<DxcStack gutter="
|
|
128
|
-
<Placeholder
|
|
129
|
-
<Placeholder
|
|
130
|
-
<Placeholder
|
|
156
|
+
<DxcStack gutter="1.5rem">
|
|
157
|
+
<Placeholder />
|
|
158
|
+
<Placeholder />
|
|
159
|
+
<Placeholder />
|
|
160
|
+
<Placeholder />
|
|
161
|
+
<Placeholder />
|
|
131
162
|
</DxcStack>
|
|
132
163
|
</Container>
|
|
133
|
-
<Title title="
|
|
164
|
+
<Title title="Gutter = 2rem & divider" theme="light" level={4} />
|
|
134
165
|
<Container>
|
|
135
|
-
<DxcStack gutter="
|
|
136
|
-
<Placeholder
|
|
137
|
-
<Placeholder
|
|
138
|
-
<Placeholder
|
|
166
|
+
<DxcStack gutter="2rem" divider>
|
|
167
|
+
<Placeholder />
|
|
168
|
+
<Placeholder />
|
|
169
|
+
<Placeholder />
|
|
139
170
|
</DxcStack>
|
|
140
171
|
</Container>
|
|
141
|
-
<Title title="
|
|
172
|
+
<Title title="Reverse" theme="light" level={4} />
|
|
142
173
|
<Container>
|
|
143
|
-
<DxcStack
|
|
144
|
-
<Placeholder
|
|
145
|
-
<Placeholder
|
|
146
|
-
<Placeholder
|
|
174
|
+
<DxcStack reverse>
|
|
175
|
+
<Placeholder>1</Placeholder>
|
|
176
|
+
<Placeholder>2</Placeholder>
|
|
177
|
+
<Placeholder>3</Placeholder>
|
|
178
|
+
<Placeholder>4</Placeholder>
|
|
147
179
|
</DxcStack>
|
|
148
180
|
</Container>
|
|
149
181
|
</>
|
|
150
182
|
);
|
|
151
183
|
|
|
152
|
-
const
|
|
184
|
+
const FlexContainer = styled.div<{ customHeight?: boolean }>`
|
|
185
|
+
display: flex;
|
|
186
|
+
${({ customHeight }) => customHeight && `height: 100px;`};
|
|
153
187
|
background: #f2eafa;
|
|
154
|
-
padding: 10px;
|
|
155
188
|
`;
|
|
156
189
|
|
|
157
|
-
const
|
|
190
|
+
const Container = styled.div<{ customHeight?: boolean }>`
|
|
191
|
+
background: #f2eafa;
|
|
192
|
+
`;
|
|
193
|
+
|
|
194
|
+
type PlaceholderProps = { paddingLeft?: number; paddingRight?: number };
|
|
195
|
+
|
|
196
|
+
const Placeholder = styled.div<PlaceholderProps>`
|
|
158
197
|
min-height: 40px;
|
|
159
198
|
min-width: 120px;
|
|
160
199
|
border: 1px solid #a46ede;
|
package/stack/types.d.ts
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
declare type Props = {
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Alignment applied to children in the main axis.
|
|
5
|
+
*/
|
|
6
|
+
alignX?: "start" | "end" | "center" | "baseline" | "stretch";
|
|
7
|
+
/**
|
|
8
|
+
* Specifies the HTML tag or component that is rendered as the wrapper element.
|
|
5
9
|
*/
|
|
6
|
-
|
|
10
|
+
as?: React.ElementType;
|
|
7
11
|
/**
|
|
8
12
|
* If true, a divider is shown between children.
|
|
9
13
|
*/
|
|
10
14
|
divider?: boolean;
|
|
11
15
|
/**
|
|
12
|
-
*
|
|
16
|
+
* Space applied between each child.
|
|
13
17
|
*/
|
|
14
|
-
|
|
18
|
+
gutter?: "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "0.75rem" | "1rem" | "1.5rem" | "2rem";
|
|
15
19
|
/**
|
|
16
|
-
*
|
|
20
|
+
* Change the direction of the stack to reverse.
|
|
17
21
|
*/
|
|
18
|
-
|
|
22
|
+
reverse?: boolean;
|
|
19
23
|
/**
|
|
20
24
|
* Custom content inside the stack.
|
|
21
25
|
*/
|
|
22
|
-
children: React.ReactNode
|
|
26
|
+
children: React.ReactElement<React.ReactNode>[] | React.ReactElement<React.ReactNode>;
|
|
23
27
|
};
|
|
24
28
|
export default Props;
|
package/tabs-nav/NavTabs.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { NavTabsProps } from "./types";
|
|
2
|
+
import { NavTabsContextProps, NavTabsProps } from "./types";
|
|
3
|
+
export declare const NavTabsContext: React.Context<NavTabsContextProps>;
|
|
3
4
|
declare const DxcNavTabs: {
|
|
4
5
|
({ iconPosition, tabIndex, children }: NavTabsProps): JSX.Element;
|
|
5
6
|
Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLAnchorElement>>;
|
package/tabs-nav/NavTabs.js
CHANGED
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports["default"] = void 0;
|
|
10
|
+
exports["default"] = exports.NavTabsContext = void 0;
|
|
11
11
|
|
|
12
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
13
|
|
|
@@ -27,10 +27,25 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
27
27
|
|
|
28
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
29
|
|
|
30
|
+
var NavTabsContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
31
|
+
exports.NavTabsContext = NavTabsContext;
|
|
32
|
+
|
|
33
|
+
var getPropInChild = function getPropInChild(child, propName) {
|
|
34
|
+
return child.props ? child.props[propName] ? child.props[propName] : child.props.children ? getPropInChild(child.props.children, propName) : undefined : undefined;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var getLabelFromTab = function getLabelFromTab(child) {
|
|
38
|
+
if (typeof child === "string") {
|
|
39
|
+
return child.toString();
|
|
40
|
+
} else if (child.props.children) {
|
|
41
|
+
return Array.isArray(child.props.children) ? getLabelFromTab(child.props.children[0]) : getLabelFromTab(child.props.children);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
30
45
|
var getPreviousTabIndex = function getPreviousTabIndex(array, initialIndex) {
|
|
31
46
|
var index = initialIndex === 0 ? array.length - 1 : initialIndex - 1;
|
|
32
47
|
|
|
33
|
-
while (array[index]
|
|
48
|
+
while (getPropInChild(array[index], "disabled")) {
|
|
34
49
|
index = index === 0 ? array.length - 1 : index - 1;
|
|
35
50
|
}
|
|
36
51
|
|
|
@@ -40,7 +55,7 @@ var getPreviousTabIndex = function getPreviousTabIndex(array, initialIndex) {
|
|
|
40
55
|
var getNextTabIndex = function getNextTabIndex(array, initialIndex) {
|
|
41
56
|
var index = initialIndex === array.length - 1 ? 0 : initialIndex + 1;
|
|
42
57
|
|
|
43
|
-
while (array[index]
|
|
58
|
+
while (getPropInChild(array[index], "disabled")) {
|
|
44
59
|
index = index === array.length - 1 ? 0 : index + 1;
|
|
45
60
|
}
|
|
46
61
|
|
|
@@ -60,22 +75,33 @@ var DxcNavTabs = function DxcNavTabs(_ref) {
|
|
|
60
75
|
innerFocus = _useState2[0],
|
|
61
76
|
setInnerFocus = _useState2[1];
|
|
62
77
|
|
|
78
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
79
|
+
return {
|
|
80
|
+
iconPosition: iconPosition,
|
|
81
|
+
tabIndex: tabIndex,
|
|
82
|
+
hasIcons: _react["default"].Children.toArray(children).some(function (child) {
|
|
83
|
+
return getPropInChild(child, "icon");
|
|
84
|
+
}),
|
|
85
|
+
focusedLabel: innerFocus === null ? undefined : getLabelFromTab(children[innerFocus])
|
|
86
|
+
};
|
|
87
|
+
}, [iconPosition, tabIndex, innerFocus]);
|
|
88
|
+
|
|
63
89
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
64
90
|
var activeTab = _react["default"].Children.toArray(children).findIndex(function (child) {
|
|
65
|
-
return child
|
|
91
|
+
return getPropInChild(child, "active");
|
|
66
92
|
});
|
|
67
93
|
|
|
68
94
|
switch (event.keyCode) {
|
|
69
95
|
case 37:
|
|
70
96
|
// arrow left
|
|
71
97
|
event.preventDefault();
|
|
72
|
-
setInnerFocus(getPreviousTabIndex(
|
|
98
|
+
setInnerFocus(getPreviousTabIndex(children, innerFocus === null ? activeTab : innerFocus));
|
|
73
99
|
break;
|
|
74
100
|
|
|
75
101
|
case 39:
|
|
76
102
|
// arrow right
|
|
77
103
|
event.preventDefault();
|
|
78
|
-
setInnerFocus(getNextTabIndex(
|
|
104
|
+
setInnerFocus(getNextTabIndex(children, innerFocus === null ? activeTab : innerFocus));
|
|
79
105
|
break;
|
|
80
106
|
}
|
|
81
107
|
};
|
|
@@ -86,16 +112,9 @@ var DxcNavTabs = function DxcNavTabs(_ref) {
|
|
|
86
112
|
onKeyDown: handleOnKeyDown,
|
|
87
113
|
role: "tablist",
|
|
88
114
|
"aria-label": "Navigation tabs"
|
|
89
|
-
}, _react["default"].
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
tabIndex: tabIndex,
|
|
93
|
-
hasIcons: _react["default"].Children.toArray(children).some(function (child) {
|
|
94
|
-
return child.props.icon;
|
|
95
|
-
}),
|
|
96
|
-
focused: index === innerFocus
|
|
97
|
-
});
|
|
98
|
-
})));
|
|
115
|
+
}, /*#__PURE__*/_react["default"].createElement(NavTabsContext.Provider, {
|
|
116
|
+
value: contextValue
|
|
117
|
+
}, children)));
|
|
99
118
|
};
|
|
100
119
|
|
|
101
120
|
DxcNavTabs.Tab = _Tab["default"];
|
package/tabs-nav/Tab.js
CHANGED
|
@@ -11,14 +11,22 @@ exports["default"] = void 0;
|
|
|
11
11
|
|
|
12
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
13
|
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
14
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
19
|
|
|
16
20
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
17
21
|
|
|
18
22
|
var _Badge = _interopRequireDefault(require("../badge/Badge"));
|
|
19
23
|
|
|
24
|
+
var _NavTabs = require("./NavTabs");
|
|
25
|
+
|
|
20
26
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
21
27
|
|
|
28
|
+
var _excluded = ["href", "active", "icon", "disabled", "notificationNumber", "children"];
|
|
29
|
+
|
|
22
30
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
31
|
|
|
24
32
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -33,18 +41,20 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
|
|
|
33
41
|
_ref$notificationNumb = _ref.notificationNumber,
|
|
34
42
|
notificationNumber = _ref$notificationNumb === void 0 ? false : _ref$notificationNumb,
|
|
35
43
|
children = _ref.children,
|
|
36
|
-
|
|
37
|
-
tabIndex = _ref.tabIndex,
|
|
38
|
-
_ref$hasIcons = _ref.hasIcons,
|
|
39
|
-
hasIcons = _ref$hasIcons === void 0 ? false : _ref$hasIcons,
|
|
40
|
-
_ref$focused = _ref.focused,
|
|
41
|
-
focused = _ref$focused === void 0 ? false : _ref$focused;
|
|
44
|
+
otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
42
45
|
var tabRef = /*#__PURE__*/(0, _react.createRef)();
|
|
46
|
+
|
|
47
|
+
var _useContext = (0, _react.useContext)(_NavTabs.NavTabsContext),
|
|
48
|
+
iconPosition = _useContext.iconPosition,
|
|
49
|
+
tabIndex = _useContext.tabIndex,
|
|
50
|
+
hasIcons = _useContext.hasIcons,
|
|
51
|
+
focusedLabel = _useContext.focusedLabel;
|
|
52
|
+
|
|
43
53
|
(0, _react.useLayoutEffect)(function () {
|
|
44
54
|
var _tabRef$current;
|
|
45
55
|
|
|
46
|
-
|
|
47
|
-
}, [
|
|
56
|
+
focusedLabel === children.toString() && (tabRef === null || tabRef === void 0 ? void 0 : (_tabRef$current = tabRef.current) === null || _tabRef$current === void 0 ? void 0 : _tabRef$current.focus());
|
|
57
|
+
}, [focusedLabel]);
|
|
48
58
|
|
|
49
59
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
50
60
|
var _tabRef$current2;
|
|
@@ -64,18 +74,23 @@ var DxcTab = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, _ref2) {
|
|
|
64
74
|
active: active,
|
|
65
75
|
role: "tab",
|
|
66
76
|
"aria-selected": active
|
|
67
|
-
}, /*#__PURE__*/_react["default"].createElement(Tab, {
|
|
77
|
+
}, /*#__PURE__*/_react["default"].createElement(Tab, (0, _extends2["default"])({
|
|
68
78
|
href: !disabled && href ? href : undefined,
|
|
69
79
|
disabled: disabled,
|
|
70
80
|
iconPosition: iconPosition,
|
|
71
81
|
hasIcon: hasIcons,
|
|
72
82
|
ref: function ref(anchorRef) {
|
|
73
83
|
tabRef.current = anchorRef;
|
|
74
|
-
|
|
84
|
+
|
|
85
|
+
if (_ref2) {
|
|
86
|
+
if (typeof _ref2 === "function") _ref2(anchorRef);else {
|
|
87
|
+
_ref2.current = anchorRef;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
75
90
|
},
|
|
76
91
|
onKeyDown: handleOnKeyDown,
|
|
77
92
|
tabIndex: active ? tabIndex : -1
|
|
78
|
-
}, icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
|
|
93
|
+
}, otherProps), icon && /*#__PURE__*/_react["default"].createElement(TabIconContainer, {
|
|
79
94
|
iconPosition: iconPosition
|
|
80
95
|
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(TabIcon, {
|
|
81
96
|
src: icon
|
package/tabs-nav/types.d.ts
CHANGED
|
@@ -29,10 +29,6 @@ export declare type TabProps = {
|
|
|
29
29
|
* Content of the tab.
|
|
30
30
|
*/
|
|
31
31
|
children: string;
|
|
32
|
-
iconPosition?: "top" | "left";
|
|
33
|
-
tabIndex?: number;
|
|
34
|
-
hasIcons?: boolean;
|
|
35
|
-
focused?: boolean;
|
|
36
32
|
};
|
|
37
33
|
export declare type NavTabsProps = {
|
|
38
34
|
/**
|
|
@@ -48,4 +44,10 @@ export declare type NavTabsProps = {
|
|
|
48
44
|
*/
|
|
49
45
|
children: React.ReactNode;
|
|
50
46
|
};
|
|
47
|
+
export declare type NavTabsContextProps = {
|
|
48
|
+
iconPosition: "top" | "left";
|
|
49
|
+
tabIndex: number;
|
|
50
|
+
hasIcons: boolean;
|
|
51
|
+
focusedLabel: string;
|
|
52
|
+
};
|
|
51
53
|
export {};
|
package/radio/Radio.d.ts
DELETED