@telefonica/mistica 10.18.0 → 10.22.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 (68) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/button-layout.js +30 -17
  3. package/dist/button.js +24 -8
  4. package/dist/card.js +25 -28
  5. package/dist/chip.d.ts +9 -0
  6. package/dist/chip.js +111 -0
  7. package/dist/chip.js.flow +11 -0
  8. package/dist/header.d.ts +2 -0
  9. package/dist/header.js.flow +5 -0
  10. package/dist/icons/icon-success.js +14 -6
  11. package/dist/image.d.ts +1 -1
  12. package/dist/image.js +3 -2
  13. package/dist/image.js.flow +4 -1
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.js +7 -0
  16. package/dist/index.js.flow +2 -0
  17. package/dist/package-version.js +1 -1
  18. package/dist/section-title.d.ts +1 -3
  19. package/dist/section-title.js.flow +1 -2
  20. package/dist/skins/blau.d.ts +6 -3
  21. package/dist/skins/blau.js +34 -5
  22. package/dist/skins/blau.js.flow +6 -3
  23. package/dist/skins/movistar.d.ts +21 -11
  24. package/dist/skins/movistar.js +76 -40
  25. package/dist/skins/movistar.js.flow +21 -11
  26. package/dist/skins/o2-classic.d.ts +21 -9
  27. package/dist/skins/o2-classic.js +64 -26
  28. package/dist/skins/o2-classic.js.flow +21 -9
  29. package/dist/skins/o2.d.ts +19 -17
  30. package/dist/skins/o2.js +68 -40
  31. package/dist/skins/o2.js.flow +19 -17
  32. package/dist/skins/telefonica.d.ts +18 -13
  33. package/dist/skins/telefonica.js +76 -45
  34. package/dist/skins/telefonica.js.flow +18 -13
  35. package/dist/skins/types.d.ts +12 -0
  36. package/dist/skins/types.js.flow +12 -0
  37. package/dist/skins/vivo.d.ts +9 -4
  38. package/dist/skins/vivo.js +37 -6
  39. package/dist/skins/vivo.js.flow +9 -4
  40. package/dist/tag.d.ts +6 -1
  41. package/dist/tag.js +133 -24
  42. package/dist/tag.js.flow +15 -1
  43. package/dist/text.d.ts +4 -0
  44. package/dist/text.js +13 -6
  45. package/dist/text.js.flow +10 -0
  46. package/dist/theme-context-provider.js +8 -2
  47. package/dist/theme.d.ts +2 -0
  48. package/dist/theme.js.flow +2 -0
  49. package/dist/touchable.js +3 -2
  50. package/dist-es/button-layout.js +30 -17
  51. package/dist-es/button.js +24 -8
  52. package/dist-es/card.js +26 -29
  53. package/dist-es/chip.js +100 -0
  54. package/dist-es/icons/icon-success.js +14 -6
  55. package/dist-es/image.js +3 -2
  56. package/dist-es/index.js +1 -0
  57. package/dist-es/package-version.js +1 -1
  58. package/dist-es/skins/blau.js +36 -5
  59. package/dist-es/skins/movistar.js +78 -40
  60. package/dist-es/skins/o2-classic.js +66 -26
  61. package/dist-es/skins/o2.js +70 -40
  62. package/dist-es/skins/telefonica.js +78 -45
  63. package/dist-es/skins/vivo.js +39 -6
  64. package/dist-es/tag.js +130 -26
  65. package/dist-es/text.js +13 -6
  66. package/dist-es/theme-context-provider.js +8 -2
  67. package/dist-es/touchable.js +3 -2
  68. package/package.json +1 -1
@@ -1,24 +1,30 @@
1
1
  import { applyAlpha } from '../utils/color';
2
2
  import { TELEFONICA_SKIN } from './constants';
