@telus-uds/components-base 1.72.0 → 1.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +35 -2
  2. package/lib/Box/Box.js +17 -6
  3. package/lib/ExpandCollapse/Panel.js +1 -1
  4. package/lib/FlexGrid/Col/Col.js +42 -19
  5. package/lib/FlexGrid/FlexGrid.js +40 -17
  6. package/lib/FlexGrid/Row/Row.js +45 -22
  7. package/lib/Footnote/Footnote.js +328 -0
  8. package/lib/Footnote/FootnoteLink.js +108 -0
  9. package/lib/Footnote/dictionary.js +19 -0
  10. package/lib/Footnote/index.js +12 -0
  11. package/lib/Listbox/ListboxGroup.js +7 -1
  12. package/lib/MultiSelectFilter/MultiSelectFilter.js +1 -0
  13. package/lib/Notification/Notification.js +13 -5
  14. package/lib/OrderedList/ItemBase.js +7 -1
  15. package/lib/Responsive/Responsive.js +32 -14
  16. package/lib/Responsive/ResponsiveProp.js +46 -0
  17. package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +75 -0
  18. package/lib/ThemeProvider/ThemeProvider.js +5 -2
  19. package/lib/ThemeProvider/index.js +9 -1
  20. package/lib/ThemeProvider/useResponsiveThemeTokens.js +89 -0
  21. package/lib/Typography/Typography.js +50 -22
  22. package/lib/index.js +8 -0
  23. package/lib/server.js +40 -0
  24. package/lib/utils/ssr-media-query/utils/create-media-query-styles.js +39 -6
  25. package/lib-module/Box/Box.js +17 -6
  26. package/lib-module/ExpandCollapse/Panel.js +1 -1
  27. package/lib-module/FlexGrid/Col/Col.js +42 -19
  28. package/lib-module/FlexGrid/FlexGrid.js +40 -17
  29. package/lib-module/FlexGrid/Row/Row.js +45 -22
  30. package/lib-module/Footnote/Footnote.js +319 -0
  31. package/lib-module/Footnote/FootnoteLink.js +101 -0
  32. package/lib-module/Footnote/dictionary.js +12 -0
  33. package/lib-module/Footnote/index.js +4 -0
  34. package/lib-module/Listbox/ListboxGroup.js +7 -1
  35. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +1 -0
  36. package/lib-module/Notification/Notification.js +13 -5
  37. package/lib-module/OrderedList/ItemBase.js +7 -1
  38. package/lib-module/Responsive/Responsive.js +32 -15
  39. package/lib-module/Responsive/ResponsiveProp.js +39 -0
  40. package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +67 -0
  41. package/lib-module/ThemeProvider/ThemeProvider.js +5 -2
  42. package/lib-module/ThemeProvider/index.js +1 -0
  43. package/lib-module/ThemeProvider/useResponsiveThemeTokens.js +81 -0
  44. package/lib-module/Typography/Typography.js +52 -24
  45. package/lib-module/index.js +1 -0
  46. package/lib-module/server.js +4 -0
  47. package/lib-module/utils/ssr-media-query/utils/create-media-query-styles.js +36 -6
  48. package/package.json +13 -2
  49. package/src/Box/Box.jsx +35 -17
  50. package/src/ExpandCollapse/Panel.jsx +1 -1
  51. package/src/FlexGrid/Col/Col.jsx +42 -13
  52. package/src/FlexGrid/FlexGrid.jsx +40 -11
  53. package/src/FlexGrid/Row/Row.jsx +40 -16
  54. package/src/Footnote/Footnote.jsx +316 -0
  55. package/src/Footnote/FootnoteLink.jsx +95 -0
  56. package/src/Footnote/dictionary.js +12 -0
  57. package/src/Footnote/index.js +6 -0
  58. package/src/Listbox/ListboxGroup.jsx +9 -2
  59. package/src/MultiSelectFilter/MultiSelectFilter.jsx +2 -0
  60. package/src/Notification/Notification.jsx +15 -3
  61. package/src/OrderedList/ItemBase.jsx +14 -2
  62. package/src/Responsive/Responsive.jsx +31 -12
  63. package/src/Responsive/ResponsiveProp.jsx +33 -0
  64. package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +60 -0
  65. package/src/ThemeProvider/ThemeProvider.jsx +5 -2
  66. package/src/ThemeProvider/index.js +1 -0
  67. package/src/ThemeProvider/useResponsiveThemeTokens.js +85 -0
  68. package/src/Typography/Typography.jsx +77 -24
  69. package/src/index.js +1 -0
  70. package/src/server.js +4 -0
  71. package/src/utils/ssr-media-query/utils/create-media-query-styles.js +21 -6
