@atlaskit/image 1.0.3 → 1.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @atlaskit/image
2
2
 
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip minor dependency bump
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+
13
+ ## 1.0.4
14
+
15
+ ### Patch Changes
16
+
17
+ - [`718d5ad3044`](https://bitbucket.org/atlassian/atlassian-frontend/commits/718d5ad3044) - Updates to support the new `@atlaskit/tokens` theming API.
18
+ - Updated dependencies
19
+
3
20
  ## 1.0.3
4
21
 
5
22
  ### Patch Changes
package/README.md CHANGED
@@ -2,8 +2,14 @@
2
2
 
3
3
  An image component with additional features, such as support for themes.
4
4
 
5
+ ## Installation
6
+
7
+ ```sh
8
+ yarn add @atlaskit/image
9
+ ```
10
+
5
11
  ## Usage
6
12
 
7
13
  `import Image from '@atlaskit/image';`
8
14
 
9
- Detailed docs and example usage can be found [here](https://atlaskit.atlassian.com/packages/design-system/image).
15
+ [View documentation](https://atlassian.design/components/image/).
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -11,5 +10,4 @@ Object.defineProperty(exports, "default", {
11
10
  return _image.default;
12
11
  }
13
12
  });
14
-
15
13
  var _image = _interopRequireDefault(require("./ui/image"));
@@ -1,29 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = Image;
9
-
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
-
16
10
  var _react = require("react");
17
-
18
11
  var _react2 = require("@emotion/react");
19
-
20
12
  var _tokens = require("@atlaskit/tokens");
21
-
22
13
  var _excluded = ["src", "srcDark", "alt", "testId"];
14
+ /** @jsx jsx */
23
15
  var imageStyles = (0, _react2.css)({
24
16
  maxWidth: '100%',
25
17
  height: 'auto'
26
18
  });
19
+
27
20
  /**
28
21
  * __Image__
29
22
  *
@@ -33,49 +26,32 @@ var imageStyles = (0, _react2.css)({
33
26
  * - [Code](https://atlassian.design/components/image/code)
34
27
  * - [Usage](https://atlassian.design/components/image/usage)
35
28
  */
36
-
37
29
  function Image(_ref) {
38
30
  var src = _ref.src,
39
- srcDark = _ref.srcDark,
40
- alt = _ref.alt,
41
- testId = _ref.testId,
42
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ srcDark = _ref.srcDark,
32
+ alt = _ref.alt,
33
+ testId = _ref.testId,
34
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
43
35
  var imgRef = (0, _react.useRef)(null);
44
-
45
- var _useState = (0, _react.useState)(''),
46
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
47
- colorMode = _useState2[0],
48
- setColorMode = _useState2[1];
49
-
50
- var theme = (0, _tokens.useThemeObserver)();
36
+ var _useThemeObserver = (0, _tokens.useThemeObserver)(),
37
+ colorMode = _useThemeObserver.colorMode;
51
38
  (0, _react.useEffect)(function () {
52
39
  if (imgRef === null || imgRef.current === null) {
53
40
  return;
54
41
  }
55
-
56
- if (srcDark && theme === 'dark') {
42
+ if (srcDark && colorMode === 'dark') {
57
43
  imgRef.current.src = srcDark;
58
44
  } else if (src) {
59
45
  imgRef.current.src = src;
60
46
  }
61
- }, [src, srcDark, theme]);
62
- /**
63
- * TODO: Remove the following once useThemeObserver reports `color-mode`
64
- */
65
-
66
- (0, _react.useEffect)(function () {
67
- setColorMode(document.documentElement.getAttribute('data-color-mode') || '');
68
- }, [theme, setColorMode]);
69
- return (0, _react2.jsx)("picture", null, srcDark && colorMode === 'auto' && (0, _react2.jsx)("source", {
70
- srcSet: srcDark,
71
- media: "(prefers-color-scheme: dark)"
72
- }), (0, _react2.jsx)("img", (0, _extends2.default)({
47
+ }, [src, srcDark, colorMode]);
48
+ return (0, _react2.jsx)("img", (0, _extends2.default)({
73
49
  alt: alt,
74
50
  css: imageStyles,
75
51
  "data-testid": testId,
76
52
  src: src,
77
- ref: imgRef // The spread operator is necessary since the component can accept all the props of an `img` element.
53
+ ref: imgRef
54
+ // The spread operator is necessary since the component can accept all the props of an `img` element.
78
55
  // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
79
-
80
- }, props)));
56
+ }, props));
81
57
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/image",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,13 +1,13 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
-
3
2
  /** @jsx jsx */
4
- import { useEffect, useRef, useState } from 'react';
3
+ import { useEffect, useRef } from 'react';
5
4
  import { css, jsx } from '@emotion/react';
6
5
  import { useThemeObserver } from '@atlaskit/tokens';
7
6
  const imageStyles = css({
8
7
  maxWidth: '100%',
9
8
  height: 'auto'
10
9
  });
10
+
11
11
  /**
12
12
  * __Image__
13
13
  *
@@ -17,7 +17,6 @@ const imageStyles = css({
17
17
  * - [Code](https://atlassian.design/components/image/code)
18
18
  * - [Usage](https://atlassian.design/components/image/usage)
19
19
  */
20
-
21
20
  export default function Image({
22
21
  src,
23
22
  srcDark,
@@ -26,36 +25,26 @@ export default function Image({
26
25
  ...props
27
26
  }) {
28
27
  const imgRef = useRef(null);
29
- const [colorMode, setColorMode] = useState('');
30
- const theme = useThemeObserver();
28
+ const {
29
+ colorMode
30
+ } = useThemeObserver();
31
31
  useEffect(() => {
32
32
  if (imgRef === null || imgRef.current === null) {
33
33
  return;
34
34
  }
35
-
36
- if (srcDark && theme === 'dark') {
35
+ if (srcDark && colorMode === 'dark') {
37
36
  imgRef.current.src = srcDark;
38
37
  } else if (src) {
39
38
  imgRef.current.src = src;
40
39
  }
41
- }, [src, srcDark, theme]);
42
- /**
43
- * TODO: Remove the following once useThemeObserver reports `color-mode`
44
- */
45
-
46
- useEffect(() => {
47
- setColorMode(document.documentElement.getAttribute('data-color-mode') || '');
48
- }, [theme, setColorMode]);
49
- return jsx("picture", null, srcDark && colorMode === 'auto' && jsx("source", {
50
- srcSet: srcDark,
51
- media: "(prefers-color-scheme: dark)"
52
- }), jsx("img", _extends({
40
+ }, [src, srcDark, colorMode]);
41
+ return jsx("img", _extends({
53
42
  alt: alt,
54
43
  css: imageStyles,
55
44
  "data-testid": testId,
56
45
  src: src,
57
- ref: imgRef // The spread operator is necessary since the component can accept all the props of an `img` element.
46
+ ref: imgRef
47
+ // The spread operator is necessary since the component can accept all the props of an `img` element.
58
48
  // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
59
-
60
- }, props)));
49
+ }, props));
61
50
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/image",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "sideEffects": false
5
5
  }
@@ -1,16 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
3
  var _excluded = ["src", "srcDark", "alt", "testId"];
5
-
6
4
  /** @jsx jsx */
7
- import { useEffect, useRef, useState } from 'react';
5
+ import { useEffect, useRef } from 'react';
8
6
  import { css, jsx } from '@emotion/react';
9
7
  import { useThemeObserver } from '@atlaskit/tokens';
10
8
  var imageStyles = css({
11
9
  maxWidth: '100%',
12
10
  height: 'auto'
13
11
  });
12
+
14
13
  /**
15
14
  * __Image__
16
15
  *
@@ -20,50 +19,32 @@ var imageStyles = css({
20
19
  * - [Code](https://atlassian.design/components/image/code)
21
20
  * - [Usage](https://atlassian.design/components/image/usage)
22
21
  */
23
-
24
22
  export default function Image(_ref) {
25
23
  var src = _ref.src,
26
- srcDark = _ref.srcDark,
27
- alt = _ref.alt,
28
- testId = _ref.testId,
29
- props = _objectWithoutProperties(_ref, _excluded);
30
-
24
+ srcDark = _ref.srcDark,
25
+ alt = _ref.alt,
26
+ testId = _ref.testId,
27
+ props = _objectWithoutProperties(_ref, _excluded);
31
28
  var imgRef = useRef(null);
32
-
33
- var _useState = useState(''),
34
- _useState2 = _slicedToArray(_useState, 2),
35
- colorMode = _useState2[0],
36
- setColorMode = _useState2[1];
37
-
38
- var theme = useThemeObserver();
29
+ var _useThemeObserver = useThemeObserver(),
30
+ colorMode = _useThemeObserver.colorMode;
39
31
  useEffect(function () {
40
32
  if (imgRef === null || imgRef.current === null) {
41
33
  return;
42
34
  }
43
-
44
- if (srcDark && theme === 'dark') {
35
+ if (srcDark && colorMode === 'dark') {
45
36
  imgRef.current.src = srcDark;
46
37
  } else if (src) {
47
38
  imgRef.current.src = src;
48
39
  }
49
- }, [src, srcDark, theme]);
50
- /**
51
- * TODO: Remove the following once useThemeObserver reports `color-mode`
52
- */
53
-
54
- useEffect(function () {
55
- setColorMode(document.documentElement.getAttribute('data-color-mode') || '');
56
- }, [theme, setColorMode]);
57
- return jsx("picture", null, srcDark && colorMode === 'auto' && jsx("source", {
58
- srcSet: srcDark,
59
- media: "(prefers-color-scheme: dark)"
60
- }), jsx("img", _extends({
40
+ }, [src, srcDark, colorMode]);
41
+ return jsx("img", _extends({
61
42
  alt: alt,
62
43
  css: imageStyles,
63
44
  "data-testid": testId,
64
45
  src: src,
65
- ref: imgRef // The spread operator is necessary since the component can accept all the props of an `img` element.
46
+ ref: imgRef
47
+ // The spread operator is necessary since the component can accept all the props of an `img` element.
66
48
  // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
67
-
68
- }, props)));
49
+ }, props));
69
50
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/image",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "sideEffects": false
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/image",
3
- "version": "1.0.3",
3
+ "version": "1.1.0",
4
4
  "description": "An image that changes in light or dark themes.",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -31,7 +31,7 @@
31
31
  ".": "./src/index.tsx"
32
32
  },
33
33
  "dependencies": {
34
- "@atlaskit/tokens": "^0.13.0",
34
+ "@atlaskit/tokens": "^1.3.0",
35
35
  "@babel/runtime": "^7.0.0",
36
36
  "@emotion/react": "^11.7.1"
37
37
  },
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "devDependencies": {
42
42
  "@atlaskit/docs": "*",
43
- "@atlaskit/ds-lib": "^2.1.1",
43
+ "@atlaskit/ds-lib": "^2.2.0",
44
44
  "@atlaskit/section-message": "*",
45
45
  "@atlaskit/ssr": "*",
46
46
  "@atlaskit/visual-regression": "*",
@@ -68,8 +68,11 @@
68
68
  "analytics": [
69
69
  "analytics-next"
70
70
  ],
71
+ "design-tokens": [
72
+ "color"
73
+ ],
71
74
  "theming": [
72
- "tokens"
75
+ "react-context"
73
76
  ],
74
77
  "ui-components": [
75
78
  "lite-mode"
@@ -1,23 +0,0 @@
1
- ## API Report File for "@atlaskit/image"
2
-
3
- > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
-
5
- ```ts
6
-
7
- /// <reference types="react" />
8
-
9
- import { jsx } from '@emotion/react';
10
-
11
- // @public
12
- function Image_2({ src, srcDark, alt, testId, ...props }: ImageProps): jsx.JSX.Element;
13
- export default Image_2;
14
-
15
- // @public (undocumented)
16
- interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
17
- srcDark?: string;
18
- testId?: string;
19
- }
20
-
21
- // (No @packageDocumentation comment for this package)
22
-
23
- ```