carbon-react 101.1.0 → 101.3.2
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/lib/__internal__/checkable-input/checkable-input.component.js +26 -8
- package/lib/__internal__/checkable-input/checkable-input.d.ts +2 -0
- package/lib/__internal__/checkable-input/hidden-checkable-input.component.js +1 -20
- package/lib/__internal__/checkable-input/hidden-checkable-input.d.ts +0 -8
- package/lib/__internal__/form-field/form-field.component.js +3 -3
- package/lib/__internal__/form-field/form-field.d.ts +2 -2
- package/lib/__internal__/input-icon-toggle/input-icon-toggle.component.js +7 -3
- package/lib/__internal__/input-icon-toggle/input-icon-toggle.d.ts +1 -0
- package/lib/__internal__/label/label.component.js +5 -5
- package/lib/__internal__/label/label.d.ts +2 -2
- package/lib/__internal__/tooltip-provider/index.d.ts +3 -0
- package/lib/__internal__/tooltip-provider/index.js +12 -3
- package/lib/__internal__/validations/validation-icon.component.js +5 -0
- package/lib/__internal__/validations/validation-icon.d.ts +2 -0
- package/lib/components/flat-table/flat-table.component.js +11 -5
- package/lib/components/flat-table/flat-table.style.js +12 -0
- package/lib/components/help/help.component.js +6 -1
- package/lib/components/help/help.d.ts +2 -0
- package/lib/components/icon/icon.component.js +16 -7
- package/lib/components/icon/icon.d.ts +2 -0
- package/lib/components/icon-button/icon-button.component.js +35 -4
- package/lib/components/icon-button/icon-button.d.ts +2 -0
- package/lib/components/tabs/__internal__/tab-title/index.d.ts +1 -0
- package/lib/components/tabs/__internal__/tab-title/tab-title.component.js +24 -13
- package/lib/components/tabs/__internal__/tab-title/tab-title.d.ts +39 -0
- package/lib/components/tabs/__internal__/tab-title/tab-title.style.js +80 -94
- package/lib/components/tabs/__internal__/tabs-header/index.d.ts +1 -0
- package/lib/components/tabs/__internal__/tabs-header/tab-header.d.ts +16 -0
- package/lib/components/tabs/__internal__/tabs-header/tabs-header.style.js +1 -1
- package/lib/components/tabs/tabs.component.js +1 -0
- package/lib/components/textarea/textarea.component.js +23 -1
- package/lib/components/textbox/textbox.component.js +24 -2
- package/lib/hooks/__internal__/useInputAccessibility/index.d.ts +24 -0
- package/lib/hooks/__internal__/useInputAccessibility/index.js +15 -0
- package/lib/hooks/__internal__/useInputAccessibility/useInputAccessibility.js +29 -0
- package/package.json +1 -1
|
@@ -52,6 +52,7 @@ const TabTitle = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
52
52
|
isInSidebar,
|
|
53
53
|
href,
|
|
54
54
|
onKeyDown,
|
|
55
|
+
align,
|
|
55
56
|
...tabTitleProps
|
|
56
57
|
}, ref) => {
|
|
57
58
|
const keys = (0, _react.useRef)([]);
|
|
@@ -74,6 +75,8 @@ const TabTitle = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
74
75
|
};
|
|
75
76
|
|
|
76
77
|
const handleClick = ev => {
|
|
78
|
+
var _ref$current;
|
|
79
|
+
|
|
77
80
|
ev.preventDefault();
|
|
78
81
|
const customEvent = { ...ev,
|
|
79
82
|
target: { ...ev.target,
|
|
@@ -86,8 +89,10 @@ const TabTitle = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
86
89
|
if (href) {
|
|
87
90
|
onClick(customEvent);
|
|
88
91
|
return window.open(href, "_blank");
|
|
89
|
-
}
|
|
92
|
+
} // safari does not focus buttons by default
|
|
90
93
|
|
|
94
|
+
|
|
95
|
+
(_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
|
|
91
96
|
return onClick(customEvent);
|
|
92
97
|
};
|
|
93
98
|
|
|
@@ -131,18 +136,17 @@ const TabTitle = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
131
136
|
error: error,
|
|
132
137
|
warning: warning,
|
|
133
138
|
info: info,
|
|
134
|
-
size: size,
|
|
135
139
|
noRightBorder: noRightBorder,
|
|
136
140
|
alternateStyling: alternateStyling || isInSidebar,
|
|
137
141
|
borders: borders,
|
|
138
142
|
isInSidebar: isInSidebar
|
|
139
|
-
}, tabTitleProps,
|
|
140
|
-
onKeyDown: handleKeyDown
|
|
141
|
-
}), /*#__PURE__*/_react.default.createElement(_tabTitle.StyledTitleContent, _extends({}, isHref && {
|
|
143
|
+
}, tabTitleProps, isHref && {
|
|
142
144
|
href,
|
|
143
145
|
target: "_blank",
|
|
144
146
|
as: "a"
|
|
145
|
-
}, {
|
|
147
|
+
}, (0, _tags.default)("tab-header", tabTitleProps), {
|
|
148
|
+
onKeyDown: handleKeyDown
|
|
149
|
+
}), /*#__PURE__*/_react.default.createElement(_tabTitle.StyledTitleContent, {
|
|
146
150
|
error: error,
|
|
147
151
|
warning: warning,
|
|
148
152
|
info: info,
|
|
@@ -155,23 +159,29 @@ const TabTitle = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
155
159
|
hasSiblings: !!siblings,
|
|
156
160
|
isTabSelected: isTabSelected,
|
|
157
161
|
hasCustomLayout: !!customLayout,
|
|
158
|
-
alternateStyling: hasAlternateStyling
|
|
159
|
-
|
|
162
|
+
alternateStyling: hasAlternateStyling,
|
|
163
|
+
align: align,
|
|
164
|
+
hasHref: !!href
|
|
165
|
+
}, renderContent(), isHref && /*#__PURE__*/_react.default.createElement(_icon.default, {
|
|
160
166
|
type: "link"
|
|
161
|
-
}), /*#__PURE__*/_react.default.createElement(_tabTitle.StyledLayoutWrapper, {
|
|
167
|
+
}), hasFailedValidation && /*#__PURE__*/_react.default.createElement(_tabTitle.StyledLayoutWrapper, {
|
|
168
|
+
position: position,
|
|
162
169
|
hasCustomSibling: !!customLayout
|
|
163
170
|
}, error && /*#__PURE__*/_react.default.createElement(_validationIcon.default, {
|
|
164
171
|
onClick: handleClick,
|
|
165
172
|
tooltipPosition: "top",
|
|
166
|
-
error: errorMessage
|
|
173
|
+
error: errorMessage,
|
|
174
|
+
tabIndex: null
|
|
167
175
|
}), !error && warning && /*#__PURE__*/_react.default.createElement(_validationIcon.default, {
|
|
168
176
|
onClick: handleClick,
|
|
169
177
|
tooltipPosition: "top",
|
|
170
|
-
warning: warningMessage
|
|
178
|
+
warning: warningMessage,
|
|
179
|
+
tabIndex: null
|
|
171
180
|
}), !warning && !error && info && /*#__PURE__*/_react.default.createElement(_validationIcon.default, {
|
|
172
181
|
onClick: handleClick,
|
|
173
182
|
tooltipPosition: "top",
|
|
174
|
-
info: infoMessage
|
|
183
|
+
info: infoMessage,
|
|
184
|
+
tabIndex: null
|
|
175
185
|
}))), !(hasFailedValidation || hasAlternateStyling) && isTabSelected && /*#__PURE__*/_react.default.createElement(_tabTitle.StyledSelectedIndicator, {
|
|
176
186
|
"data-element": "tab-selected-indicator",
|
|
177
187
|
position: position,
|
|
@@ -204,7 +214,8 @@ TabTitle.propTypes = {
|
|
|
204
214
|
noRightBorder: _propTypes.default.bool,
|
|
205
215
|
customLayout: _propTypes.default.node,
|
|
206
216
|
isInSidebar: _propTypes.default.bool,
|
|
207
|
-
href: _propTypes.default.string
|
|
217
|
+
href: _propTypes.default.string,
|
|
218
|
+
align: _propTypes.default.oneOf(["left", "right"])
|
|
208
219
|
};
|
|
209
220
|
var _default = TabTitle;
|
|
210
221
|
exports.default = _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
|
|
3
|
+
export interface TabTitleProps {
|
|
4
|
+
title: string;
|
|
5
|
+
id?: string;
|
|
6
|
+
dataTabId?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
isTabSelected?: boolean;
|
|
10
|
+
position?: "top" | "left";
|
|
11
|
+
errorMessage?: string;
|
|
12
|
+
warningMessage?: string;
|
|
13
|
+
infoMessage?: string;
|
|
14
|
+
errors?: boolean;
|
|
15
|
+
warning?: boolean;
|
|
16
|
+
info?: boolean;
|
|
17
|
+
borders?: boolean;
|
|
18
|
+
noLeftBorder?: boolean;
|
|
19
|
+
noRightBorder?: boolean;
|
|
20
|
+
alternateStyling?: boolean;
|
|
21
|
+
isInSidebar?: boolean;
|
|
22
|
+
siblings?: React.ReactNode[];
|
|
23
|
+
titlePosition?: "before" | "after";
|
|
24
|
+
href?: string;
|
|
25
|
+
tabIndex?: string;
|
|
26
|
+
size?: "default" | "large";
|
|
27
|
+
align?: "left" | "right";
|
|
28
|
+
customLayout?: React.ReactNode;
|
|
29
|
+
onClick?: (
|
|
30
|
+
ev: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>
|
|
31
|
+
) => void;
|
|
32
|
+
onKeyDown?: (
|
|
33
|
+
ev: React.KeyboardEvent<HTMLButtonElement | HTMLAnchorElement>
|
|
34
|
+
) => void;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
declare function TabTitle(props: TabTitleProps): JSX.Element;
|
|
38
|
+
|
|
39
|
+
export default TabTitle;
|
|
@@ -21,8 +21,9 @@ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return
|
|
|
21
21
|
|
|
22
22
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
23
23
|
|
|
24
|
-
const StyledTitleContent = _styledComponents.default.
|
|
24
|
+
const StyledTitleContent = _styledComponents.default.span`
|
|
25
25
|
outline: none;
|
|
26
|
+
display: inline-block;
|
|
26
27
|
|
|
27
28
|
${({
|
|
28
29
|
theme,
|
|
@@ -32,17 +33,22 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
32
33
|
noLeftBorder,
|
|
33
34
|
noRightBorder,
|
|
34
35
|
isTabSelected,
|
|
35
|
-
|
|
36
|
-
href,
|
|
36
|
+
hasHref,
|
|
37
37
|
error,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
alternateStyling
|
|
38
|
+
alternateStyling,
|
|
39
|
+
align
|
|
41
40
|
}) => (0, _styledComponents.css)`
|
|
42
41
|
line-height: 20px;
|
|
43
42
|
margin: 0;
|
|
43
|
+
text-align: ${align};
|
|
44
|
+
|
|
45
|
+
${position === "left" && (0, _styledComponents.css)`
|
|
46
|
+
display: flex;
|
|
47
|
+
width: 100%;
|
|
48
|
+
justify-content: ${align === "right" ? "flex-end" : "flex-start"};
|
|
49
|
+
`}
|
|
44
50
|
|
|
45
|
-
${
|
|
51
|
+
${hasHref && (0, _styledComponents.css)`
|
|
46
52
|
color: ${theme.text.color};
|
|
47
53
|
display: block;
|
|
48
54
|
text-decoration: none;
|
|
@@ -81,10 +87,8 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
81
87
|
|
|
82
88
|
${size === "large" && position === "top" && (0, _styledComponents.css)`
|
|
83
89
|
padding: 10px 24px;
|
|
90
|
+
${borders && `padding-bottom: 9px;`}
|
|
84
91
|
font-size: 16px;
|
|
85
|
-
${isTabSelected && !hasSiblings && !(error || warning || info) && (0, _styledComponents.css)`
|
|
86
|
-
padding-bottom: 6px;
|
|
87
|
-
`}
|
|
88
92
|
`}
|
|
89
93
|
|
|
90
94
|
${size === "large" && position === "left" && (0, _styledComponents.css)`
|
|
@@ -95,11 +99,12 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
95
99
|
|
|
96
100
|
${size === "default" && (0, _styledComponents.css)`
|
|
97
101
|
padding: 10px 16px;
|
|
98
|
-
${isTabSelected && !(error || warning || info) && position === "top" && (0, _styledComponents.css)`
|
|
99
|
-
padding-bottom: 8px;
|
|
100
|
-
`}
|
|
101
102
|
|
|
102
|
-
${
|
|
103
|
+
${borders && `padding-bottom: 9px;`}
|
|
104
|
+
|
|
105
|
+
${position === "left" && !isTabSelected && !alternateStyling && error && `
|
|
106
|
+
margin-right: -2px;
|
|
107
|
+
`}
|
|
103
108
|
`}
|
|
104
109
|
`}
|
|
105
110
|
|
|
@@ -131,7 +136,7 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
131
136
|
padding-right: ${size === "large" ? "26px;" : "18px;"};
|
|
132
137
|
`}
|
|
133
138
|
|
|
134
|
-
|
|
139
|
+
&:hover {
|
|
135
140
|
outline: 1px solid;
|
|
136
141
|
outline-offset: -1px;
|
|
137
142
|
|
|
@@ -174,10 +179,10 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
174
179
|
|
|
175
180
|
${position === "left" && (0, _styledComponents.css)`
|
|
176
181
|
border-right-color: transparent;
|
|
177
|
-
padding-right: ${size === "large" ? "26px
|
|
182
|
+
padding-right: ${size === "large" ? "26px" : "18px"};
|
|
178
183
|
`}
|
|
179
184
|
|
|
180
|
-
|
|
185
|
+
&:hover {
|
|
181
186
|
outline: 2px solid ${theme.colors.error};
|
|
182
187
|
outline-offset: -2px;
|
|
183
188
|
${position === "top" && (0, _styledComponents.css)`
|
|
@@ -190,7 +195,7 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
190
195
|
|
|
191
196
|
${position === "left" && (0, _styledComponents.css)`
|
|
192
197
|
border-right-color: transparent;
|
|
193
|
-
padding-right: ${size === "large" ? "26px
|
|
198
|
+
padding-right: ${size === "large" ? "26px" : "18px"};
|
|
194
199
|
`}
|
|
195
200
|
}
|
|
196
201
|
`}
|
|
@@ -206,23 +211,11 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
206
211
|
position
|
|
207
212
|
}) => hasSiblings && !hasCustomLayout && position === "top" && (0, _styledComponents.css)`
|
|
208
213
|
height: 20px;
|
|
214
|
+
padding-top: 10px;
|
|
215
|
+
padding-bottom: 10px;
|
|
209
216
|
|
|
210
|
-
${size === "
|
|
211
|
-
padding-
|
|
212
|
-
padding-bottom: 10px;
|
|
213
|
-
|
|
214
|
-
${!(error || warning || info) && isTabSelected && (0, _styledComponents.css)`
|
|
215
|
-
padding-bottom: 8px;
|
|
216
|
-
`}
|
|
217
|
-
`}
|
|
218
|
-
|
|
219
|
-
${size === "large" && (0, _styledComponents.css)`
|
|
220
|
-
padding-top: 10px;
|
|
221
|
-
padding-bottom: 10px;
|
|
222
|
-
|
|
223
|
-
${!(error || warning || info) && isTabSelected && (0, _styledComponents.css)`
|
|
224
|
-
padding-bottom: 6px;
|
|
225
|
-
`}
|
|
217
|
+
${size === "large" && !(error || warning || info) && isTabSelected && (0, _styledComponents.css)`
|
|
218
|
+
padding-bottom: 6px;
|
|
226
219
|
`}
|
|
227
220
|
`}
|
|
228
221
|
|
|
@@ -238,13 +231,13 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
238
231
|
display: flex;
|
|
239
232
|
|
|
240
233
|
${position === "left" && (0, _styledComponents.css)`
|
|
241
|
-
padding: ${size === "large" ? "2px
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
234
|
+
padding: ${size === "large" ? "2px" : "0px"};
|
|
235
|
+
${isTabSelected && (0, _styledComponents.css)`
|
|
236
|
+
padding-right: 0px;
|
|
237
|
+
`}
|
|
238
|
+
${(error || warning || info) && (0, _styledComponents.css)`
|
|
239
|
+
padding-right: ${size === "large" ? "26px" : "18px"};
|
|
240
|
+
`}
|
|
248
241
|
`}
|
|
249
242
|
|
|
250
243
|
${position === "top" && (0, _styledComponents.css)`
|
|
@@ -253,49 +246,63 @@ const StyledTitleContent = _styledComponents.default.div`
|
|
|
253
246
|
padding-bottom: 0px;
|
|
254
247
|
`}
|
|
255
248
|
${(error || warning || info) && (0, _styledComponents.css)`
|
|
256
|
-
padding-bottom: ${size === "large" ? "4px;" : "2px;"}
|
|
257
|
-
padding-right: ${size === "large" ? "18px;" : "14px;"}
|
|
258
|
-
|
|
259
|
-
&:hover {
|
|
260
249
|
padding-bottom: ${size === "large" ? "4px;" : "2px;"}
|
|
261
|
-
|
|
262
|
-
|
|
250
|
+
padding-right: ${size === "large" ? "18px;" : "14px;"}
|
|
251
|
+
|
|
252
|
+
&:hover {
|
|
253
|
+
padding-bottom: ${size === "large" ? "4px;" : "2px;"}
|
|
254
|
+
}
|
|
255
|
+
`};
|
|
263
256
|
`}
|
|
264
257
|
`}
|
|
265
258
|
`;
|
|
266
259
|
exports.StyledTitleContent = StyledTitleContent;
|
|
267
|
-
const StyledTabTitle = _styledComponents.default.
|
|
260
|
+
const StyledTabTitle = _styledComponents.default.button`
|
|
268
261
|
background-color: transparent;
|
|
269
262
|
display: inline-block;
|
|
270
263
|
font-weight: bold;
|
|
271
|
-
height: 100%;
|
|
272
264
|
position: relative;
|
|
265
|
+
border: none;
|
|
266
|
+
cursor: pointer;
|
|
267
|
+
font-size: 14px;
|
|
268
|
+
padding: 0px;
|
|
269
|
+
text-decoration: none;
|
|
270
|
+
outline-offset: 0px;
|
|
271
|
+
margin: 0;
|
|
272
|
+
|
|
273
|
+
a:visited {
|
|
274
|
+
color: inherit;
|
|
275
|
+
}
|
|
273
276
|
|
|
274
277
|
${({
|
|
275
278
|
position,
|
|
276
279
|
borders,
|
|
277
280
|
noRightBorder,
|
|
278
281
|
noLeftBorder
|
|
279
|
-
}) => `
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
&:not(:first-of-type) {
|
|
283
|
-
margin-left: -1px;
|
|
284
|
-
}
|
|
285
|
-
`}
|
|
286
|
-
`}
|
|
287
|
-
${position === "left" && (0, _styledComponents.css)`
|
|
288
|
-
${borders && (0, _styledComponents.css)`
|
|
289
|
-
&:not(:first-of-type) {
|
|
290
|
-
margin-top: -1px;
|
|
291
|
-
}
|
|
292
|
-
`}
|
|
293
|
-
`}
|
|
294
|
-
`}
|
|
282
|
+
}) => (0, _styledComponents.css)`
|
|
283
|
+
${position === "top" && (0, _styledComponents.css)`
|
|
284
|
+
height: 40px;
|
|
295
285
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
286
|
+
${borders && !(noRightBorder || noLeftBorder) && (0, _styledComponents.css)`
|
|
287
|
+
&:nth-of-type(n + 1) {
|
|
288
|
+
margin-left: -1px;
|
|
289
|
+
}
|
|
290
|
+
&:first-child {
|
|
291
|
+
margin-left: 0;
|
|
292
|
+
}
|
|
293
|
+
`}
|
|
294
|
+
`}
|
|
295
|
+
${position === "left" && (0, _styledComponents.css)`
|
|
296
|
+
${borders && (0, _styledComponents.css)`
|
|
297
|
+
&:nth-of-type(n + 1) {
|
|
298
|
+
margin-top: -1px;
|
|
299
|
+
}
|
|
300
|
+
&:first-child {
|
|
301
|
+
margin-top: 0;
|
|
302
|
+
}
|
|
303
|
+
`}
|
|
304
|
+
`}
|
|
305
|
+
`}
|
|
299
306
|
|
|
300
307
|
${({
|
|
301
308
|
isTabSelected,
|
|
@@ -319,27 +326,12 @@ const StyledTabTitle = _styledComponents.default.li`
|
|
|
319
326
|
error,
|
|
320
327
|
warning,
|
|
321
328
|
info,
|
|
322
|
-
|
|
323
|
-
isInSidebar,
|
|
324
|
-
position
|
|
329
|
+
isInSidebar
|
|
325
330
|
}) => isTabSelected && (0, _styledComponents.css)`
|
|
326
331
|
${!isInSidebar && "z-index: 1;"}
|
|
327
332
|
color: ${theme.text.color};
|
|
328
333
|
background-color: ${theme.colors.white};
|
|
329
334
|
|
|
330
|
-
${alternateStyling && (0, _styledComponents.css)`
|
|
331
|
-
border-bottom: 2px solid ${theme.tab.background};
|
|
332
|
-
`}
|
|
333
|
-
|
|
334
|
-
${!alternateStyling && (0, _styledComponents.css)`
|
|
335
|
-
padding-bottom: 2px;
|
|
336
|
-
`}
|
|
337
|
-
|
|
338
|
-
${size === "large" && (0, _styledComponents.css)`
|
|
339
|
-
${position === "top" && `
|
|
340
|
-
padding-bottom: ${alternateStyling ? "3px" : "4px"};
|
|
341
|
-
`}
|
|
342
|
-
`}
|
|
343
335
|
${(error || warning || info) && (0, _styledComponents.css)`
|
|
344
336
|
padding-bottom: 0px;
|
|
345
337
|
`}
|
|
@@ -364,7 +356,6 @@ const StyledTabTitle = _styledComponents.default.li`
|
|
|
364
356
|
|
|
365
357
|
${({
|
|
366
358
|
position,
|
|
367
|
-
size,
|
|
368
359
|
borders,
|
|
369
360
|
theme,
|
|
370
361
|
alternateStyling,
|
|
@@ -387,7 +378,7 @@ const StyledTabTitle = _styledComponents.default.li`
|
|
|
387
378
|
}
|
|
388
379
|
`}
|
|
389
380
|
|
|
390
|
-
display:
|
|
381
|
+
display: flex;
|
|
391
382
|
height: auto;
|
|
392
383
|
margin-left: 0px;
|
|
393
384
|
|
|
@@ -422,12 +413,6 @@ const StyledTabTitle = _styledComponents.default.li`
|
|
|
422
413
|
|
|
423
414
|
background-color: ${theme.colors.white};
|
|
424
415
|
|
|
425
|
-
${size === "large" && (0, _styledComponents.css)`
|
|
426
|
-
& ${StyledTitleContent} {
|
|
427
|
-
padding-right: 22px;
|
|
428
|
-
}
|
|
429
|
-
`}
|
|
430
|
-
|
|
431
416
|
&:hover {
|
|
432
417
|
${alternateStyling && ` border-right-color: ${theme.tab.background};`}
|
|
433
418
|
background-color: ${theme.colors.white};
|
|
@@ -473,7 +458,8 @@ const StyledLayoutWrapper = _styledComponents.default.div`
|
|
|
473
458
|
${({
|
|
474
459
|
hasCustomLayout,
|
|
475
460
|
titlePosition,
|
|
476
|
-
hasCustomSibling
|
|
461
|
+
hasCustomSibling,
|
|
462
|
+
position
|
|
477
463
|
}) => !hasCustomLayout && (0, _styledComponents.css)`
|
|
478
464
|
display: inline-flex;
|
|
479
465
|
|
|
@@ -500,7 +486,7 @@ const StyledLayoutWrapper = _styledComponents.default.div`
|
|
|
500
486
|
${_icon.default} {
|
|
501
487
|
height: 16px;
|
|
502
488
|
left: -2px;
|
|
503
|
-
top: 3px;
|
|
489
|
+
top: ${position === "left" ? "1px" : "3px"};
|
|
504
490
|
}
|
|
505
491
|
}
|
|
506
492
|
`}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./tab-header";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
|
|
3
|
+
export interface TabHeaderProps {
|
|
4
|
+
role?: string;
|
|
5
|
+
position?: "top" | "left";
|
|
6
|
+
extendedLine?: boolean;
|
|
7
|
+
noRightBorder?: boolean;
|
|
8
|
+
alternateStyling?: boolean;
|
|
9
|
+
isInSidebar?: boolean;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
align?: "left" | "right";
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare function TabHeader(props: TabHeaderProps): JSX.Element;
|
|
15
|
+
|
|
16
|
+
export default TabHeader;
|
|
@@ -50,7 +50,7 @@ const StyledTabsHeaderWrapper = _styledComponents.default.div`
|
|
|
50
50
|
`}
|
|
51
51
|
`;
|
|
52
52
|
exports.StyledTabsHeaderWrapper = StyledTabsHeaderWrapper;
|
|
53
|
-
const StyledTabsHeaderList = _styledComponents.default.
|
|
53
|
+
const StyledTabsHeaderList = _styledComponents.default.div`
|
|
54
54
|
display: flex;
|
|
55
55
|
box-shadow: inset 0px ${computeLineWidth} 0px 0px
|
|
56
56
|
${({
|
|
@@ -33,6 +33,8 @@ var _i18nContext = _interopRequireDefault(require("../../__internal__/i18n-conte
|
|
|
33
33
|
|
|
34
34
|
var _tooltipProvider = require("../../__internal__/tooltip-provider");
|
|
35
35
|
|
|
36
|
+
var _useInputAccessibility = _interopRequireDefault(require("../../hooks/__internal__/useInputAccessibility"));
|
|
37
|
+
|
|
36
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
39
|
|
|
38
40
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
@@ -101,6 +103,21 @@ const Textarea = ({
|
|
|
101
103
|
}
|
|
102
104
|
};
|
|
103
105
|
|
|
106
|
+
const {
|
|
107
|
+
labelId,
|
|
108
|
+
tooltipId,
|
|
109
|
+
fieldHelpId,
|
|
110
|
+
ariaDescribedBy,
|
|
111
|
+
ariaLabelledBy
|
|
112
|
+
} = (0, _useInputAccessibility.default)({
|
|
113
|
+
id,
|
|
114
|
+
error,
|
|
115
|
+
warning,
|
|
116
|
+
info,
|
|
117
|
+
label,
|
|
118
|
+
labelHelp,
|
|
119
|
+
fieldHelp
|
|
120
|
+
});
|
|
104
121
|
(0, _react.useEffect)(() => {
|
|
105
122
|
if (expandable) {
|
|
106
123
|
expandTextarea();
|
|
@@ -146,10 +163,12 @@ const Textarea = ({
|
|
|
146
163
|
"data-element": dataElement
|
|
147
164
|
}, (0, _utils.filterStyledSystemMarginProps)(props)), /*#__PURE__*/_react.default.createElement(_formField.default, {
|
|
148
165
|
fieldHelp: fieldHelp,
|
|
166
|
+
fieldHelpId: fieldHelpId,
|
|
149
167
|
error: error,
|
|
150
168
|
warning: warning,
|
|
151
169
|
info: info,
|
|
152
170
|
label: label,
|
|
171
|
+
labelId: labelId,
|
|
153
172
|
disabled: disabled,
|
|
154
173
|
id: id,
|
|
155
174
|
labelInline: labelInline,
|
|
@@ -157,6 +176,7 @@ const Textarea = ({
|
|
|
157
176
|
labelWidth: labelWidth,
|
|
158
177
|
labelHelp: labelHelp,
|
|
159
178
|
labelSpacing: labelSpacing,
|
|
179
|
+
tooltipId: tooltipId,
|
|
160
180
|
isRequired: props.required,
|
|
161
181
|
useValidationIcon: validationOnLabel,
|
|
162
182
|
adaptiveLabelBreakpoint: adaptiveLabelBreakpoint
|
|
@@ -169,9 +189,11 @@ const Textarea = ({
|
|
|
169
189
|
warning: warning,
|
|
170
190
|
info: info
|
|
171
191
|
}, /*#__PURE__*/_react.default.createElement(_input2.default, _extends({
|
|
192
|
+
"aria-invalid": !!error,
|
|
193
|
+
"aria-labelledby": ariaLabelledBy,
|
|
194
|
+
"aria-describedby": ariaDescribedBy,
|
|
172
195
|
autoFocus: autoFocus,
|
|
173
196
|
name: name,
|
|
174
|
-
"aria-invalid": !!error,
|
|
175
197
|
ref: inputRef,
|
|
176
198
|
maxLength: enforceCharacterLimit && characterLimit ? characterLimit : undefined,
|
|
177
199
|
onChange: onChange,
|
|
@@ -29,6 +29,8 @@ var _tooltipProvider = require("../../__internal__/tooltip-provider");
|
|
|
29
29
|
|
|
30
30
|
var _useCharacterCount = _interopRequireDefault(require("../../hooks/__internal__/useCharacterCount"));
|
|
31
31
|
|
|
32
|
+
var _useInputAccessibility = _interopRequireDefault(require("../../hooks/__internal__/useInputAccessibility/useInputAccessibility"));
|
|
33
|
+
|
|
32
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
35
|
|
|
34
36
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -42,7 +44,7 @@ const Textbox = ({
|
|
|
42
44
|
disabled,
|
|
43
45
|
inputIcon,
|
|
44
46
|
leftChildren,
|
|
45
|
-
labelId,
|
|
47
|
+
labelId: externalLabelId,
|
|
46
48
|
label,
|
|
47
49
|
labelAlign,
|
|
48
50
|
labelHelp,
|
|
@@ -90,12 +92,29 @@ const Textbox = ({
|
|
|
90
92
|
...props
|
|
91
93
|
}) => {
|
|
92
94
|
const [maxLength, characterCount] = (0, _useCharacterCount.default)(value, characterLimit, warnOverLimit, enforceCharacterLimit);
|
|
95
|
+
const {
|
|
96
|
+
labelId: internalLabelId,
|
|
97
|
+
tooltipId,
|
|
98
|
+
fieldHelpId,
|
|
99
|
+
ariaDescribedBy
|
|
100
|
+
} = (0, _useInputAccessibility.default)({
|
|
101
|
+
id,
|
|
102
|
+
error,
|
|
103
|
+
warning,
|
|
104
|
+
info,
|
|
105
|
+
label,
|
|
106
|
+
labelHelp,
|
|
107
|
+
fieldHelp
|
|
108
|
+
});
|
|
109
|
+
const labelId = externalLabelId || internalLabelId;
|
|
93
110
|
return /*#__PURE__*/_react.default.createElement(_tooltipProvider.TooltipProvider, {
|
|
94
111
|
helpAriaLabel: helpAriaLabel,
|
|
95
112
|
tooltipPosition: tooltipPosition
|
|
96
113
|
}, /*#__PURE__*/_react.default.createElement(_inputBehaviour.InputBehaviour, null, /*#__PURE__*/_react.default.createElement(_formField.default, _extends({
|
|
114
|
+
tooltipId: tooltipId,
|
|
97
115
|
disabled: disabled,
|
|
98
116
|
fieldHelp: fieldHelp,
|
|
117
|
+
fieldHelpId: fieldHelpId,
|
|
99
118
|
error: error,
|
|
100
119
|
warning: warning,
|
|
101
120
|
info: info,
|
|
@@ -132,6 +151,8 @@ const Textbox = ({
|
|
|
132
151
|
}, {
|
|
133
152
|
align: align,
|
|
134
153
|
"aria-invalid": !!error,
|
|
154
|
+
"aria-labelledby": labelId,
|
|
155
|
+
"aria-describedby": ariaDescribedBy,
|
|
135
156
|
autoFocus: autoFocus,
|
|
136
157
|
deferTimeout: deferTimeout,
|
|
137
158
|
disabled: disabled,
|
|
@@ -160,7 +181,8 @@ const Textbox = ({
|
|
|
160
181
|
readOnly: readOnly,
|
|
161
182
|
size: size,
|
|
162
183
|
useValidationIcon: !validationOnLabel,
|
|
163
|
-
warning: warning
|
|
184
|
+
warning: warning,
|
|
185
|
+
tooltipId: tooltipId
|
|
164
186
|
}))), characterCount));
|
|
165
187
|
};
|
|
166
188
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface InputAccessibilityProperties {
|
|
2
|
+
labelId?: string;
|
|
3
|
+
tooltipId?: string;
|
|
4
|
+
fieldHelpId?: string;
|
|
5
|
+
ariaDescribedBy?: string;
|
|
6
|
+
ariaLabelledBy?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export default function useInputAccessibility(
|
|
10
|
+
/** Input id - */
|
|
11
|
+
id: string,
|
|
12
|
+
/** Error validation message */
|
|
13
|
+
error?: string,
|
|
14
|
+
/** Warning validation message */
|
|
15
|
+
warning?: string,
|
|
16
|
+
/** Info validation message */
|
|
17
|
+
info?: string,
|
|
18
|
+
/** Label */
|
|
19
|
+
label?: string,
|
|
20
|
+
/** labelHelp message */
|
|
21
|
+
labelHelp?: string,
|
|
22
|
+
/** fieldHelp message */
|
|
23
|
+
fieldHelp?: string
|
|
24
|
+
): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _useInputAccessibility.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _useInputAccessibility = _interopRequireDefault(require("./useInputAccessibility"));
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = useInputAccessibility;
|
|
7
|
+
|
|
8
|
+
function useInputAccessibility({
|
|
9
|
+
id,
|
|
10
|
+
error,
|
|
11
|
+
warning,
|
|
12
|
+
info,
|
|
13
|
+
label,
|
|
14
|
+
labelHelp,
|
|
15
|
+
fieldHelp
|
|
16
|
+
}) {
|
|
17
|
+
const labelId = label ? `${id}-label` : undefined;
|
|
18
|
+
const tooltipId = [error, warning, info, labelHelp].filter(validation => typeof validation === "string").length ? `${id}-tooltip` : undefined;
|
|
19
|
+
const fieldHelpId = fieldHelp ? `${id}-field-help` : undefined;
|
|
20
|
+
const ariaDescribedBy = [fieldHelpId, tooltipId].filter(Boolean).join(" ");
|
|
21
|
+
const ariaLabelledBy = labelId;
|
|
22
|
+
return {
|
|
23
|
+
labelId,
|
|
24
|
+
tooltipId,
|
|
25
|
+
fieldHelpId,
|
|
26
|
+
ariaDescribedBy,
|
|
27
|
+
ariaLabelledBy
|
|
28
|
+
};
|
|
29
|
+
}
|