@telus-uds/components-base 1.71.0 → 1.73.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 (115) hide show
  1. package/CHANGELOG.md +37 -2
  2. package/lib/Box/Box.js +17 -6
  3. package/lib/ColourToggle/ColourBubble.js +135 -0
  4. package/lib/ColourToggle/ColourToggle.js +101 -0
  5. package/lib/ColourToggle/index.js +10 -0
  6. package/lib/FlexGrid/Col/Col.js +42 -19
  7. package/lib/FlexGrid/FlexGrid.js +40 -17
  8. package/lib/FlexGrid/Row/Row.js +45 -22
  9. package/lib/Listbox/ListboxGroup.js +7 -1
  10. package/lib/Modal/ModalContent.js +4 -6
  11. package/lib/MultiSelectFilter/MultiSelectFilter.js +1 -0
  12. package/lib/Notification/Notification.js +13 -5
  13. package/lib/OrderedList/Item.js +180 -0
  14. package/lib/OrderedList/ItemBase.js +54 -0
  15. package/lib/OrderedList/OrderedList.js +71 -0
  16. package/lib/OrderedList/OrderedListBase.js +47 -0
  17. package/lib/OrderedList/index.js +10 -0
  18. package/lib/Responsive/Responsive.js +24 -14
  19. package/lib/Responsive/ResponsiveProp.js +46 -0
  20. package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +72 -0
  21. package/lib/ThemeProvider/ThemeProvider.js +5 -2
  22. package/lib/ThemeProvider/index.js +9 -1
  23. package/lib/ThemeProvider/useResponsiveThemeTokens.js +89 -0
  24. package/lib/Typography/Typography.js +48 -22
  25. package/lib/index.js +16 -0
  26. package/lib/server.js +40 -0
  27. package/lib/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +56 -0
  28. package/lib/utils/ssr-media-query/create-stylesheet/index.android.js +10 -0
  29. package/lib/utils/ssr-media-query/create-stylesheet/index.ios.js +10 -0
  30. package/lib/utils/ssr-media-query/create-stylesheet/index.js +44 -0
  31. package/lib/utils/ssr-media-query/utils/create-media-query-styles.js +39 -6
  32. package/lib-module/Box/Box.js +17 -6
  33. package/lib-module/ColourToggle/ColourBubble.js +125 -0
  34. package/lib-module/ColourToggle/ColourToggle.js +92 -0
  35. package/lib-module/ColourToggle/index.js +2 -0
  36. package/lib-module/FlexGrid/Col/Col.js +42 -19
  37. package/lib-module/FlexGrid/FlexGrid.js +40 -17
  38. package/lib-module/FlexGrid/Row/Row.js +45 -22
  39. package/lib-module/Listbox/ListboxGroup.js +7 -1
  40. package/lib-module/Modal/ModalContent.js +4 -6
  41. package/lib-module/MultiSelectFilter/MultiSelectFilter.js +1 -0
  42. package/lib-module/Notification/Notification.js +13 -5
  43. package/lib-module/OrderedList/Item.js +171 -0
  44. package/lib-module/OrderedList/ItemBase.js +43 -0
  45. package/lib-module/OrderedList/OrderedList.js +61 -0
  46. package/lib-module/OrderedList/OrderedListBase.js +36 -0
  47. package/lib-module/OrderedList/index.js +2 -0
  48. package/lib-module/Responsive/Responsive.js +24 -15
  49. package/lib-module/Responsive/ResponsiveProp.js +39 -0
  50. package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +64 -0
  51. package/lib-module/ThemeProvider/ThemeProvider.js +5 -2
  52. package/lib-module/ThemeProvider/index.js +1 -0
  53. package/lib-module/ThemeProvider/useResponsiveThemeTokens.js +81 -0
  54. package/lib-module/Typography/Typography.js +50 -24
  55. package/lib-module/index.js +2 -0
  56. package/lib-module/server.js +4 -0
  57. package/lib-module/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +48 -0
  58. package/lib-module/utils/ssr-media-query/create-stylesheet/index.android.js +2 -0
  59. package/lib-module/utils/ssr-media-query/create-stylesheet/index.ios.js +2 -0
  60. package/lib-module/utils/ssr-media-query/create-stylesheet/index.js +36 -0
  61. package/lib-module/utils/ssr-media-query/utils/create-media-query-styles.js +36 -6
  62. package/package.json +13 -2
  63. package/src/Box/Box.jsx +35 -17
  64. package/src/ColourToggle/ColourBubble.jsx +111 -0
  65. package/src/ColourToggle/ColourToggle.jsx +83 -0
  66. package/src/ColourToggle/index.js +3 -0
  67. package/src/FlexGrid/Col/Col.jsx +42 -13
  68. package/src/FlexGrid/FlexGrid.jsx +40 -11
  69. package/src/FlexGrid/Row/Row.jsx +40 -16
  70. package/src/Listbox/ListboxGroup.jsx +9 -2
  71. package/src/Modal/ModalContent.jsx +4 -6
  72. package/src/MultiSelectFilter/MultiSelectFilter.jsx +2 -0
  73. package/src/Notification/Notification.jsx +15 -3
  74. package/src/OrderedList/Item.jsx +152 -0
  75. package/src/OrderedList/ItemBase.jsx +43 -0
  76. package/src/OrderedList/OrderedList.jsx +61 -0
  77. package/src/OrderedList/OrderedListBase.jsx +33 -0
  78. package/src/OrderedList/index.js +3 -0
  79. package/src/Responsive/Responsive.jsx +24 -11
  80. package/src/Responsive/ResponsiveProp.jsx +33 -0
  81. package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +58 -0
  82. package/src/ThemeProvider/ThemeProvider.jsx +5 -2
  83. package/src/ThemeProvider/index.js +1 -0
  84. package/src/ThemeProvider/useResponsiveThemeTokens.js +85 -0
  85. package/src/Typography/Typography.jsx +72 -24
  86. package/src/index.js +2 -0
  87. package/src/server.js +4 -0
  88. package/src/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +41 -0
  89. package/src/utils/ssr-media-query/create-stylesheet/index.android.js +3 -0
  90. package/src/utils/ssr-media-query/create-stylesheet/index.ios.js +3 -0
  91. package/src/utils/ssr-media-query/create-stylesheet/index.js +33 -0
  92. package/src/utils/ssr-media-query/utils/create-media-query-styles.js +21 -6
  93. package/types/Badge.d.ts +28 -0
  94. package/types/Box.d.ts +52 -0
  95. package/types/ChevronLink.d.ts +47 -0
  96. package/types/Common.d.ts +106 -0
  97. package/types/Divider.d.ts +19 -0
  98. package/types/ExpandCollapse.d.ts +65 -0
  99. package/types/HorizontalScrollButton.d.ts +16 -0
  100. package/types/Icon.d.ts +21 -0
  101. package/types/Link.d.ts +48 -0
  102. package/types/List.d.ts +48 -0
  103. package/types/Search.d.ts +38 -0
  104. package/types/Select.d.ts +57 -0
  105. package/types/Spacer.d.ts +5 -0
  106. package/types/StackView.d.ts +28 -0
  107. package/types/Tabs.d.ts +46 -0
  108. package/types/TextButton.d.ts +11 -0
  109. package/types/ToggleSwitch.d.ts +54 -0
  110. package/types/ToolTip.d.ts +40 -0
  111. package/types/Typography.d.ts +39 -0
  112. package/types/index.d.ts +62 -0
  113. package/lib/utils/ssr-media-query/create-stylesheet.js +0 -76
  114. package/lib-module/utils/ssr-media-query/create-stylesheet.js +0 -68
  115. package/src/utils/ssr-media-query/create-stylesheet.js +0 -61
