@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.
- package/CHANGELOG.md +37 -2
- package/lib/Box/Box.js +17 -6
- package/lib/ColourToggle/ColourBubble.js +135 -0
- package/lib/ColourToggle/ColourToggle.js +101 -0
- package/lib/ColourToggle/index.js +10 -0
- package/lib/FlexGrid/Col/Col.js +42 -19
- package/lib/FlexGrid/FlexGrid.js +40 -17
- package/lib/FlexGrid/Row/Row.js +45 -22
- package/lib/Listbox/ListboxGroup.js +7 -1
- package/lib/Modal/ModalContent.js +4 -6
- package/lib/MultiSelectFilter/MultiSelectFilter.js +1 -0
- package/lib/Notification/Notification.js +13 -5
- package/lib/OrderedList/Item.js +180 -0
- package/lib/OrderedList/ItemBase.js +54 -0
- package/lib/OrderedList/OrderedList.js +71 -0
- package/lib/OrderedList/OrderedListBase.js +47 -0
- package/lib/OrderedList/index.js +10 -0
- package/lib/Responsive/Responsive.js +24 -14
- package/lib/Responsive/ResponsiveProp.js +46 -0
- package/lib/Responsive/ResponsiveWithMediaQueryStyleSheet.js +72 -0
- package/lib/ThemeProvider/ThemeProvider.js +5 -2
- package/lib/ThemeProvider/index.js +9 -1
- package/lib/ThemeProvider/useResponsiveThemeTokens.js +89 -0
- package/lib/Typography/Typography.js +48 -22
- package/lib/index.js +16 -0
- package/lib/server.js +40 -0
- package/lib/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +56 -0
- package/lib/utils/ssr-media-query/create-stylesheet/index.android.js +10 -0
- package/lib/utils/ssr-media-query/create-stylesheet/index.ios.js +10 -0
- package/lib/utils/ssr-media-query/create-stylesheet/index.js +44 -0
- package/lib/utils/ssr-media-query/utils/create-media-query-styles.js +39 -6
- package/lib-module/Box/Box.js +17 -6
- package/lib-module/ColourToggle/ColourBubble.js +125 -0
- package/lib-module/ColourToggle/ColourToggle.js +92 -0
- package/lib-module/ColourToggle/index.js +2 -0
- package/lib-module/FlexGrid/Col/Col.js +42 -19
- package/lib-module/FlexGrid/FlexGrid.js +40 -17
- package/lib-module/FlexGrid/Row/Row.js +45 -22
- package/lib-module/Listbox/ListboxGroup.js +7 -1
- package/lib-module/Modal/ModalContent.js +4 -6
- package/lib-module/MultiSelectFilter/MultiSelectFilter.js +1 -0
- package/lib-module/Notification/Notification.js +13 -5
- package/lib-module/OrderedList/Item.js +171 -0
- package/lib-module/OrderedList/ItemBase.js +43 -0
- package/lib-module/OrderedList/OrderedList.js +61 -0
- package/lib-module/OrderedList/OrderedListBase.js +36 -0
- package/lib-module/OrderedList/index.js +2 -0
- package/lib-module/Responsive/Responsive.js +24 -15
- package/lib-module/Responsive/ResponsiveProp.js +39 -0
- package/lib-module/Responsive/ResponsiveWithMediaQueryStyleSheet.js +64 -0
- package/lib-module/ThemeProvider/ThemeProvider.js +5 -2
- package/lib-module/ThemeProvider/index.js +1 -0
- package/lib-module/ThemeProvider/useResponsiveThemeTokens.js +81 -0
- package/lib-module/Typography/Typography.js +50 -24
- package/lib-module/index.js +2 -0
- package/lib-module/server.js +4 -0
- package/lib-module/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +48 -0
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.android.js +2 -0
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.ios.js +2 -0
- package/lib-module/utils/ssr-media-query/create-stylesheet/index.js +36 -0
- package/lib-module/utils/ssr-media-query/utils/create-media-query-styles.js +36 -6
- package/package.json +13 -2
- package/src/Box/Box.jsx +35 -17
- package/src/ColourToggle/ColourBubble.jsx +111 -0
- package/src/ColourToggle/ColourToggle.jsx +83 -0
- package/src/ColourToggle/index.js +3 -0
- package/src/FlexGrid/Col/Col.jsx +42 -13
- package/src/FlexGrid/FlexGrid.jsx +40 -11
- package/src/FlexGrid/Row/Row.jsx +40 -16
- package/src/Listbox/ListboxGroup.jsx +9 -2
- package/src/Modal/ModalContent.jsx +4 -6
- package/src/MultiSelectFilter/MultiSelectFilter.jsx +2 -0
- package/src/Notification/Notification.jsx +15 -3
- package/src/OrderedList/Item.jsx +152 -0
- package/src/OrderedList/ItemBase.jsx +43 -0
- package/src/OrderedList/OrderedList.jsx +61 -0
- package/src/OrderedList/OrderedListBase.jsx +33 -0
- package/src/OrderedList/index.js +3 -0
- package/src/Responsive/Responsive.jsx +24 -11
- package/src/Responsive/ResponsiveProp.jsx +33 -0
- package/src/Responsive/ResponsiveWithMediaQueryStyleSheet.jsx +58 -0
- package/src/ThemeProvider/ThemeProvider.jsx +5 -2
- package/src/ThemeProvider/index.js +1 -0
- package/src/ThemeProvider/useResponsiveThemeTokens.js +85 -0
- package/src/Typography/Typography.jsx +72 -24
- package/src/index.js +2 -0
- package/src/server.js +4 -0
- package/src/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +41 -0
- package/src/utils/ssr-media-query/create-stylesheet/index.android.js +3 -0
- package/src/utils/ssr-media-query/create-stylesheet/index.ios.js +3 -0
- package/src/utils/ssr-media-query/create-stylesheet/index.js +33 -0
- package/src/utils/ssr-media-query/utils/create-media-query-styles.js +21 -6
- package/types/Badge.d.ts +28 -0
- package/types/Box.d.ts +52 -0
- package/types/ChevronLink.d.ts +47 -0
- package/types/Common.d.ts +106 -0
- package/types/Divider.d.ts +19 -0
- package/types/ExpandCollapse.d.ts +65 -0
- package/types/HorizontalScrollButton.d.ts +16 -0
- package/types/Icon.d.ts +21 -0
- package/types/Link.d.ts +48 -0
- package/types/List.d.ts +48 -0
- package/types/Search.d.ts +38 -0
- package/types/Select.d.ts +57 -0
- package/types/Spacer.d.ts +5 -0
- package/types/StackView.d.ts +28 -0
- package/types/Tabs.d.ts +46 -0
- package/types/TextButton.d.ts +11 -0
- package/types/ToggleSwitch.d.ts +54 -0
- package/types/ToolTip.d.ts +40 -0
- package/types/Typography.d.ts +39 -0
- package/types/index.d.ts +62 -0
- package/lib/utils/ssr-media-query/create-stylesheet.js +0 -76
- package/lib-module/utils/ssr-media-query/create-stylesheet.js +0 -68
- package/src/utils/ssr-media-query/create-stylesheet.js +0 -61
|
@@ -5,9 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
7
|
useTheme: true,
|
|
8
|
-
useSetTheme: true
|
|
8
|
+
useSetTheme: true,
|
|
9
|
+
useResponsiveThemeTokens: true
|
|
9
10
|
};
|
|
10
11
|
exports.default = void 0;
|
|
12
|
+
Object.defineProperty(exports, "useResponsiveThemeTokens", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _useResponsiveThemeTokens.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
11
18
|
Object.defineProperty(exports, "useSetTheme", {
|
|
12
19
|
enumerable: true,
|
|
13
20
|
get: function () {
|
|
@@ -23,6 +30,7 @@ Object.defineProperty(exports, "useTheme", {
|
|
|
23
30
|
var _ThemeProvider = _interopRequireDefault(require("./ThemeProvider"));
|
|
24
31
|
var _useTheme = _interopRequireDefault(require("./useTheme"));
|
|
25
32
|
var _useSetTheme = _interopRequireDefault(require("./useSetTheme"));
|
|
33
|
+
var _useResponsiveThemeTokens = _interopRequireDefault(require("./useResponsiveThemeTokens"));
|
|
26
34
|
var _useThemeTokens = require("./useThemeTokens");
|
|
27
35
|
Object.keys(_useThemeTokens).forEach(function (key) {
|
|
28
36
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _systemConstants = require("@telus-uds/system-constants");
|
|
8
|
+
var _useTheme = _interopRequireDefault(require("./useTheme"));
|
|
9
|
+
var _utils = require("./utils");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const getResponsiveThemeTokens = function (_ref, tokensProp) {
|
|
12
|
+
let {
|
|
13
|
+
rules = [],
|
|
14
|
+
tokens: defaultThemeTokens = {}
|
|
15
|
+
} = _ref;
|
|
16
|
+
let variants = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
17
|
+
let states = arguments.length > 3 ? arguments[3] : undefined;
|
|
18
|
+
const appearances = (0, _utils.mergeAppearances)(variants, states);
|
|
19
|
+
const tokensByViewport = Object.fromEntries(_systemConstants.viewports.keys.map(viewport => [viewport, {
|
|
20
|
+
...defaultThemeTokens
|
|
21
|
+
}]));
|
|
22
|
+
|
|
23
|
+
// Go through each rule and collect them for the corresponding viewport if they apply
|
|
24
|
+
rules.forEach(rule => {
|
|
25
|
+
if (doesRuleApply(rule, appearances)) {
|
|
26
|
+
// If the rule does not have a viewport specified, we collect it in all viewports
|
|
27
|
+
let targetViewports = rule.if.viewport || _systemConstants.viewports.keys;
|
|
28
|
+
if (!Array.isArray(targetViewports)) {
|
|
29
|
+
targetViewports = [targetViewports];
|
|
30
|
+
}
|
|
31
|
+
targetViewports.forEach(viewport => {
|
|
32
|
+
tokensByViewport[viewport] = {
|
|
33
|
+
...tokensByViewport[viewport],
|
|
34
|
+
...rule.tokens
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.keys(tokensByViewport).forEach(viewport => {
|
|
40
|
+
tokensByViewport[viewport] = (0, _utils.resolveThemeTokens)(tokensByViewport[viewport], appearances, tokensProp);
|
|
41
|
+
});
|
|
42
|
+
return tokensByViewport;
|
|
43
|
+
};
|
|
44
|
+
const doesRuleApply = (rule, appearances) => Object.entries(rule.if).every(condition => doesConditionApply(condition, appearances));
|
|
45
|
+
const doesConditionApply = (_ref2, appearances) => {
|
|
46
|
+
let [key, value] = _ref2;
|
|
47
|
+
if (key === 'viewport') {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
// use null rather than undefined so we can serialise the value in themes
|
|
51
|
+
const appearanceValue = appearances[key] ?? null;
|
|
52
|
+
return Array.isArray(value) ? value.includes(appearanceValue) : value === appearanceValue;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @typedef {import('../utils/props/tokens.js').TokensSet} TokensSet
|
|
57
|
+
* @typedef {import('../utils/props/tokens.js').TokensProp} TokensProp
|
|
58
|
+
* @typedef {import('../utils/props/variantProp').AppearanceSet} AppearanceSet
|
|
59
|
+
*
|
|
60
|
+
* Returns a complete set of tokens for a component for each viewport based on which of the
|
|
61
|
+
* component's theme rules apply to the current set of theme appearances.
|
|
62
|
+
* Pass the returned output to createMediaQueryStyles to generate media query styles for use inside
|
|
63
|
+
* the media query stylesheet from './utils/ssr-media-query'.
|
|
64
|
+
*
|
|
65
|
+
* @typedef {Object} ResponsiveObject
|
|
66
|
+
* @property {TokensSet} xs
|
|
67
|
+
* @property {TokensSet} sm
|
|
68
|
+
* @property {TokensSet} md
|
|
69
|
+
* @property {TokensSet} lg
|
|
70
|
+
* @property {TokensSet} xl
|
|
71
|
+
*
|
|
72
|
+
* @param { string } componentName
|
|
73
|
+
* @param { TokensProp } tokens
|
|
74
|
+
* @param { AppearanceSet } variants
|
|
75
|
+
* @param { AppearanceSet } states
|
|
76
|
+
* @returns { ResponsiveObject }
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
const useResponsiveThemeTokens = function (componentName) {
|
|
80
|
+
let tokens = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
81
|
+
let variants = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
82
|
+
let states = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
83
|
+
const theme = (0, _useTheme.default)();
|
|
84
|
+
const componentTheme = (0, _utils.getComponentTheme)(theme, componentName);
|
|
85
|
+
const themeTokens = getResponsiveThemeTokens(componentTheme, tokens, variants, states);
|
|
86
|
+
return themeTokens;
|
|
87
|
+
};
|
|
88
|
+
var _default = useResponsiveThemeTokens;
|
|
89
|
+
exports.default = _default;
|
|
@@ -9,9 +9,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
9
9
|
var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
|
|
10
10
|
var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
|
|
11
11
|
var _ThemeProvider = require("../ThemeProvider");
|
|
12
|
-
var _ViewportProvider = require("../ViewportProvider");
|
|
13
12
|
var _utils = require("../ThemeProvider/utils");
|
|
14
13
|
var _utils2 = require("../utils");
|
|
14
|
+
var _ViewportProvider = require("../ViewportProvider");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
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); }
|
|
@@ -29,7 +29,8 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
29
29
|
fontName,
|
|
30
30
|
textAlign,
|
|
31
31
|
textTransform,
|
|
32
|
-
letterSpacing
|
|
32
|
+
letterSpacing,
|
|
33
|
+
textDecorationLine
|
|
33
34
|
} = _ref;
|
|
34
35
|
return (0, _utils.applyTextStyles)({
|
|
35
36
|
fontWeight,
|
|
@@ -40,7 +41,8 @@ const selectTextStyles = (_ref, themeOptions) => {
|
|
|
40
41
|
themeOptions,
|
|
41
42
|
textAlign,
|
|
42
43
|
textTransform,
|
|
43
|
-
letterSpacing
|
|
44
|
+
letterSpacing,
|
|
45
|
+
textDecorationLine
|
|
44
46
|
});
|
|
45
47
|
};
|
|
46
48
|
|
|
@@ -60,23 +62,48 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
60
62
|
...rest
|
|
61
63
|
} = _ref2;
|
|
62
64
|
const viewport = (0, _ViewportProvider.useViewport)();
|
|
63
|
-
const {
|
|
64
|
-
superScriptFontSize,
|
|
65
|
-
...themeTokens
|
|
66
|
-
} = (0, _ThemeProvider.useThemeTokens)('Typography', tokens, variant, {
|
|
67
|
-
viewport
|
|
68
|
-
});
|
|
69
65
|
const {
|
|
70
66
|
themeOptions
|
|
71
67
|
} = (0, _ThemeProvider.useTheme)();
|
|
68
|
+
const {
|
|
69
|
+
enableMediaQueryStyleSheet
|
|
70
|
+
} = themeOptions;
|
|
71
|
+
const useTokens = enableMediaQueryStyleSheet ? _ThemeProvider.useResponsiveThemeTokens : _ThemeProvider.useThemeTokens;
|
|
72
|
+
const themeTokens = useTokens('Typography', tokens, variant);
|
|
73
|
+
const maxFontSizeMultiplier = enableMediaQueryStyleSheet ? (0, _utils2.getMaxFontMultiplier)(themeTokens[viewport]) : (0, _utils2.getMaxFontMultiplier)(themeTokens);
|
|
74
|
+
const textDecorationLine = strikeThrough ? 'line-through' : 'none';
|
|
75
|
+
let textStyles;
|
|
76
|
+
let mediaIds;
|
|
77
|
+
if (enableMediaQueryStyleSheet) {
|
|
78
|
+
const transformedThemeTokens = Object.entries(themeTokens).reduce((acc, _ref3) => {
|
|
79
|
+
let [vp, viewportTokens] = _ref3;
|
|
80
|
+
acc[vp] = selectTextStyles({
|
|
81
|
+
textAlign: align,
|
|
82
|
+
textDecorationLine,
|
|
83
|
+
...viewportTokens
|
|
84
|
+
}, themeOptions);
|
|
85
|
+
return acc;
|
|
86
|
+
}, {});
|
|
87
|
+
const mediaQueryStyles = (0, _utils2.createMediaQueryStyles)(transformedThemeTokens);
|
|
88
|
+
const {
|
|
89
|
+
ids,
|
|
90
|
+
styles
|
|
91
|
+
} = _utils2.StyleSheet.create({
|
|
92
|
+
text: mediaQueryStyles
|
|
93
|
+
});
|
|
94
|
+
textStyles = styles.text;
|
|
95
|
+
mediaIds = ids.text;
|
|
96
|
+
} else {
|
|
97
|
+
textStyles = selectTextStyles({
|
|
98
|
+
textAlign: align,
|
|
99
|
+
textDecorationLine,
|
|
100
|
+
...themeTokens
|
|
101
|
+
}, themeOptions);
|
|
102
|
+
}
|
|
72
103
|
const resolvedTextProps = {
|
|
73
104
|
...selectTextProps(rest),
|
|
74
|
-
style: selectTextStyles(align ? {
|
|
75
|
-
...themeTokens,
|
|
76
|
-
textAlign: align
|
|
77
|
-
} : themeTokens, themeOptions),
|
|
78
105
|
dataSet,
|
|
79
|
-
maxFontSizeMultiplier
|
|
106
|
+
maxFontSizeMultiplier
|
|
80
107
|
};
|
|
81
108
|
const containerProps = {
|
|
82
109
|
accessibilityRole,
|
|
@@ -87,7 +114,7 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
87
114
|
if (typeof child === 'object' && ((child === null || child === void 0 ? void 0 : child.type) === 'sub' || (child === null || child === void 0 ? void 0 : child.type) === 'sup')) {
|
|
88
115
|
var _child$props;
|
|
89
116
|
const childStyles = (child === null || child === void 0 ? void 0 : (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.style) || {};
|
|
90
|
-
const supFontSize = childStyles.fontSize ?? superScriptFontSize;
|
|
117
|
+
const supFontSize = childStyles.fontSize ?? themeTokens.superScriptFontSize;
|
|
91
118
|
const sanitizedChild = /*#__PURE__*/_react.default.cloneElement(child, {
|
|
92
119
|
style: {
|
|
93
120
|
...childStyles,
|
|
@@ -107,19 +134,15 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
107
134
|
}
|
|
108
135
|
return resetTagStyling(children);
|
|
109
136
|
};
|
|
110
|
-
const textDecorationLine = strikeThrough ? 'line-through' : 'none';
|
|
111
|
-
const textStyles = resolvedTextProps.style ? {
|
|
112
|
-
...resolvedTextProps.style,
|
|
113
|
-
textDecorationLine
|
|
114
|
-
} : {
|
|
115
|
-
textDecorationLine
|
|
116
|
-
};
|
|
117
137
|
return block ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
|
|
118
138
|
ref: ref,
|
|
119
139
|
...containerProps,
|
|
120
140
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
121
141
|
...resolvedTextProps,
|
|
122
142
|
style: textStyles,
|
|
143
|
+
dataSet: mediaIds && {
|
|
144
|
+
media: mediaIds
|
|
145
|
+
},
|
|
123
146
|
children: sanitizeChildren(children)
|
|
124
147
|
})
|
|
125
148
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
|
|
@@ -127,6 +150,9 @@ const Typography = /*#__PURE__*/(0, _react.forwardRef)((_ref2, ref) => {
|
|
|
127
150
|
...containerProps,
|
|
128
151
|
...resolvedTextProps,
|
|
129
152
|
style: textStyles,
|
|
153
|
+
dataSet: mediaIds && {
|
|
154
|
+
media: mediaIds
|
|
155
|
+
},
|
|
130
156
|
children: sanitizeChildren(children)
|
|
131
157
|
});
|
|
132
158
|
});
|
package/lib/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var _exportNames = {
|
|
|
15
15
|
Checkbox: true,
|
|
16
16
|
CheckboxCard: true,
|
|
17
17
|
CheckboxCardGroup: true,
|
|
18
|
+
ColourToggle: true,
|
|
18
19
|
Divider: true,
|
|
19
20
|
ExpandCollapse: true,
|
|
20
21
|
Accordion: true,
|
|
@@ -32,6 +33,7 @@ var _exportNames = {
|
|
|
32
33
|
Modal: true,
|
|
33
34
|
MultiSelectFilter: true,
|
|
34
35
|
Notification: true,
|
|
36
|
+
OrderedList: true,
|
|
35
37
|
Pagination: true,
|
|
36
38
|
Progress: true,
|
|
37
39
|
QuickLinks: true,
|
|
@@ -144,6 +146,12 @@ Object.defineProperty(exports, "CheckboxCardGroup", {
|
|
|
144
146
|
return _CheckboxCardGroup.default;
|
|
145
147
|
}
|
|
146
148
|
});
|
|
149
|
+
Object.defineProperty(exports, "ColourToggle", {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
get: function () {
|
|
152
|
+
return _ColourToggle.default;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
147
155
|
Object.defineProperty(exports, "Divider", {
|
|
148
156
|
enumerable: true,
|
|
149
157
|
get: function () {
|
|
@@ -246,6 +254,12 @@ Object.defineProperty(exports, "Notification", {
|
|
|
246
254
|
return _Notification.default;
|
|
247
255
|
}
|
|
248
256
|
});
|
|
257
|
+
Object.defineProperty(exports, "OrderedList", {
|
|
258
|
+
enumerable: true,
|
|
259
|
+
get: function () {
|
|
260
|
+
return _OrderedList.default;
|
|
261
|
+
}
|
|
262
|
+
});
|
|
249
263
|
Object.defineProperty(exports, "Pagination", {
|
|
250
264
|
enumerable: true,
|
|
251
265
|
get: function () {
|
|
@@ -519,6 +533,7 @@ Object.keys(_Checkbox).forEach(function (key) {
|
|
|
519
533
|
});
|
|
520
534
|
var _CheckboxCard = _interopRequireDefault(require("./CheckboxCard"));
|
|
521
535
|
var _CheckboxCardGroup = _interopRequireDefault(require("./CheckboxCardGroup"));
|
|
536
|
+
var _ColourToggle = _interopRequireDefault(require("./ColourToggle"));
|
|
522
537
|
var _Divider = _interopRequireDefault(require("./Divider"));
|
|
523
538
|
var _ExpandCollapse = _interopRequireWildcard(require("./ExpandCollapse"));
|
|
524
539
|
var _Feedback = _interopRequireDefault(require("./Feedback"));
|
|
@@ -567,6 +582,7 @@ var _List = _interopRequireWildcard(require("./List"));
|
|
|
567
582
|
var _Modal = _interopRequireDefault(require("./Modal"));
|
|
568
583
|
var _MultiSelectFilter = _interopRequireDefault(require("./MultiSelectFilter"));
|
|
569
584
|
var _Notification = _interopRequireDefault(require("./Notification"));
|
|
585
|
+
var _OrderedList = _interopRequireDefault(require("./OrderedList"));
|
|
570
586
|
var _Pagination = _interopRequireDefault(require("./Pagination"));
|
|
571
587
|
var _Progress = _interopRequireDefault(require("./Progress"));
|
|
572
588
|
var _QuickLinks = _interopRequireDefault(require("./QuickLinks"));
|
package/lib/server.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "getComponentTheme", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _themeTokens.getComponentTheme;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "getThemeTokens", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _themeTokens.getThemeTokens;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "getTokensPropType", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _tokens.getTokensPropType;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "htmlAttrs", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _htmlAttrs.default;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "selectSystemProps", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _selectSystemProps.default;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
var _selectSystemProps = _interopRequireDefault(require("./utils/props/selectSystemProps"));
|
|
37
|
+
var _tokens = require("./utils/props/tokens");
|
|
38
|
+
var _htmlAttrs = _interopRequireDefault(require("./utils/htmlAttrs"));
|
|
39
|
+
var _themeTokens = require("./ThemeProvider/utils/theme-tokens");
|
|
40
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _cssMediaquery = _interopRequireDefault(require("css-mediaquery"));
|
|
8
|
+
var _Dimensions = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Dimensions"));
|
|
9
|
+
var _common = require("../utils/common");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const createStyleSheet = stylesWithQuery => {
|
|
12
|
+
if (!stylesWithQuery) return {
|
|
13
|
+
ids: {},
|
|
14
|
+
styles: {},
|
|
15
|
+
fullStyles: {}
|
|
16
|
+
};
|
|
17
|
+
let cleanStyles;
|
|
18
|
+
const ids = {};
|
|
19
|
+
Object.keys(stylesWithQuery).forEach(key => {
|
|
20
|
+
if (!(stylesWithQuery !== null && stylesWithQuery !== void 0 && stylesWithQuery[key])) return;
|
|
21
|
+
const mediaQueriesAndPseudoClasses = Object.keys(stylesWithQuery[key]).filter(_common.isMediaOrPseudo);
|
|
22
|
+
cleanStyles = JSON.parse(JSON.stringify(stylesWithQuery));
|
|
23
|
+
mediaQueriesAndPseudoClasses.forEach(str => {
|
|
24
|
+
if ((0, _common.isMedia)(str)) {
|
|
25
|
+
const mqStr = str.replace('@media', '');
|
|
26
|
+
const {
|
|
27
|
+
width,
|
|
28
|
+
height
|
|
29
|
+
} = _Dimensions.default.get('window');
|
|
30
|
+
const isMatchingMediaQuery = _cssMediaquery.default.match(mqStr, {
|
|
31
|
+
width,
|
|
32
|
+
height,
|
|
33
|
+
orientation: width > height ? 'landscape' : 'portrait',
|
|
34
|
+
'aspect-ratio': width / height
|
|
35
|
+
});
|
|
36
|
+
if (isMatchingMediaQuery) {
|
|
37
|
+
cleanStyles = {
|
|
38
|
+
...cleanStyles,
|
|
39
|
+
[key]: {
|
|
40
|
+
...cleanStyles[key],
|
|
41
|
+
...stylesWithQuery[key][str]
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
delete cleanStyles[key][str];
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
ids,
|
|
51
|
+
styles: cleanStyles,
|
|
52
|
+
fullStyles: stylesWithQuery
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
var _default = createStyleSheet;
|
|
56
|
+
exports.default = _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _createStylesheetMobile = _interopRequireDefault(require("./create-stylesheet-mobile"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
var _default = _createStylesheetMobile.default;
|
|
10
|
+
exports.default = _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _createStylesheetMobile = _interopRequireDefault(require("./create-stylesheet-mobile"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
var _default = _createStylesheetMobile.default;
|
|
10
|
+
exports.default = _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _inject = require("../utils/inject");
|
|
8
|
+
var _createDeclarationBlock = _interopRequireDefault(require("../utils/create-declaration-block"));
|
|
9
|
+
var _hash = _interopRequireDefault(require("../hash"));
|
|
10
|
+
var _common = require("../utils/common");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
const createStyleSheet = stylesWithQuery => {
|
|
13
|
+
if (!stylesWithQuery) return {
|
|
14
|
+
ids: {},
|
|
15
|
+
styles: {},
|
|
16
|
+
fullStyles: {}
|
|
17
|
+
};
|
|
18
|
+
let cleanStyles;
|
|
19
|
+
let ids = {};
|
|
20
|
+
Object.keys(stylesWithQuery).forEach(key => {
|
|
21
|
+
if (!(stylesWithQuery !== null && stylesWithQuery !== void 0 && stylesWithQuery[key])) return;
|
|
22
|
+
const mediaQueriesAndPseudoClasses = Object.keys(stylesWithQuery[key]).filter(_common.isMediaOrPseudo);
|
|
23
|
+
cleanStyles = (0, _common.deepClone)(stylesWithQuery);
|
|
24
|
+
mediaQueriesAndPseudoClasses.forEach(query => {
|
|
25
|
+
var _ids;
|
|
26
|
+
const css = (0, _createDeclarationBlock.default)(stylesWithQuery[key][query]);
|
|
27
|
+
const stringHash = `rnmq-${(0, _hash.default)(`${key}${query}${css}`)}`;
|
|
28
|
+
const rule = (0, _common.createCssRule)(query, stringHash, css);
|
|
29
|
+
(0, _inject.addCss)(`${stringHash}`, rule);
|
|
30
|
+
delete cleanStyles[key][query];
|
|
31
|
+
ids = {
|
|
32
|
+
...ids,
|
|
33
|
+
[key]: `${(_ids = ids) !== null && _ids !== void 0 && _ids[key] ? `${ids[key]} ` : ''}${stringHash}`
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
ids,
|
|
39
|
+
styles: cleanStyles,
|
|
40
|
+
fullStyles: stylesWithQuery
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
var _default = createStyleSheet;
|
|
44
|
+
exports.default = _default;
|
|
@@ -5,20 +5,53 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _systemConstants = require("@telus-uds/system-constants");
|
|
8
|
+
const inherit = _ref => {
|
|
9
|
+
let {
|
|
10
|
+
xs,
|
|
11
|
+
sm = xs,
|
|
12
|
+
md = sm,
|
|
13
|
+
lg = md,
|
|
14
|
+
xl = lg
|
|
15
|
+
} = _ref;
|
|
16
|
+
return {
|
|
17
|
+
xs,
|
|
18
|
+
sm,
|
|
19
|
+
md,
|
|
20
|
+
lg,
|
|
21
|
+
xl
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
8
25
|
/**
|
|
9
26
|
* @typedef { Object } CssStyles
|
|
10
|
-
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @typedef { Object } ViewportStyles
|
|
31
|
+
* @property { CssStyles } xs - The CSS styles for the "xs" viewport (required).
|
|
32
|
+
* @property { CssStyles } [sm] - Optional styles for the "sm" viewport. Inherits from "xs" if not specified.
|
|
33
|
+
* @property { CssStyles } [md] - Optional styles for the "md" viewport. Inherits from "sm" if not specified.
|
|
34
|
+
* @property { CssStyles } [lg] - Optional styles for the "lg" viewport. Inherits from "md" if not specified.
|
|
35
|
+
* @property { CssStyles } [xl] - Optional styles for the "xl" viewport. Inherits from "lg" if not specified.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
11
39
|
* @typedef { Record<String, CssStyles> } MediaQueryStyles
|
|
12
40
|
*/
|
|
41
|
+
|
|
13
42
|
/**
|
|
14
43
|
* Generates media query styles based on specified viewport styles.
|
|
15
|
-
* @param {
|
|
16
|
-
* @
|
|
44
|
+
* @param { Object } viewportStyles - The styles for different viewports.
|
|
45
|
+
* @param { boolean } [shouldInherit=true] - Flag indicating whether to inherit styles.
|
|
46
|
+
* @returns { Object } - The media query styles.
|
|
17
47
|
*/
|
|
48
|
+
|
|
18
49
|
function createMediaQueryStyles(viewportStyles) {
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
50
|
+
let shouldInherit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
51
|
+
const effectiveStyles = shouldInherit ? inherit(viewportStyles) : viewportStyles;
|
|
52
|
+
const viewportsArray = _systemConstants.viewports.keys;
|
|
53
|
+
const mediaQueries = Object.entries(effectiveStyles).reduce((acc, _ref2) => {
|
|
54
|
+
let [viewport, styles] = _ref2;
|
|
22
55
|
const minWidth = _systemConstants.viewports.map.get(viewport);
|
|
23
56
|
const nextViewport = viewportsArray[viewportsArray.indexOf(viewport) + 1];
|
|
24
57
|
const maxWidth = _systemConstants.viewports.map.get(nextViewport);
|
package/lib-module/Box/Box.js
CHANGED
|
@@ -2,6 +2,7 @@ import React, { forwardRef } from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import View from "react-native-web/dist/exports/View";
|
|
4
4
|
import ScrollView from "react-native-web/dist/exports/ScrollView";
|
|
5
|
+
import Platform from "react-native-web/dist/exports/Platform";
|
|
5
6
|
import { useThemeTokens } from '../ThemeProvider';
|
|
6
7
|
import { a11yProps, getA11yPropsFromHtmlTag, getTokensPropType, layoutTags, selectSystemProps, spacingProps, useSpacingScale, variantProp, viewProps } from '../utils';
|
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -14,7 +15,7 @@ const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, vie
|
|
|
14
15
|
* @typedef {import('../utils/props/spacingProps.js').SpacingOptions} SpacingOptions
|
|
15
16
|
*/
|
|
16
17
|
|
|
17
|
-
const selectBoxStyles = _ref => {
|
|
18
|
+
const selectBoxStyles = (_ref, customGradient) => {
|
|
18
19
|
let {
|
|
19
20
|
backgroundColor,
|
|
20
21
|
gradient,
|
|
@@ -40,7 +41,11 @@ const selectBoxStyles = _ref => {
|
|
|
40
41
|
angle,
|
|
41
42
|
stops: [stopOne, stopTwo]
|
|
42
43
|
} = gradient;
|
|
43
|
-
|
|
44
|
+
if (Platform.OS === 'web') {
|
|
45
|
+
styles.backgroundImage = `linear-gradient(${angle}deg, ${stopOne.color}, 75%, ${stopTwo.color})`;
|
|
46
|
+
} else if (customGradient && Platform.OS !== 'web') {
|
|
47
|
+
styles.colors = [stopOne.color, stopTwo.color];
|
|
48
|
+
}
|
|
44
49
|
}
|
|
45
50
|
const paddings = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'];
|
|
46
51
|
// Only set on styles if token provided because we spread this object after the spacing scale values
|
|
@@ -135,6 +140,7 @@ const Box = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
135
140
|
accessibilityRole,
|
|
136
141
|
testID,
|
|
137
142
|
dataSet,
|
|
143
|
+
customGradient,
|
|
138
144
|
...rest
|
|
139
145
|
} = _ref2;
|
|
140
146
|
const props = {
|
|
@@ -149,8 +155,9 @@ const Box = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
149
155
|
paddingRight: useSpacingScale(right),
|
|
150
156
|
paddingTop: useSpacingScale(top),
|
|
151
157
|
paddingBottom: useSpacingScale(bottom),
|
|
152
|
-
...selectBoxStyles(themeTokens)
|
|
158
|
+
...selectBoxStyles(themeTokens, customGradient)
|
|
153
159
|
};
|
|
160
|
+
const childrenToRender = typeof customGradient === 'function' ? customGradient(styles.colors, styles)(children) : children;
|
|
154
161
|
if (scroll) {
|
|
155
162
|
const scrollProps = typeof scroll === 'object' ? scroll : {};
|
|
156
163
|
scrollProps.contentContainerStyle = [styles, scrollProps.contentContainerStyle];
|
|
@@ -160,7 +167,7 @@ const Box = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
160
167
|
testID: testID,
|
|
161
168
|
dataSet: dataSet,
|
|
162
169
|
ref: ref,
|
|
163
|
-
children:
|
|
170
|
+
children: childrenToRender
|
|
164
171
|
});
|
|
165
172
|
}
|
|
166
173
|
return /*#__PURE__*/_jsx(View, {
|
|
@@ -169,7 +176,7 @@ const Box = /*#__PURE__*/forwardRef((_ref2, ref) => {
|
|
|
169
176
|
testID: testID,
|
|
170
177
|
dataSet: dataSet,
|
|
171
178
|
ref: ref,
|
|
172
|
-
children:
|
|
179
|
+
children: childrenToRender
|
|
173
180
|
});
|
|
174
181
|
});
|
|
175
182
|
Box.displayName = 'Box';
|
|
@@ -253,6 +260,10 @@ Box.propTypes = {
|
|
|
253
260
|
/**
|
|
254
261
|
* Box accepts any content as children.
|
|
255
262
|
*/
|
|
256
|
-
children: PropTypes.node.isRequired
|
|
263
|
+
children: PropTypes.node.isRequired,
|
|
264
|
+
/**
|
|
265
|
+
Use this prop if need to add a custom gradient for mobile
|
|
266
|
+
*/
|
|
267
|
+
customGradient: PropTypes.func
|
|
257
268
|
};
|
|
258
269
|
export default Box;
|