package/CHANGELOG.md CHANGED
@@ -1,12 +1,45 @@
1
1
  # Change Log - @telus-uds/components-base
2
2
 
3
- This log was last generated on Wed, 13 Dec 2023 21:13:56 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 18 Jan 2024 22:43:26 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 1.74.0
8
+
9
+ Thu, 18 Jan 2024 22:43:26 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - refactor footnote component for multi-platform (guillermo.peitzner@telus.com)
14
+ - introducing inheritedStyles prop for responsive (srikanthkhari@gmail.com)
15
+ - Bump @telus-uds/system-theme-tokens to v2.50.0
16
+
17
+ ### Patches
18
+
19
+ - expandcollapse doesn't expand in react native (guillermo.peitzner@telus.com)
20
+ - Typography ignoring viewport-based theme rules with enableMediaQueryStylesheet set to false Fixed. (srikanthkhari@gmail.com)
21
+
22
+ ## 1.73.0
23
+
24
+ Mon, 08 Jan 2024 20:16:06 GMT
25
+
26
+ ### Minor changes
27
+
28
+ - RNMQ integration to Responsive component (srikanthkhari@gmail.com)
29
+ - Changes in the Notification component (35577399+JoshHC@users.noreply.github.com)
30
+ - Support server component (wlsdud194@hotmail.com)
31
+ - Changes to the box component for allow gradient in mobile (35577399+JoshHC@users.noreply.github.com)
32
+ - update story for badge to include subtle variant (evander.owusu@telus.com)
33
+ - Bump @telus-uds/system-theme-tokens to v2.49.0
34
+
35
+ ### Patches
36
+
37
+ - fix multiselectfilter controlled rendered values (guillermo.peitzner@telus.com)
38
+ - remove listitem accessibility role from android devices (guillermo.peitzner@telus.com)
39
+
7
40
  ## 1.72.0
8
41
 
9
- Wed, 13 Dec 2023 21:13:56 GMT
42
+ Wed, 13 Dec 2023 21:24:24 GMT
10
43
 
11
44
  ### Minor changes
12
45
 
package/lib/Box/Box.js CHANGED
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
10
10
  var _ScrollView = _interopRequireDefault(require("react-native-web/dist/cjs/exports/ScrollView"));
11
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
11
12
  var _ThemeProvider = require("../ThemeProvider");
12
13
  var _utils = require("../utils");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -23,7 +24,7 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
23
24
  * @typedef {import('../utils/props/spacingProps.js').SpacingOptions} SpacingOptions
24
25
  */
25
26
 
26
- const selectBoxStyles = _ref => {
27
+ const selectBoxStyles = (_ref, customGradient) => {
27
28
  let {
28
29
  backgroundColor,
29
30
  gradient,
@@ -49,7 +50,11 @@ const selectBoxStyles = _ref => {
49
50
  angle,
50
51
  stops: [stopOne, stopTwo]
51
52
  } = gradient;
52
- styles.backgroundImage = `linear-gradient(${angle}deg, ${stopOne.color}, 75% , ${stopTwo.color})`;
53
+ if (_Platform.default.OS === 'web') {
54
+ styles.backgroundImage = `linear-gradient(${angle}deg, ${stopOne.color}, 75%, ${stopTwo.color})`;
55
+ } else if (customGradient && _Platform.default.OS !== 'web') {
56
+ styles.colors = [stopOne.color, stopTwo.color];
57
+ }
53
58
  }
54
59
  const paddings = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'];
55
60
  // Only set on styles if token provided because we spread this object after the spacing scale values
@@ -144,6 +149,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
144
149
  accessibilityRole,
145
150
  testID,
146
151
  dataSet,
152
+ customGradient,
147
153
  ...rest
148
154
  } = _ref2;
149
155
  const props = {
@@ -158,8 +164,9 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
158
164
  paddingRight: (0, _utils.useSpacingScale)(right),
159
165
  paddingTop: (0, _utils.useSpacingScale)(top),
160
166
  paddingBottom: (0, _utils.useSpacingScale)(bottom),
161
- ...selectBoxStyles(themeTokens)
167
+ ...selectBoxStyles(themeTokens, customGradient)
162
168
  };
169
+ const childrenToRender = typeof customGradient === 'function' ? customGradient(styles.colors, styles)(children) : children;
163
170
  if (scroll) {
164
171
  const scrollProps = typeof scroll === 'object' ? scroll : {};
165
172
  scrollProps.contentContainerStyle = [styles, scrollProps.contentContainerStyle];
@@ -169,7 +176,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
169
176
  testID: testID,
170
177
  dataSet: dataSet,
171
178
  ref: ref,
172
- children: children
179
+ children: childrenToRender
173
180
  });
