@telefonica/mistica 11.10.0 → 11.11.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/dist/card.d.ts +43 -1
- package/dist/card.js +212 -10
- package/dist/card.js.flow +44 -0
- package/dist/highlighted-card.d.ts +4 -2
- package/dist/highlighted-card.js +19 -72
- package/dist/highlighted-card.js.flow +8 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.flow +1 -1
- package/dist/maybe-dismissable.d.ts +10 -0
- package/dist/maybe-dismissable.js +119 -0
- package/dist/maybe-dismissable.js.flow +12 -0
- package/dist/package-version.js +1 -1
- package/dist/select.js +1 -1
- package/dist/text.js +9 -3
- package/dist/utils/platform.d.ts +7 -0
- package/dist/utils/platform.js +5 -1
- package/dist/utils/platform.js.flow +7 -0
- package/dist/video.js +14 -5
- package/dist-es/card.js +211 -9
- package/dist-es/highlighted-card.js +17 -70
- package/dist-es/index.js +1 -1
- package/dist-es/maybe-dismissable.js +86 -0
- package/dist-es/package-version.js +1 -1
- package/dist-es/select.js +1 -1
- package/dist-es/text.js +7 -1
- package/dist-es/utils/platform.js +8 -0
- package/dist-es/video.js +14 -5
- package/package.json +3 -3
|
@@ -2,19 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { ButtonLink } from "./button";
|
|
5
|
-
import type {
|
|
5
|
+
import type {
|
|
6
|
+
DataAttributes,
|
|
7
|
+
RendersNullableElement,
|
|
8
|
+
TrackingEvent,
|
|
9
|
+
} from "./utils/types";
|
|
6
10
|
import type { NullableButtonElement } from "./button";
|
|
7
11
|
declare type CommonProps = {
|
|
8
12
|
title: string,
|
|
13
|
+
titleLinesMax?: number,
|
|
9
14
|
description: string,
|
|
15
|
+
descriptionLinesMax?: number,
|
|
10
16
|
imageUrl?: string,
|
|
11
17
|
imageFit?: "fit" | "fill",
|
|
12
|
-
backgroundImageUrl?: string,
|
|
13
18
|
onClose?: () => void,
|
|
14
19
|
trackingEvent?: TrackingEvent | $ReadOnlyArray<TrackingEvent>,
|
|
15
20
|
isInverse?: boolean,
|
|
16
21
|
"aria-label"?: string,
|
|
17
22
|
width?: string | number,
|
|
23
|
+
dataAttributes?: DataAttributes,
|
|
18
24
|
};
|
|
19
25
|
declare type BasicProps = { ...$Exact<CommonProps> };
|
|
20
26
|
declare type ButtonProps = {
|
package/dist/index.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ export { default as Inline } from './inline';
|
|
|
49
49
|
export { default as HighlightedCard } from './highlighted-card';
|
|
50
50
|
export { default as Stepper } from './stepper';
|
|
51
51
|
export { default as ProgressBar } from './progress-bar';
|
|
52
|
-
export { MediaCard, DataCard } from './card';
|
|
52
|
+
export { MediaCard, DataCard, SnapCard } from './card';
|
|
53
53
|
export { default as Divider } from './divider';
|
|
54
54
|
export { default as Menu } from './menu';
|
|
55
55
|
export { default as EmptyState } from './empty-state';
|
package/dist/index.js
CHANGED
|
@@ -488,6 +488,12 @@ Object.defineProperty(exports, "DataCard", {
|
|
|
488
488
|
return _card.DataCard;
|
|
489
489
|
}
|
|
490
490
|
});
|
|
491
|
+
Object.defineProperty(exports, "SnapCard", {
|
|
492
|
+
enumerable: true,
|
|
493
|
+
get: function() {
|
|
494
|
+
return _card.SnapCard;
|
|
495
|
+
}
|
|
496
|
+
});
|
|
491
497
|
Object.defineProperty(exports, "Divider", {
|
|
492
498
|
enumerable: true,
|
|
493
499
|
get: function() {
|
package/dist/index.js.flow
CHANGED
|
@@ -85,7 +85,7 @@ declare export { default as Inline } from "./inline";
|
|
|
85
85
|
declare export { default as HighlightedCard } from "./highlighted-card";
|
|
86
86
|
declare export { default as Stepper } from "./stepper";
|
|
87
87
|
declare export { default as ProgressBar } from "./progress-bar";
|
|
88
|
-
declare export { MediaCard, DataCard } from "./card";
|
|
88
|
+
declare export { MediaCard, DataCard, SnapCard } from "./card";
|
|
89
89
|
declare export { default as Divider } from "./divider";
|
|
90
90
|
declare export { default as Menu } from "./menu";
|
|
91
91
|
declare export { default as EmptyState } from "./empty-state";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare const useIsDismissable: () => boolean;
|
|
3
|
+
declare type MaybeDismissableProps = {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
onClose?: () => void;
|
|
6
|
+
width?: string | number;
|
|
7
|
+
'aria-label'?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const MaybeDismissable: ({ children, width, onClose, "aria-label": ariaLabel, }: MaybeDismissableProps) => JSX.Element;
|
|
10
|
+
export default MaybeDismissable;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
exports.default = exports.useIsDismissable = void 0;
|
|
6
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _jss = require("./jss");
|
|
9
|
+
var _iconCloseRegular = _interopRequireDefault(require("./generated/mistica-icons/icon-close-regular"));
|
|
10
|
+
var _hooks = require("./hooks");
|
|
11
|
+
var _iconButton = _interopRequireDefault(require("./icon-button"));
|
|
12
|
+
var _themeVariantContext = require("./theme-variant-context");
|
|
13
|
+
var _color = require("./utils/color");
|
|
14
|
+
function _interopRequireDefault(obj) {
|
|
15
|
+
return obj && obj.__esModule ? obj : {
|
|
16
|
+
default: obj
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function _interopRequireWildcard(obj) {
|
|
20
|
+
if (obj && obj.__esModule) {
|
|
21
|
+
return obj;
|
|
22
|
+
} else {
|
|
23
|
+
var newObj = {};
|
|
24
|
+
if (obj != null) {
|
|
25
|
+
for(var key in obj){
|
|
26
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
27
|
+
var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
|
|
28
|
+
if (desc.get || desc.set) {
|
|
29
|
+
Object.defineProperty(newObj, key, desc);
|
|
30
|
+
} else {
|
|
31
|
+
newObj[key] = obj[key];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
newObj.default = obj;
|
|
37
|
+
return newObj;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
var DismissableContext = /*#__PURE__*/ React.createContext(false);
|
|
41
|
+
var useIsDismissable = function useIsDismissable() {
|
|
42
|
+
return React.useContext(DismissableContext);
|
|
43
|
+
};
|
|
44
|
+
exports.useIsDismissable = useIsDismissable;
|
|
45
|
+
var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
46
|
+
return {
|
|
47
|
+
dismissableContainer: {
|
|
48
|
+
position: "relative",
|
|
49
|
+
display: "flex",
|
|
50
|
+
flexShrink: 0,
|
|
51
|
+
width: function width(param) {
|
|
52
|
+
var width1 = param.width;
|
|
53
|
+
return width1 || "100%";
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
dismissableButton: {
|
|
57
|
+
position: "absolute",
|
|
58
|
+
top: 0,
|
|
59
|
+
right: 0,
|
|
60
|
+
width: 48,
|
|
61
|
+
height: 48,
|
|
62
|
+
display: "flex",
|
|
63
|
+
alignItems: "center",
|
|
64
|
+
justifyContent: "center"
|
|
65
|
+
},
|
|
66
|
+
dismissableCircleContainer: {
|
|
67
|
+
display: "flex",
|
|
68
|
+
alignItems: "center",
|
|
69
|
+
justifyContent: "center",
|
|
70
|
+
width: 24,
|
|
71
|
+
height: 24,
|
|
72
|
+
margin: "0 0 8px 8px",
|
|
73
|
+
borderRadius: "50%",
|
|
74
|
+
backgroundColor: (0, _color).applyAlpha(theme.colors.background, 0.7)
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
var MaybeDismissable = function MaybeDismissable(param) {
|
|
79
|
+
var children = param.children, width = param.width, onClose = param.onClose, ariaLabel = param["aria-label"];
|
|
80
|
+
var isInverse = (0, _themeVariantContext).useIsInverseVariant();
|
|
81
|
+
var classes = useStyles({
|
|
82
|
+
isInverse: isInverse,
|
|
83
|
+
width: width
|
|
84
|
+
});
|
|
85
|
+
var ref = (0, _hooks).useTheme(), colors = ref.colors, texts = ref.texts;
|
|
86
|
+
if (!onClose) {
|
|
87
|
+
return /*#__PURE__*/ (0, _jsxRuntime).jsx(_jsxRuntime.Fragment, {
|
|
88
|
+
children: children
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return /*#__PURE__*/ (0, _jsxRuntime).jsxs("section", {
|
|
92
|
+
className: classes.dismissableContainer,
|
|
93
|
+
"aria-label": ariaLabel,
|
|
94
|
+
children: [
|
|
95
|
+
/*#__PURE__*/ (0, _jsxRuntime).jsx(DismissableContext.Provider, {
|
|
96
|
+
value: true,
|
|
97
|
+
children: children
|
|
98
|
+
}),
|
|
99
|
+
/*#__PURE__*/ (0, _jsxRuntime).jsx(_iconButton.default, {
|
|
100
|
+
className: classes.dismissableButton,
|
|
101
|
+
onPress: onClose,
|
|
102
|
+
"aria-label": texts.closeButtonLabel,
|
|
103
|
+
style: {
|
|
104
|
+
display: "flex",
|
|
105
|
+
width: 48,
|
|
106
|
+
height: 48
|
|
107
|
+
},
|
|
108
|
+
children: /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
|
|
109
|
+
className: classes.dismissableCircleContainer,
|
|
110
|
+
children: /*#__PURE__*/ (0, _jsxRuntime).jsx(_iconCloseRegular.default, {
|
|
111
|
+
color: colors.neutralHigh
|
|
112
|
+
})
|
|
113
|
+
})
|
|
114
|
+
})
|
|
115
|
+
]
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
var _default = MaybeDismissable;
|
|
119
|
+
exports.default = _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
declare export var useIsDismissable: () => boolean;
|
|
5
|
+
declare type MaybeDismissableProps = {
|
|
6
|
+
children: React.Node,
|
|
7
|
+
onClose?: () => void,
|
|
8
|
+
width?: string | number,
|
|
9
|
+
"aria-label"?: string,
|
|
10
|
+
};
|
|
11
|
+
declare var MaybeDismissable: (x: MaybeDismissableProps) => React.Node;
|
|
12
|
+
declare export default typeof MaybeDismissable;
|
package/dist/package-version.js
CHANGED
package/dist/select.js
CHANGED
|
@@ -232,7 +232,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
232
232
|
},
|
|
233
233
|
menuItem: (_obj1 = {
|
|
234
234
|
color: theme.colors.textPrimary,
|
|
235
|
-
padding: "
|
|
235
|
+
padding: "8px 16px",
|
|
236
236
|
height: 48,
|
|
237
237
|
transition: "background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms"
|
|
238
238
|
}, _defineProperty(_obj1, theme.mq.supportsHover, {
|
package/dist/text.js
CHANGED
|
@@ -117,6 +117,12 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
117
117
|
var wordBreak = param.wordBreak;
|
|
118
118
|
return wordBreak ? "anywhere" : "inherit";
|
|
119
119
|
},
|
|
120
|
+
"@supports not (overflow-wrap: anywhere)": {
|
|
121
|
+
wordBreak: function wordBreak(param) {
|
|
122
|
+
var wordBreak1 = param.wordBreak;
|
|
123
|
+
return wordBreak1 ? "break-all" : "inherit";
|
|
124
|
+
}
|
|
125
|
+
},
|
|
120
126
|
// Needed to reset the default browser margin that adds to p, h1, h2... elements.
|
|
121
127
|
margin: 0
|
|
122
128
|
}, theme.mq.tabletOrSmaller, {
|
|
@@ -133,8 +139,8 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
133
139
|
"-webkit-line-clamp": lineClamp,
|
|
134
140
|
lineClamp: lineClamp,
|
|
135
141
|
wordBreak: function wordBreak(param) {
|
|
136
|
-
var
|
|
137
|
-
return
|
|
142
|
+
var wordBreak2 = param.wordBreak;
|
|
143
|
+
return wordBreak2 ? "break-all" : "normal";
|
|
138
144
|
},
|
|
139
145
|
"@supports (overflow-wrap: anywhere)": {
|
|
140
146
|
wordBreak: function wordBreak(param) {
|
|
@@ -142,7 +148,7 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
|
|
|
142
148
|
return truncate === 1 || truncate === true ? "break-all" : "normal";
|
|
143
149
|
}
|
|
144
150
|
},
|
|
145
|
-
display: "box",
|
|
151
|
+
display: "-webkit-box",
|
|
146
152
|
boxOrient: "vertical",
|
|
147
153
|
overflow: "hidden"
|
|
148
154
|
}
|
package/dist/utils/platform.d.ts
CHANGED
|
@@ -3,6 +3,13 @@ export declare const isInsideNovumNativeApp: (platformOverrides?: Theme['platfor
|
|
|
3
3
|
export declare const isRunningAcceptanceTest: (platformOverrides?: Theme['platformOverrides']) => boolean;
|
|
4
4
|
export declare const isAndroid: (platformOverrides: Theme['platformOverrides']) => boolean;
|
|
5
5
|
export declare const isIos: (platformOverrides: Theme['platformOverrides']) => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Returns true if the browser is a safari browser:
|
|
8
|
+
* webview, mobile, desktop or a browser like Chrome for iOS which is just a safari with a skin
|
|
9
|
+
*
|
|
10
|
+
* Note that this function checks the navigator vendor. It doesn't use platformOverrides or userAgent.
|
|
11
|
+
*/
|
|
12
|
+
export declare const isSafari: () => boolean;
|
|
6
13
|
export declare const isFirefox: (platformOverrides?: {
|
|
7
14
|
platform?: "ios" | "android" | "desktop" | undefined;
|
|
8
15
|
insideNovumNativeApp?: boolean | undefined;
|
package/dist/utils/platform.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
exports.getPlatform = exports.getIosVersion = exports.isOldChrome = exports.isChrome = exports.isFirefox = exports.isIos = exports.isAndroid = exports.isRunningAcceptanceTest = exports.isInsideNovumNativeApp = void 0;
|
|
5
|
+
exports.getPlatform = exports.getIosVersion = exports.isOldChrome = exports.isChrome = exports.isFirefox = exports.isSafari = exports.isIos = exports.isAndroid = exports.isRunningAcceptanceTest = exports.isInsideNovumNativeApp = void 0;
|
|
6
6
|
var _webviewBridge = require("@tef-novum/webview-bridge");
|
|
7
7
|
function _arrayLikeToArray(arr, len) {
|
|
8
8
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -91,6 +91,10 @@ var isIos = function isIos(platformOverrides) {
|
|
|
91
91
|
return false;
|
|
92
92
|
};
|
|
93
93
|
exports.isIos = isIos;
|
|
94
|
+
var isSafari = function isSafari() {
|
|
95
|
+
return navigator.vendor.includes("Apple");
|
|
96
|
+
};
|
|
97
|
+
exports.isSafari = isSafari;
|
|
94
98
|
var isFirefox = function isFirefox(platformOverrides) {
|
|
95
99
|
return !!getUserAgent(platformOverrides).match(/Firefox\/([0-9]+)\./);
|
|
96
100
|
};
|
|
@@ -13,6 +13,13 @@ declare export var isAndroid: (
|
|
|
13
13
|
declare export var isIos: (
|
|
14
14
|
platformOverrides: $PropertyType<Theme, "platformOverrides">
|
|
15
15
|
) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Returns true if the browser is a safari browser:
|
|
18
|
+
* webview, mobile, desktop or a browser like Chrome for iOS which is just a safari with a skin
|
|
19
|
+
*
|
|
20
|
+
* Note that this function checks the navigator vendor. It doesn't use platformOverrides or userAgent.
|
|
21
|
+
*/
|
|
22
|
+
declare export var isSafari: () => boolean;
|
|
16
23
|
declare export var isFirefox: (
|
|
17
24
|
platformOverrides?: {
|
|
18
25
|
platform?: "ios" | "android" | "desktop" | void,
|
package/dist/video.js
CHANGED
|
@@ -10,6 +10,7 @@ var _jss = require("./jss");
|
|
|
10
10
|
var _aspectRatioSupport = require("./utils/aspect-ratio-support");
|
|
11
11
|
var _common = require("./utils/common");
|
|
12
12
|
var _dom = require("./utils/dom");
|
|
13
|
+
var _platform = require("./utils/platform");
|
|
13
14
|
function _interopRequireWildcard(obj) {
|
|
14
15
|
if (obj && obj.__esModule) {
|
|
15
16
|
return obj;
|
|
@@ -97,6 +98,7 @@ exports.RATIO = RATIO;
|
|
|
97
98
|
var useStyles = (0, _jss).createUseStyles(function() {
|
|
98
99
|
return {
|
|
99
100
|
video: {
|
|
101
|
+
background: "transparent",
|
|
100
102
|
display: "block",
|
|
101
103
|
objectFit: "cover",
|
|
102
104
|
maxWidth: "100%",
|
|
@@ -198,7 +200,11 @@ var Video = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
|
|
|
198
200
|
} else {
|
|
199
201
|
width = props.width || "100%";
|
|
200
202
|
}
|
|
201
|
-
|
|
203
|
+
/**
|
|
204
|
+
* In safari, when using a video with poster, the transition from pause to play does a flicker,
|
|
205
|
+
* To avoid this, in Safari browsers, instead of using the poster attribute, we use a
|
|
206
|
+
* wrapper with the poster as background image
|
|
207
|
+
*/ var needsWrapper = (0, _platform).isSafari() || withCssAspectRatio && !supportsAspectRatio;
|
|
202
208
|
var video1 = /*#__PURE__*/ (0, _jsxRuntime).jsx("video", _objectSpread({
|
|
203
209
|
ref: (0, _common).combineRefs(ref, videoRef),
|
|
204
210
|
playsInline: true,
|
|
@@ -207,14 +213,14 @@ var Video = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
|
|
|
207
213
|
autoPlay: autoPlay,
|
|
208
214
|
muted: muted,
|
|
209
215
|
loop: loop
|
|
210
|
-
},
|
|
216
|
+
}, needsWrapper ? {} : {
|
|
211
217
|
width: width,
|
|
212
218
|
height: height
|
|
213
|
-
}
|
|
219
|
+
}, {
|
|
214
220
|
className: classes.video,
|
|
215
221
|
preload: preload,
|
|
216
222
|
// This transparent pixel fallback avoids showing the ugly "play" image in android webviews
|
|
217
|
-
poster: poster || TRANSPARENT_PIXEL
|
|
223
|
+
poster: needsWrapper ? TRANSPARENT_PIXEL : poster || TRANSPARENT_PIXEL
|
|
218
224
|
}, (0, _dom).getPrefixedDataAttributes(dataAttributes), {
|
|
219
225
|
children: sources.map(function(param, index) {
|
|
220
226
|
var src = param.src, type = param.type;
|
|
@@ -228,7 +234,10 @@ var Video = /*#__PURE__*/ React.forwardRef(function(_param, ref) {
|
|
|
228
234
|
return /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
|
|
229
235
|
style: {
|
|
230
236
|
width: width,
|
|
231
|
-
height: height
|
|
237
|
+
height: height,
|
|
238
|
+
backgroundImage: poster ? 'url("'.concat(poster, '")') : undefined,
|
|
239
|
+
backgroundSize: "cover",
|
|
240
|
+
backgroundPosition: "50% 50%"
|
|
232
241
|
},
|
|
233
242
|
className: classes.wrapper,
|
|
234
243
|
children: video1
|