@telus-uds/components-web 2.31.2 → 2.31.3
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/CHANGELOG.md +12 -2
- package/lib/Breadcrumbs/Breadcrumbs.js +17 -9
- package/lib/Breadcrumbs/Item/Item.js +56 -17
- package/lib-module/Breadcrumbs/Breadcrumbs.js +18 -10
- package/lib-module/Breadcrumbs/Item/Item.js +56 -17
- package/package.json +3 -3
- package/src/Breadcrumbs/Breadcrumbs.jsx +6 -3
- package/src/Breadcrumbs/Item/Item.jsx +36 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
# Change Log - @telus-uds/components-web
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Fri, 23 Feb 2024 19:32:18 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 2.31.3
|
|
8
|
+
|
|
9
|
+
Fri, 23 Feb 2024 19:32:18 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- fix breadcrumbs component current item font-weight (guillermo.peitzner@telus.com)
|
|
14
|
+
- Bump @telus-uds/components-base to v1.78.0
|
|
15
|
+
- Bump @telus-uds/system-theme-tokens to v2.52.0
|
|
16
|
+
|
|
7
17
|
## 2.31.2
|
|
8
18
|
|
|
9
|
-
Tue, 20 Feb 2024 23:
|
|
19
|
+
Tue, 20 Feb 2024 23:14:38 GMT
|
|
10
20
|
|
|
11
21
|
### Patches
|
|
12
22
|
|
|
@@ -27,9 +27,15 @@ const StyledList = /*#__PURE__*/_styledComponents.default.ol.withConfig({
|
|
|
27
27
|
listStylePosition: 'inside',
|
|
28
28
|
margin: 0,
|
|
29
29
|
padding: 0,
|
|
30
|
-
alignItems: 'baseline'
|
|
30
|
+
alignItems: 'baseline',
|
|
31
|
+
height: _ref => {
|
|
32
|
+
let {
|
|
33
|
+
iconContainerSize
|
|
34
|
+
} = _ref;
|
|
35
|
+
return `${iconContainerSize}px`;
|
|
36
|
+
}
|
|
31
37
|
});
|
|
32
|
-
const omitProps =
|
|
38
|
+
const omitProps = _ref2 => {
|
|
33
39
|
let {
|
|
34
40
|
current,
|
|
35
41
|
path,
|
|
@@ -38,7 +44,7 @@ const omitProps = _ref => {
|
|
|
38
44
|
childRoutes,
|
|
39
45
|
component,
|
|
40
46
|
...props
|
|
41
|
-
} =
|
|
47
|
+
} = _ref2;
|
|
42
48
|
return props;
|
|
43
49
|
};
|
|
44
50
|
const getBreadcrumbName = (item, params) => {
|
|
@@ -101,7 +107,7 @@ const getStructuredData = (items, baseUrl) => {
|
|
|
101
107
|
/**
|
|
102
108
|
* Display a hierarchy of links, commonly used for navigation.
|
|
103
109
|
*/
|
|
104
|
-
const Breadcrumbs =
|
|
110
|
+
const Breadcrumbs = _ref3 => {
|
|
105
111
|
let {
|
|
106
112
|
baseUrl,
|
|
107
113
|
children,
|
|
@@ -112,7 +118,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
112
118
|
variant,
|
|
113
119
|
LinkRouter,
|
|
114
120
|
...rest
|
|
115
|
-
} =
|
|
121
|
+
} = _ref3;
|
|
116
122
|
// React Helmet can cause a memory leak in SSR if not properly configured.
|
|
117
123
|
// Only run it in SSR if theme options tells us to.
|
|
118
124
|
/* const {
|
|
@@ -122,7 +128,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
122
128
|
// const isSSR = typeof window === 'undefined' || isHydrating
|
|
123
129
|
// const hasMetadata = isSSR ? enableHelmetSSR : true
|
|
124
130
|
const helmetContext = {};
|
|
125
|
-
const activeRoutes = children ? _react.default.Children.map((0, _componentsBase.unpackFragment)(children),
|
|
131
|
+
const activeRoutes = children ? _react.default.Children.map((0, _componentsBase.unpackFragment)(children), _ref4 => {
|
|
126
132
|
let {
|
|
127
133
|
props: {
|
|
128
134
|
href,
|
|
@@ -130,7 +136,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
130
136
|
...itemRest
|
|
131
137
|
},
|
|
132
138
|
ref
|
|
133
|
-
} =
|
|
139
|
+
} = _ref4;
|
|
134
140
|
return {
|
|
135
141
|
path: href,
|
|
136
142
|
breadcrumbName,
|
|
@@ -139,6 +145,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
139
145
|
};
|
|
140
146
|
}) : routes.filter(route => route.path && route.breadcrumbName);
|
|
141
147
|
const items = getItems(activeRoutes, params, !children);
|
|
148
|
+
const themeTokens = (0, _componentsBase.useThemeTokens)('Breadcrumbs', tokens, variant);
|
|
142
149
|
const metadata = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHelmetAsync.HelmetProvider, {
|
|
143
150
|
context: helmetContext,
|
|
144
151
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactHelmetAsync.Helmet, {
|
|
@@ -158,7 +165,8 @@ const Breadcrumbs = _ref2 => {
|
|
|
158
165
|
"aria-label": "Breadcrumb",
|
|
159
166
|
...selectProps(rest),
|
|
160
167
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledList, {
|
|
161
|
-
|
|
168
|
+
iconContainerSize: themeTokens.iconContainerSize,
|
|
169
|
+
children: items.map(_ref5 => {
|
|
162
170
|
let {
|
|
163
171
|
href,
|
|
164
172
|
current,
|
|
@@ -166,7 +174,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
166
174
|
LinkRouter: ItemLinkRouter = LinkRouter,
|
|
167
175
|
linkRouterProps: itemLinkRouterProps,
|
|
168
176
|
...itemRest
|
|
169
|
-
} =
|
|
177
|
+
} = _ref5;
|
|
170
178
|
return /*#__PURE__*/(0, _react.createElement)(_Item.default, {
|
|
171
179
|
...itemRest,
|
|
172
180
|
current: current,
|
|
@@ -24,38 +24,65 @@ const StyledItemContainer = /*#__PURE__*/_styledComponents.default.li.withConfig
|
|
|
24
24
|
listItemPadding
|
|
25
25
|
} = _ref;
|
|
26
26
|
return `${listItemPadding}px`;
|
|
27
|
+
},
|
|
28
|
+
lineHeight: _ref2 => {
|
|
29
|
+
let {
|
|
30
|
+
lineHeight,
|
|
31
|
+
fontSize
|
|
32
|
+
} = _ref2;
|
|
33
|
+
return `${Math.ceil(lineHeight * fontSize)}px`;
|
|
34
|
+
},
|
|
35
|
+
height: _ref3 => {
|
|
36
|
+
let {
|
|
37
|
+
iconContainerSize
|
|
38
|
+
} = _ref3;
|
|
39
|
+
return `${iconContainerSize}px`;
|
|
27
40
|
}
|
|
28
41
|
});
|
|
29
42
|
const IconContainer = /*#__PURE__*/_styledComponents.default.span.withConfig({
|
|
30
43
|
displayName: "Item__IconContainer",
|
|
31
44
|
componentId: "components-web__sc-1rfdaul-1"
|
|
32
45
|
})({
|
|
33
|
-
display: '
|
|
46
|
+
display: 'flex',
|
|
47
|
+
justifyContent: 'center',
|
|
34
48
|
alignItems: 'center',
|
|
35
|
-
paddingLeft:
|
|
49
|
+
paddingLeft: _ref4 => {
|
|
36
50
|
let {
|
|
37
51
|
iconPadding
|
|
38
|
-
} =
|
|
52
|
+
} = _ref4;
|
|
39
53
|
return `${iconPadding}px`;
|
|
40
54
|
},
|
|
41
|
-
paddingRight:
|
|
55
|
+
paddingRight: _ref5 => {
|
|
42
56
|
let {
|
|
43
57
|
iconPadding
|
|
44
|
-
} =
|
|
58
|
+
} = _ref5;
|
|
45
59
|
return `${iconPadding}px`;
|
|
46
60
|
},
|
|
47
|
-
fontFamily:
|
|
61
|
+
fontFamily: _ref6 => {
|
|
48
62
|
let {
|
|
49
63
|
fontName,
|
|
50
64
|
fontWeight
|
|
51
|
-
} =
|
|
65
|
+
} = _ref6;
|
|
52
66
|
return (0, _componentsBase.applyTextStyles)({
|
|
53
67
|
fontName,
|
|
54
68
|
fontWeight
|
|
55
69
|
}).fontFamily;
|
|
70
|
+
},
|
|
71
|
+
height: _ref7 => {
|
|
72
|
+
let {
|
|
73
|
+
iconContainerSize
|
|
74
|
+
} = _ref7;
|
|
75
|
+
return `${iconContainerSize}px`;
|
|
76
|
+
},
|
|
77
|
+
width: _ref8 => {
|
|
78
|
+
let {
|
|
79
|
+
iconContainerSize,
|
|
80
|
+
iconPadding
|
|
81
|
+
} = _ref8;
|
|
82
|
+
return `${iconContainerSize + iconPadding * 2}px`;
|
|
56
83
|
}
|
|
57
84
|
});
|
|
58
|
-
const Item = /*#__PURE__*/(0, _react.forwardRef)((
|
|
85
|
+
const Item = /*#__PURE__*/(0, _react.forwardRef)((_ref9, ref) => {
|
|
59
86
|
let {
|
|
60
87
|
href,
|
|
61
88
|
children,
|
|
@@ -68,7 +95,7 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
|
68
95
|
LinkRouter,
|
|
69
96
|
linkRouterProps,
|
|
70
97
|
...rest
|
|
71
|
-
} =
|
|
98
|
+
} = _ref9;
|
|
72
99
|
const {
|
|
73
100
|
iconColor,
|
|
74
101
|
icon: ChevronRightIcon,
|
|
@@ -76,22 +103,30 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
|
76
103
|
color,
|
|
77
104
|
iconSize,
|
|
78
105
|
fontSize,
|
|
79
|
-
|
|
106
|
+
fontWeight,
|
|
107
|
+
fontName,
|
|
108
|
+
lineHeight,
|
|
109
|
+
listItemPadding,
|
|
110
|
+
iconContainerSize,
|
|
111
|
+
iconPadding
|
|
80
112
|
} = (0, _componentsBase.useThemeTokens)('Breadcrumbs', tokens, variant);
|
|
81
113
|
const linkOptions = {
|
|
82
114
|
..._componentsBase.clickProps.toPressProps(selectProps(rest)),
|
|
83
115
|
href
|
|
84
116
|
};
|
|
85
117
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledItemContainer, {
|
|
86
|
-
|
|
118
|
+
listItemPadding: listItemPadding,
|
|
119
|
+
lineHeight: lineHeight,
|
|
120
|
+
fontSize: fontSize,
|
|
121
|
+
iconContainerSize: iconContainerSize,
|
|
87
122
|
children: current ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.Typography, {
|
|
88
123
|
tokens: {
|
|
89
124
|
color: currentColor,
|
|
90
|
-
fontSize
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
...variant
|
|
125
|
+
fontSize,
|
|
126
|
+
fontWeight,
|
|
127
|
+
lineHeight
|
|
94
128
|
},
|
|
129
|
+
variant: variant,
|
|
95
130
|
children: children
|
|
96
131
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
97
132
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_componentsBase.Link, {
|
|
@@ -99,14 +134,18 @@ const Item = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
|
|
|
99
134
|
ref: ref,
|
|
100
135
|
tokens: {
|
|
101
136
|
color,
|
|
102
|
-
blockFontSize: fontSize
|
|
137
|
+
blockFontSize: fontSize,
|
|
138
|
+
blockLineHeight: lineHeight
|
|
103
139
|
},
|
|
104
140
|
LinkRouter: LinkRouter,
|
|
105
141
|
linkRouterProps: linkRouterProps,
|
|
106
142
|
variant: variant,
|
|
107
143
|
children: children
|
|
108
144
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(IconContainer, {
|
|
109
|
-
|
|
145
|
+
iconPadding: iconPadding,
|
|
146
|
+
fontName: fontName,
|
|
147
|
+
fontWeight: fontWeight,
|
|
148
|
+
iconContainerSize: iconContainerSize,
|
|
110
149
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ChevronRightIcon, {
|
|
111
150
|
size: iconSize,
|
|
112
151
|
color: iconColor
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
import { Helmet, HelmetProvider } from 'react-helmet-async';
|
|
5
|
-
import { componentPropType, selectSystemProps, unpackFragment, withLinkRouter, getTokensPropType } from '@telus-uds/components-base';
|
|
5
|
+
import { componentPropType, selectSystemProps, unpackFragment, withLinkRouter, getTokensPropType, useThemeTokens } from '@telus-uds/components-base';
|
|
6
6
|
import { htmlAttrs } from '../utils';
|
|
7
7
|
import Item from './Item/Item';
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -20,9 +20,15 @@ const StyledList = /*#__PURE__*/styled.ol.withConfig({
|
|
|
20
20
|
listStylePosition: 'inside',
|
|
21
21
|
margin: 0,
|
|
22
22
|
padding: 0,
|
|
23
|
-
alignItems: 'baseline'
|
|
23
|
+
alignItems: 'baseline',
|
|
24
|
+
height: _ref => {
|
|
25
|
+
let {
|
|
26
|
+
iconContainerSize
|
|
27
|
+
} = _ref;
|
|
28
|
+
return `${iconContainerSize}px`;
|
|
29
|
+
}
|
|
24
30
|
});
|
|
25
|
-
const omitProps =
|
|
31
|
+
const omitProps = _ref2 => {
|
|
26
32
|
let {
|
|
27
33
|
current,
|
|
28
34
|
path,
|
|
@@ -31,7 +37,7 @@ const omitProps = _ref => {
|
|
|
31
37
|
childRoutes,
|
|
32
38
|
component,
|
|
33
39
|
...props
|
|
34
|
-
} =
|
|
40
|
+
} = _ref2;
|
|
35
41
|
return props;
|
|
36
42
|
};
|
|
37
43
|
const getBreadcrumbName = (item, params) => {
|
|
@@ -94,7 +100,7 @@ const getStructuredData = (items, baseUrl) => {
|
|
|
94
100
|
/**
|
|
95
101
|
* Display a hierarchy of links, commonly used for navigation.
|
|
96
102
|
*/
|
|
97
|
-
const Breadcrumbs =
|
|
103
|
+
const Breadcrumbs = _ref3 => {
|
|
98
104
|
let {
|
|
99
105
|
baseUrl,
|
|
100
106
|
children,
|
|
@@ -105,7 +111,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
105
111
|
variant,
|
|
106
112
|
LinkRouter,
|
|
107
113
|
...rest
|
|
108
|
-
} =
|
|
114
|
+
} = _ref3;
|
|
109
115
|
// React Helmet can cause a memory leak in SSR if not properly configured.
|
|
110
116
|
// Only run it in SSR if theme options tells us to.
|
|
111
117
|
/* const {
|
|
@@ -115,7 +121,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
115
121
|
// const isSSR = typeof window === 'undefined' || isHydrating
|
|
116
122
|
// const hasMetadata = isSSR ? enableHelmetSSR : true
|
|
117
123
|
const helmetContext = {};
|
|
118
|
-
const activeRoutes = children ? React.Children.map(unpackFragment(children),
|
|
124
|
+
const activeRoutes = children ? React.Children.map(unpackFragment(children), _ref4 => {
|
|
119
125
|
let {
|
|
120
126
|
props: {
|
|
121
127
|
href,
|
|
@@ -123,7 +129,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
123
129
|
...itemRest
|
|
124
130
|
},
|
|
125
131
|
ref
|
|
126
|
-
} =
|
|
132
|
+
} = _ref4;
|
|
127
133
|
return {
|
|
128
134
|
path: href,
|
|
129
135
|
breadcrumbName,
|
|
@@ -132,6 +138,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
132
138
|
};
|
|
133
139
|
}) : routes.filter(route => route.path && route.breadcrumbName);
|
|
134
140
|
const items = getItems(activeRoutes, params, !children);
|
|
141
|
+
const themeTokens = useThemeTokens('Breadcrumbs', tokens, variant);
|
|
135
142
|
const metadata = /*#__PURE__*/_jsx(HelmetProvider, {
|
|
136
143
|
context: helmetContext,
|
|
137
144
|
children: /*#__PURE__*/_jsx(Helmet, {
|
|
@@ -151,7 +158,8 @@ const Breadcrumbs = _ref2 => {
|
|
|
151
158
|
"aria-label": "Breadcrumb",
|
|
152
159
|
...selectProps(rest),
|
|
153
160
|
children: [/*#__PURE__*/_jsx(StyledList, {
|
|
154
|
-
|
|
161
|
+
iconContainerSize: themeTokens.iconContainerSize,
|
|
162
|
+
children: items.map(_ref5 => {
|
|
155
163
|
let {
|
|
156
164
|
href,
|
|
157
165
|
current,
|
|
@@ -159,7 +167,7 @@ const Breadcrumbs = _ref2 => {
|
|
|
159
167
|
LinkRouter: ItemLinkRouter = LinkRouter,
|
|
160
168
|
linkRouterProps: itemLinkRouterProps,
|
|
161
169
|
...itemRest
|
|
162
|
-
} =
|
|
170
|
+
} = _ref5;
|
|
163
171
|
return /*#__PURE__*/_createElement(Item, {
|
|
164
172
|
...itemRest,
|
|
165
173
|
current: current,
|
|
@@ -17,38 +17,65 @@ const StyledItemContainer = /*#__PURE__*/styled.li.withConfig({
|
|
|
17
17
|
listItemPadding
|
|
18
18
|
} = _ref;
|
|
19
19
|
return `${listItemPadding}px`;
|
|
20
|
+
},
|
|
21
|
+
lineHeight: _ref2 => {
|
|
22
|
+
let {
|
|
23
|
+
lineHeight,
|
|
24
|
+
fontSize
|
|
25
|
+
} = _ref2;
|
|
26
|
+
return `${Math.ceil(lineHeight * fontSize)}px`;
|
|
27
|
+
},
|
|
28
|
+
height: _ref3 => {
|
|
29
|
+
let {
|
|
30
|
+
iconContainerSize
|
|
31
|
+
} = _ref3;
|
|
32
|
+
return `${iconContainerSize}px`;
|
|
20
33
|
}
|
|
21
34
|
});
|
|
22
35
|
const IconContainer = /*#__PURE__*/styled.span.withConfig({
|
|
23
36
|
displayName: "Item__IconContainer",
|
|
24
37
|
componentId: "components-web__sc-1rfdaul-1"
|
|
25
38
|
})({
|
|
26
|
-
display: '
|
|
39
|
+
display: 'flex',
|
|
40
|
+
justifyContent: 'center',
|
|
27
41
|
alignItems: 'center',
|
|
28
|
-
paddingLeft:
|
|
42
|
+
paddingLeft: _ref4 => {
|
|
29
43
|
let {
|
|
30
44
|
iconPadding
|
|
31
|
-
} =
|
|
45
|
+
} = _ref4;
|
|
32
46
|
return `${iconPadding}px`;
|
|
33
47
|
},
|
|
34
|
-
paddingRight:
|
|
48
|
+
paddingRight: _ref5 => {
|
|
35
49
|
let {
|
|
36
50
|
iconPadding
|
|
37
|
-
} =
|
|
51
|
+
} = _ref5;
|
|
38
52
|
return `${iconPadding}px`;
|
|
39
53
|
},
|
|
40
|
-
fontFamily:
|
|
54
|
+
fontFamily: _ref6 => {
|
|
41
55
|
let {
|
|
42
56
|
fontName,
|
|
43
57
|
fontWeight
|
|
44
|
-
} =
|
|
58
|
+
} = _ref6;
|
|
45
59
|
return applyTextStyles({
|
|
46
60
|
fontName,
|
|
47
61
|
fontWeight
|
|
48
62
|
}).fontFamily;
|
|
63
|
+
},
|
|
64
|
+
height: _ref7 => {
|
|
65
|
+
let {
|
|
66
|
+
iconContainerSize
|
|
67
|
+
} = _ref7;
|
|
68
|
+
return `${iconContainerSize}px`;
|
|
69
|
+
},
|
|
70
|
+
width: _ref8 => {
|
|
71
|
+
let {
|
|
72
|
+
iconContainerSize,
|
|
73
|
+
iconPadding
|
|
74
|
+
} = _ref8;
|
|
75
|
+
return `${iconContainerSize + iconPadding * 2}px`;
|
|
49
76
|
}
|
|
50
77
|
});
|
|
51
|
-
const Item = /*#__PURE__*/forwardRef((
|
|
78
|
+
const Item = /*#__PURE__*/forwardRef((_ref9, ref) => {
|
|
52
79
|
let {
|
|
53
80
|
href,
|
|
54
81
|
children,
|
|
@@ -61,7 +88,7 @@ const Item = /*#__PURE__*/forwardRef((_ref5, ref) => {
|
|
|
61
88
|
LinkRouter,
|
|
62
89
|
linkRouterProps,
|
|
63
90
|
...rest
|
|
64
|
-
} =
|
|
91
|
+
} = _ref9;
|
|
65
92
|
const {
|
|
66
93
|
iconColor,
|
|
67
94
|
icon: ChevronRightIcon,
|
|
@@ -69,22 +96,30 @@ const Item = /*#__PURE__*/forwardRef((_ref5, ref) => {
|
|
|
69
96
|
color,
|
|
70
97
|
iconSize,
|
|
71
98
|
fontSize,
|
|
72
|
-
|
|
99
|
+
fontWeight,
|
|
100
|
+
fontName,
|
|
101
|
+
lineHeight,
|
|
102
|
+
listItemPadding,
|
|
103
|
+
iconContainerSize,
|
|
104
|
+
iconPadding
|
|
73
105
|
} = useThemeTokens('Breadcrumbs', tokens, variant);
|
|
74
106
|
const linkOptions = {
|
|
75
107
|
...clickProps.toPressProps(selectProps(rest)),
|
|
76
108
|
href
|
|
77
109
|
};
|
|
78
110
|
return /*#__PURE__*/_jsx(StyledItemContainer, {
|
|
79
|
-
|
|
111
|
+
listItemPadding: listItemPadding,
|
|
112
|
+
lineHeight: lineHeight,
|
|
113
|
+
fontSize: fontSize,
|
|
114
|
+
iconContainerSize: iconContainerSize,
|
|
80
115
|
children: current ? /*#__PURE__*/_jsx(Typography, {
|
|
81
116
|
tokens: {
|
|
82
117
|
color: currentColor,
|
|
83
|
-
fontSize
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
...variant
|
|
118
|
+
fontSize,
|
|
119
|
+
fontWeight,
|
|
120
|
+
lineHeight
|
|
87
121
|
},
|
|
122
|
+
variant: variant,
|
|
88
123
|
children: children
|
|
89
124
|
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
90
125
|
children: [/*#__PURE__*/_jsx(Link, {
|
|
@@ -92,14 +127,18 @@ const Item = /*#__PURE__*/forwardRef((_ref5, ref) => {
|
|
|
92
127
|
ref: ref,
|
|
93
128
|
tokens: {
|
|
94
129
|
color,
|
|
95
|
-
blockFontSize: fontSize
|
|
130
|
+
blockFontSize: fontSize,
|
|
131
|
+
blockLineHeight: lineHeight
|
|
96
132
|
},
|
|
97
133
|
LinkRouter: LinkRouter,
|
|
98
134
|
linkRouterProps: linkRouterProps,
|
|
99
135
|
variant: variant,
|
|
100
136
|
children: children
|
|
101
137
|
}), /*#__PURE__*/_jsx(IconContainer, {
|
|
102
|
-
|
|
138
|
+
iconPadding: iconPadding,
|
|
139
|
+
fontName: fontName,
|
|
140
|
+
fontWeight: fontWeight,
|
|
141
|
+
iconContainerSize: iconContainerSize,
|
|
103
142
|
children: /*#__PURE__*/_jsx(ChevronRightIcon, {
|
|
104
143
|
size: iconSize,
|
|
105
144
|
color: iconColor
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
],
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@gorhom/portal": "^1.0.14",
|
|
8
|
-
"@telus-uds/components-base": "1.
|
|
8
|
+
"@telus-uds/components-base": "1.78.0",
|
|
9
9
|
"@telus-uds/system-constants": "^1.3.0",
|
|
10
10
|
"fscreen": "^1.2.0",
|
|
11
11
|
"lodash.omit": "^4.5.0",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"react-dates": "^21.8.0",
|
|
14
14
|
"react-helmet-async": "^1.3.0",
|
|
15
15
|
"react-moment-proptypes": "^1.8.1",
|
|
16
|
-
"@telus-uds/system-theme-tokens": "^2.
|
|
16
|
+
"@telus-uds/system-theme-tokens": "^2.52.0",
|
|
17
17
|
"prop-types": "^15.7.2",
|
|
18
18
|
"lodash.throttle": "^4.1.1",
|
|
19
19
|
"react-youtube": "^10.1.0",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"skip": true
|
|
84
84
|
},
|
|
85
85
|
"types": "types/index.d.ts",
|
|
86
|
-
"version": "2.31.
|
|
86
|
+
"version": "2.31.3"
|
|
87
87
|
}
|
|
@@ -9,7 +9,8 @@ import {
|
|
|
9
9
|
selectSystemProps,
|
|
10
10
|
unpackFragment,
|
|
11
11
|
withLinkRouter,
|
|
12
|
-
getTokensPropType
|
|
12
|
+
getTokensPropType,
|
|
13
|
+
useThemeTokens
|
|
13
14
|
} from '@telus-uds/components-base'
|
|
14
15
|
import { htmlAttrs } from '../utils'
|
|
15
16
|
import Item from './Item/Item'
|
|
@@ -24,7 +25,8 @@ const StyledList = styled.ol({
|
|
|
24
25
|
listStylePosition: 'inside',
|
|
25
26
|
margin: 0,
|
|
26
27
|
padding: 0,
|
|
27
|
-
alignItems: 'baseline'
|
|
28
|
+
alignItems: 'baseline',
|
|
29
|
+
height: ({ iconContainerSize }) => `${iconContainerSize}px`
|
|
28
30
|
})
|
|
29
31
|
|
|
30
32
|
const omitProps = ({
|
|
@@ -135,6 +137,7 @@ const Breadcrumbs = ({
|
|
|
135
137
|
: routes.filter((route) => route.path && route.breadcrumbName)
|
|
136
138
|
|
|
137
139
|
const items = getItems(activeRoutes, params, !children)
|
|
140
|
+
const themeTokens = useThemeTokens('Breadcrumbs', tokens, variant)
|
|
138
141
|
|
|
139
142
|
const metadata = (
|
|
140
143
|
<HelmetProvider context={helmetContext}>
|
|
@@ -154,7 +157,7 @@ const Breadcrumbs = ({
|
|
|
154
157
|
|
|
155
158
|
return (
|
|
156
159
|
<nav aria-label="Breadcrumb" {...selectProps(rest)}>
|
|
157
|
-
<StyledList>
|
|
160
|
+
<StyledList iconContainerSize={themeTokens.iconContainerSize}>
|
|
158
161
|
{items.map(
|
|
159
162
|
({
|
|
160
163
|
href,
|
|
@@ -15,15 +15,20 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs])
|
|
|
15
15
|
|
|
16
16
|
const StyledItemContainer = styled.li({
|
|
17
17
|
display: 'flex',
|
|
18
|
-
paddingLeft: ({ listItemPadding }) => `${listItemPadding}px
|
|
18
|
+
paddingLeft: ({ listItemPadding }) => `${listItemPadding}px`,
|
|
19
|
+
lineHeight: ({ lineHeight, fontSize }) => `${Math.ceil(lineHeight * fontSize)}px`,
|
|
20
|
+
height: ({ iconContainerSize }) => `${iconContainerSize}px`
|
|
19
21
|
})
|
|
20
22
|
|
|
21
23
|
const IconContainer = styled.span({
|
|
22
|
-
display: '
|
|
24
|
+
display: 'flex',
|
|
25
|
+
justifyContent: 'center',
|
|
23
26
|
alignItems: 'center',
|
|
24
27
|
paddingLeft: ({ iconPadding }) => `${iconPadding}px`,
|
|
25
28
|
paddingRight: ({ iconPadding }) => `${iconPadding}px`,
|
|
26
|
-
fontFamily: ({ fontName, fontWeight }) => applyTextStyles({ fontName, fontWeight }).fontFamily
|
|
29
|
+
fontFamily: ({ fontName, fontWeight }) => applyTextStyles({ fontName, fontWeight }).fontFamily,
|
|
30
|
+
height: ({ iconContainerSize }) => `${iconContainerSize}px`,
|
|
31
|
+
width: ({ iconContainerSize, iconPadding }) => `${iconContainerSize + iconPadding * 2}px`
|
|
27
32
|
})
|
|
28
33
|
|
|
29
34
|
const Item = forwardRef(
|
|
@@ -47,15 +52,33 @@ const Item = forwardRef(
|
|
|
47
52
|
color,
|
|
48
53
|
iconSize,
|
|
49
54
|
fontSize,
|
|
50
|
-
|
|
55
|
+
fontWeight,
|
|
56
|
+
fontName,
|
|
57
|
+
lineHeight,
|
|
58
|
+
listItemPadding,
|
|
59
|
+
iconContainerSize,
|
|
60
|
+
iconPadding
|
|
51
61
|
} = useThemeTokens('Breadcrumbs', tokens, variant)
|
|
52
62
|
|
|
53
63
|
const linkOptions = { ...clickProps.toPressProps(selectProps(rest)), href }
|
|
54
64
|
|
|
55
65
|
return (
|
|
56
|
-
<StyledItemContainer
|
|
66
|
+
<StyledItemContainer
|
|
67
|
+
listItemPadding={listItemPadding}
|
|
68
|
+
lineHeight={lineHeight}
|
|
69
|
+
fontSize={fontSize}
|
|
70
|
+
iconContainerSize={iconContainerSize}
|
|
71
|
+
>
|
|
57
72
|
{current ? (
|
|
58
|
-
<Typography
|
|
73
|
+
<Typography
|
|
74
|
+
tokens={{
|
|
75
|
+
color: currentColor,
|
|
76
|
+
fontSize,
|
|
77
|
+
fontWeight,
|
|
78
|
+
lineHeight
|
|
79
|
+
}}
|
|
80
|
+
variant={variant}
|
|
81
|
+
>
|
|
59
82
|
{children}
|
|
60
83
|
</Typography>
|
|
61
84
|
) : (
|
|
@@ -63,14 +86,19 @@ const Item = forwardRef(
|
|
|
63
86
|
<Link
|
|
64
87
|
{...linkOptions}
|
|
65
88
|
ref={ref}
|
|
66
|
-
tokens={{ color, blockFontSize: fontSize }}
|
|
89
|
+
tokens={{ color, blockFontSize: fontSize, blockLineHeight: lineHeight }}
|
|
67
90
|
LinkRouter={LinkRouter}
|
|
68
91
|
linkRouterProps={linkRouterProps}
|
|
69
92
|
variant={variant}
|
|
70
93
|
>
|
|
71
94
|
{children}
|
|
72
95
|
</Link>
|
|
73
|
-
<IconContainer
|
|
96
|
+
<IconContainer
|
|
97
|
+
iconPadding={iconPadding}
|
|
98
|
+
fontName={fontName}
|
|
99
|
+
fontWeight={fontWeight}
|
|
100
|
+
iconContainerSize={iconContainerSize}
|
|
101
|
+
>
|
|
74
102
|
<ChevronRightIcon size={iconSize} color={iconColor} />
|
|
75
103
|
</IconContainer>
|
|
76
104
|
</>
|