174
181
  }
175
182
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
@@ -178,7 +185,7 @@ const Box = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
178
185
  testID: testID,
179
186
  dataSet: dataSet,
180
187
  ref: ref,
181
- children: children
188
+ children: childrenToRender
182
189
  });
183
190
  });
184
191
  Box.displayName = 'Box';
@@ -262,7 +269,11 @@ Box.propTypes = {
262
269
  /**
263
270
  * Box accepts any content as children.
264
271
  */
265
- children: _propTypes.default.node.isRequired
272
+ children: _propTypes.default.node.isRequired,
273
+ /**
274
+ Use this prop if need to add a custom gradient for mobile
275
+ */
276
+ customGradient: _propTypes.default.func
266
277
  };
267
278
  var _default = Box;
268
279
  exports.default = _default;
@@ -174,7 +174,7 @@ const ExpandCollapsePanel = /*#__PURE__*/(0, _react.forwardRef)((_ref4, ref) =>
174
174
  },
175
175
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
176
176
  style: selectContainerStyles(themeTokens),
177
- children: isExpanded ? children : null
177
+ children: children
178
178
  })
179
179
  })
180
180
  })]
@@ -10,6 +10,8 @@ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/export
10
10
  var _GutterContext = _interopRequireDefault(require("../providers/GutterContext"));
11
11
  var _helpers = _interopRequireDefault(require("../helpers"));
12
12
  var _utils = require("../../utils");
13
+ var _ViewportProvider = require("../../ViewportProvider");
14
+ var _ThemeProvider = require("../../ThemeProvider");
13
15
  var _jsxRuntime = require("react/jsx-runtime");
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -32,6 +34,12 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
32
34
  ...viewProps
33
35
  } = _ref;
34
36
  const gutter = (0, _react.useContext)(_GutterContext.default);
37
+ const viewport = (0, _ViewportProvider.useViewport)();
38
+ const {
39
+ themeOptions: {
40
+ enableMediaQueryStyleSheet
41
+ }
42
+ } = (0, _ThemeProvider.useTheme)();
35
43
  const hiddenLevels = (0, _helpers.default)([xs, sm, md, lg, xl]);
