@toptal/picasso 26.12.0 → 26.13.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/AvatarUpload/AvatarUpload.d.ts +8 -1
- package/AvatarUpload/AvatarUpload.js +54 -20
- package/AvatarUpload/AvatarUpload.js.map +1 -1
- package/AvatarUpload/DropzoneSvg/DropzoneSvg.d.ts +5 -0
- package/AvatarUpload/DropzoneSvg/DropzoneSvg.js +17 -4
- package/AvatarUpload/DropzoneSvg/DropzoneSvg.js.map +1 -1
- package/AvatarUpload/DropzoneSvg/styles.d.ts +1 -1
- package/AvatarUpload/DropzoneSvg/styles.js +75 -38
- package/AvatarUpload/DropzoneSvg/styles.js.map +1 -1
- package/AvatarUpload/styles.d.ts +1 -1
- package/AvatarUpload/styles.js +47 -22
- package/AvatarUpload/styles.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { BaseProps, SizeType } from '@toptal/picasso-shared';
|
|
3
3
|
import { AvatarUploadOptions } from './types';
|
|
4
|
+
import { Status } from '../OutlinedInput';
|
|
4
5
|
export interface Props extends BaseProps {
|
|
5
6
|
/**
|
|
6
7
|
* Set accepted file types. See https://github.com/okonet/attr-accept for more information.
|
|
@@ -42,8 +43,14 @@ export interface Props extends BaseProps {
|
|
|
42
43
|
* (file: File) => FileError | FileError[] | null
|
|
43
44
|
*/
|
|
44
45
|
validator?: AvatarUploadOptions['validator'];
|
|
46
|
+
/** Indicate `AvatarUpload` is in `error` or `default` state */
|
|
47
|
+
status?: Extract<Status, 'error' | 'default'>;
|
|
45
48
|
/** Indicate whether the selected file is being uploaded */
|
|
46
49
|
uploading?: boolean;
|
|
50
|
+
/** Indicate whether component has focused state as default */
|
|
51
|
+
autoFocus?: boolean;
|
|
52
|
+
autoHover?: boolean;
|
|
53
|
+
defaultActive?: boolean;
|
|
47
54
|
testIds?: {
|
|
48
55
|
avatar?: string;
|
|
49
56
|
dropzoneSvg?: string;
|
|
@@ -51,5 +58,5 @@ export interface Props extends BaseProps {
|
|
|
51
58
|
loader?: string;
|
|
52
59
|
};
|
|
53
60
|
}
|
|
54
|
-
export declare const AvatarUpload: React.ForwardRefExoticComponent<Props & React.RefAttributes<
|
|
61
|
+
export declare const AvatarUpload: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLElement>>;
|
|
55
62
|
export default AvatarUpload;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef, useCallback } from 'react';
|
|
1
|
+
import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useState, } from 'react';
|
|
2
2
|
import { capitalize, makeStyles } from '@material-ui/core';
|
|
3
3
|
import { useDropzone } from 'react-dropzone';
|
|
4
4
|
import cx from 'classnames';
|
|
@@ -10,10 +10,17 @@ import { Upload24 } from '../Icon';
|
|
|
10
10
|
const useStyles = makeStyles(styles, {
|
|
11
11
|
name: 'PicassoAvatarUpload',
|
|
12
12
|
});
|
|
13
|
-
export const AvatarUpload = forwardRef(
|
|
14
|
-
|
|
13
|
+
export const AvatarUpload = forwardRef(
|
|
14
|
+
// eslint-disable-next-line complexity
|
|
15
|
+
function AvatarUpload(props, ref) {
|
|
16
|
+
const { autoFocus, autoHover, defaultActive, uploading = false, size = 'small', onEdit, status, 'data-testid': dataTestId, testIds, src, alt,
|
|
15
17
|
// dropzoneOptions
|
|
16
18
|
accept, minSize, maxSize, disabled, onDrop, onDropAccepted, onDropRejected, validator, } = props;
|
|
19
|
+
const [{ initiallyFocused, initiallyActive, hovered }, setVisualStates] = useState({
|
|
20
|
+
hovered: autoHover,
|
|
21
|
+
initiallyFocused: autoFocus,
|
|
22
|
+
initiallyActive: defaultActive,
|
|
23
|
+
});
|
|
17
24
|
// callback overrides to return only one file to the parent component
|
|
18
25
|
const handleDrop = useCallback((acceptedFiles, fileRejections, event) => {
|
|
19
26
|
var _a, _b;
|
|
@@ -38,17 +45,27 @@ export const AvatarUpload = forwardRef(function AvatarUpload(props, ref) {
|
|
|
38
45
|
onEdit(event);
|
|
39
46
|
}
|
|
40
47
|
};
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
+
const onMouseEnter = () => {
|
|
49
|
+
setVisualStates(oldState => (Object.assign(Object.assign({}, oldState), { hovered: true })));
|
|
50
|
+
};
|
|
51
|
+
const onMouseLeave = () => {
|
|
52
|
+
setVisualStates(oldState => (Object.assign(Object.assign({}, oldState), { hovered: false })));
|
|
53
|
+
};
|
|
54
|
+
const showAvatar = !uploading && Boolean(src);
|
|
55
|
+
const showUploadIcon = !(showAvatar || uploading);
|
|
56
|
+
// after showing avatar, only way to change the file selection is to use 'onEdit' by clicking
|
|
57
|
+
const disableDropzoneClick = (showAvatar && !onEdit) || uploading;
|
|
58
|
+
const disableKeyboardAndDragging = showAvatar || uploading;
|
|
48
59
|
const classes = useStyles();
|
|
49
|
-
const loadingIcon =
|
|
50
|
-
|
|
51
|
-
|
|
60
|
+
const loadingIcon = uploading && (React.createElement(Loader, { className: cx(classes.icon, {
|
|
61
|
+
[classes.hovered]: hovered,
|
|
62
|
+
[classes.error]: status === 'error',
|
|
63
|
+
}), size: 'small', variant: 'inherit', "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.loader }));
|
|
64
|
+
const uploadIcon = showUploadIcon && (React.createElement(Upload24, { className: cx(classes.icon, {
|
|
65
|
+
[classes.hovered]: hovered,
|
|
66
|
+
[classes.error]: status === 'error',
|
|
67
|
+
}), "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.uploadIcon }));
|
|
68
|
+
const { getInputProps, getRootProps, isDragActive, isFocused, rootRef } = useDropzone({
|
|
52
69
|
accept,
|
|
53
70
|
minSize,
|
|
54
71
|
maxSize,
|
|
@@ -59,19 +76,35 @@ export const AvatarUpload = forwardRef(function AvatarUpload(props, ref) {
|
|
|
59
76
|
onDropRejected: handleDropRejected,
|
|
60
77
|
validator,
|
|
61
78
|
noClick: disableDropzoneClick,
|
|
62
|
-
noDrag:
|
|
63
|
-
noKeyboard:
|
|
79
|
+
noDrag: disableKeyboardAndDragging,
|
|
80
|
+
noKeyboard: disableKeyboardAndDragging,
|
|
64
81
|
});
|
|
82
|
+
useEffect(() => {
|
|
83
|
+
if (initiallyActive && isDragActive) {
|
|
84
|
+
setVisualStates(oldState => (Object.assign(Object.assign({}, oldState), { initiallyActive: false })));
|
|
85
|
+
}
|
|
86
|
+
}, [initiallyActive, isDragActive]);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
if (initiallyFocused && isFocused) {
|
|
89
|
+
setVisualStates(oldState => (Object.assign(Object.assign({}, oldState), { initiallyFocused: false })));
|
|
90
|
+
}
|
|
91
|
+
}, [initiallyFocused, isFocused]);
|
|
92
|
+
// exposing the rootRef from react-dropzone to the parent component
|
|
93
|
+
useImperativeHandle(ref, () => { var _a; return (_a = rootRef.current) !== null && _a !== void 0 ? _a : {}; }, [
|
|
94
|
+
rootRef,
|
|
95
|
+
]);
|
|
65
96
|
return (React.createElement("div", Object.assign({}, getRootProps({
|
|
66
|
-
|
|
67
|
-
|
|
97
|
+
className: cx(classes.root, classes[`size${capitalize(size)}`], {
|
|
98
|
+
[classes.disabled]: disabled,
|
|
99
|
+
[classes.readonlyAvatar]: showAvatar,
|
|
100
|
+
}),
|
|
68
101
|
'data-testid': dataTestId,
|
|
69
|
-
})),
|
|
102
|
+
}), { onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }),
|
|
70
103
|
React.createElement("input", Object.assign({}, getInputProps())),
|
|
71
|
-
showAvatar ? (React.createElement(Avatar, { size: size, onEdit:
|
|
104
|
+
showAvatar ? (React.createElement(Avatar, { size: size, onEdit: onEdit ? handleEdit : undefined,
|
|
72
105
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
73
106
|
src: src, alt: alt, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.avatar, variant: 'square' })) : (React.createElement(React.Fragment, null,
|
|
74
|
-
React.createElement(DropzoneSvg, { size: size, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.dropzoneSvg }),
|
|
107
|
+
React.createElement(DropzoneSvg, { disabled: disabled, error: status === 'error', size: size, hovered: hovered, focused: initiallyFocused || isFocused, isDragActive: initiallyActive || isDragActive, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.dropzoneSvg }),
|
|
75
108
|
loadingIcon,
|
|
76
109
|
uploadIcon))));
|
|
77
110
|
});
|
|
@@ -79,6 +112,7 @@ AvatarUpload.displayName = 'AvatarUpload';
|
|
|
79
112
|
AvatarUpload.defaultProps = {
|
|
80
113
|
size: 'small',
|
|
81
114
|
disabled: false,
|
|
115
|
+
uploading: false,
|
|
82
116
|
maxSize: 104857600,
|
|
83
117
|
minSize: 0,
|
|
84
118
|
accept: 'image/*',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarUpload.js","sourceRoot":"","sources":["../../src/AvatarUpload/AvatarUpload.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AvatarUpload.js","sourceRoot":"","sources":["../../src/AvatarUpload/AvatarUpload.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { BaseProps, SizeType } from '@toptal/picasso-shared';
|
|
2
2
|
export interface Props extends BaseProps {
|
|
3
3
|
size?: SizeType<'small' | 'large'>;
|
|
4
|
+
isDragActive?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
error?: boolean;
|
|
7
|
+
focused?: boolean;
|
|
8
|
+
hovered?: boolean;
|
|
4
9
|
}
|
|
5
10
|
export declare const DropzoneSvg: {
|
|
6
11
|
(props: Props): JSX.Element;
|
|
@@ -33,15 +33,28 @@ const useStyles = makeStyles(styles, {
|
|
|
33
33
|
name: 'PicassoDropzoneSvg',
|
|
34
34
|
});
|
|
35
35
|
export const DropzoneSvg = (props) => {
|
|
36
|
-
const { size = 'small', 'data-testid': dataTestId } = props;
|
|
36
|
+
const { size = 'small', disabled, error, focused, hovered, isDragActive, 'data-testid': dataTestId, } = props;
|
|
37
37
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
38
38
|
const shapes = SHAPES[size];
|
|
39
39
|
const classes = useStyles();
|
|
40
40
|
return (React.createElement("div", { className: cx(classes.root, classes[`root${capitalize(size)}`]), "data-testid": dataTestId },
|
|
41
41
|
React.createElement("svg", { className: cx(classes.svg, classes[`svg${capitalize(size)}`]), fill: 'none', xmlns: 'http://www.w3.org/2000/svg' },
|
|
42
|
-
React.createElement("path", { className: classes.background,
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
React.createElement("path", { className: cx(classes.background, {
|
|
43
|
+
[classes.dragActive]: isDragActive,
|
|
44
|
+
[classes.disabled]: disabled,
|
|
45
|
+
[classes.error]: error,
|
|
46
|
+
[classes.focused]: focused,
|
|
47
|
+
[classes.hovered]: hovered,
|
|
48
|
+
}), fillRule: 'evenodd', clipRule: 'evenodd', d: shapes.backgroundShape }),
|
|
49
|
+
React.createElement("path", { className: cx(classes.outline, {
|
|
50
|
+
[classes.focused]: focused,
|
|
51
|
+
[classes.error]: error,
|
|
52
|
+
}), fillRule: 'evenodd', clipRule: 'evenodd', d: shapes.outlineShape, strokeOpacity: '.48', strokeWidth: '3', strokeLinejoin: 'round' }),
|
|
53
|
+
React.createElement("path", { className: cx(classes.border, {
|
|
54
|
+
[classes.error]: error,
|
|
55
|
+
[classes.focused]: focused,
|
|
56
|
+
[classes.hovered]: hovered,
|
|
57
|
+
}), fillRule: 'evenodd', clipRule: 'evenodd', d: shapes.bordersShape, strokeDasharray: '3 3' }))));
|
|
45
58
|
};
|
|
46
59
|
DropzoneSvg.displayName = 'DropzoneSvg';
|
|
47
60
|
DropzoneSvg.defaultProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropzoneSvg.js","sourceRoot":"","sources":["../../../src/AvatarUpload/DropzoneSvg/DropzoneSvg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAS,MAAM,mBAAmB,CAAA;AAEjE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9E;;GAEG;AACH,MAAM,cAAc,GAAG,EAAE,CAAA;AACzB,MAAM,QAAQ,GAAG;IACf,KAAK,EAAE;QACL,UAAU,EAAE,CAAC,GAAG,cAAc;QAC9B,UAAU,EAAE,CAAC,GAAG,cAAc;KAC/B;IACD,KAAK,EAAE;QACL,UAAU,EAAE,EAAE,GAAG,cAAc;QAC/B,UAAU,EAAE,GAAG,GAAG,cAAc;KACjC;CACO,CAAA;AAEV,MAAM,MAAM,GAAG;IACb,KAAK,EAAE;QACL,eAAe,EAAE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnD,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC7C,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC9C;IACD,KAAK,EAAE;QACL,eAAe,EAAE,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnD,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC7C,YAAY,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;KAC9C;CACO,CAAA;
|
|
1
|
+
{"version":3,"file":"DropzoneSvg.js","sourceRoot":"","sources":["../../../src/AvatarUpload/DropzoneSvg/DropzoneSvg.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Theme } from '@material-ui/core/styles';
|
|
2
|
-
declare const _default: ({ palette, transitions }: Theme) => import("@material-ui/styles").StyleRules<{}, "background" | "border" | "outline" | "root" | "svg" | "rootSmall" | "rootLarge" | "svgSmall" | "svgLarge">;
|
|
2
|
+
declare const _default: ({ palette, transitions }: Theme) => import("@material-ui/styles").StyleRules<{}, "background" | "border" | "outline" | "disabled" | "error" | "root" | "svg" | "focused" | "hovered" | "rootSmall" | "rootLarge" | "dragActive" | "svgSmall" | "svgLarge">;
|
|
3
3
|
export default _default;
|
|
@@ -1,40 +1,77 @@
|
|
|
1
1
|
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
2
|
+
import { alpha } from '@toptal/picasso-shared';
|
|
3
|
+
export default ({ palette, transitions }) => {
|
|
4
|
+
const dragActiveColor = alpha(palette.blue.main, 0.24);
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
6
|
+
const hoverBackgroundColor = alpha(palette.blue.lighter, 0.84);
|
|
7
|
+
const hoverBorderColor = alpha(palette.blue.main, 0.84);
|
|
8
|
+
return createStyles({
|
|
9
|
+
root: {
|
|
10
|
+
pointerEvents: 'unset',
|
|
11
|
+
position: 'relative',
|
|
12
|
+
background: 'transparent',
|
|
13
|
+
},
|
|
14
|
+
rootSmall: {
|
|
15
|
+
width: '80px',
|
|
16
|
+
height: '80px',
|
|
17
|
+
},
|
|
18
|
+
rootLarge: {
|
|
19
|
+
width: '160px',
|
|
20
|
+
height: '160px',
|
|
21
|
+
},
|
|
22
|
+
svg: {
|
|
23
|
+
margin: '-3px', // to center the svg
|
|
24
|
+
},
|
|
25
|
+
svgSmall: {
|
|
26
|
+
width: '86px',
|
|
27
|
+
height: '86px', // 6px for the outline stroke
|
|
28
|
+
},
|
|
29
|
+
svgLarge: {
|
|
30
|
+
width: '166px',
|
|
31
|
+
height: '166px', // 6px for the outline stroke
|
|
32
|
+
},
|
|
33
|
+
background: {
|
|
34
|
+
fill: palette.blue.lighter,
|
|
35
|
+
transition: `all ${transitions.duration.short}ms ${transitions.easing.easeOut}`,
|
|
36
|
+
transitionProperty: 'fill',
|
|
37
|
+
'&$hovered': {
|
|
38
|
+
fill: hoverBackgroundColor,
|
|
39
|
+
},
|
|
40
|
+
'&$dragActive,&:active': {
|
|
41
|
+
fill: dragActiveColor,
|
|
42
|
+
},
|
|
43
|
+
'&$disabled': {
|
|
44
|
+
fill: palette.grey.lighter,
|
|
45
|
+
'&$hovered': {
|
|
46
|
+
fill: palette.grey.light2,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
border: {
|
|
51
|
+
stroke: palette.blue.main,
|
|
52
|
+
transition: `stroke ${transitions.duration.short}`,
|
|
53
|
+
'&$hovered': {
|
|
54
|
+
stroke: hoverBorderColor,
|
|
55
|
+
},
|
|
56
|
+
'&$error': {
|
|
57
|
+
stroke: palette.red.main,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
outline: {
|
|
61
|
+
display: 'none',
|
|
62
|
+
stroke: palette.blue.main,
|
|
63
|
+
'&$focused:not($dragActive)': {
|
|
64
|
+
display: 'initial',
|
|
65
|
+
},
|
|
66
|
+
'&$error': {
|
|
67
|
+
stroke: palette.red.main,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
dragActive: {},
|
|
71
|
+
disabled: {},
|
|
72
|
+
error: {},
|
|
73
|
+
focused: {},
|
|
74
|
+
hovered: {},
|
|
75
|
+
});
|
|
76
|
+
};
|
|
40
77
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/AvatarUpload/DropzoneSvg/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/AvatarUpload/DropzoneSvg/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAS,EAAE,EAAE;IACjD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACtD,oEAAoE;IACpE,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAQ,EAAE,IAAI,CAAC,CAAA;IAC/D,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEvD,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE;YACJ,aAAa,EAAE,OAAO;YACtB,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,aAAa;SAC1B;QACD,SAAS,EAAE;YACT,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf;QACD,SAAS,EAAE;YACT,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;SAChB;QAED,GAAG,EAAE;YACH,MAAM,EAAE,MAAM,EAAE,oBAAoB;SACrC;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM,EAAE,6BAA6B;SAC9C;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO,EAAE,6BAA6B;SAC/C;QAED,UAAU,EAAE;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC1B,UAAU,EAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;YAC/E,kBAAkB,EAAE,MAAM;YAE1B,WAAW,EAAE;gBACX,IAAI,EAAE,oBAAoB;aAC3B;YAED,uBAAuB,EAAE;gBACvB,IAAI,EAAE,eAAe;aACtB;YAED,YAAY,EAAE;gBACZ,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;gBAC1B,WAAW,EAAE;oBACX,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;iBAC1B;aACF;SACF;QACD,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YACzB,UAAU,EAAE,UAAU,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE;YAElD,WAAW,EAAE;gBACX,MAAM,EAAE,gBAAgB;aACzB;YAED,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;aACzB;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAEzB,4BAA4B,EAAE;gBAC5B,OAAO,EAAE,SAAS;aACnB;YAED,SAAS,EAAE;gBACT,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;aACzB;SACF;QAED,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
package/AvatarUpload/styles.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Theme } from '@material-ui/core/styles';
|
|
2
|
-
declare const _default: ({ palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "icon" | "root" | "sizeSmall" | "sizeLarge">;
|
|
2
|
+
declare const _default: ({ palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "icon" | "disabled" | "error" | "root" | "sizeSmall" | "sizeLarge" | "hovered" | "readonlyAvatar">;
|
|
3
3
|
export default _default;
|
package/AvatarUpload/styles.js
CHANGED
|
@@ -1,24 +1,49 @@
|
|
|
1
1
|
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
2
|
+
import { alpha } from '@toptal/picasso-shared';
|
|
3
|
+
export default ({ palette }) => {
|
|
4
|
+
const iconHoverColor = alpha(palette.blue.main, 0.84);
|
|
5
|
+
const iconHoverErrorColor = alpha(palette.red.main, 0.84);
|
|
6
|
+
return createStyles({
|
|
7
|
+
root: {
|
|
8
|
+
position: 'relative',
|
|
9
|
+
display: 'flex',
|
|
10
|
+
justifyContent: 'center',
|
|
11
|
+
alignItems: 'center',
|
|
12
|
+
color: palette.blue.main,
|
|
13
|
+
outline: 'none',
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
'&$disabled': {
|
|
16
|
+
cursor: 'no-drop',
|
|
17
|
+
},
|
|
18
|
+
'&$readonlyAvatar': {
|
|
19
|
+
cursor: 'default',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
sizeSmall: {
|
|
23
|
+
width: '5rem',
|
|
24
|
+
height: '5rem',
|
|
25
|
+
},
|
|
26
|
+
sizeLarge: {
|
|
27
|
+
width: '10rem',
|
|
28
|
+
height: '10rem',
|
|
29
|
+
},
|
|
30
|
+
icon: {
|
|
31
|
+
position: 'absolute',
|
|
32
|
+
pointerEvents: 'none',
|
|
33
|
+
'&$error': {
|
|
34
|
+
color: palette.red.main,
|
|
35
|
+
},
|
|
36
|
+
'&$hovered': {
|
|
37
|
+
color: iconHoverColor,
|
|
38
|
+
'&$error': {
|
|
39
|
+
color: iconHoverErrorColor,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
error: {},
|
|
44
|
+
disabled: {},
|
|
45
|
+
hovered: {},
|
|
46
|
+
readonlyAvatar: {},
|
|
47
|
+
});
|
|
48
|
+
};
|
|
24
49
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/AvatarUpload/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/AvatarUpload/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,eAAe,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE;IACpC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACrD,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEzD,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YACxB,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,SAAS;YAEjB,YAAY,EAAE;gBACZ,MAAM,EAAE,SAAS;aAClB;YAED,kBAAkB,EAAE;gBAClB,MAAM,EAAE,SAAS;aAClB;SACF;QAED,SAAS,EAAE;YACT,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf;QAED,SAAS,EAAE;YACT,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;SAChB;QAED,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,MAAM;YAErB,SAAS,EAAE;gBACT,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;aACxB;YAED,WAAW,EAAE;gBACX,KAAK,EAAE,cAAc;gBAErB,SAAS,EAAE;oBACT,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF;QAED,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,EAAE;KACnB,CAAC,CAAA;AACJ,CAAC,CAAA"}
|