@atlaskit/avatar 20.5.8 → 21.0.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.
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/entry-points/avatar.js",
4
4
  "module": "../dist/esm/entry-points/avatar.js",
5
5
  "module:es2019": "../dist/es2019/entry-points/avatar.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/entry-points/avatar.d.ts"
7
8
  }
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/entry-points/avatar-item.js",
4
4
  "module": "../dist/esm/entry-points/avatar-item.js",
5
5
  "module:es2019": "../dist/es2019/entry-points/avatar-item.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/entry-points/avatar-item.d.ts"
7
8
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @atlaskit/avatar
2
2
 
3
+ ## 21.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [`92bb02bc46b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/92bb02bc46b) - [ux] There are **no code changes required** to consume this major, but you should be aware that internal changes have been made to how `@atlaskit/avatar` loads images.
8
+
9
+ Before, the image loading behaviour was written in JS. Now, it leans on a standard HTML `img` tag if you provide a `src` prop, allowing it to rely on the browser to optimise the loading. These changes should result in faster image loading and an improved server-side rendering story.
10
+
11
+ In this version, the **breaking change is that you will no longer see a fallback icon while the image is loading**. We have intentionally removed this loading behaviour as it is no longer consistent with our native `img` behaviour-first approach, and was a source of SSR bugs. Avatar images will load either instantly from the cache, or very fast from a CDN. In the edge cases where there is an error with the image src provided, we will still fall back to a default icon.
12
+
13
+ ### Patch Changes
14
+
15
+ - [`be23a6d8ee1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/be23a6d8ee1) - [ux] Updates color tokens used to be more semantically accurate
16
+
17
+ ## 20.5.10
18
+
19
+ ### Patch Changes
20
+
21
+ - Updated dependencies
22
+
23
+ ## 20.5.9
24
+
25
+ ### Patch Changes
26
+
27
+ - [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
28
+
3
29
  ## 20.5.8
4
30
 
5
31
  ### Patch Changes
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/entry-points/presence.js",
4
4
  "module": "../dist/esm/entry-points/presence.js",
5
5
  "module:es2019": "../dist/es2019/entry-points/presence.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/entry-points/presence.d.ts"
7
8
  }
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/entry-points/skeleton.js",
4
4
  "module": "../dist/esm/entry-points/skeleton.js",
5
5
  "module:es2019": "../dist/es2019/entry-points/skeleton.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/entry-points/skeleton.d.ts"
7
8
  }
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/entry-points/status.js",
4
4
  "module": "../dist/esm/entry-points/status.js",
5
5
  "module:es2019": "../dist/es2019/entry-points/status.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/entry-points/status.d.ts"
7
8
  }
@@ -38,7 +38,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
38
38
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
39
 
40
40
  var packageName = "@atlaskit/avatar";
41
- var packageVersion = "20.5.8";
41
+ var packageVersion = "21.0.0";
42
42
 
43
43
  var getStyles = function getStyles(css, _ref) {
44
44
  var size = _ref.size,
@@ -23,25 +23,21 @@ var _constants = require("./constants");
23
23
 
24
24
  /** @jsx jsx */
25
25
  // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
26
- var ICON_BACKGROUND = "var(--ds-text-inverse, ".concat((0, _colors.background)(), ")");
26
+ var ICON_BACKGROUND = "var(--ds-icon-inverse, ".concat((0, _colors.background)(), ")");
27
27
  exports.ICON_BACKGROUND = ICON_BACKGROUND;
28
- var ICON_COLOR = "var(--ds-text-subtlest, ".concat(_colors.N90, ")");
28
+ var ICON_COLOR = "var(--ds-icon-subtle, ".concat(_colors.N90, ")");
29
29
  exports.ICON_COLOR = ICON_COLOR;
30
- var avatarImageStyles = (0, _core.css)({
30
+ var avatarDefaultIconStyles = (0, _core.css)({
31
31
  display: 'block',
32
32
  width: '100%',
33
33
  height: '100%',
34
34
  backgroundColor: ICON_COLOR
35
35
  });
36
- var loadingImageStyles = (0, _core.css)({
36
+ var avatarImageStyles = (0, _core.css)({
37
37
  display: 'flex',
38
38
  width: '100%',
39
39
  height: '100%',
40
- flex: '1 1 100%',
41
- backgroundColor: 'transparent',
42
- backgroundPosition: 'center',
43
- backgroundRepeat: 'no-repeat',
44
- backgroundSize: 'cover'
40
+ flex: '1 1 100%'
45
41
  });
46
42
  /**
47
43
  * __Avatar image__
@@ -57,47 +53,20 @@ var AvatarImage = function AvatarImage(_ref) {
57
53
  size = _ref.size,
58
54
  testId = _ref.testId;
59
55
 
60
- var _useState = (0, _react.useState)('initial'),
56
+ var _useState = (0, _react.useState)(false),
61
57
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
62
- phase = _useState2[0],
63
- setPhase = _useState2[1];
64
-
65
- var borderRadius = appearance === 'circle' ? '50%' : "".concat(_constants.AVATAR_RADIUS[size], "px");
66
- var image = (0, _react.useMemo)(function () {
67
- if (src) {
68
- setPhase('loading');
69
- var img = new Image();
70
-
71
- img.onload = function () {
72
- return setPhase('loaded');
73
- };
74
-
75
- img.onerror = function () {
76
- return setPhase('error');
77
- };
58
+ hasImageErrored = _useState2[0],
59
+ setHasImageErrored = _useState2[1];
78
60
 
79
- img.src = src;
80
- return img;
81
- }
61
+ var borderRadius = appearance === 'circle' ? '50%' : "".concat(_constants.AVATAR_RADIUS[size], "px"); // If src changes, reset state
82
62
 
83
- return null;
84
- }, [src]);
85
63
  (0, _react.useEffect)(function () {
86
- return function () {
87
- if (image) {
88
- image.onload = function () {};
89
-
90
- image.onerror = function () {};
91
- }
92
- };
93
- }, [image]);
94
- var imageHasLoadedAsync = src && phase !== 'loading' && phase !== 'error';
95
- var imageHasLoadedSync = src && phase === 'loading' && (image === null || image === void 0 ? void 0 : image.complete);
96
- var imageHasLoaded = imageHasLoadedAsync || imageHasLoadedSync;
97
-
98
- if (!imageHasLoaded) {
64
+ setHasImageErrored(false);
65
+ }, [src]);
66
+
67
+ if (!src || hasImageErrored) {
99
68
  return (0, _core.jsx)("span", {
100
- css: [avatarImageStyles, // TODO: These dynamic SVG styles can't be set in 'style'. On a refactor, use a css custom property to pass down the size
69
+ css: [avatarDefaultIconStyles, // TODO: These dynamic SVG styles can't be set in 'style'. On a refactor, use a css custom property to pass down the size
101
70
  // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
102
71
  {
103
72
  '& svg': {
@@ -118,15 +87,17 @@ var AvatarImage = function AvatarImage(_ref) {
118
87
  }));
119
88
  }
120
89
 
121
- return (0, _core.jsx)("span", {
122
- css: loadingImageStyles,
90
+ return (0, _core.jsx)("img", {
91
+ src: src,
92
+ alt: alt,
93
+ "data-testid": testId && "".concat(testId, "--image"),
94
+ css: avatarImageStyles,
123
95
  style: {
124
- backgroundImage: "url(\"".concat(src, "\")"),
125
96
  borderRadius: borderRadius
126
97
  },
127
- role: alt ? 'img' : undefined,
128
- "aria-label": alt || undefined,
129
- "data-testid": testId && "".concat(testId, "--image")
98
+ onError: function onError() {
99
+ return setHasImageErrored(true);
100
+ }
130
101
  });
131
102
  };
132
103
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/avatar",
3
- "version": "20.5.8",
3
+ "version": "21.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -10,7 +10,7 @@ import { PresenceWrapper } from './Presence';
10
10
  import { StatusWrapper } from './Status';
11
11
  import { getButtonProps, getCustomElement, getLinkProps } from './utilities';
12
12
  const packageName = "@atlaskit/avatar";
13
- const packageVersion = "20.5.8";
13
+ const packageVersion = "21.0.0";
14
14
 
15
15
  const getStyles = (css, {
16
16
  size,
@@ -1,28 +1,24 @@
1
1
  /** @jsx jsx */
2
2
  // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
3
- import { useEffect, useMemo, useState } from 'react';
3
+ import { useEffect, useState } from 'react';
4
4
  import { css, jsx } from '@emotion/core';
5
5
  import PersonIcon from '@atlaskit/icon/glyph/person';
6
6
  import ShipIcon from '@atlaskit/icon/glyph/ship';
7
7
  import { background, N90 } from '@atlaskit/theme/colors';
8
8
  import { AVATAR_RADIUS, AVATAR_SIZES } from './constants';
9
- export const ICON_BACKGROUND = `var(--ds-text-inverse, ${background()})`;
10
- export const ICON_COLOR = `var(--ds-text-subtlest, ${N90})`;
11
- const avatarImageStyles = css({
9
+ export const ICON_BACKGROUND = `var(--ds-icon-inverse, ${background()})`;
10
+ export const ICON_COLOR = `var(--ds-icon-subtle, ${N90})`;
11
+ const avatarDefaultIconStyles = css({
12
12
  display: 'block',
13
13
  width: '100%',
14
14
  height: '100%',
15
15
  backgroundColor: ICON_COLOR
16
16
  });
17
- const loadingImageStyles = css({
17
+ const avatarImageStyles = css({
18
18
  display: 'flex',
19
19
  width: '100%',
20
20
  height: '100%',
21
- flex: '1 1 100%',
22
- backgroundColor: 'transparent',
23
- backgroundPosition: 'center',
24
- backgroundRepeat: 'no-repeat',
25
- backgroundSize: 'cover'
21
+ flex: '1 1 100%'
26
22
  });
27
23
  /**
28
24
  * __Avatar image__
@@ -37,39 +33,16 @@ const AvatarImage = ({
37
33
  size,
38
34
  testId
39
35
  }) => {
40
- const [phase, setPhase] = useState('initial');
41
- const borderRadius = appearance === 'circle' ? '50%' : `${AVATAR_RADIUS[size]}px`;
42
- const image = useMemo(() => {
43
- if (src) {
44
- setPhase('loading');
45
- const img = new Image();
46
-
47
- img.onload = () => setPhase('loaded');
48
-
49
- img.onerror = () => setPhase('error');
36
+ const [hasImageErrored, setHasImageErrored] = useState(false);
37
+ const borderRadius = appearance === 'circle' ? '50%' : `${AVATAR_RADIUS[size]}px`; // If src changes, reset state
50
38
 
51
- img.src = src;
52
- return img;
53
- }
54
-
55
- return null;
56
- }, [src]);
57
39
  useEffect(() => {
58
- return () => {
59
- if (image) {
60
- image.onload = () => {};
61
-
62
- image.onerror = () => {};
63
- }
64
- };
65
- }, [image]);
66
- const imageHasLoadedAsync = src && phase !== 'loading' && phase !== 'error';
67
- const imageHasLoadedSync = src && phase === 'loading' && (image === null || image === void 0 ? void 0 : image.complete);
68
- const imageHasLoaded = imageHasLoadedAsync || imageHasLoadedSync;
40
+ setHasImageErrored(false);
41
+ }, [src]);
69
42
 
70
- if (!imageHasLoaded) {
43
+ if (!src || hasImageErrored) {
71
44
  return jsx("span", {
72
- css: [avatarImageStyles, // TODO: These dynamic SVG styles can't be set in 'style'. On a refactor, use a css custom property to pass down the size
45
+ css: [avatarDefaultIconStyles, // TODO: These dynamic SVG styles can't be set in 'style'. On a refactor, use a css custom property to pass down the size
73
46
  // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
74
47
  {
75
48
  '& svg': {
@@ -90,15 +63,15 @@ const AvatarImage = ({
90
63
  }));
91
64
  }
92
65
 
93
- return jsx("span", {
94
- css: loadingImageStyles,
66
+ return jsx("img", {
67
+ src: src,
68
+ alt: alt,
69
+ "data-testid": testId && `${testId}--image`,
70
+ css: avatarImageStyles,
95
71
  style: {
96
- backgroundImage: `url("${src}")`,
97
72
  borderRadius: borderRadius
98
73
  },
99
- role: alt ? 'img' : undefined,
100
- "aria-label": alt || undefined,
101
- "data-testid": testId && `${testId}--image`
74
+ onError: () => setHasImageErrored(true)
102
75
  });
103
76
  };
104
77
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/avatar",
3
- "version": "20.5.8",
3
+ "version": "21.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -20,7 +20,7 @@ import { PresenceWrapper } from './Presence';
20
20
  import { StatusWrapper } from './Status';
21
21
  import { getButtonProps, getCustomElement, getLinkProps } from './utilities';
22
22
  var packageName = "@atlaskit/avatar";
23
- var packageVersion = "20.5.8";
23
+ var packageVersion = "21.0.0";
24
24
 
25
25
  var getStyles = function getStyles(css, _ref) {
26
26
  var size = _ref.size,
@@ -2,29 +2,25 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
 
3
3
  /** @jsx jsx */
4
4
  // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
5
- import { useEffect, useMemo, useState } from 'react';
5
+ import { useEffect, useState } from 'react';
6
6
  import { css, jsx } from '@emotion/core';
7
7
  import PersonIcon from '@atlaskit/icon/glyph/person';
8
8
  import ShipIcon from '@atlaskit/icon/glyph/ship';
9
9
  import { background, N90 } from '@atlaskit/theme/colors';
10
10
  import { AVATAR_RADIUS, AVATAR_SIZES } from './constants';
11
- export var ICON_BACKGROUND = "var(--ds-text-inverse, ".concat(background(), ")");
12
- export var ICON_COLOR = "var(--ds-text-subtlest, ".concat(N90, ")");
13
- var avatarImageStyles = css({
11
+ export var ICON_BACKGROUND = "var(--ds-icon-inverse, ".concat(background(), ")");
12
+ export var ICON_COLOR = "var(--ds-icon-subtle, ".concat(N90, ")");
13
+ var avatarDefaultIconStyles = css({
14
14
  display: 'block',
15
15
  width: '100%',
16
16
  height: '100%',
17
17
  backgroundColor: ICON_COLOR
18
18
  });
19
- var loadingImageStyles = css({
19
+ var avatarImageStyles = css({
20
20
  display: 'flex',
21
21
  width: '100%',
22
22
  height: '100%',
23
- flex: '1 1 100%',
24
- backgroundColor: 'transparent',
25
- backgroundPosition: 'center',
26
- backgroundRepeat: 'no-repeat',
27
- backgroundSize: 'cover'
23
+ flex: '1 1 100%'
28
24
  });
29
25
  /**
30
26
  * __Avatar image__
@@ -40,47 +36,20 @@ var AvatarImage = function AvatarImage(_ref) {
40
36
  size = _ref.size,
41
37
  testId = _ref.testId;
42
38
 
43
- var _useState = useState('initial'),
39
+ var _useState = useState(false),
44
40
  _useState2 = _slicedToArray(_useState, 2),
45
- phase = _useState2[0],
46
- setPhase = _useState2[1];
47
-
48
- var borderRadius = appearance === 'circle' ? '50%' : "".concat(AVATAR_RADIUS[size], "px");
49
- var image = useMemo(function () {
50
- if (src) {
51
- setPhase('loading');
52
- var img = new Image();
53
-
54
- img.onload = function () {
55
- return setPhase('loaded');
56
- };
57
-
58
- img.onerror = function () {
59
- return setPhase('error');
60
- };
41
+ hasImageErrored = _useState2[0],
42
+ setHasImageErrored = _useState2[1];
61
43
 
62
- img.src = src;
63
- return img;
64
- }
44
+ var borderRadius = appearance === 'circle' ? '50%' : "".concat(AVATAR_RADIUS[size], "px"); // If src changes, reset state
65
45
 
66
- return null;
67
- }, [src]);
68
46
  useEffect(function () {
69
- return function () {
70
- if (image) {
71
- image.onload = function () {};
72
-
73
- image.onerror = function () {};
74
- }
75
- };
76
- }, [image]);
77
- var imageHasLoadedAsync = src && phase !== 'loading' && phase !== 'error';
78
- var imageHasLoadedSync = src && phase === 'loading' && (image === null || image === void 0 ? void 0 : image.complete);
79
- var imageHasLoaded = imageHasLoadedAsync || imageHasLoadedSync;
47
+ setHasImageErrored(false);
48
+ }, [src]);
80
49
 
81
- if (!imageHasLoaded) {
50
+ if (!src || hasImageErrored) {
82
51
  return jsx("span", {
83
- css: [avatarImageStyles, // TODO: These dynamic SVG styles can't be set in 'style'. On a refactor, use a css custom property to pass down the size
52
+ css: [avatarDefaultIconStyles, // TODO: These dynamic SVG styles can't be set in 'style'. On a refactor, use a css custom property to pass down the size
84
53
  // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
85
54
  {
86
55
  '& svg': {
@@ -101,15 +70,17 @@ var AvatarImage = function AvatarImage(_ref) {
101
70
  }));
102
71
  }
103
72
 
104
- return jsx("span", {
105
- css: loadingImageStyles,
73
+ return jsx("img", {
74
+ src: src,
75
+ alt: alt,
76
+ "data-testid": testId && "".concat(testId, "--image"),
77
+ css: avatarImageStyles,
106
78
  style: {
107
- backgroundImage: "url(\"".concat(src, "\")"),
108
79
  borderRadius: borderRadius
109
80
  },
110
- role: alt ? 'img' : undefined,
111
- "aria-label": alt || undefined,
112
- "data-testid": testId && "".concat(testId, "--image")
81
+ onError: function onError() {
82
+ return setHasImageErrored(true);
83
+ }
113
84
  });
114
85
  };
115
86
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/avatar",
3
- "version": "20.5.8",
3
+ "version": "21.0.0",
4
4
  "sideEffects": false
5
5
  }
@@ -23,7 +23,7 @@ export interface AvatarPropTypes {
23
23
  appearance?: AppearanceType;
24
24
  /**
25
25
  * Used to provide better content to screen readers when using presence/status. Rather
26
- * than a screen reader speaking "online, approved, John Smith", passing in an label
26
+ * than a screen reader speaking "online, approved, John Smith", passing in a label
27
27
  * allows a custom message like "John Smith (approved and online)".
28
28
  */
29
29
  label?: string;
@@ -45,8 +45,7 @@ export interface AvatarPropTypes {
45
45
  */
46
46
  isDisabled?: boolean;
47
47
  /**
48
- * Name will be displayed in a tooltip, also used by screen readers as fallback
49
- * content if the image fails to load.
48
+ * Provides alt text for the avatar image.
50
49
  */
51
50
  name?: string;
52
51
  /**
@@ -8,8 +8,8 @@ interface AvatarImageProps {
8
8
  src?: string;
9
9
  testId?: string;
10
10
  }
11
- export declare const ICON_BACKGROUND: "var(--ds-text-inverse)";
12
- export declare const ICON_COLOR: "var(--ds-text-subtlest)";
11
+ export declare const ICON_BACKGROUND: "var(--ds-icon-inverse)";
12
+ export declare const ICON_COLOR: "var(--ds-icon-subtle)";
13
13
  /**
14
14
  * __Avatar image__
15
15
  *
@@ -6,6 +6,6 @@ export declare const getLinkProps: (href: string, target?: string | undefined) =
6
6
  };
7
7
  export declare const getButtonProps: (onClick: MouseEventHandler) => {
8
8
  type: string;
9
- onClick: (event: import("react").MouseEvent<Element, MouseEvent>) => void;
9
+ onClick: MouseEventHandler<Element>;
10
10
  };
11
- export declare const getCustomElement: (isDisabled?: boolean | undefined, href?: string | undefined, onClick?: ((event: import("react").MouseEvent<Element, MouseEvent>) => void) | undefined) => "button" | "a" | "span";
11
+ export declare const getCustomElement: (isDisabled?: boolean | undefined, href?: string | undefined, onClick?: MouseEventHandler<Element> | undefined) => "button" | "a" | "span";
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@atlaskit/avatar",
3
- "version": "20.5.8",
3
+ "version": "21.0.0",
4
4
  "description": "An avatar is a visual representation of a user or entity.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
7
7
  },
8
- "repository": "https://bitbucket.org/atlassian/atlassian-frontend",
8
+ "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
9
9
  "author": "Atlassian Pty Ltd",
10
10
  "license": "Apache-2.0",
11
11
  "main": "dist/cjs/index.js",
@@ -34,7 +34,7 @@
34
34
  "@atlaskit/analytics-next": "^8.0.0",
35
35
  "@atlaskit/icon": "^21.10.0",
36
36
  "@atlaskit/theme": "^12.1.0",
37
- "@atlaskit/tokens": "^0.9.0",
37
+ "@atlaskit/tokens": "^0.10.0",
38
38
  "@babel/runtime": "^7.0.0",
39
39
  "@emotion/core": "^10.0.9"
40
40
  },
@@ -42,7 +42,7 @@
42
42
  "react": "^16.8.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@atlaskit/button": "^16.2.0",
45
+ "@atlaskit/button": "^16.3.0",
46
46
  "@atlaskit/docs": "*",
47
47
  "@atlaskit/field-base": "^15.0.0",
48
48
  "@atlaskit/icon": "^21.10.0",
@@ -59,7 +59,7 @@
59
59
  "color-contrast-checker": "^1.5.0",
60
60
  "jscodeshift": "^0.13.0",
61
61
  "react-dom": "^16.8.0",
62
- "typescript": "3.9.10",
62
+ "typescript": "4.2.4",
63
63
  "wait-for-expect": "^1.2.0"
64
64
  },
65
65
  "keywords": [
@@ -3,5 +3,6 @@
3
3
  "main": "../dist/cjs/entry-points/types.js",
4
4
  "module": "../dist/esm/entry-points/types.js",
5
5
  "module:es2019": "../dist/es2019/entry-points/types.js",
6
+ "sideEffects": false,
6
7
  "types": "../dist/types/entry-points/types.d.ts"
7
8
  }