36
44
  const getHorizontalAlignLevel = () => {
37
45
  if (typeof horizontalAlign === 'object') {
@@ -95,7 +103,15 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
95
103
  lg: offsetsWithIheritance[3],
96
104
  xl: offsetsWithIheritance[4]
97
105
  };
98
- const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
106
+ const staticStyles = {
107
+ flexGrow: 1,
108
+ flexShrink: 0,
109
+ flexBasis: 'auto',
110
+ maxWidth: '100%',
111
+ paddingLeft: gutter ? 16 : 0,
112
+ paddingRight: gutter ? 16 : 0
113
+ };
114
+ const stylesByViewport = {
99
115
  xs: {
100
116
  display: hiddenLevels[0] === 0 ? 'none' : shown,
101
117
  textAlign: horizontalAlignLevel[0],
@@ -126,27 +142,34 @@ const Col = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
126
142
  ...calculateWidth(sizes.xl),
127
143
  ...calculateOffset(offsets.xl)
128
144
  }
129
- });
130
- const {
131
- ids,
132
- styles
133
- } = _utils.StyleSheet.create({
134
- col: {
135
- flexGrow: 1,
136
- flexShrink: 0,
137
- flexBasis: 'auto',
138
- maxWidth: '100%',
139
- paddingLeft: gutter ? 16 : 0,
140
- paddingRight: gutter ? 16 : 0,
141
- ...mediaQueryStyles
142
- }
143
- });
145
+ };
146
+ let colStyles;
147
+ let mediaIds;
148
+ if (enableMediaQueryStyleSheet) {
149
+ const mediaQueryStyles = (0, _utils.createMediaQueryStyles)(stylesByViewport);
150
+ const {
151
+ ids,
152
+ styles
153
+ } = _utils.StyleSheet.create({
154
+ col: {
155
+ ...staticStyles,
156
+ ...mediaQueryStyles
157
+ }
158
+ });
159
+ colStyles = styles.col;
160
+ mediaIds = ids.col;
161
+ } else {
162
+ colStyles = {
163
+ ...staticStyles,
164
+ ...stylesByViewport[viewport]
165
+ };
166
+ }
144
167
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
145
168
  ref: ref,
146
169
  ...viewProps,
147
- style: [styles.col],
148
- dataSet: {
149
- media: ids.col
170
+ style: colStyles,
171
+ dataSet: mediaIds && {
172
+ media: mediaIds
150
173
  },
151
174
  children: children
152
175
  });
@@ -12,6 +12,8 @@ var _Row = _interopRequireDefault(require("./Row"));
12
12
  var _Col = _interopRequireDefault(require("./Col"));
13
13
  var _GutterContext = _interopRequireDefault(require("./providers/GutterContext"));
14
14
  var _helpers = _interopRequireDefault(require("./helpers"));
15
+ var _ThemeProvider = require("../ThemeProvider");
16
+ var _ViewportProvider = require("../ViewportProvider");
15
17
  var _jsxRuntime = require("react/jsx-runtime");
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -38,7 +40,15 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
38
40
  ...rest
39
41
  } = _ref;
40
42
  const reverseLevel = (0, _helpers.default)([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
41
- const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
43
+ const viewport = (0, _ViewportProvider.useViewport)();
44
+ const {
45
+ themeOptions: {
46
+ enableMediaQueryStyleSheet
47
+ }
48
+ } = (0, _ThemeProvider.useTheme)();
49
+ let flexgridStyles;
50
+ let mediaIds;
51
+ const stylesByViewport = {
42
52
  xs: {
43
53
  flexDirection: reverseLevel[0] ? 'column-reverse' : 'column'
44
54
  },
@@ -58,19 +68,32 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
58
68
  maxWidth: limitWidth && _systemConstants.viewports.map.get('xl'),
59
69
  flexDirection: reverseLevel[4] ? 'column-reverse' : 'column'
60
70
  }
61
- });
62
- const {
63
- ids,
64
- styles
65
- } = _utils.StyleSheet.create({
66
- flexgrid: {
67
- flexWrap: 'wrap',
68
- width: outsideGutter ? '100%' : 'auto',
69
- marginVertical: 0,
70
- marginHorizontal: outsideGutter ? 'auto' : -16,
71
- ...mediaQueryStyles
72
- }
73
- });
71
+ };
72
+ const staticStyles = {
73
+ flexWrap: 'wrap',
74
+ width: outsideGutter ? '100%' : 'auto',
75
+ marginVertical: 0,
76
+ marginHorizontal: outsideGutter ? 'auto' : -16
77
+ };
78
+ if (enableMediaQueryStyleSheet) {
79
+ const mediaQueryStyles = (0, _utils.createMediaQueryStyles)(stylesByViewport);
80
+ const {
81
+ ids,
82
+ styles
83
+ } = _utils.StyleSheet.create({
84
+ flexgrid: {
85
+ ...staticStyles,
86
+ ...mediaQueryStyles
87
+ }
88
+ });
89
+ flexgridStyles = styles.flexgrid;
90
+ mediaIds = ids.flexgrid;
91
+ } else {
92
+ flexgridStyles = {
93
+ ...staticStyles,
94
+ ...stylesByViewport[viewport]
95
+ };
96
+ }
74
97
  const props = {
75
98
  accessibilityRole,
76
99
  ...(0, _utils.getA11yPropsFromHtmlTag)(tag, accessibilityRole),
@@ -81,9 +104,9 @@ const FlexGrid = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
81
104
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
82
105
  ref: ref,
83
106
  ...props,
84
- style: [styles.flexgrid],
85
- dataSet: {
86
- media: ids.flexgrid
107
+ style: flexgridStyles,
108
+ dataSet: mediaIds && {
109
+ media: mediaIds
87
110
  },
88
111
  children: children
89
112
  })