3
+ // https://github.com/Telefonica/mistica-design/blob/production/tokens/telefonica-skin-schema.json
4
+ // https://github.com/Telefonica/mistica-design/blob/production/tokens/telefonica-constants.json
3
5
  export var palette = {
4
6
  telefonicaBlue: '#0066FF',
5
- telefonicaBlueDark: '#0356C9',
6
- telefonicaBlueLight50: '#80B2FF',
7
- telefonicaBlueLight30: '#B3D1FF',
8
- telefonicaBlueLight20: '#EBF3FF',
7
+ telefonicaBlue10: '#E5F0FF',
8
+ telefonicaBlue20: '#B2D1FF',
9
+ telefonicaBlue30: '#80B3FF',
10
+ telefonicaBlue70: '#0356C9',
9
11
  ambar: '#EAC344',
10
- ambarLight: '#F5E98A',
11
- ambarDark: '#AD842D',
12
+ ambar10: '#FDF9EC',
13
+ ambar40: '#F0D57C',
14
+ ambar70: '#69581F',
12
15
  coral: '#E66C64',
13
- coralLight: '#E3A19A',
14
- coralDark: '#912C31',
16
+ coral10: '#FDF0EF',
17
+ coral40: '#E3A19A',
18
+ coral70: '#D50000',
19
+ coral80: '#912C31',
15
20
  orchid: '#C466EF',
16
- orchidDark: '#8A1A93',
17
- orchidLight: '#E7C2F8',
21
+ orchid10: '#F9F0FD',
22
+ orchid40: '#D694F4',
23
+ orchid70: '#8947A7',
18
24
  turquoise: '#59C2C9',
19
- turquoiseLight: '#67E0E5',
20
- turquoiseDark: '#3E8A8A',
21
- white: '#FFFFFF',
25
+ turquoise10: '#EEF9FA',
26
+ turquoise40: '#8BD4D9',
27
+ turquoise70: '#3E888D',
22
28
  grey1: '#F2F4FF',
23
29
  grey2: '#D1D5E4',
24
30
  grey3: '#B0B6CA',
@@ -28,6 +34,7 @@ export var palette = {
28
34
  grey7: '#414B61',
29
35
  grey8: '#2B3447',
30
36
  grey9: '#031A34',
37
+ white: '#FFFFFF',
31
38
  // specific for dark mode:
32
39
  darkModeBlack: '#191919',
33
40
  darkModeGrey: '#242424'
@@ -43,7 +50,7 @@ export var getTelefonicaSkin = function() {
43
50
  backgroundBrand: palette.telefonicaBlue,
44
51
  backgroundOverlay: applyAlpha(palette.grey6, 0.6),
45
52
  backgroundSkeleton: palette.grey1,
46
- backgroundSkeletonInverse: palette.telefonicaBlueDark,
53
+ backgroundSkeletonInverse: palette.telefonicaBlue70,
47
54
  navigationBarBackground: palette.telefonicaBlue,
48
55
  backgroundAlternative: palette.grey1,
49
56
  backgroundFeedbackBottom: palette.telefonicaBlue,
@@ -56,48 +63,48 @@ export var getTelefonicaSkin = function() {
56
63
  // BUTTONS
57
64
  buttonDangerBackground: palette.coral,
58
65
  buttonDangerBackgroundDisabled: palette.grey2,
59
- buttonDangerBackgroundSelected: palette.coralDark,
60
- buttonDangerBackgroundHover: palette.coralDark,
66
+ buttonDangerBackgroundSelected: palette.coral80,
67
+ buttonDangerBackgroundHover: palette.coral80,
61
68
  buttonLinkBackgroundSelected: palette.grey1,
62
69
  buttonLinkBackgroundSelectedInverse: applyAlpha(palette.white, 0.2),
63
70
  buttonPrimaryBackground: palette.telefonicaBlue,
64
71
  buttonPrimaryBackgroundDisabled: palette.grey2,
65
- buttonPrimaryBackgroundDisabledInverse: palette.telefonicaBlueLight50,
72
+ buttonPrimaryBackgroundDisabledInverse: palette.telefonicaBlue30,
66
73
  buttonPrimaryBackgroundInverse: palette.white,
67
- buttonPrimaryBackgroundSelected: palette.telefonicaBlueDark,
68
- buttonPrimaryBackgroundHover: palette.telefonicaBlueDark,
69
- buttonPrimaryBackgroundSelectedInverse: palette.telefonicaBlueLight50,
74
+ buttonPrimaryBackgroundSelected: palette.telefonicaBlue70,
75
+ buttonPrimaryBackgroundHover: palette.telefonicaBlue70,
76
+ buttonPrimaryBackgroundSelectedInverse: palette.telefonicaBlue30,
70
77
  buttonSecondaryBackground: palette.telefonicaBlue,
71
78
  buttonSecondaryBackgroundDisabled: palette.grey2,
72
- buttonSecondaryBackgroundSelected: palette.telefonicaBlueDark,
73
- buttonSecondaryBorderDisabledInverse: palette.telefonicaBlueLight50,
79
+ buttonSecondaryBackgroundSelected: palette.telefonicaBlue70,
80
+ buttonSecondaryBorderDisabledInverse: palette.telefonicaBlue30,
74
81
  buttonSecondaryBorderInverse: palette.white,
75
- buttonSecondaryBorderSelectedInverse: palette.telefonicaBlueLight50,
82
+ buttonSecondaryBorderSelectedInverse: palette.telefonicaBlue30,
76
83
  textButtonPrimary: palette.white,
77
84
  textButtonPrimaryDisabled: palette.white,
78
85
  textButtonPrimaryInverse: palette.telefonicaBlue,
79
- textButtonPrimaryInverseDisabled: palette.telefonicaBlueLight30,
86
+ textButtonPrimaryInverseDisabled: palette.telefonicaBlue20,
80
87
  textButtonPrimaryInverseSelected: palette.telefonicaBlue,
81
88
  textButtonSecondary: palette.telefonicaBlue,
82
89
  textButtonSecondaryDisabled: palette.grey2,
83
- textButtonSecondarySelected: palette.telefonicaBlueDark,
90
+ textButtonSecondarySelected: palette.telefonicaBlue70,
84
91
  textButtonSecondaryInverse: palette.white,
85
- textButtonSecondaryInverseDisabled: palette.telefonicaBlueLight50,
86
- textButtonSecondaryInverseSelected: palette.telefonicaBlueLight50,
92
+ textButtonSecondaryInverseDisabled: palette.telefonicaBlue30,
93
+ textButtonSecondaryInverseSelected: palette.telefonicaBlue30,
87
94
  textLink: palette.telefonicaBlue,
88
95
  textLinkInverse: palette.white,
89
96
  textLinkDanger: palette.coral,
90
97
  textLinkDangerDisabled: palette.grey2,
91
98
  textLinkDisabled: palette.grey2,
92
- textLinkSnackbar: palette.telefonicaBlueLight50,
99
+ textLinkSnackbar: palette.telefonicaBlue30,
93
100
  // CONTROLS
94
101
  control: palette.grey3,
95
102
  controlActivated: palette.telefonicaBlue,
96
103
  controlError: palette.coral,
97
- loadingBar: palette.telefonicaBlueLight50,
98
- loadingBarBackground: palette.telefonicaBlueDark,
99
- loadingBarBackgroundInverse: palette.telefonicaBlueDark,
100
- loadingBarInverse: palette.telefonicaBlueLight50,
104
+ loadingBar: palette.telefonicaBlue30,
105
+ loadingBarBackground: palette.telefonicaBlue70,
106
+ loadingBarBackgroundInverse: palette.telefonicaBlue70,
107
+ loadingBarInverse: palette.telefonicaBlue30,
101
108
  toggleAndroidInactive: palette.grey2,
102
109
  toggleAndroidBackgroundActive: palette.grey2,
103
110
  iosControlKnob: palette.white,
@@ -106,18 +113,18 @@ export var getTelefonicaSkin = function() {
106
113
  dividerInverse: applyAlpha(palette.white, 0.2),
107
114
  navigationBarDivider: palette.telefonicaBlue,
108
115
  // FEEDBACKS
109
- badge: palette.coralDark,
116
+ badge: palette.coral80,
110
117
  feedbackErrorBackground: palette.coral,
111
118
  feedbackInfoBackground: palette.grey9,
112
119
  // GLOBAL
113
120
  brand: palette.telefonicaBlue,
114
- brandDark: palette.telefonicaBlueDark,
121
+ brandDark: palette.telefonicaBlue70,
115
122
  inverse: palette.white,
116
123
  neutralHigh: palette.grey9,
117
124
  neutralMedium: palette.grey5,
118
125
  neutralLow: palette.grey1,
119
126
  promo: palette.orchid,
120
- highlight: palette.coralLight,
127
+ highlight: palette.coral40,
121
128
  textPrimary: palette.grey9,
122
129
  textPrimaryInverse: palette.white,
123
130
  textSecondary: palette.grey5,
@@ -134,7 +141,20 @@ export var getTelefonicaSkin = function() {
134
141
  textNavigationSearchBarHint: palette.grey1,
135
142
  textNavigationSearchBarText: palette.white,
136
143
  textAppBar: palette.grey4,
137
- textAppBarSelected: palette.telefonicaBlue
144
+ textAppBarSelected: palette.telefonicaBlue,
145
+ // TAGS
146
+ tagBackgroundSuccess: palette.turquoise10,
147
+ tagBackgroundWarning: palette.ambar10,
148
+ tagBackgroundError: palette.coral10,
149
+ tagBackgroundPromo: palette.orchid10,
150
+ tagBackgroundActive: palette.grey1,
151
+ tagBackgroundInactive: palette.grey1,
152
+ textTagSuccess: palette.turquoise70,
153
+ textTagWarning: palette.ambar70,
154
+ textTagError: palette.coral70,
155
+ textTagPromo: palette.orchid70,
156
+ textTagActive: palette.telefonicaBlue,
157
+ textTagInactive: palette.grey6
138
158
  },
139
159
  darkModeColors: {
140
160
  appBarBackground: palette.darkModeGrey,
@@ -157,15 +177,15 @@ export var getTelefonicaSkin = function() {
157
177
  buttonPrimaryBackgroundDisabled: applyAlpha(palette.white, 0.05),
158
178
  buttonPrimaryBackgroundDisabledInverse: applyAlpha(palette.white, 0.05),
159
179
  buttonPrimaryBackgroundInverse: palette.telefonicaBlue,
160
- buttonPrimaryBackgroundSelected: palette.telefonicaBlueDark,
161
- buttonPrimaryBackgroundHover: palette.telefonicaBlueDark,
162
- buttonPrimaryBackgroundSelectedInverse: palette.telefonicaBlueDark,
180
+ buttonPrimaryBackgroundSelected: palette.telefonicaBlue70,
181
+ buttonPrimaryBackgroundHover: palette.telefonicaBlue70,
182
+ buttonPrimaryBackgroundSelectedInverse: palette.telefonicaBlue70,
163
183
  buttonSecondaryBackground: palette.telefonicaBlue,
164
184
  buttonSecondaryBackgroundDisabled: applyAlpha(palette.white, 0.05),
165
- buttonSecondaryBackgroundSelected: palette.telefonicaBlueDark,
185
+ buttonSecondaryBackgroundSelected: palette.telefonicaBlue70,
166
186
  buttonSecondaryBorderDisabledInverse: applyAlpha(palette.white, 0.05),
167
187
  buttonSecondaryBorderInverse: palette.telefonicaBlue,
168
- buttonSecondaryBorderSelectedInverse: palette.telefonicaBlueDark,
188
+ buttonSecondaryBorderSelectedInverse: palette.telefonicaBlue70,
169
189
  textButtonPrimary: palette.grey2,
170
190
  textButtonPrimaryDisabled: palette.grey7,
171
191
  textButtonPrimaryInverse: palette.grey2,
@@ -184,8 +204,8 @@ export var getTelefonicaSkin = function() {
184
204
  controlActivated: palette.telefonicaBlue,
185
205
  loadingBar: palette.telefonicaBlue,
186
206
  loadingBarBackground: applyAlpha(palette.white, 0.05),
187
- loadingBarBackgroundInverse: palette.telefonicaBlueDark,
188
- loadingBarInverse: palette.telefonicaBlueLight50,
207
+ loadingBarBackgroundInverse: palette.telefonicaBlue70,
208
+ loadingBarInverse: palette.telefonicaBlue30,
189
209
  toggleAndroidInactive: palette.grey4,
190
210
  toggleAndroidBackgroundActive: palette.grey1,
191
211
  iosControlKnob: palette.grey2,
@@ -203,13 +223,26 @@ export var getTelefonicaSkin = function() {
203
223
  textSecondary: palette.grey4,
204
224
  textSecondaryInverse: palette.grey4,
205
225
  textDisabled: palette.grey5,
206
- textAmount: palette.telefonicaBlueLight50,
226
+ textAmount: palette.telefonicaBlue30,
207
227
  textNavigationBarPrimary: palette.grey2,
208
228
  textNavigationBarSecondary: palette.grey4,
209
229
  textNavigationSearchBarHint: palette.grey4,
210
230
  textNavigationSearchBarText: palette.grey2,
211
231
  textAppBar: palette.grey5,
212
- textAppBarSelected: palette.grey2
232
+ textAppBarSelected: palette.grey2,
233
+ // TAGS
234
+ tagBackgroundSuccess: applyAlpha(palette.white, 0.05),
235
+ tagBackgroundWarning: applyAlpha(palette.white, 0.05),
236
+ tagBackgroundError: applyAlpha(palette.white, 0.05),
237
+ tagBackgroundPromo: applyAlpha(palette.white, 0.05),
238
+ tagBackgroundActive: applyAlpha(palette.white, 0.05),
239
+ tagBackgroundInactive: applyAlpha(palette.white, 0.05),
240
+ textTagSuccess: palette.turquoise40,
241
+ textTagWarning: palette.ambar40,
242
+ textTagError: palette.coral40,
243
+ textTagPromo: palette.orchid40,
244
+ textTagActive: palette.telefonicaBlue30,
245
+ textTagInactive: palette.grey4
213
246
  }
214
247
  };
215
248
  };
@@ -1,5 +1,7 @@
1
1
  import { applyAlpha } from '../utils/color';
2
2
  import { VIVO_SKIN } from './constants';
3
+ // https://github.com/Telefonica/mistica-design/blob/production/tokens/vivo-constants.json
4
+ // https://github.com/Telefonica/mistica-design/blob/production/tokens/vivo-skin-schema.json
3
5
  export var palette = {
4
6
  vivoPurple: '#660099',
5
7
  vivoPurpleDark: '#461E5F',
@@ -9,16 +11,21 @@ export var palette = {
9
11
  vivoPurpleLight20: '#E0CCEB',
10
12
  vivoPurpleLight10: '#EFE5F4',
11
13
  vivoGreen: '#99CC33',
12
- vivoGreenDark: '#33A14A',
13
- vivoGreenLight40: '#D6EAAD',
14
+ vivoGreenDark: '#225C3D',
15
+ vivoGreenLight30: '#91AE9E',
16
+ vivoGreenLight10: '#EDF8E8',
14
17
  vivoBlue: '#00ABDB',
15
18
  orange: '#FF9900',
16
- orangeDark: '#FA6324',
17
- orangeLight: '#FFD699',
19
+ orangeDark: '#972A1D',
20
+ orangeLight10: '#FFEFE1',
21
+ orangeLight40: '#FFB84C',
18
22
  pink: '#EB3D7D',
19
23
  pepper: '#CC1F59',
20
24
  pepperDark: '#B71D63',
25
+ pepperDark80: '#8F2052',
26
+ pepperLight40: '#DB628B',
21
27
  pepperLight30: '#F7B1CB',
28
+ pepperLight10: '#FCE4EF',
22
29
  grey1: '#F6F6F6',
23
30
  grey2: '#EEEEEE',
24
31
  grey3: '#DDDDDD',
@@ -121,7 +128,20 @@ export var getVivoSkin = function() {
121
128
  textNavigationSearchBarHint: palette.vivoPurpleLight50,
122
129
  textNavigationSearchBarText: palette.white,
123
130
  textAppBar: palette.grey4,
124
- textAppBarSelected: palette.vivoPurple
131
+ textAppBarSelected: palette.vivoPurple,
132
+ // TAGS
133
+ tagBackgroundSuccess: palette.vivoGreenLight10,
134
+ tagBackgroundWarning: palette.orangeLight10,
135
+ tagBackgroundError: palette.pepperLight10,
136
+ tagBackgroundPromo: palette.vivoPurpleLight10,
137
+ tagBackgroundActive: palette.vivoPurpleLight10,
138
+ tagBackgroundInactive: palette.grey1,
139
+ textTagSuccess: palette.vivoGreenDark,
140
+ textTagWarning: palette.orangeDark,
141
+ textTagError: palette.pepperDark80,
142
+ textTagPromo: palette.vivoPurple,
143
+ textTagActive: palette.vivoPurple,
144
+ textTagInactive: palette.grey5
125
145
  },
126
146
  darkModeColors: {
127
147
  appBarBackground: palette.darkModeGrey,
@@ -189,7 +209,20 @@ export var getVivoSkin = function() {
189
209
  textNavigationSearchBarHint: palette.grey4,
190
210
  textNavigationSearchBarText: palette.grey2,
191
211
  textAppBar: palette.grey5,
192
- textAppBarSelected: palette.grey2
212
+ textAppBarSelected: palette.grey2,
213
+ // TAGS
214
+ tagBackgroundSuccess: applyAlpha(palette.white, 0.05),
215
+ tagBackgroundWarning: applyAlpha(palette.white, 0.05),
216
+ tagBackgroundError: applyAlpha(palette.white, 0.05),
217
+ tagBackgroundPromo: applyAlpha(palette.white, 0.05),
218
+ tagBackgroundActive: applyAlpha(palette.white, 0.05),
219
+ tagBackgroundInactive: applyAlpha(palette.white, 0.05),
220
+ textTagSuccess: palette.vivoGreenLight30,
221
+ textTagWarning: palette.orangeLight40,
222
+ textTagError: palette.pepperLight40,
223
+ textTagPromo: palette.vivoPurpleLight50,
224
+ textTagActive: palette.vivoPurpleLight50,
225
+ textTagInactive: palette.grey4
193
226
  }
194
227
  };
195
228
  };
package/dist-es/tag.js CHANGED
@@ -1,46 +1,150 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Box from './box';
2
3
  import { useTheme } from './hooks';
3
4
  import { createUseStyles } from './jss';
4
5
  import { Text } from './text';
5
- import { ThemeVariant } from './theme-variant-context';
6
+ import { ThemeVariant, useIsInverseVariant } from './theme-variant-context';
7
+ import { pxToRem } from './utils/css';
8
+ function _arrayWithHoles(arr) {
9
+ if (Array.isArray(arr)) return arr;
10
+ }
11
+ function _iterableToArrayLimit(arr, i) {
12
+ var _arr = [];
13
+ var _n = true;
14
+ var _d = false;
15
+ var _e = undefined;
16
+ try {
17
+ for(var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true){
18
+ _arr.push(_s.value);
19
+ if (i && _arr.length === i) break;
20
+ }
21
+ } catch (err) {
22
+ _d = true;
23
+ _e = err;
24
+ } finally{
25
+ try {
26
+ if (!_n && _i["return"] != null) _i["return"]();
27
+ } finally{
28
+ if (_d) throw _e;
29
+ }
30
+ }
31
+ return _arr;
32
+ }
33
+ function _nonIterableRest() {
34
+ throw new TypeError("Invalid attempt to destructure non-iterable instance");
35
+ }
36
+ function _slicedToArray(arr, i) {
37
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
38
+ }
6
39
  var useStyles = createUseStyles(function() {
7
40
  return {
8
41
  tag: {
9
- backgroundColor: function(param) {
10
- var color = param.color;
11
- return color;
12
- },
13
- padding: '2px 8px',
14
- borderRadius: 2,
15
- minWidth: 48,
16
42
  display: 'inline-flex',
43
+ flexDirection: 'row',
17
44
  alignItems: 'center',
18
- justifyContent: 'center'
45
+ borderRadius: 50,
46
+ justifyContent: 'center',
47
+ minWidth: 56,
48
+ padding: function(param) {
49
+ var hasIcon = param.hasIcon;
50
+ return "4px 12px 4px ".concat(hasIcon ? 8 : 12, "px");
51
+ },
52
+ // FIXME: remove this style and use an inline style for the icon once WEB-338 gets merged
53
+ '& svg': {
54
+ display: 'block'
55
+ }
19
56
  }
20
57
  };
21
58
  });
22
59
  var Tag = function(param) {
23
- var children = param.children, color = param.color;
60
+ var Icon = param.Icon, children = param.children, _type = param.type, type = _type === void 0 ? 'promo' : _type, color = param.color;
24
61
  var classes = useStyles({
25
- color: color
62
+ hasIcon: !!Icon
26
63
  });
27
64
  var ref = useTheme(), colors = ref.colors, isDarkMode = ref.isDarkMode;
28
- // Hardcode black text in darkmode because there isn't a black text color constant that we can use in dark mode
29
- var blackText = isDarkMode ? '#313235' : colors.textPrimary;
30
- var textColor = color === colors.inverse ? blackText : colors.textPrimaryInverse;
31
- return(/*#__PURE__*/ _jsx("span", {
32
- className: classes.tag,
33
- children: /*#__PURE__*/ _jsx(ThemeVariant, {
65
+ var isInverse = useIsInverseVariant();
66
+ if (!children) {
67
+ return null;
68
+ }
69
+ /**
70
+ * Legacy implementation
71
+ *
72
+ * @deprecated to be removed in the next major version
73
+ */ if (color) {
74
+ // Hardcode black text in darkmode because there isn't a black text color constant that we can use in dark mode
75
+ var blackText = isDarkMode ? '#313235' : colors.textPrimary;
76
+ var textColor = color === colors.inverse ? blackText : colors.textPrimaryInverse;
77
+ return(/*#__PURE__*/ _jsx(ThemeVariant, {
34
78
  isInverse: false,
35
- children: /*#__PURE__*/ _jsx(Text, {
36
- color: textColor,
37
- size: 12,
38
- lineHeight: 16,
39
- weight: "regular",
40
- uppercase: true,
41
- children: children
79
+ children: /*#__PURE__*/ _jsx("span", {
80
+ className: classes.tag,
81
+ style: {
82
+ background: color
83
+ },
84
+ children: /*#__PURE__*/ _jsx(Text, {
85
+ color: textColor,
86
+ size: 14,
87
+ lineHeight: 20,
88
+ weight: "medium",
89
+ truncate: true,
90
+ children: children
91
+ })
92
+ })
93
+ }));
94
+ }
95
+ var tagTypeToColors = {
96
+ promo: [
97
+ colors.textTagPromo,
98
+ colors.tagBackgroundPromo
99
+ ],
100
+ active: [
101
+ colors.textTagActive,
102
+ colors.tagBackgroundActive
103
+ ],
104
+ inactive: [
105
+ colors.textTagInactive,
106
+ colors.tagBackgroundInactive
107
+ ],
108
+ success: [
109
+ colors.textTagSuccess,
110
+ colors.tagBackgroundSuccess
111
+ ],
112
+ warning: [
113
+ colors.textTagWarning,
114
+ colors.tagBackgroundWarning
115
+ ],
116
+ error: [
117
+ colors.textTagError,
118
+ colors.tagBackgroundError
119
+ ]
120
+ };
121
+ var _type1 = _slicedToArray(tagTypeToColors[type], 2), textColor = _type1[0], backgroundColor = _type1[1];
122
+ var shouldUseInverseBackground = isInverse && !isDarkMode;
123
+ return(/*#__PURE__*/ _jsxs("span", {
124
+ className: classes.tag,
125
+ style: {
126
+ background: shouldUseInverseBackground ? colors.inverse : backgroundColor
127
+ },
128
+ children: [
129
+ Icon && /*#__PURE__*/ _jsx(Box, {
130
+ paddingRight: 4,
131
+ children: /*#__PURE__*/ _jsx(Icon, {
132
+ color: textColor,
133
+ size: pxToRem(16)
134
+ })
135
+ }),
136
+ /*#__PURE__*/ _jsx(ThemeVariant, {
137
+ isInverse: false,
138
+ children: /*#__PURE__*/ _jsx(Text, {
139
+ color: textColor,
140
+ size: 14,
141
+ lineHeight: 20,
142
+ weight: "medium",
143
+ truncate: true,
144
+ children: children
145
+ })
42
146
  })
43
- })
147
+ ]
44
148
  }));
45
149
  };
46
150
  export default Tag;
package/dist-es/text.js CHANGED
@@ -52,7 +52,7 @@ var useStyles = createUseStyles(function(theme) {
52
52
  }
53
53
  return 'initial';
54
54
  };
55
- var _color, _textDecoration;
55
+ var _color, _decoration;
56
56
  return {
57
57
  text: _defineProperty({
58
58
  lineHeight: function(param) {
@@ -60,8 +60,14 @@ var useStyles = createUseStyles(function(theme) {
60
60
  return pxToRem(desktopLineHeight);
61
61
  },
62
62
  textTransform: function(param) {
63
- var uppercase = param.uppercase;
64
- return uppercase ? 'uppercase' : 'inherit';
63
+ var uppercase = param.uppercase, transform = param.transform;
64
+ if (uppercase) {
65
+ return 'uppercase';
66
+ }
67
+ if (transform) {
68
+ return transform;
69
+ }
70
+ return 'inherit';
65
71
  },
66
72
  fontSize: function(param) {
67
73
  var desktopSize = param.desktopSize;
@@ -76,7 +82,7 @@ var useStyles = createUseStyles(function(theme) {
76
82
  return isInverse ? (_color = inverseColorsMap[color]) !== null && _color !== void 0 ? _color : color : color;
77
83
  },
78
84
  textDecoration: function(p) {
79
- return (_textDecoration = p.textDecoration) !== null && _textDecoration !== void 0 ? _textDecoration : 'inherit';
85
+ return (_decoration = p.decoration) !== null && _decoration !== void 0 ? _decoration : 'inherit';
80
86
  },
81
87
  letterSpacing: function(param) {
82
88
  var letterSpacing = param.letterSpacing;
@@ -112,7 +118,7 @@ var useStyles = createUseStyles(function(theme) {
112
118
  };
113
119
  });
114
120
  export var Text = function(param) {
115
- 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'];
121
+ 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'];
116
122
  var isInverse = useIsInverseVariant();
117
123
  var classes = useStyles({
118
124
  isInverse: isInverse,
@@ -122,8 +128,9 @@ export var Text = function(param) {
122
128
  desktopLineHeight: desktopLineHeight,
123
129
  weight: weight,
124
130
  color: color,
125
- textDecoration: textDecoration,
131
+ decoration: decoration,
126
132
  uppercase: uppercase,
133
+ transform: transform,
127
134
  wordBreak: wordBreak,
128
135
  letterSpacing: letterSpacing,
129
136
  truncate: truncate
@@ -113,6 +113,11 @@ var generateId = function() {
113
113
  // in frontend, use the same generator for all JssProvider renders, this way we avoid classname collisions
114
114
  return createGenerateId();
115
115
  }();
116
+ var useDefaultHrefDecorator = function() {
117
+ return function(href) {
118
+ return href;
119
+ };
120
+ };
116
121
  var ThemeContextProvider = function(param) {
117
122
  var theme = param.theme, children = param.children;
118
123
  var classNamePrefix = React.useMemo(// Always start the counter in 0 in server side, otherwise every new request to the server will inclrement the counter and
@@ -139,7 +144,7 @@ var ThemeContextProvider = function(param) {
139
144
  platform: getPlatform(),
140
145
  insideNovumNativeApp: isInsideNovumNativeApp()
141
146
  }, theme.platformOverrides);
142
- var _mediaQueries, _Link;
147
+ var _mediaQueries, _Link, _useHrefDecorator;
143
148
  return {
144
149
  skinName: theme.skin.name,
145
150
  i18n: theme.i18n,
@@ -157,7 +162,8 @@ var ThemeContextProvider = function(param) {
157
162
  colors: colors,
158
163
  Link: (_Link = theme.Link) !== null && _Link !== void 0 ? _Link : AnchorLink,
159
164
  isDarkMode: isDarkModeEnabled,
160
- isIos: getPlatform(platformOverrides) === 'ios'
165
+ isIos: getPlatform(platformOverrides) === 'ios',
166
+ useHrefDecorator: (_useHrefDecorator = theme.useHrefDecorator) !== null && _useHrefDecorator !== void 0 ? _useHrefDecorator : useDefaultHrefDecorator
161
167
  };
162
168
  }, [
163
169
  theme,
@@ -80,7 +80,8 @@ var useStyles = createUseStyles(function() {
80
80
  };
81
81
  });
82
82
  var Touchable = /*#__PURE__*/ React.forwardRef(function(props, ref) {
83
- var ref1 = useTheme(), texts = ref1.texts, analytics = ref1.analytics, platformOverrides = ref1.platformOverrides, Link = ref1.Link;
83
+ var ref1 = useTheme(), texts = ref1.texts, analytics = ref1.analytics, platformOverrides = ref1.platformOverrides, Link = ref1.Link, useHrefDecorator = ref1.useHrefDecorator;
84
+ var hrefDecorator = useHrefDecorator();
84
85
  var classes = useStyles();
85
86
  var isClicked = React.useRef(false);
86
87
  var trackingEvents = [];
@@ -116,7 +117,7 @@ var Touchable = /*#__PURE__*/ React.forwardRef(function(props, ref) {
116
117
  };
117
118
  var getHref = function() {
118
119
  if (props.href) {
119
- return props.href;
120
+ return hrefDecorator(props.href);
120
121
  }
121
122
  if (props.to && props.fullPageOnWebView) {
122
123
  if (typeof props.to === 'string') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telefonica/mistica",
3
- "version": "10.18.0",
3
+ "version": "10.22.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",