@telefonica/mistica 11.8.0 → 11.9.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.
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import type { IconProps } from './utils/types';
3
+ declare type AvatarProps = {
4
+ size: number;
5
+ src?: string;
6
+ initials?: string;
7
+ textColor?: string;
8
+ backgroundColor?: string;
9
+ Icon?: React.FC<IconProps>;
10
+ badge?: boolean | number;
11
+ 'aria-label'?: string;
12
+ };
13
+ declare const Avatar: ({ size, src, Icon, badge, initials, "aria-label": ariaLabel, ...props }: AvatarProps) => JSX.Element;
14
+ export default Avatar;
package/dist/avatar.js ADDED
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ exports.default = void 0;
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _badge = _interopRequireDefault(require("./badge"));
9
+ var _iconUserAccountRegular = _interopRequireDefault(require("./generated/mistica-icons/icon-user-account-regular"));
10
+ var _hooks = require("./hooks");
11
+ var _jss = require("./jss");
12
+ var _themeVariantContext = require("./theme-variant-context");
13
+ function _interopRequireDefault(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ function _interopRequireWildcard(obj) {
19
+ if (obj && obj.__esModule) {
20
+ return obj;
21
+ } else {
22
+ var newObj = {};
23
+ if (obj != null) {
24
+ for(var key in obj){
25
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
26
+ var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
27
+ if (desc.get || desc.set) {
28
+ Object.defineProperty(newObj, key, desc);
29
+ } else {
30
+ newObj[key] = obj[key];
31
+ }
32
+ }
33
+ }
34
+ }
35
+ newObj.default = obj;
36
+ return newObj;
37
+ }
38
+ }
39
+ function _arrayLikeToArray(arr, len) {
40
+ if (len == null || len > arr.length) len = arr.length;
41
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
42
+ return arr2;
43
+ }
44
+ function _arrayWithHoles(arr) {
45
+ if (Array.isArray(arr)) return arr;
46
+ }
47
+ function _iterableToArrayLimit(arr, i) {
48
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
49
+ if (_i == null) return;
50
+ var _arr = [];
51
+ var _n = true;
52
+ var _d = false;
53
+ var _s, _e;
54
+ try {
55
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
56
+ _arr.push(_s.value);
57
+ if (i && _arr.length === i) break;
58
+ }
59
+ } catch (err) {
60
+ _d = true;
61
+ _e = err;
62
+ } finally{
63
+ try {
64
+ if (!_n && _i["return"] != null) _i["return"]();
65
+ } finally{
66
+ if (_d) throw _e;
67
+ }
68
+ }
69
+ return _arr;
70
+ }
71
+ function _nonIterableRest() {
72
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
73
+ }
74
+ function _objectWithoutProperties(source, excluded) {
75
+ if (source == null) return {};
76
+ var target = _objectWithoutPropertiesLoose(source, excluded);
77
+ var key, i;
78
+ if (Object.getOwnPropertySymbols) {
79
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
80
+ for(i = 0; i < sourceSymbolKeys.length; i++){
81
+ key = sourceSymbolKeys[i];
82
+ if (excluded.indexOf(key) >= 0) continue;
83
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
84
+ target[key] = source[key];
85
+ }
86
+ }
87
+ return target;
88
+ }
89
+ function _objectWithoutPropertiesLoose(source, excluded) {
90
+ if (source == null) return {};
91
+ var target = {};
92
+ var sourceKeys = Object.keys(source);
93
+ var key, i;
94
+ for(i = 0; i < sourceKeys.length; i++){
95
+ key = sourceKeys[i];
96
+ if (excluded.indexOf(key) >= 0) continue;
97
+ target[key] = source[key];
98
+ }
99
+ return target;
100
+ }
101
+ function _slicedToArray(arr, i) {
102
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
103
+ }
104
+ function _unsupportedIterableToArray(o, minLen) {
105
+ if (!o) return;
106
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
107
+ var n = Object.prototype.toString.call(o).slice(8, -1);
108
+ if (n === "Object" && o.constructor) n = o.constructor.name;
109
+ if (n === "Map" || n === "Set") return Array.from(n);
110
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
111
+ }
112
+ var useStyles = (0, _jss).createUseStyles(function() {
113
+ return {
114
+ avatar: {
115
+ borderRadius: "50%",
116
+ display: "flex",
117
+ alignItems: "center",
118
+ justifyContent: "center",
119
+ color: function color(param) {
120
+ var textColor = param.textColor;
121
+ return textColor;
122
+ },
123
+ background: function background(param) {
124
+ var backgroundColor = param.backgroundColor;
125
+ return backgroundColor;
126
+ },
127
+ width: function width(param) {
128
+ var size = param.size;
129
+ return size;
130
+ },
131
+ height: function height(param) {
132
+ var size = param.size;
133
+ return size;
134
+ },
135
+ overflow: "hidden"
136
+ },
137
+ image: {
138
+ width: function width(param) {
139
+ var size = param.size;
140
+ return size;
141
+ },
142
+ height: function height(param) {
143
+ var size = param.size;
144
+ return size;
145
+ },
146
+ objectFit: "cover"
147
+ }
148
+ };
149
+ });
150
+ /**
151
+ * Returns a right/top distance for the badge.
152
+ * The badge will be placed over the avatar's edge
153
+ * This is calculated using the `radius * (1 - sin(45deg))` distance minus a
154
+ * constant offset that depends on the badge size
155
+ */ var getBadgeDistance = function getBadgeDistance(size, badge) {
156
+ if (!badge) {
157
+ return 0;
158
+ }
159
+ var radius = size / 2;
160
+ var badgeOffset = badge === true ? 5 : 10; // badge=true renders a small circle
161
+ return radius * (1 - Math.sin(Math.PI / 4)) - badgeOffset;
162
+ };
163
+ /**
164
+ * Not using TextPresets here because we don't want to scale the avatar text with the device settings
165
+ */ var renderText = function renderText(size, text) {
166
+ if (!text) {
167
+ return null;
168
+ }
169
+ var fontSize;
170
+ if (size <= 40) {
171
+ fontSize = 14;
172
+ } else if (size <= 64) {
173
+ fontSize = 16;
174
+ } else {
175
+ fontSize = 18;
176
+ }
177
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx("span", {
178
+ style: {
179
+ fontSize: fontSize,
180
+ textTransform: "uppercase"
181
+ },
182
+ children: text
183
+ });
184
+ };
185
+ var Avatar = function Avatar(_param) {
186
+ var size = _param.size, src = _param.src, _Icon = _param.Icon, Icon = _Icon === void 0 ? _iconUserAccountRegular.default : _Icon, badge = _param.badge, _initials = _param.initials, initials = _initials === void 0 ? "" : _initials, ariaLabel = _param["aria-label"], props = _objectWithoutProperties(_param, [
187
+ "size",
188
+ "src",
189
+ "Icon",
190
+ "badge",
191
+ "initials",
192
+ "aria-label"
193
+ ]);
194
+ var colors = (0, _hooks).useTheme().colors;
195
+ var isInverse = (0, _themeVariantContext).useIsInverseVariant();
196
+ var _backgroundColor;
197
+ var backgroundColor = (_backgroundColor = props.backgroundColor) !== null && _backgroundColor !== void 0 ? _backgroundColor : isInverse ? colors.brandDark : colors.tagBackgroundActive;
198
+ var _textColor;
199
+ var textColor = (_textColor = props.textColor) !== null && _textColor !== void 0 ? _textColor : isInverse ? colors.textPrimaryInverse : colors.textTagActive;
200
+ var ref = _slicedToArray(React.useState(false), 2), imgLoadError = ref[0], setImgLoadError = ref[1];
201
+ var classes = useStyles({
202
+ textColor: textColor,
203
+ backgroundColor: backgroundColor,
204
+ size: size
205
+ });
206
+ React.useEffect(function() {
207
+ setImgLoadError(false); // reset error state when url changes
208
+ }, [
209
+ src
210
+ ]);
211
+ var letters = initials.trim().slice(0, 2);
212
+ var badgePosition = getBadgeDistance(size, badge);
213
+ var badgeValue = badge === true ? undefined : badge || 0;
214
+ var shouldRenderImage = !!src && !imgLoadError;
215
+ var iconSize = size <= 40 ? 16 : 24;
216
+ return /*#__PURE__*/ (0, _jsxRuntime).jsx(_badge.default, {
217
+ value: badgeValue,
218
+ top: badgePosition,
219
+ right: badgePosition,
220
+ children: /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
221
+ className: classes.avatar,
222
+ role: "img",
223
+ "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : initials,
224
+ children: shouldRenderImage ? /*#__PURE__*/ (0, _jsxRuntime).jsx("img", {
225
+ src: src,
226
+ className: classes.image,
227
+ onError: function onError() {
228
+ return setImgLoadError(true);
229
+ },
230
+ role: "none"
231
+ }) : renderText(size, letters) || /*#__PURE__*/ (0, _jsxRuntime).jsx(Icon, {
232
+ size: iconSize,
233
+ color: "currentColor"
234
+ })
235
+ })
236
+ });
237
+ };
238
+ var _default = Avatar;
239
+ exports.default = _default;
@@ -0,0 +1,16 @@
1
+ // @flow
2
+
3
+ import * as React from "react";
4
+ import type { IconProps } from "./utils/types";
5
+ declare type AvatarProps = {
6
+ size: number,
7
+ src?: string,
8
+ initials?: string,
9
+ textColor?: string,
10
+ backgroundColor?: string,
11
+ Icon?: React.ComponentType<IconProps>,
12
+ badge?: boolean | number,
13
+ "aria-label"?: string,
14
+ };
15
+ declare var Avatar: (x: AvatarProps) => React.Node;
16
+ declare export default typeof Avatar;
package/dist/badge.d.ts CHANGED
@@ -2,6 +2,8 @@ import * as React from 'react';
2
2
  declare type Props = {
3
3
  children?: React.ReactNode;
4
4
  value?: number;
5
+ right?: number;
6
+ top?: number;
5
7
  };