@@ -8,6 +8,8 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _helpers = _interopRequireDefault(require("../helpers"));
10
10
  var _utils = require("../../utils");
11
+ var _ThemeProvider = require("../../ThemeProvider");
12
+ var _ViewportProvider = require("../../ViewportProvider");
11
13
  var _jsxRuntime = require("react/jsx-runtime");
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -78,8 +80,25 @@ const Row = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
78
80
  children,
79
81
  ...rest
80
82
  } = _ref;
83
+ const {
84
+ themeOptions: {
85
+ enableMediaQueryStyleSheet
86
+ }
87
+ } = (0, _ThemeProvider.useTheme)();
88
+ const viewport = (0, _ViewportProvider.useViewport)();
89
+ const staticStyles = {
90
+ width: '100%',
91
+ marginVertical: 0,
92
+ marginHorizontal: 'auto',
93
+ flexGrow: 0,
94
+ flexShrink: 1,
95
+ flexBasis: 'auto',
96
+ ...horizontalAlignStyles(horizontalAlign),
97
+ ...verticalAlignStyles(verticalAlign),
98
+ ...distributeStyles(distribute)
99
+ };
81
100
  const reverseLevel = (0, _helpers.default)([xsReverse, smReverse, mdReverse, lgReverse, xlReverse]);
82
- const mediaQueryStyles = (0, _utils.createMediaQueryStyles)({
101
+ const stylesByViewport = {
83
102
  xs: {
84
103
  flexDirection: reverseLevel[0] ? 'row-reverse' : 'row',
85
104
  flexWrap: reverseLevel[0] ? 'wrap-reverse' : 'wrap'
@@ -100,30 +119,34 @@ const Row = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
100
119
  flexDirection: reverseLevel[4] ? 'row-reverse' : 'row',
101
120
  flexWrap: reverseLevel[4] ? 'wrap-reverse' : 'wrap'
102
121
  }
103
- });
104
- const {
105
- ids,
106
- styles
107
- } = _utils.StyleSheet.create({
108
- row: {
109
- width: '100%',
110
- marginVertical: 0,
111
- marginHorizontal: 'auto',
112
- flexGrow: 0,
113
- flexShrink: 1,
114
- flexBasis: 'auto',
115
- ...horizontalAlignStyles(horizontalAlign),
116
- ...verticalAlignStyles(verticalAlign),
117
- ...distributeStyles(distribute),
118
- ...mediaQueryStyles
119
- }
120
- });
122
+ };
123
+ let rowStyles;
124
+ let mediaIds;
125
+ if (enableMediaQueryStyleSheet) {
126
+ const mediaQueryStyles = (0, _utils.createMediaQueryStyles)(stylesByViewport);
127
+ const {
128
+ ids,
129
+ styles
130
+ } = _utils.StyleSheet.create({
131
+ row: {
132
+ ...staticStyles,
133
+ ...mediaQueryStyles
134
+ }
135
+ });
136
+ rowStyles = styles.row;
137
+ mediaIds = ids.row;
138
+ } else {
139
+ rowStyles = {
140
+ ...staticStyles,
141
+ ...stylesByViewport[viewport]
142
+ };
143
+ }
121
144
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
122
145
  ref: ref,
123
146
  ...rest,
124
- style: [styles.row],
125
- dataSet: {
126
- media: ids.row
147
+ style: rowStyles,
148
+ dataSet: mediaIds && {
149
+ media: mediaIds
127
150
  },
128
151
  children: children
129
152
  });