@toptal/picasso 26.10.2 → 26.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/Avatar/Avatar.d.ts +5 -2
- package/Avatar/Avatar.js +14 -3
- package/Avatar/Avatar.js.map +1 -1
- package/Avatar/styles.d.ts +3 -0
- package/Avatar/styles.js +21 -0
- package/Avatar/styles.js.map +1 -0
- package/AvatarCompound/index.d.ts +1 -1
- package/package.json +1 -1
package/Avatar/Avatar.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HTMLAttributes } from 'react';
|
|
1
|
+
import React, { HTMLAttributes } from 'react';
|
|
2
2
|
import { StandardProps, SizeType } from '@toptal/picasso-shared';
|
|
3
3
|
export interface Props extends StandardProps, HTMLAttributes<HTMLDivElement> {
|
|
4
4
|
/** Alt text */
|
|
@@ -11,15 +11,18 @@ export interface Props extends StandardProps, HTMLAttributes<HTMLDivElement> {
|
|
|
11
11
|
src?: string;
|
|
12
12
|
/** Variant of the avatar shape */
|
|
13
13
|
variant?: 'square' | 'portrait' | 'landscape';
|
|
14
|
+
/** Callback to show edit-on-click and receive event */
|
|
15
|
+
onEdit?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
14
16
|
testIds?: {
|
|
15
17
|
wrapper?: string;
|
|
16
18
|
icon?: string;
|
|
17
19
|
image?: string;
|
|
18
20
|
text?: string;
|
|
21
|
+
editContainer?: string;
|
|
19
22
|
};
|
|
20
23
|
}
|
|
21
24
|
export declare const Avatar: {
|
|
22
|
-
(
|
|
25
|
+
(props: Props): JSX.Element;
|
|
23
26
|
defaultProps: {
|
|
24
27
|
size: string;
|
|
25
28
|
variant: string;
|
package/Avatar/Avatar.js
CHANGED
|
@@ -10,14 +10,20 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React, { useCallback } from 'react';
|
|
13
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
13
14
|
import { AVATAR_INITIALS_LIMIT } from '../utils/constants';
|
|
14
15
|
import getNameInitials from '../utils/get-name-initials';
|
|
15
16
|
import ImageAvatar from './ImageAvatar/ImageAvatar';
|
|
16
17
|
import TextAvatar from './TextAvatar/TextAvatar';
|
|
17
18
|
import IconAvatar from './IconAvatar/IconAvatar';
|
|
18
19
|
import AvatarWrapper from './AvatarWrapper/AvatarWrapper';
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
import styles from './styles';
|
|
21
|
+
import { Pencil16, Pencil24 } from '../Icon';
|
|
22
|
+
const useStyles = makeStyles(styles, {
|
|
23
|
+
name: 'PicassoAvatarWrapper',
|
|
24
|
+
});
|
|
25
|
+
export const Avatar = (props) => {
|
|
26
|
+
const { alt, src, className, name, size, style, variant, testIds, onEdit } = props, rest = __rest(props, ["alt", "src", "className", "name", "size", "style", "variant", "testIds", "onEdit"]);
|
|
21
27
|
const renderAvatar = useCallback(() => {
|
|
22
28
|
if (src) {
|
|
23
29
|
return (React.createElement(ImageAvatar, { alt: alt, className: className, name: name,
|
|
@@ -45,13 +51,18 @@ export const Avatar = (_a) => {
|
|
|
45
51
|
name,
|
|
46
52
|
style,
|
|
47
53
|
]);
|
|
54
|
+
const classes = useStyles(props);
|
|
55
|
+
const isEditable = Boolean(onEdit);
|
|
56
|
+
const pencilIcon = size === 'xxsmall' || size === 'xsmall' ? React.createElement(Pencil16, null) : React.createElement(Pencil24, null);
|
|
48
57
|
return (React.createElement(AvatarWrapper
|
|
49
58
|
/* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
|
|
50
59
|
, Object.assign({
|
|
51
60
|
/* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
|
|
52
61
|
variant: variant,
|
|
53
62
|
/* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
|
|
54
|
-
size: size, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.wrapper }, rest),
|
|
63
|
+
size: size, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.wrapper }, rest),
|
|
64
|
+
isEditable && (React.createElement("div", { "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.editContainer, className: classes.editContainer, onClick: onEdit }, pencilIcon)),
|
|
65
|
+
renderAvatar()));
|
|
55
66
|
};
|
|
56
67
|
Avatar.defaultProps = {
|
|
57
68
|
size: 'xsmall',
|
package/Avatar/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/Avatar/Avatar.tsx"],"names":[],"mappings":"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"}
|
package/Avatar/styles.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { alpha } from '@toptal/picasso-shared';
|
|
2
|
+
import { createStyles } from '@material-ui/core/styles';
|
|
3
|
+
export default ({ palette }) => {
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
5
|
+
const hoverColor = alpha(palette.grey.darker, 0.7);
|
|
6
|
+
return createStyles({
|
|
7
|
+
editContainer: {
|
|
8
|
+
position: 'absolute',
|
|
9
|
+
width: '100%',
|
|
10
|
+
height: '100%',
|
|
11
|
+
display: 'flex',
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
justifyContent: 'center',
|
|
14
|
+
backgroundColor: hoverColor,
|
|
15
|
+
zIndex: 1,
|
|
16
|
+
color: palette.common.white,
|
|
17
|
+
cursor: 'pointer',
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Avatar/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAS,MAAM,0BAA0B,CAAA;AAE9D,eAAe,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE;IACpC,oEAAoE;IACpE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAO,EAAE,GAAG,CAAC,CAAA;IAEnD,OAAO,YAAY,CAAC;QAClB,aAAa,EAAE;YACb,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,eAAe,EAAE,UAAU;YAC3B,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;YAC3B,MAAM,EAAE,SAAS;SAClB;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const AvatarCompound: {
|
|
2
|
-
(
|
|
2
|
+
(props: import("../Avatar/Avatar").Props): JSX.Element;
|
|
3
3
|
defaultProps: {
|
|
4
4
|
size: string;
|
|
5
5
|
variant: string;
|