@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.
@@ -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
- ({ alt, src, className, name, size, style, variant, testIds, ...rest }: Props): JSX.Element;
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
- export const Avatar = (_a) => {
20
- var { alt, src, className, name, size, style, variant, testIds } = _a, rest = __rest(_a, ["alt", "src", "className", "name", "size", "style", "variant", "testIds"]);
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), renderAvatar()));
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',
@@ -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;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAChD,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAChD,OAAO,aAAa,MAAM,+BAA+B,CAAA;AAqBzD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAUf,EAAE,EAAE;QAVW,EACrB,GAAG,EACH,GAAG,EACH,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,OAED,EADH,IAAI,cATc,0EAUtB,CADQ;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,GAAG,EAAE;YACP,OAAO,CACL,oBAAC,WAAW,IACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI;gBACV,uEAAuE;gBACvE,IAAI,EAAE,IAAK,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,iBACC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,GAC3B,CACH,CAAA;SACF;QAED,IAAI,IAAI,EAAE;YACR,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,qBAAqB,CAAA;YAE3D,OAAO,CACL,oBAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;gBACxC,uEAAuE;gBACvE,IAAI,EAAE,IAAK,iBACE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,IAEzB,QAAQ,CACE,CACd,CAAA;SACF;QAED,OAAO,CACL,oBAAC,UAAU,mBACI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAC1B,SAAS,EAAE,SAAS;YACpB,uEAAuE;YACvE,IAAI,EAAE,IAAK,GACX,CACH,CAAA;IACH,CAAC,EAAE;QACD,IAAI;QACJ,GAAG;QACH,SAAS;QACT,GAAG;QACH,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;QACb,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;QACd,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;QACb,IAAI;QACJ,KAAK;KACN,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,aAAa;IACZ,uEAAuE;;QAAvE,uEAAuE;QACvE,OAAO,EAAE,OAAQ;QACjB,uEAAuE;QACvE,IAAI,EAAE,IAAK,iBACE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,IACzB,IAAI,GAEP,YAAY,EAAE,CACD,CACjB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,YAAY,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;CAClB,CAAA;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;AAE7B,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,eAAe,MAAM,4BAA4B,CAAA;AACxD,OAAO,WAAW,MAAM,2BAA2B,CAAA;AACnD,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAChD,OAAO,UAAU,MAAM,yBAAyB,CAAA;AAChD,OAAO,aAAa,MAAM,+BAA+B,CAAA;AACzD,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAwB5C,MAAM,SAAS,GAAG,UAAU,CAAe,MAAM,EAAE;IACjD,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAY,EAAE,EAAE;IACrC,MAAM,EACJ,GAAG,EACH,GAAG,EACH,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,KAEJ,KAAK,EADJ,IAAI,UACL,KAAK,EAXH,oFAWL,CAAQ,CAAA;IAET,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,GAAG,EAAE;YACP,OAAO,CACL,oBAAC,WAAW,IACV,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI;gBACV,uEAAuE;gBACvE,IAAI,EAAE,IAAK,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,iBACC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,GAC3B,CACH,CAAA;SACF;QAED,IAAI,IAAI,EAAE;YACR,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;YACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,qBAAqB,CAAA;YAE3D,OAAO,CACL,oBAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;gBACxC,uEAAuE;gBACvE,IAAI,EAAE,IAAK,iBACE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,IAEzB,QAAQ,CACE,CACd,CAAA;SACF;QAED,OAAO,CACL,oBAAC,UAAU,mBACI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAC1B,SAAS,EAAE,SAAS;YACpB,uEAAuE;YACvE,IAAI,EAAE,IAAK,GACX,CACH,CAAA;IACH,CAAC,EAAE;QACD,IAAI;QACJ,GAAG;QACH,SAAS;QACT,GAAG;QACH,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;QACb,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;QACd,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;QACb,IAAI;QACJ,KAAK;KACN,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAElC,MAAM,UAAU,GACd,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAC,QAAQ,OAAG,CAAC,CAAC,CAAC,oBAAC,QAAQ,OAAG,CAAA;IAEvE,OAAO,CACL,oBAAC,aAAa;IACZ,uEAAuE;;QAAvE,uEAAuE;QACvE,OAAO,EAAE,OAAQ;QACjB,uEAAuE;QACvE,IAAI,EAAE,IAAK,iBACE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,IACzB,IAAI;QAEP,UAAU,IAAI,CACb,4CACe,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EACnC,SAAS,EAAE,OAAO,CAAC,aAAa,EAChC,OAAO,EAAE,MAAM,IAEd,UAAU,CACP,CACP;QACA,YAAY,EAAE,CACD,CACjB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,YAAY,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;CAClB,CAAA;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;AAE7B,eAAe,MAAM,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Theme } from '@material-ui/core/styles';
2
+ declare const _default: ({ palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "editContainer">;
3
+ export default _default;
@@ -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
- ({ alt, src, className, name, size, style, variant, testIds, ...rest }: import("../Avatar/Avatar").Props): JSX.Element;
2
+ (props: import("../Avatar/Avatar").Props): JSX.Element;
3
3
  defaultProps: {
4
4
  size: string;
5
5
  variant: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso",
3
- "version": "26.10.2",
3
+ "version": "26.11.0",
4
4
  "description": "Toptal UI components library",
5
5
  "publishConfig": {
6
6
  "access": "public",