@telefonica/mistica 10.19.0 → 10.22.1
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 +34 -0
- package/dist/button-layout.js +30 -17
- package/dist/button.js +24 -8
- package/dist/card.js +25 -28
- package/dist/chip.d.ts +9 -0
- package/dist/chip.js +111 -0
- package/dist/chip.js.flow +11 -0
- package/dist/form.js +1 -1
- package/dist/header.d.ts +2 -0
- package/dist/header.js.flow +5 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +7 -0
- package/dist/index.js.flow +2 -0
- package/dist/package-version.js +1 -1
- package/dist/skins/blau.d.ts +6 -3
- package/dist/skins/blau.js +34 -5
- package/dist/skins/blau.js.flow +6 -3
- package/dist/skins/movistar.d.ts +21 -11
- package/dist/skins/movistar.js +76 -40
- package/dist/skins/movistar.js.flow +21 -11
- package/dist/skins/o2-classic.d.ts +21 -9
- package/dist/skins/o2-classic.js +64 -26
- package/dist/skins/o2-classic.js.flow +21 -9
- package/dist/skins/o2.d.ts +19 -17
- package/dist/skins/o2.js +68 -40
- package/dist/skins/o2.js.flow +19 -17
- package/dist/skins/telefonica.d.ts +18 -13
- package/dist/skins/telefonica.js +76 -45
- package/dist/skins/telefonica.js.flow +18 -13
- package/dist/skins/types.d.ts +12 -0
- package/dist/skins/types.js.flow +12 -0
- package/dist/skins/vivo.d.ts +9 -4
- package/dist/skins/vivo.js +37 -6
- package/dist/skins/vivo.js.flow +9 -4
- package/dist/tag.d.ts +6 -1
- package/dist/tag.js +133 -24
- package/dist/tag.js.flow +15 -1
- package/dist/text.d.ts +4 -0
- package/dist/text.js +13 -6
- package/dist/text.js.flow +10 -0
- package/dist/theme-context-provider.js +8 -2
- package/dist/theme.d.ts +2 -0
- package/dist/theme.js.flow +2 -0
- package/dist/touchable.js +3 -2
- package/dist-es/button-layout.js +30 -17
- package/dist-es/button.js +24 -8
- package/dist-es/card.js +26 -29
- package/dist-es/chip.js +100 -0
- package/dist-es/form.js +1 -1
- package/dist-es/index.js +1 -0
- package/dist-es/package-version.js +1 -1
- package/dist-es/skins/blau.js +36 -5
- package/dist-es/skins/movistar.js +78 -40
- package/dist-es/skins/o2-classic.js +66 -26
- package/dist-es/skins/o2.js +70 -40
- package/dist-es/skins/telefonica.js +78 -45
- package/dist-es/skins/vivo.js +39 -6
- package/dist-es/tag.js +130 -26
- package/dist-es/text.js +13 -6
- package/dist-es/theme-context-provider.js +8 -2
- package/dist-es/touchable.js +3 -2
- package/package.json +1 -1
package/dist/skins/vivo.js
CHANGED
|
@@ -14,16 +14,21 @@ var palette = {
|
|
|
14
14
|
vivoPurpleLight20: '#E0CCEB',
|
|
15
15
|
vivoPurpleLight10: '#EFE5F4',
|
|
16
16
|
vivoGreen: '#99CC33',
|
|
17
|
-
vivoGreenDark: '#
|
|
18
|
-
|
|
17
|
+
vivoGreenDark: '#225C3D',
|
|
18
|
+
vivoGreenLight30: '#91AE9E',
|
|
19
|
+
vivoGreenLight10: '#EDF8E8',
|
|
19
20
|
vivoBlue: '#00ABDB',
|
|
20
21
|
orange: '#FF9900',
|
|
21
|
-
orangeDark: '#
|
|
22
|
-
|
|
22
|
+
orangeDark: '#972A1D',
|
|
23
|
+
orangeLight10: '#FFEFE1',
|
|
24
|
+
orangeLight40: '#FFB84C',
|
|
23
25
|
pink: '#EB3D7D',
|
|
24
26
|
pepper: '#CC1F59',
|
|
25
27
|
pepperDark: '#B71D63',
|
|
28
|
+
pepperDark80: '#8F2052',
|
|
29
|
+
pepperLight40: '#DB628B',
|
|
26
30
|
pepperLight30: '#F7B1CB',
|
|
31
|
+
pepperLight10: '#FCE4EF',
|
|
27
32
|
grey1: '#F6F6F6',
|
|
28
33
|
grey2: '#EEEEEE',
|
|
29
34
|
grey3: '#DDDDDD',
|
|
@@ -127,7 +132,20 @@ var getVivoSkin = function getVivoSkin() {
|
|
|
127
132
|
textNavigationSearchBarHint: palette.vivoPurpleLight50,
|
|
128
133
|
textNavigationSearchBarText: palette.white,
|
|
129
134
|
textAppBar: palette.grey4,
|
|
130
|
-
textAppBarSelected: palette.vivoPurple
|
|
135
|
+
textAppBarSelected: palette.vivoPurple,
|
|
136
|
+
// TAGS
|
|
137
|
+
tagBackgroundSuccess: palette.vivoGreenLight10,
|
|
138
|
+
tagBackgroundWarning: palette.orangeLight10,
|
|
139
|
+
tagBackgroundError: palette.pepperLight10,
|
|
140
|
+
tagBackgroundPromo: palette.vivoPurpleLight10,
|
|
141
|
+
tagBackgroundActive: palette.vivoPurpleLight10,
|
|
142
|
+
tagBackgroundInactive: palette.grey1,
|
|
143
|
+
textTagSuccess: palette.vivoGreenDark,
|
|
144
|
+
textTagWarning: palette.orangeDark,
|
|
145
|
+
textTagError: palette.pepperDark80,
|
|
146
|
+
textTagPromo: palette.vivoPurple,
|
|
147
|
+
textTagActive: palette.vivoPurple,
|
|
148
|
+
textTagInactive: palette.grey5
|
|
131
149
|
},
|
|
132
150
|
darkModeColors: {
|
|
133
151
|
appBarBackground: palette.darkModeGrey,
|
|
@@ -195,7 +213,20 @@ var getVivoSkin = function getVivoSkin() {
|
|
|
195
213
|
textNavigationSearchBarHint: palette.grey4,
|
|
196
214
|
textNavigationSearchBarText: palette.grey2,
|
|
197
215
|
textAppBar: palette.grey5,
|
|
198
|
-
textAppBarSelected: palette.grey2
|
|
216
|
+
textAppBarSelected: palette.grey2,
|
|
217
|
+
// TAGS
|
|
218
|
+
tagBackgroundSuccess: (0, _color).applyAlpha(palette.white, 0.05),
|
|
219
|
+
tagBackgroundWarning: (0, _color).applyAlpha(palette.white, 0.05),
|
|
220
|
+
tagBackgroundError: (0, _color).applyAlpha(palette.white, 0.05),
|
|
221
|
+
tagBackgroundPromo: (0, _color).applyAlpha(palette.white, 0.05),
|
|
222
|
+
tagBackgroundActive: (0, _color).applyAlpha(palette.white, 0.05),
|
|
223
|
+
tagBackgroundInactive: (0, _color).applyAlpha(palette.white, 0.05),
|
|
224
|
+
textTagSuccess: palette.vivoGreenLight30,
|
|
225
|
+
textTagWarning: palette.orangeLight40,
|
|
226
|
+
textTagError: palette.pepperLight40,
|
|
227
|
+
textTagPromo: palette.vivoPurpleLight50,
|
|
228
|
+
textTagActive: palette.vivoPurpleLight50,
|
|
229
|
+
textTagInactive: palette.grey4
|
|
199
230
|
}
|
|
200
231
|
};
|
|
201
232
|
};
|
package/dist/skins/vivo.js.flow
CHANGED
|
@@ -10,16 +10,21 @@ declare export var palette: {
|
|
|
10
10
|
+vivoPurpleLight20: "#E0CCEB",
|
|
11
11
|
+vivoPurpleLight10: "#EFE5F4",
|
|
12
12
|
+vivoGreen: "#99CC33",
|
|
13
|
-
+vivoGreenDark: "#
|
|
14
|
-
+
|
|
13
|
+
+vivoGreenDark: "#225C3D",
|
|
14
|
+
+vivoGreenLight30: "#91AE9E",
|
|
15
|
+
+vivoGreenLight10: "#EDF8E8",
|
|
15
16
|
+vivoBlue: "#00ABDB",
|
|
16
17
|
+orange: "#FF9900",
|
|
17
|
-
+orangeDark: "#
|
|
18
|
-
+
|
|
18
|
+
+orangeDark: "#972A1D",
|
|
19
|
+
+orangeLight10: "#FFEFE1",
|
|
20
|
+
+orangeLight40: "#FFB84C",
|
|
19
21
|
+pink: "#EB3D7D",
|
|
20
22
|
+pepper: "#CC1F59",
|
|
21
23
|
+pepperDark: "#B71D63",
|
|
24
|
+
+pepperDark80: "#8F2052",
|
|
25
|
+
+pepperLight40: "#DB628B",
|
|
22
26
|
+pepperLight30: "#F7B1CB",
|
|
27
|
+
+pepperLight10: "#FCE4EF",
|
|
23
28
|
+grey1: "#F6F6F6",
|
|
24
29
|
+grey2: "#EEEEEE",
|
|
25
30
|
+grey3: "#DDDDDD",
|
package/dist/tag.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import type { IconProps } from './utils/types';
|
|
3
|
+
export declare type TagType = 'promo' | 'active' | 'inactive' | 'success' | 'warning' | 'error';
|
|
2
4
|
export declare type TagProps = {
|
|
5
|
+
type?: 'promo' | 'active' | 'inactive' | 'success' | 'warning' | 'error';
|
|
3
6
|
children: string;
|
|
4
|
-
|
|
7
|
+
Icon?: React.FC<IconProps>;
|
|
8
|
+
/** @deprecated use type prop */
|
|
9
|
+
color?: string;
|
|
5
10
|
};
|
|
6
11
|
declare const Tag: React.FC<TagProps>;
|
|
7
12
|
export default Tag;
|
package/dist/tag.js
CHANGED
|
@@ -4,48 +4,157 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.default = void 0;
|
|
6
6
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
7
|
+
var _box = _interopRequireDefault(require("./box"));
|
|
7
8
|
var _hooks = require("./hooks");
|
|
8
9
|
var _jss = require("./jss");
|
|
9
10
|
var _text = require("./text");
|
|
10
11
|
var _themeVariantContext = require("./theme-variant-context");
|
|
12
|
+
var _css = require("./utils/css");
|
|
13
|
+
function _interopRequireDefault(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function _arrayWithHoles(arr) {
|
|
19
|
+
if (Array.isArray(arr)) return arr;
|
|
20
|
+
}
|
|
21
|
+
function _iterableToArrayLimit(arr, i) {
|
|
22
|
+
var _arr = [];
|
|
23
|
+
var _n = true;
|
|
24
|
+
var _d = false;
|
|
25
|
+
var _e = undefined;
|
|
26
|
+
try {
|
|
27
|
+
for(var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true){
|
|
28
|
+
_arr.push(_s.value);
|
|
29
|
+
if (i && _arr.length === i) break;
|
|
30
|
+
}
|
|
31
|
+
} catch (err) {
|
|
32
|
+
_d = true;
|
|
33
|
+
_e = err;
|
|
34
|
+
} finally{
|
|
35
|
+
try {
|
|
36
|
+
if (!_n && _i["return"] != null) _i["return"]();
|
|
37
|
+
} finally{
|
|
38
|
+
if (_d) throw _e;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return _arr;
|
|
42
|
+
}
|
|
43
|
+
function _nonIterableRest() {
|
|
44
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance");
|
|
45
|
+
}
|
|
46
|
+
function _slicedToArray(arr, i) {
|
|
47
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
|
|
48
|
+
}
|
|
11
49
|
var useStyles = (0, _jss).createUseStyles(function() {
|
|
12
50
|
return {
|
|
13
51
|
tag: {
|
|
14
|
-
backgroundColor: function backgroundColor(param) {
|
|
15
|
-
var color = param.color;
|
|
16
|
-
return color;
|
|
17
|
-
},
|
|
18
|
-
padding: '2px 8px',
|
|
19
|
-
borderRadius: 2,
|
|
20
|
-
minWidth: 48,
|
|
21
52
|
display: 'inline-flex',
|
|
53
|
+
flexDirection: 'row',
|
|
22
54
|
alignItems: 'center',
|
|
23
|
-
|
|
55
|
+
borderRadius: 50,
|
|
56
|
+
justifyContent: 'center',
|
|
57
|
+
minWidth: 56,
|
|
58
|
+
padding: function padding(param) {
|
|
59
|
+
var hasIcon = param.hasIcon;
|
|
60
|
+
return "4px 12px 4px ".concat(hasIcon ? 8 : 12, "px");
|
|
61
|
+
},
|
|
62
|
+
// FIXME: remove this style and use an inline style for the icon once WEB-338 gets merged
|
|
63
|
+
'& svg': {
|
|
64
|
+
display: 'block'
|
|
65
|
+
}
|
|
24
66
|
}
|
|
25
67
|
};
|
|
26
68
|
});
|
|
27
69
|
var Tag = function Tag(param) {
|
|
28
|
-
var children = param.children, color = param.color;
|
|
70
|
+
var Icon = param.Icon, children = param.children, _type = param.type, type = _type === void 0 ? 'promo' : _type, color = param.color;
|
|
29
71
|
var classes = useStyles({
|
|
30
|
-
|
|
72
|
+
hasIcon: !!Icon
|
|
31
73
|
});
|
|
32
74
|
var ref = (0, _hooks).useTheme(), colors = ref.colors, isDarkMode = ref.isDarkMode;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
75
|
+
var isInverse = (0, _themeVariantContext).useIsInverseVariant();
|
|
76
|
+
if (!children) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Legacy implementation
|
|
81
|
+
*
|
|
82
|
+
* @deprecated to be removed in the next major version
|
|
83
|
+
*/ if (color) {
|
|
84
|
+
// Hardcode black text in darkmode because there isn't a black text color constant that we can use in dark mode
|
|
85
|
+
var blackText = isDarkMode ? '#313235' : colors.textPrimary;
|
|
86
|
+
var textColor = color === colors.inverse ? blackText : colors.textPrimaryInverse;
|
|
87
|
+
return(/*#__PURE__*/ (0, _jsxRuntime).jsx(_themeVariantContext.ThemeVariant, {
|
|
39
88
|
isInverse: false,
|
|
40
|
-
children: /*#__PURE__*/ (0, _jsxRuntime).jsx(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
89
|
+
children: /*#__PURE__*/ (0, _jsxRuntime).jsx("span", {
|
|
90
|
+
className: classes.tag,
|
|
91
|
+
style: {
|
|
92
|
+
background: color
|
|
93
|
+
},
|
|
94
|
+
children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text, {
|
|
95
|
+
color: textColor,
|
|
96
|
+
size: 14,
|
|
97
|
+
lineHeight: 20,
|
|
98
|
+
weight: "medium",
|
|
99
|
+
truncate: true,
|
|
100
|
+
children: children
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
var tagTypeToColors = {
|
|
106
|
+
promo: [
|
|
107
|
+
colors.textTagPromo,
|
|
108
|
+
colors.tagBackgroundPromo
|
|
109
|
+
],
|
|
110
|
+
active: [
|
|
111
|
+
colors.textTagActive,
|
|
112
|
+
colors.tagBackgroundActive
|
|
113
|
+
],
|
|
114
|
+
inactive: [
|
|
115
|
+
colors.textTagInactive,
|
|
116
|
+
colors.tagBackgroundInactive
|
|
117
|
+
],
|
|
118
|
+
success: [
|
|
119
|
+
colors.textTagSuccess,
|
|
120
|
+
colors.tagBackgroundSuccess
|
|
121
|
+
],
|
|
122
|
+
warning: [
|
|
123
|
+
colors.textTagWarning,
|
|
124
|
+
colors.tagBackgroundWarning
|
|
125
|
+
],
|
|
126
|
+
error: [
|
|
127
|
+
colors.textTagError,
|
|
128
|
+
colors.tagBackgroundError
|
|
129
|
+
]
|
|
130
|
+
};
|
|
131
|
+
var _type1 = _slicedToArray(tagTypeToColors[type], 2), textColor = _type1[0], backgroundColor = _type1[1];
|
|
132
|
+
var shouldUseInverseBackground = isInverse && !isDarkMode;
|
|
133
|
+
return(/*#__PURE__*/ (0, _jsxRuntime).jsxs("span", {
|
|
134
|
+
className: classes.tag,
|
|
135
|
+
style: {
|
|
136
|
+
background: shouldUseInverseBackground ? colors.inverse : backgroundColor
|
|
137
|
+
},
|
|
138
|
+
children: [
|
|
139
|
+
Icon && /*#__PURE__*/ (0, _jsxRuntime).jsx(_box.default, {
|
|
140
|
+
paddingRight: 4,
|
|
141
|
+
children: /*#__PURE__*/ (0, _jsxRuntime).jsx(Icon, {
|
|
142
|
+
color: textColor,
|
|
143
|
+
size: (0, _css).pxToRem(16)
|
|
144
|
+
})
|
|
145
|
+
}),
|
|
146
|
+
/*#__PURE__*/ (0, _jsxRuntime).jsx(_themeVariantContext.ThemeVariant, {
|
|
147
|
+
isInverse: false,
|
|
148
|
+
children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_text.Text, {
|
|
149
|
+
color: textColor,
|
|
150
|
+
size: 14,
|
|
151
|
+
lineHeight: 20,
|
|
152
|
+
weight: "medium",
|
|
153
|
+
truncate: true,
|
|
154
|
+
children: children
|
|
155
|
+
})
|
|
47
156
|
})
|
|
48
|
-
|
|
157
|
+
]
|
|
49
158
|
}));
|
|
50
159
|
};
|
|
51
160
|
var _default = Tag;
|
package/dist/tag.js.flow
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
|
+
import type { IconProps } from "./utils/types";
|
|
5
|
+
export type TagType =
|
|
6
|
+
| "promo"
|
|
7
|
+
| "active"
|
|
8
|
+
| "inactive"
|
|
9
|
+
| "success"
|
|
10
|
+
| "warning"
|
|
11
|
+
| "error";
|
|
4
12
|
export type TagProps = {
|
|
13
|
+
type?: "promo" | "active" | "inactive" | "success" | "warning" | "error",
|
|
5
14
|
children: string,
|
|
6
|
-
|
|
15
|
+
Icon?: React.ComponentType<IconProps>,
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated use type prop
|
|
19
|
+
*/
|
|
20
|
+
color?: string,
|
|
7
21
|
};
|
|
8
22
|
declare var Tag: React.ComponentType<TagProps>;
|
|
9
23
|
declare export default typeof Tag;
|
package/dist/text.d.ts
CHANGED
|
@@ -2,9 +2,13 @@ import * as React from 'react';
|
|
|
2
2
|
declare type FontWeight = 'light' | 'regular' | 'medium';
|
|
3
3
|
export interface TextPresetProps {
|
|
4
4
|
color?: string;
|
|
5
|
+
/** @deprecated use decoration prop */
|
|
5
6
|
textDecoration?: 'underline' | 'line-through' | 'none';
|
|
7
|
+
decoration?: 'underline' | 'line-through' | 'inherit' | 'none';
|
|
8
|
+
transform?: 'uppercase' | 'capitalize' | 'lowercase' | 'inherit' | 'none';
|
|
6
9
|
children?: React.ReactNode;
|
|
7
10
|
truncate?: boolean | number;
|
|
11
|
+
/** @deprecated use transform */
|
|
8
12
|
uppercase?: boolean;
|
|
9
13
|
wordBreak?: boolean;
|
|
10
14
|
id?: string;
|
package/dist/text.js
CHANGED
|
@@ -86,7 +86,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
86
86
|
}
|
|
87
87
|
return 'initial';
|
|
88
88
|
};
|
|
89
|
-
var _color,
|
|
89
|
+
var _color, _decoration;
|
|
90
90
|
return {
|
|
91
91
|
text: _defineProperty({
|
|
92
92
|
lineHeight: function lineHeight(param) {
|
|
@@ -94,8 +94,14 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
94
94
|
return (0, _css).pxToRem(desktopLineHeight);
|
|
95
95
|
},
|
|
96
96
|
textTransform: function textTransform(param) {
|
|
97
|
-
var uppercase = param.uppercase;
|
|
98
|
-
|
|
97
|
+
var uppercase = param.uppercase, transform = param.transform;
|
|
98
|
+
if (uppercase) {
|
|
99
|
+
return 'uppercase';
|
|
100
|
+
}
|
|
101
|
+
if (transform) {
|
|
102
|
+
return transform;
|
|
103
|
+
}
|
|
104
|
+
return 'inherit';
|
|
99
105
|
},
|
|
100
106
|
fontSize: function fontSize(param) {
|
|
101
107
|
var desktopSize = param.desktopSize;
|
|
@@ -110,7 +116,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
110
116
|
return isInverse ? (_color = inverseColorsMap[color1]) !== null && _color !== void 0 ? _color : color1 : color1;
|
|
111
117
|
},
|
|
112
118
|
textDecoration: function textDecoration(p) {
|
|
113
|
-
return (
|
|
119
|
+
return (_decoration = p.decoration) !== null && _decoration !== void 0 ? _decoration : 'inherit';
|
|
114
120
|
},
|
|
115
121
|
letterSpacing: function letterSpacing(param) {
|
|
116
122
|
var letterSpacing1 = param.letterSpacing;
|
|
@@ -146,7 +152,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
146
152
|
};
|
|
147
153
|
});
|
|
148
154
|
var Text = function Text(param) {
|
|
149
|
-
var weight = param.weight, color = param.color, textDecoration = param.textDecoration, truncate = param.truncate, uppercase = param.uppercase, wordBreak = param.wordBreak, _as = param.as, as = _as === void 0 ? 'span' : _as, children = param.children, size = param.size, _mobileSize = param.mobileSize, mobileSize = _mobileSize === void 0 ? size : _mobileSize, _desktopSize = param.desktopSize, desktopSize = _desktopSize === void 0 ? size : _desktopSize, lineHeight = param.lineHeight, _mobileLineHeight = param.mobileLineHeight, mobileLineHeight = _mobileLineHeight === void 0 ? lineHeight : _mobileLineHeight, _desktopLineHeight = param.desktopLineHeight, desktopLineHeight = _desktopLineHeight === void 0 ? lineHeight : _desktopLineHeight, letterSpacing = param.letterSpacing, id = param.id, role = param.role, ariaLevel = param['aria-level'];
|
|
155
|
+
var weight = param.weight, color = param.color, textDecoration = param.textDecoration, _decoration = param.decoration, decoration = _decoration === void 0 ? textDecoration : _decoration, truncate = param.truncate, uppercase = param.uppercase, transform = param.transform, wordBreak = param.wordBreak, _as = param.as, as = _as === void 0 ? 'span' : _as, children = param.children, size = param.size, _mobileSize = param.mobileSize, mobileSize = _mobileSize === void 0 ? size : _mobileSize, _desktopSize = param.desktopSize, desktopSize = _desktopSize === void 0 ? size : _desktopSize, lineHeight = param.lineHeight, _mobileLineHeight = param.mobileLineHeight, mobileLineHeight = _mobileLineHeight === void 0 ? lineHeight : _mobileLineHeight, _desktopLineHeight = param.desktopLineHeight, desktopLineHeight = _desktopLineHeight === void 0 ? lineHeight : _desktopLineHeight, letterSpacing = param.letterSpacing, id = param.id, role = param.role, ariaLevel = param['aria-level'];
|
|
150
156
|
var isInverse = (0, _themeVariantContext).useIsInverseVariant();
|
|
151
157
|
var classes = useStyles({
|
|
152
158
|
isInverse: isInverse,
|
|
@@ -156,8 +162,9 @@ var Text = function Text(param) {
|
|
|
156
162
|
desktopLineHeight: desktopLineHeight,
|
|
157
163
|
weight: weight,
|
|
158
164
|
color: color,
|
|
159
|
-
|
|
165
|
+
decoration: decoration,
|
|
160
166
|
uppercase: uppercase,
|
|
167
|
+
transform: transform,
|
|
161
168
|
wordBreak: wordBreak,
|
|
162
169
|
letterSpacing: letterSpacing,
|
|
163
170
|
truncate: truncate
|
package/dist/text.js.flow
CHANGED
|
@@ -4,9 +4,19 @@ import * as React from "react";
|
|
|
4
4
|
declare type FontWeight = "light" | "regular" | "medium";
|
|
5
5
|
export type TextPresetProps = {
|
|
6
6
|
color?: string,
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated use decoration prop
|
|
10
|
+
*/
|
|
7
11
|
textDecoration?: "underline" | "line-through" | "none",
|
|
12
|
+
decoration?: "underline" | "line-through" | "inherit" | "none",
|
|
13
|
+
transform?: "uppercase" | "capitalize" | "lowercase" | "inherit" | "none",
|
|
8
14
|
children?: React.Node,
|
|
9
15
|
truncate?: boolean | number,
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated use transform
|
|
19
|
+
*/
|
|
10
20
|
uppercase?: boolean,
|
|
11
21
|
wordBreak?: boolean,
|
|
12
22
|
id?: string,
|
|
@@ -148,6 +148,11 @@ var generateId = function() {
|
|
|
148
148
|
// in frontend, use the same generator for all JssProvider renders, this way we avoid classname collisions
|
|
149
149
|
return (0, _jss).createGenerateId();
|
|
150
150
|
}();
|
|
151
|
+
var useDefaultHrefDecorator = function useDefaultHrefDecorator() {
|
|
152
|
+
return function(href) {
|
|
153
|
+
return href;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
151
156
|
var ThemeContextProvider = function ThemeContextProvider(param) {
|
|
152
157
|
var theme = param.theme, children = param.children;
|
|
153
158
|
var classNamePrefix = React.useMemo(// we'll have missmatches when rendering client side. The disadvantage of this is that we can only have one instance of
|
|
@@ -173,7 +178,7 @@ var ThemeContextProvider = function ThemeContextProvider(param) {
|
|
|
173
178
|
platform: (0, _platform).getPlatform(),
|
|
174
179
|
insideNovumNativeApp: (0, _platform).isInsideNovumNativeApp()
|
|
175
180
|
}, theme.platformOverrides);
|
|
176
|
-
var _mediaQueries1, _Link;
|
|
181
|
+
var _mediaQueries1, _Link, _useHrefDecorator;
|
|
177
182
|
return {
|
|
178
183
|
skinName: theme.skin.name,
|
|
179
184
|
i18n: theme.i18n,
|
|
@@ -191,7 +196,8 @@ var ThemeContextProvider = function ThemeContextProvider(param) {
|
|
|
191
196
|
colors: colors,
|
|
192
197
|
Link: (_Link = theme.Link) !== null && _Link !== void 0 ? _Link : _theme.AnchorLink,
|
|
193
198
|
isDarkMode: isDarkModeEnabled,
|
|
194
|
-
isIos: (0, _platform).getPlatform(platformOverrides) === 'ios'
|
|
199
|
+
isIos: (0, _platform).getPlatform(platformOverrides) === 'ios',
|
|
200
|
+
useHrefDecorator: (_useHrefDecorator = theme.useHrefDecorator) !== null && _useHrefDecorator !== void 0 ? _useHrefDecorator : useDefaultHrefDecorator
|
|
195
201
|
};
|
|
196
202
|
}, [
|
|
197
203
|
theme,
|
package/dist/theme.d.ts
CHANGED
|
@@ -98,6 +98,7 @@ export declare type ThemeConfig = {
|
|
|
98
98
|
desktopOrTabletMinHeight: number;
|
|
99
99
|
};
|
|
100
100
|
Link?: LinkComponent;
|
|
101
|
+
useHrefDecorator?: () => (href: string) => string;
|
|
101
102
|
enableTabFocus?: boolean;
|
|
102
103
|
};
|
|
103
104
|
export declare type Theme = {
|
|
@@ -132,5 +133,6 @@ export declare type Theme = {
|
|
|
132
133
|
Link: LinkComponent;
|
|
133
134
|
isDarkMode: boolean;
|
|
134
135
|
isIos: boolean;
|
|
136
|
+
useHrefDecorator: () => (href: string) => string;
|
|
135
137
|
};
|
|
136
138
|
export {};
|
package/dist/theme.js.flow
CHANGED
|
@@ -102,6 +102,7 @@ export type ThemeConfig = {
|
|
|
102
102
|
desktopOrTabletMinHeight: number,
|
|
103
103
|
},
|
|
104
104
|
Link?: LinkComponent,
|
|
105
|
+
useHrefDecorator?: () => (href: string) => string,
|
|
105
106
|
enableTabFocus?: boolean,
|
|
106
107
|
};
|
|
107
108
|
export type Theme = {
|
|
@@ -136,6 +137,7 @@ export type Theme = {
|
|
|
136
137
|
Link: LinkComponent,
|
|
137
138
|
isDarkMode: boolean,
|
|
138
139
|
isIos: boolean,
|
|
140
|
+
useHrefDecorator: () => (href: string) => string,
|
|
139
141
|
};
|
|
140
142
|
declare export {};
|
|
141
143
|
|
package/dist/touchable.js
CHANGED
|
@@ -114,7 +114,8 @@ var useStyles = (0, _jss).createUseStyles(function() {
|
|
|
114
114
|
};
|
|
115
115
|
});
|
|
116
116
|
var Touchable = /*#__PURE__*/ React.forwardRef(function(props, ref) {
|
|
117
|
-
var ref1 = (0, _hooks).useTheme(), texts = ref1.texts, analytics = ref1.analytics, platformOverrides = ref1.platformOverrides, Link = ref1.Link;
|
|
117
|
+
var ref1 = (0, _hooks).useTheme(), texts = ref1.texts, analytics = ref1.analytics, platformOverrides = ref1.platformOverrides, Link = ref1.Link, useHrefDecorator = ref1.useHrefDecorator;
|
|
118
|
+
var hrefDecorator = useHrefDecorator();
|
|
118
119
|
var classes = useStyles();
|
|
119
120
|
var isClicked = React.useRef(false);
|
|
120
121
|
var trackingEvents = [];
|
|
@@ -150,7 +151,7 @@ var Touchable = /*#__PURE__*/ React.forwardRef(function(props, ref) {
|
|
|
150
151
|
};
|
|
151
152
|
var getHref = function getHref() {
|
|
152
153
|
if (props.href) {
|
|
153
|
-
return props.href;
|
|
154
|
+
return hrefDecorator(props.href);
|
|
154
155
|
}
|
|
155
156
|
if (props.to && props.fullPageOnWebView) {
|
|
156
157
|
if (typeof props.to === 'string') {
|
package/dist-es/button-layout.js
CHANGED
|
@@ -4,6 +4,7 @@ import { createUseStyles } from './jss';
|
|
|
4
4
|
import { useScreenSize, useIsomorphicLayoutEffect } from './hooks';
|
|
5
5
|
import { BUTTON_MIN_WIDTH, ButtonPrimary, ButtonSecondary, ButtonDanger } from './button';
|
|
6
6
|
import classNames from 'classnames';
|
|
7
|
+
import debounce from 'lodash/debounce';
|
|
7
8
|
function _arrayWithHoles(arr) {
|
|
8
9
|
if (Array.isArray(arr)) return arr;
|
|
9
10
|
}
|
|
@@ -174,28 +175,29 @@ var buttonsRange = [
|
|
|
174
175
|
var ButtonLayout = function(param) {
|
|
175
176
|
var children = param.children, _align = param.align, align = _align === void 0 ? 'full-width' : _align, link = param.link, _withMargins = param.withMargins, withMargins = _withMargins === void 0 ? false : _withMargins;
|
|
176
177
|
var ref = useScreenSize(), isTabletOrSmaller = ref.isTabletOrSmaller;
|
|
177
|
-
var ref1 = _slicedToArray(React.useState(true), 2), isMeasuring = ref1[0], setIsMeasuring = ref1[1];
|
|
178
178
|
var childrenCount = React.Children.count(children);
|
|
179
|
-
var
|
|
180
|
-
|
|
179
|
+
var ref1 = _slicedToArray(React.useState({
|
|
180
|
+
isMeasuring: true,
|
|
181
|
+
buttonWidth: 0
|
|
182
|
+
}), 2), buttonStatus = ref1[0], setButtonStatus = ref1[1];
|
|
183
|
+
var updateButtonStatus = function(param) {
|
|
184
|
+
var isMeasuring = param.isMeasuring, buttonWidth = param.buttonWidth;
|
|
181
185
|
if (process.env.NODE_ENV !== 'test') {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (process.env.NODE_ENV !== 'test') {
|
|
187
|
-
setIsMeasuring(isMeasuring);
|
|
186
|
+
setButtonStatus({
|
|
187
|
+
isMeasuring: isMeasuring,
|
|
188
|
+
buttonWidth: buttonWidth
|
|
189
|
+
});
|
|
188
190
|
}
|
|
189
191
|
};
|
|
190
192
|
var classes = useStyles({
|
|
191
|
-
buttonWidth: buttonWidth,
|
|
193
|
+
buttonWidth: buttonStatus.buttonWidth,
|
|
192
194
|
isTabletOrSmaller: isTabletOrSmaller,
|
|
193
195
|
align: align,
|
|
194
196
|
childrenCount: childrenCount
|
|
195
197
|
});
|
|
196
198
|
var wrapperElRef = React.useRef(null);
|
|
197
199
|
useIsomorphicLayoutEffect(function() {
|
|
198
|
-
if (isMeasuring) {
|
|
200
|
+
if (buttonStatus.isMeasuring) {
|
|
199
201
|
var req = window.requestAnimationFrame(function() {
|
|
200
202
|
if (wrapperElRef.current) {
|
|
201
203
|
var childrenWidths = Array.from(wrapperElRef.current.children).map(function(el) {
|
|
@@ -210,8 +212,10 @@ var ButtonLayout = function(param) {
|
|
|
210
212
|
var maxChildWidth = Math.ceil((_Math = Math).max.apply(_Math, _toConsumableArray(childrenWidths).concat([
|
|
211
213
|
BUTTON_MIN_WIDTH
|
|
212
214
|
])));
|
|
213
|
-
|
|
214
|
-
|
|
215
|
+
updateButtonStatus({
|
|
216
|
+
isMeasuring: false,
|
|
217
|
+
buttonWidth: maxChildWidth
|
|
218
|
+
});
|
|
215
219
|
}
|
|
216
220
|
});
|
|
217
221
|
return function() {
|
|
@@ -222,11 +226,20 @@ var ButtonLayout = function(param) {
|
|
|
222
226
|
};
|
|
223
227
|
}, [
|
|
224
228
|
classes.link,
|
|
225
|
-
|
|
229
|
+
buttonStatus
|
|
226
230
|
]);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
231
|
+
/**
|
|
232
|
+
* Multiple calls to calcLayout are debounced to workaround an issue that can be reproduced in chrome when pressing
|
|
233
|
+
* the button during a focus/visibility change. For example, pressing the button having the focus on the devTools.
|
|
234
|
+
*/ var calcLayout = React.useMemo(function() {
|
|
235
|
+
return debounce(function() {
|
|
236
|
+
updateButtonStatus({
|
|
237
|
+
isMeasuring: true,
|
|
238
|
+
buttonWidth: 0
|
|
239
|
+
});
|
|
240
|
+
}, 5, {
|
|
241
|
+
maxWait: 50
|
|
242
|
+
});
|
|
230
243
|
}, []);
|
|
231
244
|
useOnChildrenChangeEffect(wrapperElRef.current, calcLayout);
|
|
232
245
|
useOnFontsReadyEffect(calcLayout);
|
package/dist-es/button.js
CHANGED
|
@@ -361,6 +361,11 @@ var Button = function(props) {
|
|
|
361
361
|
disabled: props.disabled || showSpinner || isFormSending,
|
|
362
362
|
role: 'button'
|
|
363
363
|
};
|
|
364
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
365
|
+
if (props.to === '' || props.href === '') {
|
|
366
|
+
throw Error('to or href props are empty strings');
|
|
367
|
+
}
|
|
368
|
+
}
|
|
364
369
|
if (props.fake) {
|
|
365
370
|
return(/*#__PURE__*/ _jsx(Touchable, _objectSpread({
|
|
366
371
|
maybe: true
|
|
@@ -384,22 +389,25 @@ var Button = function(props) {
|
|
|
384
389
|
onPress: props.onPress
|
|
385
390
|
})));
|
|
386
391
|
}
|
|
387
|
-
if (props.to) {
|
|
392
|
+
if (props.to || props.to === '') {
|
|
388
393
|
return(/*#__PURE__*/ _jsx(Touchable, _objectSpread({
|
|
389
394
|
}, commonProps, {
|
|
390
395
|
to: props.to,
|
|
391
396
|
fullPageOnWebView: props.fullPageOnWebView
|
|
392
397
|
})));
|
|
393
398
|
}
|
|
394
|
-
if (props.href) {
|
|
399
|
+
if (props.href || props.href === '') {
|
|
395
400
|
return(/*#__PURE__*/ _jsx(Touchable, _objectSpread({
|
|
396
401
|
}, commonProps, {
|
|
397
402
|
href: props.href,
|
|
398
403
|
newTab: props.newTab
|
|
399
404
|
})));
|
|
400
405
|
}
|
|
401
|
-
|
|
402
|
-
|
|
406
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
407
|
+
// this cannot happen
|
|
408
|
+
throw Error('Bad button props');
|
|
409
|
+
}
|
|
410
|
+
return null;
|
|
403
411
|
};
|
|
404
412
|
var useButtonLinkStyles = createUseStyles(function(theme) {
|
|
405
413
|
var padding = 6;
|
|
@@ -456,6 +464,11 @@ export var ButtonLink = /*#__PURE__*/ React.forwardRef(function(props, ref) {
|
|
|
456
464
|
children: props.children
|
|
457
465
|
})
|
|
458
466
|
};
|
|
467
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
468
|
+
if (props.to === '' || props.href === '') {
|
|
469
|
+
throw Error('to or href props are empty strings');
|
|
470
|
+
}
|
|
471
|
+
}
|
|
459
472
|
if (props.onPress) {
|
|
460
473
|
return(/*#__PURE__*/ _jsx(Touchable, _objectSpread({
|
|
461
474
|
ref: ref
|
|
@@ -463,7 +476,7 @@ export var ButtonLink = /*#__PURE__*/ React.forwardRef(function(props, ref) {
|
|
|
463
476
|
onPress: props.onPress
|
|
464
477
|
})));
|
|
465
478
|
}
|
|
466
|
-
if (props.to) {
|
|
479
|
+
if (props.to || props.to === '') {
|
|
467
480
|
return(/*#__PURE__*/ _jsx(Touchable, _objectSpread({
|
|
468
481
|
ref: ref
|
|
469
482
|
}, commonProps, {
|
|
@@ -471,7 +484,7 @@ export var ButtonLink = /*#__PURE__*/ React.forwardRef(function(props, ref) {
|
|
|
471
484
|
fullPageOnWebView: props.fullPageOnWebView
|
|
472
485
|
})));
|
|
473
486
|
}
|
|
474
|
-
if (props.href) {
|
|
487
|
+
if (props.href || props.href === '') {
|
|
475
488
|
return(/*#__PURE__*/ _jsx(Touchable, _objectSpread({
|
|
476
489
|
ref: ref
|
|
477
490
|
}, commonProps, {
|
|
@@ -479,8 +492,11 @@ export var ButtonLink = /*#__PURE__*/ React.forwardRef(function(props, ref) {
|
|
|
479
492
|
newTab: props.newTab
|
|
480
493
|
})));
|
|
481
494
|
}
|
|
482
|
-
|
|
483
|
-
|
|
495
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
496
|
+
// this cannot happen
|
|
497
|
+
throw Error('Bad button props');
|
|
498
|
+
}
|
|
499
|
+
return null;
|
|
484
500
|
});
|
|
485
501
|
export var ButtonPrimary = function(props) {
|
|
486
502
|
var classes = usePrimaryButtonStyles();
|