@@ -39,14 +39,16 @@ const ModalContent = _ref => {
39
39
  children,
40
40
  onCancel
41
41
  } = _ref;
42
+ const viewport = (0, _ViewportProvider.useViewport)();
42
43
  const {
43
44
  headingColor,
44
45
  cancelButtonColor,
45
46
  ...themeTokens
46
- } = (0, _ThemeProvider.useThemeTokens)('Modal', tokens, variant);
47
+ } = (0, _ThemeProvider.useThemeTokens)('Modal', tokens, variant, {
48
+ viewport
49
+ });
47
50
  const [scrollContainerHeight, setScrollContainerHeight] = (0, _react.useState)(0);
48
51
  const [scrollContentHeight, setScrollContentHeight] = (0, _react.useState)(0);
49
- const viewport = (0, _ViewportProvider.useViewport)();
50
52
  const handleContainerLayout = _ref2 => {
51
53
  let {
52
54
  nativeEvent: {
@@ -141,7 +143,6 @@ const ModalContent = _ref => {
141
143
  onPress: onConfirm,
142
144
  children: confirmButtonText
143
145
  }), hasCancelButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
144
- style: styles.styledTextButtonContainer,
145
146
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CancelButton, {
146
147
  tokens: {
147
148
  color: cancelButtonColor
@@ -158,9 +159,6 @@ const styles = _StyleSheet.default.create({
158
159
  flex: 1,
159
160
  flexDirection: 'column',
160
161
  minHeight: _Platform.default.OS === 'web' ? '100%' : 'auto'
161
- },
162
- styledTextButtonContainer: {
163
- flex: 1
164
162
  }
165
163
  });
166
164
  ModalContent.propTypes = {
@@ -105,6 +105,7 @@ const MultiSelectFilter = _ref3 => {
105
105
  if (colSize === 1) return setMaxWidth(false);
106
106
  return colSize === 2 && setMaxWidth(true);
107
107
  }, [colSize]);
108
+ (0, _react.useEffect)(() => setCheckedIds(currentValues ?? []), [currentValues]);
108
109
  const {
109
110
  headerFontColor,
110
111
  headerFontSize,
@@ -22,10 +22,18 @@ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_u
22
22
  const selectContainerStyles = tokens => ({
23
23
  ...tokens
24
24
  });
25
- const selectTextStyles = (tokens, themeOptions) => (0, _ThemeProvider.applyTextStyles)({
26
- ...(0, _utils.selectTokens)('Typography', tokens),
27
- themeOptions
28
- });
25
+ const selectTextStyles = (tokens, themeOptions, isDismissible) => {
26
+ const textTokens = (0, _utils.selectTokens)('Typography', tokens);
27
+ const styles = {
28
+ ...textTokens,
29
+ themeOptions,
30
+ overflow: 'hidden'
31
+ };
32
+ if (!isDismissible) {
33
+ styles.flexShrink = 1;
34
+ }
35
+ return (0, _ThemeProvider.applyTextStyles)(styles);
36
+ };
29
37
  const selectIconProps = _ref => {
30
38
  let {
31
39
  iconSize,
@@ -146,7 +154,7 @@ const Notification = /*#__PURE__*/(0, _react.forwardRef)((_ref5, ref) => {
146
154
  if (isDismissed) {
147
155
  return null;
148
156
  }
149
- const textStyles = selectTextStyles(themeTokens, themeOptions);
157
+ const textStyles = selectTextStyles(themeTokens, themeOptions, dismissible);
150
158
  const content = (0, _utils.wrapStringsInText)(typeof children === 'function' ? children({
151
159
  textStyles,
152
160
  variant
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
10
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
+ var _utils = require("../utils");
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+ var _StackView = _interopRequireDefault(require("../StackView"));
14
+ var _Typography = _interopRequireDefault(require("../Typography"));
15
+ var _ItemBase = _interopRequireDefault(require("./ItemBase"));
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ 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); }
19
+ 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; }
20
+ const [selectProps, selectedSystemPropTypes] = (0, _utils.selectSystemProps)([_utils.htmlAttrs, _utils.viewProps]);
21
+ const selectItemTextStyles = (_ref, themeOptions) => {
22
+ let {
23
+ itemFontHeight,
24
+ itemFontSize,
25
+ itemLineHeight,
26
+ itemFontName,
27
+ itemColor
28
+ } = _ref;
29
+ return (0, _ThemeProvider.applyTextStyles)({
30
+ fontWeight: itemFontHeight,
31
+ fontSize: itemFontSize,
32
+ fontName: itemFontName,
33
+ color: itemColor,
34
+ themeOptions,
35
+ lineHeight: itemLineHeight
36
+ });
37
+ };
38
+ const selectItemCounterStyles = _ref2 => {
39
+ let {
40
+ itemBulletContainerWidth,
41
+ itemBulletContainerAlign,
42
+ itemFontWeight,
43
+ itemFontSize,
44
+ itemFontName,
45
+ itemLineHeight,
46
+ themeOptions,
47
+ listGutter,
48
+ itemColor
49
+ } = _ref2;
50
+ return {
51
+ color: itemColor,
52
+ width: itemBulletContainerWidth,
53
+ paddingRight: listGutter,
54
+ textAlign: itemBulletContainerAlign,
55
+ ...(0, _ThemeProvider.applyTextStyles)({
56
+ fontWeight: itemFontWeight,
57
+ fontSize: itemFontSize,
58
+ fontName: itemFontName,
59
+ themeOptions
60
+ }),
61
+ lineHeight: itemLineHeight * itemFontSize
62
+ };
63
+ };
64
+ const selectItemContentStyles = (_ref3, isLastChild) => {
65
+ let {
66
+ interItemMargin,
67
+ ...themeTokens
68
+ } = _ref3;
69
+ return {
70
+ ...themeTokens,
71
+ marginBottom: !isLastChild ? interItemMargin : 0
72
+ };
73
+ };
74
+ const Item = /*#__PURE__*/(0, _react.forwardRef)((_ref4, ref) => {
75
+ let {
76
+ children,
77
+ index,
78
+ isLastChild,
79
+ title,
80
+ tokens,
81
+ variant,
82
+ ...rest
83
+ } = _ref4;
84
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('OrderedList', tokens, variant);
85
+ const headingTokens = title && {
86
+ lineHeight: themeTokens.itemLineHeight,
87
+ fontSize: themeTokens.itemFontSize,
88
+ color: themeTokens.itemColor,
89
+ fontName: themeTokens.headerFontName,
90
+ fontWeight: themeTokens.headerFontWeight
91
+ };
92
+ const {
93
+ themeOptions
94
+ } = (0, _ThemeProvider.useTheme)();
95
+ const itemContent = (0, _utils.wrapStringsInText)(children, {
96
+ style: selectItemTextStyles(themeTokens, themeOptions)
97
+ });
98
+ const itemCounter = (0, _utils.wrapStringsInText)(`${index}.`, {
99
+ style: selectItemTextStyles(themeTokens, themeOptions)
100
+ });
101
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ItemBase.default, {
102
+ ref: ref,
103
+ style: {
104
+ ...staticStyles.container,
105
+ ...themeTokens
106
+ },
107
+ ...selectProps(rest),
108
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
109
+ style: [staticStyles.itemCounter, selectItemCounterStyles(themeTokens)],
110
+ children: itemCounter
111
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
112
+ style: staticStyles.itemContent,
113
+ children: title ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
114
+ tokens: {
115
+ flexShrink: 1
116
+ },
117
+ space: 0,
118
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
119
+ variant: {
120
+ size: 'h4'
121
+ },
122
+ tokens: headingTokens,
123
+ children: title
124
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
125
+ style: selectItemContentStyles(themeTokens, isLastChild),
126
+ children: itemContent
127
+ })]
128
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
129
+ style: selectItemContentStyles(themeTokens, isLastChild),
130
+ children: itemContent
131
+ })
132
+ })]
133
+ });
134
+ });
135
+ Item.propTypes = {
136
+ ...selectedSystemPropTypes,
137
+ /**
138
+ * Item content
139
+ */
140
+ children: _propTypes.default.node.isRequired,
141
+ /**
142
+ * Item index
143
+ */
144
+ index: _propTypes.default.number,
145
+ /**
146
+ * If true, the item is the last one on the list
147
+ */
148
+ isLastChild: _propTypes.default.bool,
149
+ /**
150
+ * Defines the title of the `OrderedList.Item`
151
+ */
152
+ title: _propTypes.default.string,
153
+ /**
154
+ * Item tokens
155
+ */
156
+ tokens: (0, _utils.getTokensPropType)('List'),
157
+ /**
158
+ * Item variant
159
+ */
160
+ variant: _utils.variantProp.propType
161
+ };
162
+ Item.displayName = 'OrderedListItem';
163
+ Item.defaultProps = {
164
+ title: undefined,
165
+ tokens: {}
166
+ };
167
+ var _default = Item;
168
+ exports.default = _default;
169
+ const staticStyles = _StyleSheet.default.create({
170
+ container: {
171
+ flexDirection: 'row'
172
+ },
173
+ itemCounter: {
174
+ flexWrap: 'wrap'
175
+ },
176
+ itemContent: {
177
+ flexDirection: 'column',
178
+ marginLeft: 8
179
+ }
180
+ });
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
10
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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); }
15
+ 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; }
16
+ /* eslint-disable react-native-a11y/has-valid-accessibility-role */
17
+
18
+ const getAccessibilityRole = () => _Platform.default.select({
19
+ ios: 'listitem',
20
+ android: 'none',
21
+ web: 'listitem'
22
+ });
23
+ const Item = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
24
+ let {
25
+ children,
26
+ style,
27
+ ...rest
28
+ } = _ref;
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
30
+ accessibilityRole: getAccessibilityRole(),
31
+ ref: ref,
32
+ style: [staticStyles.container, style],
33
+ ...rest,
34
+ children: children
35
+ });
36
+ });
37
+ Item.propTypes = {
38
+ /**
39
+ * Item content
40
+ */
41
+ children: _propTypes.default.node.isRequired,
42
+ /**
43
+ * Item custom styles
44
+ */
45
+ style: _propTypes.default.object
46
+ };
47
+ Item.displayName = 'OrderedListItem';
48
+ var _default = Item;
49
+ exports.default = _default;
50
+ const staticStyles = _StyleSheet.default.create({
51
+ container: {
52
+ display: 'flex'
53
+ }
54
+ });
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _utils = require("../utils");
10
+ var _OrderedListBase = _interopRequireDefault(require("./OrderedListBase"));
11
+ var _Item = _interopRequireDefault(require("./Item"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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); }
15
+ 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; }
16
+ const [selectProps, selectedSystemPropsTypes] = (0, _utils.selectSystemProps)([_utils.htmlAttrs, _utils.viewProps]);
17
+ const getChildrenWithParentVariants = (variant, children, start) => {
18
+ if (variant) return children.map((child, i) => {
19
+ var _child$props;
20
+ const existingChildVariants = ((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.variant) ?? {};
21
+ return {
22
+ ...child,
23
+ props: {
24
+ ...child.props,
25
+ index: start + i,
26
+ isLastChild: i === children.length - 1,
27
+ variant: {
28
+ ...existingChildVariants,
29
+ ...variant
30
+ }
31
+ }
32
+ };
33
+ });
34
+ return children;
35
+ };
36
+ const OrderedList = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
37
+ let {
38
+ children,
39
+ start,
40
+ variant,
41
+ ...rest
42
+ } = _ref;
43
+ const childrenWithParentVariants = (0, _react.useMemo)(() => getChildrenWithParentVariants(variant, children, start), [children, variant, start]);
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_OrderedListBase.default, {
45
+ ref: ref,
46
+ ...selectProps(rest),
47
+ children: childrenWithParentVariants
48
+ });
49
+ });
50
+ OrderedList.propTypes = {
51
+ ...selectedSystemPropsTypes,
52
+ tokens: (0, _utils.getTokensPropType)('OrderedList'),
53
+ /**
54
+ * A list of ordered items wrapped in `OrderedList.Item`.
55
+ */
56
+ children: _propTypes.default.node.isRequired,
57
+ /**
58
+ * The position to start the list with.
59
+ */
60
+ start: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
61
+ variant: _utils.variantProp.propType
62
+ };
63
+ OrderedList.defaultProps = {
64
+ start: 1,
65
+ tokens: {},
66
+ variant: {}
67
+ };
68
+ OrderedList.displayName = 'OrderedList';
69
+ OrderedList.Item = _Item.default;
70
+ var _default = OrderedList;
71
+ exports.default = _default;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
10
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
+ var _ItemBase = _interopRequireDefault(require("./ItemBase"));
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ 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); }
15
+ 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; }
16
+ /* eslint-disable react-native-a11y/has-valid-accessibility-role */
17
+
18
+ const OrderedListBase = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
19
+ let {
20
+ children,
21
+ ...rest
22
+ } = _ref;
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
24
+ accessibilityRole: "list",
25
+ ref: ref,
26
+ style: staticStyles.container,
27
+ ...rest,
28
+ children: children
29
+ });
30
+ });
31
+ OrderedListBase.propTypes = {
32
+ /**
33
+ * A list of ordered items wrapped in `OrderedListBase.Item`.
34
+ */
35
+ children: _propTypes.default.node.isRequired
36
+ };
37
+ OrderedListBase.displayName = 'OrderedList';
38
+ OrderedListBase.Item = _ItemBase.default;
39
+ var _default = OrderedListBase;
40
+ exports.default = _default;
41
+ const staticStyles = _StyleSheet.default.create({
42
+ container: {
43
+ flexDirection: 'column',
44
+ margin: 0,
45
+ padding: 0
46
+ }
47
+ });
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _OrderedList = _interopRequireDefault(require("./OrderedList"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ var _default = _OrderedList.default;
10
+ exports.default = _default;
@@ -6,37 +6,47 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _systemConstants = require("@telus-uds/system-constants");
10
- var _utils = require("../utils");
9
+ var _ThemeProvider = require("../ThemeProvider");
10
+ var _ResponsiveProp = _interopRequireDefault(require("./ResponsiveProp"));
11
+ var _ResponsiveWithMediaQueryStyleSheet = _interopRequireDefault(require("./ResponsiveWithMediaQueryStyleSheet"));
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14
  /**
14
15
  * Responsive conditionally renders children based on whether the viewport matches the provided
15
16
  * min and max viewports.
16
17
  *
17
- * In SSR, like other viewport utilities, it treats the viewport as `xs` both in SSR itself and
18
+ * If enableMediaQueryStyleSheet themeOption is set to false in ThemeProvider, then in SSR,
19
+ * like other viewport utilities, it treats the viewport as `xs` both in SSR itself and
18
20
  * during first hydration on the client side; then if the viewport is not `xs`, it re-renders
19
21
  * after hydration. This may cause a layout shift on devices other than the narrowest.
22
+ *
23
+ * If enableMediaQueryStyleSheet themeOption is set to true in ThemeProvider, then media query stylesheet
24
+ * is used to hide and show children of `Responsive` within a View.
20
25
  */const Responsive = _ref => {
21
26
  let {
22
27
  min = 'xs',
23
28
  max,
24
29
  children
25
30
  } = _ref;
26
- // Start returning children at the 'min' viewport or greater
27
- const byViewports = {
28
- [min]: children
29
- };
30
- if (max && max !== 'xl') {
31
- // Stop returning children at the viewport one above 'max' or greater
32
- const maxIndex = _systemConstants.viewports.keys.indexOf(max);
33
- const maxPlusOne = maxIndex >= 0 ? _systemConstants.viewports.keys[maxIndex + 1] : null;
34
- if (maxPlusOne) byViewports[maxPlusOne] = null;
31
+ const {
32
+ themeOptions: {
33
+ enableMediaQueryStyleSheet
34
+ }
35
+ } = (0, _ThemeProvider.useTheme)();
36
+ if (enableMediaQueryStyleSheet) {
37
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ResponsiveWithMediaQueryStyleSheet.default, {
38
+ min: min,
39
+ max: max,
40
+ children: children
41
+ });
35
42
  }
36
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
37
- children: (0, _utils.useResponsiveProp)(byViewports, null)
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ResponsiveProp.default, {
44
+ min: min,
45
+ max: max,
46
+ children: children
38
47
  });
39
48
  };
49
+ Responsive.displayName = 'Responsive';
40
50
  Responsive.propTypes = {
41
51
  /**
42
52
  * To hide children of `Responsive` if the current viewport is smaller than `min`
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _systemConstants = require("@telus-uds/system-constants");
10
+ var _utils = require("../utils");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ const ResponsiveProp = _ref => {
14
+ let {
15
+ min = 'xs',
16
+ max,
17
+ children
18
+ } = _ref;
19
+ const byViewports = {
20
+ [min]: children
21
+ };
22
+ if (max && max !== 'xl') {
23
+ // Stop returning children at the viewport one above 'max' or greater
24
+ const maxIndex = _systemConstants.viewports.keys.indexOf(max);
25
+ const maxPlusOne = maxIndex >= 0 ? _systemConstants.viewports.keys[maxIndex + 1] : null;
26
+ if (maxPlusOne) byViewports[maxPlusOne] = null;
27
+ }
28
+ const responsiveProp = (0, _utils.useResponsiveProp)(byViewports, null);
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
30
+ children: responsiveProp
31
+ });
32
+ };
33
+ ResponsiveProp.displayName = 'Responsive';
34
+ ResponsiveProp.propTypes = {
35
+ /**
36
+ * To hide children of `Responsive` if the current viewport is smaller than `min`
37
+ */
38
+ min: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),
39
+ /**
40
+ * To hide children of `Responsive` if the current viewport is larger than `max`
41
+ */
42
+ max: _propTypes.default.oneOf(['sm', 'md', 'lg', 'xl']),
43
+ children: _propTypes.default.node.isRequired
44
+ };
45
+ var _default = ResponsiveProp;
46
+ exports.default = _default;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _systemConstants = require("@telus-uds/system-constants");
10
+ var _utils = require("../utils");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function generateResponsiveStyles(min, max) {
14
+ const viewportsArray = _systemConstants.viewports.keys;
15
+ const minIndex = viewportsArray.indexOf(min);
16
+ const maxIndex = viewportsArray.indexOf(max);
17
+ let hiddenViewports = [];
18
+ if (minIndex !== -1) {
19
+ hiddenViewports = viewportsArray.slice(0, minIndex);
20
+ }
21
+ if (maxIndex !== -1) {
22
+ hiddenViewports = hiddenViewports.concat(viewportsArray.slice(maxIndex + 1));
23
+ }
24
+ const styles = {};
25
+ viewportsArray.forEach(viewport => {
26
+ if (hiddenViewports.includes(viewport)) {
27
+ styles[viewport] = {
28
+ display: 'none'
29
+ };
30
+ }
31
+ });
32
+ return (0, _utils.createMediaQueryStyles)(styles, false);
33
+ }
34
+ const ResponsiveWithMediaQueryStyleSheet = _ref => {
35
+ let {
36
+ min,
37
+ max,
38
+ children
39
+ } = _ref;
40
+ const {
41
+ ids,
42
+ styles
43
+ } = _utils.StyleSheet.create({
44
+ responsive: {
45
+ flexDirection: 'inherit',
46
+ alignItems: 'inherit',
47
+ justifyContent: 'inherit',
48
+ ...generateResponsiveStyles(min, max)
49
+ }
50
+ });
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_utils.BaseView, {
52
+ style: styles.responsive,
53
+ dataSet: ids.responsive && {
54
+ media: ids.responsive
55
+ },
56
+ children: children
57
+ });
58
+ };
59
+ ResponsiveWithMediaQueryStyleSheet.displayName = 'Responsive';
60
+ ResponsiveWithMediaQueryStyleSheet.propTypes = {
61
+ /**
62
+ * To hide children of `Responsive` if the current viewport is smaller than `min`
63
+ */
64
+ min: _propTypes.default.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),
65
+ /**
66
+ * To hide children of `Responsive` if the current viewport is larger than `max`
67
+ */
68
+ max: _propTypes.default.oneOf(['sm', 'md', 'lg', 'xl']),
69
+ children: _propTypes.default.node.isRequired
70
+ };
71
+ var _default = ResponsiveWithMediaQueryStyleSheet;
72
+ exports.default = _default;
@@ -27,7 +27,8 @@ const defaultThemeOptions = {
27
27
  // TODO: switch `forceZIndex` to be false by default in the next major version
28
28
  forceZIndex: true,
29
29
  // TODO: switch `enableHelmetSSR` to be false by default in the next major version
30
- enableHelmetSSR: true
30
+ enableHelmetSSR: true,
31
+ enableMediaQueryStyleSheet: false
31
32
  };
32
33
  const ThemeProvider = _ref => {
33
34
  let {
@@ -82,12 +83,14 @@ ThemeProvider.propTypes = {
82
83
  * - `enableHelmetSSR`: on Web SSR, allows React Helmet to run during server-side rendering. This should be
83
84
  * disabled unless a web app has been specifically configured to stop React Helmet accumulating
84
85
  * instances (which may cause a memory leak). See React Helmet's docs: https://github.com/nfl/react-helmet
86
+ * - `enableMediaQueryStyleSheet`: enables the use of Media Query StyleSheet.
85
87
  */
86
88
  themeOptions: _propTypes.default.shape({
87
89
  forceAbsoluteFontSizing: _propTypes.default.bool,
88
90
  forceZIndex: _propTypes.default.bool,
89
91
  enableHelmetSSR: _propTypes.default.bool,
90
- contentMaxWidth: _responsiveProps.default.getTypeOptionallyByViewport(_propTypes.default.number)
92
+ contentMaxWidth: _responsiveProps.default.getTypeOptionallyByViewport(_propTypes.default.number),
93
+ enableMediaQueryStyleSheet: _propTypes.default.bool
91
94
  })
92
95
  };
93
96
  var _default = ThemeProvider;