6
8
  /**
7
9
  * This Component is decorative and won't be read by screenreaders, to make it accessible,
package/dist/badge.js CHANGED
@@ -57,8 +57,14 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
57
57
  var hasChildren = param.hasChildren;
58
58
  return hasChildren ? "absolute" : "static";
59
59
  },
60
- top: -2,
61
- right: -6,
60
+ top: function top(param) {
61
+ var top1 = param.top;
62
+ return top1 !== null && top1 !== void 0 ? top1 : -2;
63
+ },
64
+ right: function right(param) {
65
+ var right1 = param.right;
66
+ return right1 !== null && right1 !== void 0 ? right1 : -6;
67
+ },
62
68
  width: 8,
63
69
  height: 8,
64
70
  background: theme.colors.badge,
@@ -69,8 +75,14 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
69
75
  display: "flex",
70
76
  alignItems: "center",
71
77
  justifyContent: "center",
72
- top: -8,
73
- right: -9,
78
+ top: function top(param) {
79
+ var top2 = param.top;
80
+ return top2 !== null && top2 !== void 0 ? top2 : -8;
81
+ },
82
+ right: function right(param) {
83
+ var right2 = param.right;
84
+ return right2 !== null && right2 !== void 0 ? right2 : -9;
85
+ },
74
86
  width: 18,
75
87
  height: 18,
76
88
  fontSize: 12,
@@ -78,7 +90,10 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
78
90
  color: theme.colors.textPrimaryInverse
79
91
  },
80
92
  badgeBigNumber: {
81
- right: -14,
93
+ right: function right(param) {
94
+ var right3 = param.right;
95
+ return right3 !== null && right3 !== void 0 ? right3 : -14;
96
+ },
82
97
  width: 24,
83
98
  borderRadius: 24
84
99
  }
@@ -94,10 +109,12 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
94
109
  * </IconButton>
95
110
  * </Badge>
96
111
  */ var Badge = function Badge(param) {
97
- var children = param.children, value = param.value;
112
+ var children = param.children, value = param.value, right = param.right, top = param.top;
98
113
  var hasChildren = !!children;
99
114
  var classes = useStyles({
100
- hasChildren: hasChildren
115
+ hasChildren: hasChildren,
116
+ right: right,
117
+ top: top
101
118
  });
102
119
  if (children && value === 0) {
103
120
  return /*#__PURE__*/ (0, _jsxRuntime).jsx(_jsxRuntime.Fragment, {
@@ -4,6 +4,8 @@ import * as React from "react";
4
4
  declare type Props = {
5
5
  children?: React.Node,
6
6
  value?: number,
7
+ right?: number,
8
+ top?: number,
7
9
  };
8
10
  /**
9
11
  * This Component is decorative and won't be read by screenreaders, to make it accessible,
package/dist/index.d.ts CHANGED
@@ -37,8 +37,8 @@ export { default as Text, Text1, Text2, Text3, Text4, Text5, Text6, Text7, Text8
37
37
  export { default as Tag } from './tag';
38
38
  export type { TagType } from './tag';
39
39
  export { default as SectionTitle } from './section-title';
40
+ export { Placeholder } from './placeholder';
40
41
  export { Title1, Title2 } from './title';
41
- export { Placeholder, AvatarPlaceholder } from './placeholder';
42
42
  export { RowList, Row, BoxedRowList, BoxedRow } from './list';
43
43
  export { default as Switch } from './switch-component';
44
44
  export { default as Checkbox } from './checkbox';
@@ -55,6 +55,7 @@ export { default as Menu } from './menu';
55
55
  export { default as EmptyState } from './empty-state';
56
56
  export { default as EmptyStateCard } from './empty-state-card';
57
57
  export { default as Callout } from './callout';
58
+ export { default as Avatar } from './avatar';
58
59
  export { useModalState } from './modal-context-provider';
59
60
  export { NavigationBar, MainNavigationBar, FunnelNavigationBar, NavigationBarActionGroup, NavigationBarAction, NavigationBarLogo, } from './navigation-bar';
60
61
  export { default as Image } from './image';
package/dist/index.js CHANGED
@@ -374,28 +374,22 @@ Object.defineProperty(exports, "SectionTitle", {
374
374
  return _sectionTitle.default;
375
375
  }
376
376
  });
377
- Object.defineProperty(exports, "Title1", {
378
- enumerable: true,
379
- get: function() {
380
- return _title.Title1;
381
- }
382
- });
383
- Object.defineProperty(exports, "Title2", {
377
+ Object.defineProperty(exports, "Placeholder", {
384
378
  enumerable: true,
385
379
  get: function() {
386
- return _title.Title2;
380
+ return _placeholder.Placeholder;
387
381
  }
388
382
  });
389
- Object.defineProperty(exports, "Placeholder", {
383
+ Object.defineProperty(exports, "Title1", {
390
384
  enumerable: true,
391
385
  get: function() {
392
- return _placeholder.Placeholder;
386
+ return _title.Title1;
393
387
  }
394
388
  });
395
- Object.defineProperty(exports, "AvatarPlaceholder", {
389
+ Object.defineProperty(exports, "Title2", {
396
390
  enumerable: true,
397
391
  get: function() {
398
- return _placeholder.AvatarPlaceholder;
392
+ return _title.Title2;
399
393
  }
400
394
  });
401
395
  Object.defineProperty(exports, "RowList", {
@@ -524,6 +518,12 @@ Object.defineProperty(exports, "Callout", {
524
518
  return _callout.default;
525
519
  }
526
520
  });
521
+ Object.defineProperty(exports, "Avatar", {
522
+ enumerable: true,
523
+ get: function() {
524
+ return _avatar.default;
525
+ }
526
+ });
527
527
  Object.defineProperty(exports, "useModalState", {
528
528
  enumerable: true,
529
529
  get: function() {
@@ -10780,8 +10780,8 @@ var _navigationBreadcrumbs = _interopRequireDefault(require("./navigation-breadc
10780
10780
  var _text = _interopRequireWildcard(require("./text"));
10781
10781
  var _tag = _interopRequireDefault(require("./tag"));
10782
10782
  var _sectionTitle = _interopRequireDefault(require("./section-title"));
10783
- var _title = require("./title");
10784
10783
  var _placeholder = require("./placeholder");
10784
+ var _title = require("./title");
10785
10785
  var _list = require("./list");
10786
10786
  var _switchComponent = _interopRequireDefault(require("./switch-component"));
10787
10787
  var _checkbox = _interopRequireDefault(require("./checkbox"));
@@ -10798,6 +10798,7 @@ var _menu = _interopRequireDefault(require("./menu"));
10798
10798
  var _emptyState = _interopRequireDefault(require("./empty-state"));
10799
10799
  var _emptyStateCard = _interopRequireDefault(require("./empty-state-card"));
10800
10800
  var _callout = _interopRequireDefault(require("./callout"));
10801
+ var _avatar = _interopRequireDefault(require("./avatar"));
10801
10802
  var _modalContextProvider = require("./modal-context-provider");
10802
10803
  var _navigationBar = require("./navigation-bar");
10803
10804
  var _image = _interopRequireDefault(require("./image"));
@@ -73,8 +73,8 @@ declare export {
73
73
  declare export { default as Tag } from "./tag";
74
74
  export type { TagType } from "./tag";
75
75
  declare export { default as SectionTitle } from "./section-title";
76
+ declare export { Placeholder } from "./placeholder";
76
77
  declare export { Title1, Title2 } from "./title";
77
- declare export { Placeholder, AvatarPlaceholder } from "./placeholder";
78
78
  declare export { RowList, Row, BoxedRowList, BoxedRow } from "./list";
79
79
  declare export { default as Switch } from "./switch-component";
80
80
  declare export { default as Checkbox } from "./checkbox";
@@ -91,6 +91,7 @@ declare export { default as Menu } from "./menu";
91
91
  declare export { default as EmptyState } from "./empty-state";
92
92
  declare export { default as EmptyStateCard } from "./empty-state-card";
93
93
  declare export { default as Callout } from "./callout";
94
+ declare export { default as Avatar } from "./avatar";
94
95
  declare export { useModalState } from "./modal-context-provider";
95
96
  declare export {
96
97
  NavigationBar,
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.PACKAGE_VERSION = void 0;
6
- var PACKAGE_VERSION = "11.8.0";
6
+ var PACKAGE_VERSION = "11.9.0";
7
7
  exports.PACKAGE_VERSION = PACKAGE_VERSION;
@@ -1,8 +1,4 @@
1
1
  import * as React from 'react';
2
- declare type AvatarPlaceholderProps = {
3
- size?: string | number;
4
- };
5
- export declare const AvatarPlaceholder: React.FC<AvatarPlaceholderProps>;
6
2
  declare type PlaceholderProps = {
7
3
  width?: string | number;
8
4
  height?: string | number;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.Placeholder = exports.AvatarPlaceholder = void 0;
5
+ exports.Placeholder = void 0;
6
6
  var _jsxRuntime = require("react/jsx-runtime");
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _color = require("./utils/color");
@@ -28,18 +28,6 @@ function _interopRequireWildcard(obj) {
28
28
  return newObj;
29
29
  }
30
30
  }
31
- var AvatarPlaceholder = function AvatarPlaceholder(param) {
32
- var _size = param.size, size = _size === void 0 ? "100%" : _size;
33
- return /*#__PURE__*/ (0, _jsxRuntime).jsx("div", {
34
- style: {
35
- width: size,
36
- height: size,
37
- borderRadius: "50%",
38
- background: "gray"
39
- }
40
- });
41
- };
42
- exports.AvatarPlaceholder = AvatarPlaceholder;
43
31
  var Placeholder = function Placeholder(param) {
44
32
  var _width = param.width, width = _width === void 0 ? "auto" : _width, _height = param.height, height = _height === void 0 ? 120 : _height;
45
33
  var colors = (0, _hooks).useTheme().colors;
@@ -1,10 +1,6 @@
1
1
  // @flow
2
2
 
3
3
  import * as React from "react";
4
- declare type AvatarPlaceholderProps = {
5
- size?: string | number,
6
- };
7
- declare export var AvatarPlaceholder: React.ComponentType<AvatarPlaceholderProps>;
8
4
  declare type PlaceholderProps = {
9
5
  width?: string | number,
10
6
  height?: string | number,
package/dist/text.js CHANGED
@@ -133,8 +133,14 @@ var useStyles = (0, _jss).createUseStyles(function(theme) {
133
133
  "-webkit-line-clamp": lineClamp,
134
134
  lineClamp: lineClamp,
135
135
  wordBreak: function wordBreak(param) {
136
- var truncate = param.truncate;
137
- return truncate === 1 || truncate === true ? "break-all" : "normal";
136
+ var wordBreak1 = param.wordBreak;
137
+ return wordBreak1 ? "break-all" : "normal";
138
+ },
139
+ "@supports (overflow-wrap: anywhere)": {
140
+ wordBreak: function wordBreak(param) {
141
+ var truncate = param.truncate;
142
+ return truncate === 1 || truncate === true ? "break-all" : "normal";
143
+ }
138
144
  },
139
145
  display: "box",
140
146
  boxOrient: "vertical",
@@ -0,0 +1,208 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _iterableToArrayLimit(arr, i) {
10
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
+ if (_i == null) return;
12
+ var _arr = [];
13
+ var _n = true;
14
+ var _d = false;
15
+ var _s, _e;
16
+ try {
17
+ for(_i = _i.call(arr); !(_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.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
+ }
36
+ function _objectWithoutProperties(source, excluded) {
37
+ if (source == null) return {};
38
+ var target = _objectWithoutPropertiesLoose(source, excluded);
39
+ var key, i;
40
+ if (Object.getOwnPropertySymbols) {
41
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
42
+ for(i = 0; i < sourceSymbolKeys.length; i++){
43
+ key = sourceSymbolKeys[i];
44
+ if (excluded.indexOf(key) >= 0) continue;
45
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
46
+ target[key] = source[key];
47
+ }
48
+ }
49
+ return target;
50
+ }
51
+ function _objectWithoutPropertiesLoose(source, excluded) {
52
+ if (source == null) return {};
53
+ var target = {};
54
+ var sourceKeys = Object.keys(source);
55
+ var key, i;
56
+ for(i = 0; i < sourceKeys.length; i++){
57
+ key = sourceKeys[i];
58
+ if (excluded.indexOf(key) >= 0) continue;
59
+ target[key] = source[key];
60
+ }
61
+ return target;
62
+ }
63
+ function _slicedToArray(arr, i) {
64
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
65
+ }
66
+ function _unsupportedIterableToArray(o, minLen) {
67
+ if (!o) return;
68
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
69
+ var n = Object.prototype.toString.call(o).slice(8, -1);
70
+ if (n === "Object" && o.constructor) n = o.constructor.name;
71
+ if (n === "Map" || n === "Set") return Array.from(n);
72
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
73
+ }
74
+ import { jsx as _jsx } from "react/jsx-runtime";
75
+ // https://www.figma.com/file/U4ipIXOk64bdM5tSvaqPKS/%5BREADY%5D--Avatar?node-id=2%3A61
76
+ import * as React from "react";
77
+ import Badge from "./badge";
78
+ import IconUserAccountRegular from "./generated/mistica-icons/icon-user-account-regular";
79
+ import { useTheme } from "./hooks";
80
+ import { createUseStyles } from "./jss";
81
+ import { useIsInverseVariant } from "./theme-variant-context";
82
+ var useStyles = createUseStyles(function() {
83
+ return {
84
+ avatar: {
85
+ borderRadius: "50%",
86
+ display: "flex",
87
+ alignItems: "center",
88
+ justifyContent: "center",
89
+ color: function(param) {
90
+ var textColor = param.textColor;
91
+ return textColor;
92
+ },
93
+ background: function(param) {
94
+ var backgroundColor = param.backgroundColor;
95
+ return backgroundColor;
96
+ },
97
+ width: function(param) {
98
+ var size = param.size;
99
+ return size;
100
+ },
101
+ height: function(param) {
102
+ var size = param.size;
103
+ return size;
104
+ },
105
+ overflow: "hidden"
106
+ },
107
+ image: {
108
+ width: function(param) {
109
+ var size = param.size;
110
+ return size;
111
+ },
112
+ height: function(param) {
113
+ var size = param.size;
114
+ return size;
115
+ },
116
+ objectFit: "cover"
117
+ }
118
+ };
119
+ });
120
+ /**
121
+ * Returns a right/top distance for the badge.
122
+ * The badge will be placed over the avatar's edge
123
+ * This is calculated using the `radius * (1 - sin(45deg))` distance minus a
124
+ * constant offset that depends on the badge size
125
+ */ var getBadgeDistance = function(size, badge) {
126
+ if (!badge) {
127
+ return 0;
128
+ }
129
+ var radius = size / 2;
130
+ var badgeOffset = badge === true ? 5 : 10; // badge=true renders a small circle
131
+ return radius * (1 - Math.sin(Math.PI / 4)) - badgeOffset;
132
+ };
133
+ /**
134
+ * Not using TextPresets here because we don't want to scale the avatar text with the device settings
135
+ */ var renderText = function(size, text) {
136
+ if (!text) {
137
+ return null;
138
+ }
139
+ var fontSize;
140
+ if (size <= 40) {
141
+ fontSize = 14;
142
+ } else if (size <= 64) {
143
+ fontSize = 16;
144
+ } else {
145
+ fontSize = 18;
146
+ }
147
+ return /*#__PURE__*/ _jsx("span", {
148
+ style: {
149
+ fontSize: fontSize,
150
+ textTransform: "uppercase"
151
+ },
152
+ children: text
153
+ });
154
+ };
155
+ var Avatar = function(_param) {
156
+ var size = _param.size, src = _param.src, _Icon = _param.Icon, Icon = _Icon === void 0 ? IconUserAccountRegular : _Icon, badge = _param.badge, _initials = _param.initials, initials = _initials === void 0 ? "" : _initials, ariaLabel = _param["aria-label"], props = _objectWithoutProperties(_param, [
157
+ "size",
158
+ "src",
159
+ "Icon",
160
+ "badge",
161
+ "initials",
162
+ "aria-label"
163
+ ]);
164
+ var colors = useTheme().colors;
165
+ var isInverse = useIsInverseVariant();
166
+ var _backgroundColor;
167
+ var backgroundColor = (_backgroundColor = props.backgroundColor) !== null && _backgroundColor !== void 0 ? _backgroundColor : isInverse ? colors.brandDark : colors.tagBackgroundActive;
168
+ var _textColor;
169
+ var textColor = (_textColor = props.textColor) !== null && _textColor !== void 0 ? _textColor : isInverse ? colors.textPrimaryInverse : colors.textTagActive;
170
+ var ref = _slicedToArray(React.useState(false), 2), imgLoadError = ref[0], setImgLoadError = ref[1];
171
+ var classes = useStyles({
172
+ textColor: textColor,
173
+ backgroundColor: backgroundColor,
174
+ size: size
175
+ });
176
+ React.useEffect(function() {
177
+ setImgLoadError(false); // reset error state when url changes
178
+ }, [
179
+ src
180
+ ]);
181
+ var letters = initials.trim().slice(0, 2);
182
+ var badgePosition = getBadgeDistance(size, badge);
183
+ var badgeValue = badge === true ? undefined : badge || 0;
184
+ var shouldRenderImage = !!src && !imgLoadError;
185
+ var iconSize = size <= 40 ? 16 : 24;
186
+ return /*#__PURE__*/ _jsx(Badge, {
187
+ value: badgeValue,
188
+ top: badgePosition,
189
+ right: badgePosition,
190
+ children: /*#__PURE__*/ _jsx("div", {
191
+ className: classes.avatar,
192
+ role: "img",
193
+ "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : initials,
194
+ children: shouldRenderImage ? /*#__PURE__*/ _jsx("img", {
195
+ src: src,
196
+ className: classes.image,
197
+ onError: function() {
198
+ return setImgLoadError(true);
199
+ },
200
+ role: "none"
201
+ }) : renderText(size, letters) || /*#__PURE__*/ _jsx(Icon, {
202
+ size: iconSize,
203
+ color: "currentColor"
204
+ })
205
+ })
206
+ });
207
+ };
208
+ export default Avatar;
package/dist-es/badge.js CHANGED
@@ -26,8 +26,14 @@ var useStyles = createUseStyles(function(theme) {
26
26
  var hasChildren = param.hasChildren;
27
27
  return hasChildren ? "absolute" : "static";
28
28
  },
29
- top: -2,
30
- right: -6,
29
+ top: function(param) {
30
+ var top = param.top;
31
+ return top !== null && top !== void 0 ? top : -2;
32
+ },
33
+ right: function(param) {
34
+ var right = param.right;
35
+ return right !== null && right !== void 0 ? right : -6;
36
+ },
31
37
  width: 8,
32
38
  height: 8,
33
39
  background: theme.colors.badge,
@@ -38,8 +44,14 @@ var useStyles = createUseStyles(function(theme) {
38
44
  display: "flex",
39
45
  alignItems: "center",
40
46
  justifyContent: "center",
41
- top: -8,
42
- right: -9,
47
+ top: function(param) {
48
+ var top = param.top;
49
+ return top !== null && top !== void 0 ? top : -8;
50
+ },
51
+ right: function(param) {
52
+ var right = param.right;
53
+ return right !== null && right !== void 0 ? right : -9;
54
+ },
43
55
  width: 18,
44
56
  height: 18,
45
57
  fontSize: 12,
@@ -47,7 +59,10 @@ var useStyles = createUseStyles(function(theme) {
47
59
  color: theme.colors.textPrimaryInverse
48
60
  },
49
61
  badgeBigNumber: {
50
- right: -14,
62
+ right: function(param) {
63
+ var right = param.right;
64
+ return right !== null && right !== void 0 ? right : -14;
65
+ },
51
66
  width: 24,
52
67
  borderRadius: 24
53
68
  }
@@ -63,10 +78,12 @@ var useStyles = createUseStyles(function(theme) {
63
78
  * </IconButton>
64
79
  * </Badge>
65
80
  */ var Badge = function(param) {
66
- var children = param.children, value = param.value;
81
+ var children = param.children, value = param.value, right = param.right, top = param.top;
67
82
  var hasChildren = !!children;
68
83
  var classes = useStyles({
69
- hasChildren: hasChildren
84
+ hasChildren: hasChildren,
85
+ right: right,
86
+ top: top
70
87
  });
71
88
  if (children && value === 0) {
72
89
  return /*#__PURE__*/ _jsx(_Fragment, {
package/dist-es/index.js CHANGED
@@ -36,8 +36,8 @@ export { default as NavigationBreadcrumbs } from "./navigation-breadcrumbs";
36
36
  export { default as Text, Text1, Text2, Text3, Text4, Text5, Text6, Text7, Text8, Text9, Text10 } from "./text";
37
37
  export { default as Tag } from "./tag";
38
38
  export { default as SectionTitle } from "./section-title";
39
+ export { Placeholder } from "./placeholder";
39
40
  export { Title1, Title2 } from "./title";
40
- export { Placeholder, AvatarPlaceholder } from "./placeholder";
41
41
  export { RowList, Row, BoxedRowList, BoxedRow } from "./list";
42
42
  export { default as Switch } from "./switch-component";
43
43
  export { default as Checkbox } from "./checkbox";
@@ -54,6 +54,7 @@ export { default as Menu } from "./menu";
54
54
  export { default as EmptyState } from "./empty-state";
55
55
  export { default as EmptyStateCard } from "./empty-state-card";
56
56
  export { default as Callout } from "./callout";
57
+ export { default as Avatar } from "./avatar";
57
58
  export { useModalState } from "./modal-context-provider";
58
59
  export { NavigationBar, MainNavigationBar, FunnelNavigationBar, NavigationBarActionGroup, NavigationBarAction, NavigationBarLogo } from "./navigation-bar";
59
60
  export { default as Image } from "./image";
@@ -1,2 +1,2 @@
1
1
  // DO NOT EDIT THIS FILE. It's autogenerated by set-version.js
2
- export var PACKAGE_VERSION = "11.8.0";
2
+ export var PACKAGE_VERSION = "11.9.0";
@@ -2,17 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { applyAlpha } from "./utils/color";
4
4
  import { useTheme } from "./hooks";
5
- export var AvatarPlaceholder = function(param) {
6
- var _size = param.size, size = _size === void 0 ? "100%" : _size;
7
- return /*#__PURE__*/ _jsx("div", {
8
- style: {
9
- width: size,
10
- height: size,
11
- borderRadius: "50%",
12
- background: "gray"
13
- }
14
- });
15
- };
16
5
  export var Placeholder = function(param) {
17
6
  var _width = param.width, width = _width === void 0 ? "auto" : _width, _height = param.height, height = _height === void 0 ? 120 : _height;
18
7
  var colors = useTheme().colors;
package/dist-es/text.js CHANGED
@@ -101,8 +101,14 @@ var useStyles = createUseStyles(function(theme) {
101
101
  "-webkit-line-clamp": lineClamp,
102
102
  lineClamp: lineClamp,
103
103
  wordBreak: function(param) {
104
- var truncate = param.truncate;
105
- return truncate === 1 || truncate === true ? "break-all" : "normal";
104
+ var wordBreak = param.wordBreak;
105
+ return wordBreak ? "break-all" : "normal";
106
+ },
107
+ "@supports (overflow-wrap: anywhere)": {
108
+ wordBreak: function(param) {
109
+ var truncate = param.truncate;
110
+ return truncate === 1 || truncate === true ? "break-all" : "normal";
111
+ }
106
112
  },
107
113
  display: "box",
108
114
  boxOrient: "vertical",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telefonica/mistica",
3
- "version": "11.8.0",
3
+ "version": "11.9.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",