carbon-react 114.6.1 → 114.7.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.
@@ -52,6 +52,9 @@ I18nProvider.propTypes = {
52
52
  "link": PropTypes.shape({
53
53
  "skipLinkLabel": PropTypes.func.isRequired
54
54
  }),
55
+ "loader": PropTypes.shape({
56
+ "loading": PropTypes.func.isRequired
57
+ }),
55
58
  "locale": PropTypes.func,
56
59
  "message": PropTypes.shape({
57
60
  "closeButtonAriaLabel": PropTypes.func.isRequired
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { MarginProps } from "styled-system";
3
+ import { TagProps } from "../../__internal__/utils/helpers/tags/tags";
3
4
  import { StyledLoaderSquareProps } from "./loader-square.style";
4
- export interface LoaderProps extends StyledLoaderSquareProps, MarginProps {
5
- /** Specify an aria-label for the Loader component */
5
+ export interface LoaderProps extends StyledLoaderSquareProps, MarginProps, TagProps {
6
+ /** Specify a custom accessible name for the Loader component */
6
7
  "aria-label"?: string;
7
8
  }
8
- export declare const Loader: ({ "aria-label": ariaLabel, isInsideButton, isActive, size, ...rest }: LoaderProps) => JSX.Element;
9
+ export declare const Loader: ({ "aria-label": ariaLabel, size, isInsideButton, isActive, ...rest }: LoaderProps) => JSX.Element;
9
10
  export default Loader;
@@ -2,21 +2,26 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
2
2
 
3
3
  import React from "react";
4
4
  import PropTypes from "prop-types";
5
+ import { filterStyledSystemMarginProps } from "../../style/utils";
6
+ import useMediaQuery from "../../hooks/useMediaQuery";
7
+ import useLocale from "../../hooks/__internal__/useLocale";
5
8
  import tagComponent from "../../__internal__/utils/helpers/tags/tags";
6
9
  import StyledLoader from "./loader.style";
7
10
  import StyledLoaderSquare from "./loader-square.style";
8
11
 
9
12
  const Loader = ({
10
- "aria-label": ariaLabel = "loader",
13
+ "aria-label": ariaLabel,
14
+ size = "medium",
11
15
  isInsideButton,
12
16
  isActive = true,
13
- size = "medium",
14
17
  ...rest
15
18
  }) => {
19
+ const l = useLocale();
20
+ const reduceMotion = !useMediaQuery("screen and (prefers-reduced-motion: no-preference)");
16
21
  return /*#__PURE__*/React.createElement(StyledLoader, _extends({
17
- "aria-label": ariaLabel,
22
+ "aria-label": ariaLabel || l.loader.loading(),
18
23
  role: "progressbar"
19
- }, tagComponent("loader", rest), rest), /*#__PURE__*/React.createElement(StyledLoaderSquare, {
24
+ }, tagComponent("loader", rest), filterStyledSystemMarginProps(rest)), reduceMotion ? l.loader.loading() : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledLoaderSquare, {
20
25
  isInsideButton: isInsideButton,
21
26
  isActive: isActive,
22
27
  size: size
@@ -28,11 +33,14 @@ const Loader = ({
28
33
  isInsideButton: isInsideButton,
29
34
  isActive: isActive,
30
35
  size: size
31
- }));
36
+ })));
32
37
  };
33
38
 
34
39
  Loader.propTypes = {
35
40
  "aria-label": PropTypes.string,
41
+ "data-component": PropTypes.string,
42
+ "data-element": PropTypes.string,
43
+ "data-role": PropTypes.string,
36
44
  "isActive": PropTypes.bool,
37
45
  "isInsideButton": PropTypes.bool,
38
46
  "m": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.number, PropTypes.shape({
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { MarginProps } from "styled-system";
3
+ import { TagProps } from "../../__internal__/utils/helpers/tags/tags";
3
4
  import { StyledLoaderBarProps } from "./loader-bar.style";
4
- export interface LoaderBarProps extends StyledLoaderBarProps, MarginProps {
5
+ export interface LoaderBarProps extends StyledLoaderBarProps, MarginProps, TagProps {
5
6
  }
6
7
  export declare const LoaderBar: {
7
8
  ({ size, ...rest }: LoaderBarProps): JSX.Element;
@@ -2,6 +2,9 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
2
2
 
3
3
  import React from "react";
4
4
  import PropTypes from "prop-types";
5
+ import { filterStyledSystemMarginProps } from "../../style/utils";
6
+ import useMediaQuery from "../../hooks/useMediaQuery";
7
+ import useLocale from "../../hooks/__internal__/useLocale";
5
8
  import tagComponent from "../../__internal__/utils/helpers/tags/tags";
6
9
  import StyledLoaderBar, { InnerBar, StyledLoader } from "./loader-bar.style";
7
10
 
@@ -9,7 +12,12 @@ const LoaderBar = ({
9
12
  size = "medium",
10
13
  ...rest
11
14
  }) => {
12
- return /*#__PURE__*/React.createElement(StyledLoader, _extends({}, rest, tagComponent("loader-bar", rest)), /*#__PURE__*/React.createElement(StyledLoaderBar, {
15
+ const l = useLocale();
16
+ const reduceMotion = !useMediaQuery("screen and (prefers-reduced-motion: no-preference)");
17
+ return /*#__PURE__*/React.createElement(StyledLoader, _extends({
18
+ "aria-label": l.loader.loading(),
19
+ role: "progressbar"
20
+ }, tagComponent("loader-bar", rest), filterStyledSystemMarginProps(rest)), reduceMotion ? l.loader.loading() : /*#__PURE__*/React.createElement(StyledLoaderBar, {
13
21
  size: size
14
22
  }, /*#__PURE__*/React.createElement(InnerBar, {
15
23
  size: size
@@ -17,6 +25,9 @@ const LoaderBar = ({
17
25
  };
18
26
 
19
27
  LoaderBar.propTypes = {
28
+ "data-component": PropTypes.string,
29
+ "data-element": PropTypes.string,
30
+ "data-role": PropTypes.string,
20
31
  "m": PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf([null]), PropTypes.number, PropTypes.shape({
21
32
  "__@toStringTag": PropTypes.string.isRequired,
22
33
  "description": PropTypes.string,
@@ -1,6 +1,6 @@
1
1
  import { MarginProps } from "styled-system";
2
2
  export interface StyledLoaderBarProps {
3
- /** Size of the loaderBar. */
3
+ /** Size of the LoaderBar. */
4
4
  size?: "small" | "medium" | "large";
5
5
  }
6
6
  declare const StyledLoader: import("styled-components").StyledComponent<"div", any, StyledLoaderBarProps & MarginProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>>, never>;
@@ -19,9 +19,6 @@ const INNER_BAR_LENGTH = "128px";
19
19
  const StyledLoader = styled.div`
20
20
  ${margin}
21
21
  text-align: center;
22
- white-space: nowrap;
23
- line-height: 0;
24
- font-size: 0;
25
22
  `;
26
23
  const innerBarAnimation = keyframes`
27
24
  0% {
@@ -20,6 +20,7 @@ const StyledSwitchSlider = styled.span`
20
20
  text-transform: uppercase;
21
21
  top: 0;
22
22
  width: 60px;
23
+ min-width: fit-content;
23
24
  z-index: 2;
24
25
  border-radius: 90px;
25
26
  border-style: solid;
@@ -1,6 +1,6 @@
1
1
  import React, { useState, useCallback } from "react";
2
2
  import PropTypes from "prop-types";
3
- import SwitchStyle from "./switch.style";
3
+ import StyledSwitch from "./switch.style";
4
4
  import CheckableInput from "../../__internal__/checkable-input";
5
5
  import SwitchSlider from "./__internal__/switch-slider.component";
6
6
  import useIsAboveBreakpoint from "../../hooks/__internal__/useIsAboveBreakpoint";
@@ -103,7 +103,7 @@ const Switch = ({
103
103
  return /*#__PURE__*/React.createElement(TooltipProvider, {
104
104
  helpAriaLabel: helpAriaLabel,
105
105
  tooltipPosition: tooltipPosition
106
- }, /*#__PURE__*/React.createElement(SwitchStyle, switchStyleProps, /*#__PURE__*/React.createElement(CheckableInput, inputProps, /*#__PURE__*/React.createElement(SwitchSlider, switchSliderProps))));
106
+ }, /*#__PURE__*/React.createElement(StyledSwitch, switchStyleProps, /*#__PURE__*/React.createElement(CheckableInput, inputProps, /*#__PURE__*/React.createElement(SwitchSlider, switchSliderProps))));
107
107
  };
108
108
 
109
109
  Switch.propTypes = {
@@ -26,6 +26,7 @@ const StyledSwitch = styled.div`
26
26
  box-sizing: border-box;
27
27
  height: 24px;
28
28
  width: 60px;
29
+ min-width: fit-content;
29
30
  flex-basis: 100%;
30
31
  margin-left: 0;
31
32
  }
@@ -125,6 +126,7 @@ const StyledSwitch = styled.div`
125
126
  ${StyledCheckableInput}, ${HiddenCheckableInputStyle}, ${StyledSwitchSlider} {
126
127
  height: 40px;
127
128
  width: 78px;
129
+ min-width: fit-content;
128
130
  }
129
131
 
130
132
  ${labelInline && !fieldHelpInline && reverse && css`
@@ -60,6 +60,12 @@ const enGB = {
60
60
  heading: {
61
61
  backLinkAriaLabel: () => "Back"
62
62
  },
63
+ link: {
64
+ skipLinkLabel: () => "Skip to main content"
65
+ },
66
+ loader: {
67
+ loading: () => "Loading"
68
+ },
63
69
  message: {
64
70
  closeButtonAriaLabel: () => "Close"
65
71
  },
@@ -94,9 +100,6 @@ const enGB = {
94
100
  placeholder: () => "Please Select...",
95
101
  noResultsForTerm: term => `No results for "${term}"`
96
102
  },
97
- link: {
98
- skipLinkLabel: () => "Skip to main content"
99
- },
100
103
  sidebar: {
101
104
  ariaLabels: {
102
105
  close: () => "Close"
@@ -36,6 +36,12 @@ interface Locale {
36
36
  heading: {
37
37
  backLinkAriaLabel: () => string;
38
38
  };
39
+ link: {
40
+ skipLinkLabel: () => string;
41
+ };
42
+ loader: {
43
+ loading: () => string;
44
+ };
39
45
  message: {
40
46
  closeButtonAriaLabel: () => string;
41
47
  };
@@ -67,9 +73,6 @@ interface Locale {
67
73
  placeholder: () => string;
68
74
  noResultsForTerm: (term: string) => string;
69
75
  };
70
- link: {
71
- skipLinkLabel: () => string;
72
- };
73
76
  sidebar: {
74
77
  ariaLabels: {
75
78
  close: () => string;
@@ -58,6 +58,12 @@ const plPL = {
58
58
  heading: {
59
59
  backLinkAriaLabel: () => "Wstecz"
60
60
  },
61
+ link: {
62
+ skipLinkLabel: () => "Przejdź do treści"
63
+ },
64
+ loader: {
65
+ loading: () => "Ładowanie"
66
+ },
61
67
  message: {
62
68
  closeButtonAriaLabel: () => "Zamknij"
63
69
  },
@@ -92,9 +98,6 @@ const plPL = {
92
98
  placeholder: () => "Proszę wybierz...",
93
99
  noResultsForTerm: term => `Brak wyników dla "${term}"`
94
100
  },
95
- link: {
96
- skipLinkLabel: () => "Przejdź do treści"
97
- },
98
101
  sidebar: {
99
102
  ariaLabels: {
100
103
  close: () => "Zamknij"
@@ -66,6 +66,9 @@ I18nProvider.propTypes = {
66
66
  "link": _propTypes.default.shape({
67
67
  "skipLinkLabel": _propTypes.default.func.isRequired
68
68
  }),
69
+ "loader": _propTypes.default.shape({
70
+ "loading": _propTypes.default.func.isRequired
71
+ }),
69
72
  "locale": _propTypes.default.func,
70
73
  "message": _propTypes.default.shape({
71
74
  "closeButtonAriaLabel": _propTypes.default.func.isRequired
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import { MarginProps } from "styled-system";
3
+ import { TagProps } from "../../__internal__/utils/helpers/tags/tags";
3
4
  import { StyledLoaderSquareProps } from "./loader-square.style";
4
- export interface LoaderProps extends StyledLoaderSquareProps, MarginProps {
5
- /** Specify an aria-label for the Loader component */
5
+ export interface LoaderProps extends StyledLoaderSquareProps, MarginProps, TagProps {
6
+ /** Specify a custom accessible name for the Loader component */
6
7
  "aria-label"?: string;
7
8
  }
8
- export declare const Loader: ({ "aria-label": ariaLabel, isInsideButton, isActive, size, ...rest }: LoaderProps) => JSX.Element;
9
+ export declare const Loader: ({ "aria-label": ariaLabel, size, isInsideButton, isActive, ...rest }: LoaderProps) => JSX.Element;
9
10
  export default Loader;
@@ -9,6 +9,12 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
+ var _utils = require("../../style/utils");
13
+
14
+ var _useMediaQuery = _interopRequireDefault(require("../../hooks/useMediaQuery"));
15
+
16
+ var _useLocale = _interopRequireDefault(require("../../hooks/__internal__/useLocale"));
17
+
12
18
  var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
13
19
 
14
20
  var _loader = _interopRequireDefault(require("./loader.style"));
@@ -20,16 +26,18 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
20
26
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
27
 
22
28
  const Loader = ({
23
- "aria-label": ariaLabel = "loader",
29
+ "aria-label": ariaLabel,
30
+ size = "medium",
24
31
  isInsideButton,
25
32
  isActive = true,
26
- size = "medium",
27
33
  ...rest
28
34
  }) => {
35
+ const l = (0, _useLocale.default)();
36
+ const reduceMotion = !(0, _useMediaQuery.default)("screen and (prefers-reduced-motion: no-preference)");
29
37
  return /*#__PURE__*/_react.default.createElement(_loader.default, _extends({
30
- "aria-label": ariaLabel,
38
+ "aria-label": ariaLabel || l.loader.loading(),
31
39
  role: "progressbar"
32
- }, (0, _tags.default)("loader", rest), rest), /*#__PURE__*/_react.default.createElement(_loaderSquare.default, {
40
+ }, (0, _tags.default)("loader", rest), (0, _utils.filterStyledSystemMarginProps)(rest)), reduceMotion ? l.loader.loading() : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loaderSquare.default, {
33
41
  isInsideButton: isInsideButton,
34
42
  isActive: isActive,
35
43
  size: size
@@ -41,12 +49,15 @@ const Loader = ({
41
49
  isInsideButton: isInsideButton,
42
50
  isActive: isActive,
43
51
  size: size
44
- }));
52
+ })));
45
53
  };
46
54
 
47
55
  exports.Loader = Loader;
48
56
  Loader.propTypes = {
49
57
  "aria-label": _propTypes.default.string,
58
+ "data-component": _propTypes.default.string,
59
+ "data-element": _propTypes.default.string,
60
+ "data-role": _propTypes.default.string,
50
61
  "isActive": _propTypes.default.bool,
51
62
  "isInsideButton": _propTypes.default.bool,
52
63
  "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { MarginProps } from "styled-system";
3
+ import { TagProps } from "../../__internal__/utils/helpers/tags/tags";
3
4
  import { StyledLoaderBarProps } from "./loader-bar.style";
4
- export interface LoaderBarProps extends StyledLoaderBarProps, MarginProps {
5
+ export interface LoaderBarProps extends StyledLoaderBarProps, MarginProps, TagProps {
5
6
  }
6
7
  export declare const LoaderBar: {
7
8
  ({ size, ...rest }: LoaderBarProps): JSX.Element;
@@ -9,6 +9,12 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
+ var _utils = require("../../style/utils");
13
+
14
+ var _useMediaQuery = _interopRequireDefault(require("../../hooks/useMediaQuery"));
15
+
16
+ var _useLocale = _interopRequireDefault(require("../../hooks/__internal__/useLocale"));
17
+
12
18
  var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
13
19
 
14
20
  var _loaderBar = _interopRequireWildcard(require("./loader-bar.style"));
@@ -25,7 +31,12 @@ const LoaderBar = ({
25
31
  size = "medium",
26
32
  ...rest
27
33
  }) => {
28
- return /*#__PURE__*/_react.default.createElement(_loaderBar.StyledLoader, _extends({}, rest, (0, _tags.default)("loader-bar", rest)), /*#__PURE__*/_react.default.createElement(_loaderBar.default, {
34
+ const l = (0, _useLocale.default)();
35
+ const reduceMotion = !(0, _useMediaQuery.default)("screen and (prefers-reduced-motion: no-preference)");
36
+ return /*#__PURE__*/_react.default.createElement(_loaderBar.StyledLoader, _extends({
37
+ "aria-label": l.loader.loading(),
38
+ role: "progressbar"
39
+ }, (0, _tags.default)("loader-bar", rest), (0, _utils.filterStyledSystemMarginProps)(rest)), reduceMotion ? l.loader.loading() : /*#__PURE__*/_react.default.createElement(_loaderBar.default, {
29
40
  size: size
30
41
  }, /*#__PURE__*/_react.default.createElement(_loaderBar.InnerBar, {
31
42
  size: size
@@ -34,6 +45,9 @@ const LoaderBar = ({
34
45
 
35
46
  exports.LoaderBar = LoaderBar;
36
47
  LoaderBar.propTypes = {
48
+ "data-component": _propTypes.default.string,
49
+ "data-element": _propTypes.default.string,
50
+ "data-role": _propTypes.default.string,
37
51
  "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
38
52
  "__@toStringTag": _propTypes.default.string.isRequired,
39
53
  "description": _propTypes.default.string,
@@ -1,6 +1,6 @@
1
1
  import { MarginProps } from "styled-system";
2
2
  export interface StyledLoaderBarProps {
3
- /** Size of the loaderBar. */
3
+ /** Size of the LoaderBar. */
4
4
  size?: "small" | "medium" | "large";
5
5
  }
6
6
  declare const StyledLoader: import("styled-components").StyledComponent<"div", any, StyledLoaderBarProps & MarginProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>>, never>;
@@ -34,9 +34,6 @@ const INNER_BAR_LENGTH = "128px";
34
34
  const StyledLoader = _styledComponents.default.div`
35
35
  ${_styledSystem.margin}
36
36
  text-align: center;
37
- white-space: nowrap;
38
- line-height: 0;
39
- font-size: 0;
40
37
  `;
41
38
  exports.StyledLoader = StyledLoader;
42
39
  const innerBarAnimation = (0, _styledComponents.keyframes)`
@@ -36,6 +36,7 @@ const StyledSwitchSlider = _styledComponents.default.span`
36
36
  text-transform: uppercase;
37
37
  top: 0;
38
38
  width: 60px;
39
+ min-width: fit-content;
39
40
  z-index: 2;
40
41
  border-radius: 90px;
41
42
  border-style: solid;
@@ -49,6 +49,7 @@ const StyledSwitch = _styledComponents.default.div`
49
49
  box-sizing: border-box;
50
50
  height: 24px;
51
51
  width: 60px;
52
+ min-width: fit-content;
52
53
  flex-basis: 100%;
53
54
  margin-left: 0;
54
55
  }
@@ -148,6 +149,7 @@ const StyledSwitch = _styledComponents.default.div`
148
149
  ${_checkableInput.StyledCheckableInput}, ${_hiddenCheckableInput.default}, ${_switchSlider.default} {
149
150
  height: 40px;
150
151
  width: 78px;
152
+ min-width: fit-content;
151
153
  }
152
154
 
153
155
  ${labelInline && !fieldHelpInline && reverse && (0, _styledComponents.css)`
@@ -67,6 +67,12 @@ const enGB = {
67
67
  heading: {
68
68
  backLinkAriaLabel: () => "Back"
69
69
  },
70
+ link: {
71
+ skipLinkLabel: () => "Skip to main content"
72
+ },
73
+ loader: {
74
+ loading: () => "Loading"
75
+ },
70
76
  message: {
71
77
  closeButtonAriaLabel: () => "Close"
72
78
  },
@@ -101,9 +107,6 @@ const enGB = {
101
107
  placeholder: () => "Please Select...",
102
108
  noResultsForTerm: term => `No results for "${term}"`
103
109
  },
104
- link: {
105
- skipLinkLabel: () => "Skip to main content"
106
- },
107
110
  sidebar: {
108
111
  ariaLabels: {
109
112
  close: () => "Close"
@@ -36,6 +36,12 @@ interface Locale {
36
36
  heading: {
37
37
  backLinkAriaLabel: () => string;
38
38
  };
39
+ link: {
40
+ skipLinkLabel: () => string;
41
+ };
42
+ loader: {
43
+ loading: () => string;
44
+ };
39
45
  message: {
40
46
  closeButtonAriaLabel: () => string;
41
47
  };
@@ -67,9 +73,6 @@ interface Locale {
67
73
  placeholder: () => string;
68
74
  noResultsForTerm: (term: string) => string;
69
75
  };
70
- link: {
71
- skipLinkLabel: () => string;
72
- };
73
76
  sidebar: {
74
77
  ariaLabels: {
75
78
  close: () => string;
@@ -65,6 +65,12 @@ const plPL = {
65
65
  heading: {
66
66
  backLinkAriaLabel: () => "Wstecz"
67
67
  },
68
+ link: {
69
+ skipLinkLabel: () => "Przejdź do treści"
70
+ },
71
+ loader: {
72
+ loading: () => "Ładowanie"
73
+ },
68
74
  message: {
69
75
  closeButtonAriaLabel: () => "Zamknij"
70
76
  },
@@ -99,9 +105,6 @@ const plPL = {
99
105
  placeholder: () => "Proszę wybierz...",
100
106
  noResultsForTerm: term => `Brak wyników dla "${term}"`
101
107
  },
102
- link: {
103
- skipLinkLabel: () => "Przejdź do treści"
104
- },
105
108
  sidebar: {
106
109
  ariaLabels: {
107
110
  close: () => "Zamknij"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "114.6.1",
3
+ "version": "114.7.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",