@aws-amplify/ui-react 6.4.0 → 6.5.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.
@@ -23,10 +23,7 @@ function _interopNamespace(e) {
23
23
 
24
24
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
25
25
 
26
- const ThemeStylePrimitive = ({ theme, nonce, ...rest }, ref) => {
27
- if (!theme)
28
- return null;
29
- const { name, cssText } = theme;
26
+ const StylePrimitive = ({ cssText, ...rest }, ref) => {
30
27
  /*
31
28
  Only inject theme CSS variables if given a theme.
32
29
  The CSS file users import already has the default theme variables in it.
@@ -72,14 +69,25 @@ const ThemeStylePrimitive = ({ theme, nonce, ...rest }, ref) => {
72
69
  Therefore, by only rendering CSS text which does not include a closing '</style>' tag,
73
70
  we ensure that the browser will correctly interpret all the text as CSS.
74
71
  */
75
- if (/<\/style/i.test(cssText)) {
72
+ if (cssText === undefined || /<\/style/i.test(cssText)) {
76
73
  return null;
77
74
  }
78
- else {
79
- return (React__namespace.createElement("style", { ...rest, ref: ref, id: `amplify-theme-${name}`,
80
- // eslint-disable-next-line react/no-danger
81
- dangerouslySetInnerHTML: { __html: cssText }, nonce: nonce }));
82
- }
75
+ return (React__namespace.createElement("style", { ...rest, ref: ref,
76
+ // eslint-disable-next-line react/no-danger
77
+ dangerouslySetInnerHTML: { __html: cssText } }));
78
+ };
79
+ /**
80
+ * @experimental
81
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/theme)
82
+ */
83
+ const Style = primitiveWithForwardRef.primitiveWithForwardRef(StylePrimitive);
84
+ Style.displayName = 'Style';
85
+
86
+ const ThemeStylePrimitive = ({ theme, nonce, ...rest }, ref) => {
87
+ if (!theme)
88
+ return null;
89
+ const { name, cssText } = theme;
90
+ return (React__namespace.createElement(Style, { ...rest, ref: ref, cssText: cssText, nonce: nonce, id: `amplify-theme-${name}` }));
83
91
  };
84
92
  /**
85
93
  * @experimental
@@ -88,4 +96,5 @@ const ThemeStylePrimitive = ({ theme, nonce, ...rest }, ref) => {
88
96
  const ThemeStyle = primitiveWithForwardRef.primitiveWithForwardRef(ThemeStylePrimitive);
89
97
  ThemeStyle.displayName = 'ThemeStyle';
90
98
 
99
+ exports.Style = Style;
91
100
  exports.ThemeStyle = ThemeStyle;
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { createComponentCSS } from '@aws-amplify/ui';
3
+ import { primitiveWithForwardRef } from '../../primitives/utils/primitiveWithForwardRef.mjs';
4
+ import { Style } from './Style.mjs';
5
+
6
+ const ComponentStylePrimitive = ({ theme, componentThemes = [], ...rest }, ref) => {
7
+ if (!theme || !componentThemes.length) {
8
+ return null;
9
+ }
10
+ const cssText = createComponentCSS({
11
+ theme,
12
+ components: componentThemes,
13
+ });
14
+ return React.createElement(Style, { ...rest, ref: ref, cssText: cssText });
15
+ };
16
+ /**
17
+ * @experimental
18
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/theme)
19
+ */
20
+ const ComponentStyle = primitiveWithForwardRef(ComponentStylePrimitive);
21
+ ComponentStyle.displayName = 'ComponentStyle';
22
+
23
+ export { ComponentStyle };
@@ -0,0 +1,64 @@
1
+ import * as React from 'react';
2
+ import { primitiveWithForwardRef } from '../../primitives/utils/primitiveWithForwardRef.mjs';
3
+
4
+ const StylePrimitive = ({ cssText, ...rest }, ref) => {
5
+ /*
6
+ Only inject theme CSS variables if given a theme.
7
+ The CSS file users import already has the default theme variables in it.
8
+ This will allow users to use the provider and theme with CSS variables
9
+ without having to worry about specificity issues because this stylesheet
10
+ will likely come after a user's defined CSS.
11
+
12
+ Q: Why are we using dangerouslySetInnerHTML?
13
+ A: We need to directly inject the theme's CSS string into the <style> tag without typical HTML escaping.
14
+ For example, JSX would escape characters meaningful in CSS such as ', ", < and >, thus breaking the CSS.
15
+ Q: Why not use a sanitization library such as DOMPurify?
16
+ A: For our use case, we specifically want to purify CSS text, *not* HTML.
17
+ DOMPurify, as well as any other HTML sanitization library, would escape/encode meaningful CSS characters
18
+ and break our CSS in the same way that JSX would.
19
+
20
+ Q: Are there any security risks in this particular use case?
21
+ A: Anything set inside of a <style> tag is always interpreted as CSS text, *not* HTML.
22
+ Reference: “Restrictions on the content of raw text elements” https://html.spec.whatwg.org/dev/syntax.html#cdata-rcdata-restrictions
23
+ And in our case, we are using dangerouslySetInnerHTML to set CSS text inside of a <style> tag.
24
+
25
+ Thus, it really comes down to the question: Could a malicious user escape from the context of the <style> tag?
26
+ For example, when inserting HTML into the DOM, could someone prematurely close the </style> tag and add a <script> tag?
27
+ e.g., </style><script>alert('hello')</script>
28
+ The answer depends on whether the code is rendered on the client or server side.
29
+
30
+ Client side
31
+ - To prevent XSS inside of the <style> tag, we need to make sure it's not closed prematurely.
32
+ - This is prevented by React because React creates a style DOM node (e.g., React.createElement(‘style’, ...)), and directly sets innerHTML as a string.
33
+ - Even if the string contains a closing </style> tag, it will still be interpreted as CSS text by the browser.
34
+ - Therefore, there is not an XSS vulnerability on the client side.
35
+
36
+ Server side
37
+ - When React code is rendered on the server side (e.g., NextJS), the code is sent to the browser as HTML text.
38
+ - Therefore, it *IS* possible to insert a closing </style> tag and escape the CSS context, which opens an XSS vulnerability.
39
+
40
+ Q: How are we mitigating the potential attack vector?
41
+ A: To fix this potential attack vector on the server side, we need to filter out any closing </style> tags,
42
+ as this the only way to escape from the context of the browser interpreting the text as CSS.
43
+ We also need to catch cases where there is any kind of whitespace character </style[HERE]>, such as tabs, carriage returns, etc:
44
+ </style
45
+
46
+ >
47
+ Therefore, by only rendering CSS text which does not include a closing '</style>' tag,
48
+ we ensure that the browser will correctly interpret all the text as CSS.
49
+ */
50
+ if (cssText === undefined || /<\/style/i.test(cssText)) {
51
+ return null;
52
+ }
53
+ return (React.createElement("style", { ...rest, ref: ref,
54
+ // eslint-disable-next-line react/no-danger
55
+ dangerouslySetInnerHTML: { __html: cssText } }));
56
+ };
57
+ /**
58
+ * @experimental
59
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/theme)
60
+ */
61
+ const Style = primitiveWithForwardRef(StylePrimitive);
62
+ Style.displayName = 'Style';
63
+
64
+ export { Style };
@@ -1,63 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { primitiveWithForwardRef } from '../../primitives/utils/primitiveWithForwardRef.mjs';
3
+ import { Style } from './Style.mjs';
3
4
 
4
5
  const ThemeStylePrimitive = ({ theme, nonce, ...rest }, ref) => {
5
6
  if (!theme)
6
7
  return null;
7
8
  const { name, cssText } = theme;
8
- /*
9
- Only inject theme CSS variables if given a theme.
10
- The CSS file users import already has the default theme variables in it.
11
- This will allow users to use the provider and theme with CSS variables
12
- without having to worry about specificity issues because this stylesheet
13
- will likely come after a user's defined CSS.
14
-
15
- Q: Why are we using dangerouslySetInnerHTML?
16
- A: We need to directly inject the theme's CSS string into the <style> tag without typical HTML escaping.
17
- For example, JSX would escape characters meaningful in CSS such as ', ", < and >, thus breaking the CSS.
18
- Q: Why not use a sanitization library such as DOMPurify?
19
- A: For our use case, we specifically want to purify CSS text, *not* HTML.
20
- DOMPurify, as well as any other HTML sanitization library, would escape/encode meaningful CSS characters
21
- and break our CSS in the same way that JSX would.
22
-
23
- Q: Are there any security risks in this particular use case?
24
- A: Anything set inside of a <style> tag is always interpreted as CSS text, *not* HTML.
25
- Reference: “Restrictions on the content of raw text elements” https://html.spec.whatwg.org/dev/syntax.html#cdata-rcdata-restrictions
26
- And in our case, we are using dangerouslySetInnerHTML to set CSS text inside of a <style> tag.
27
-
28
- Thus, it really comes down to the question: Could a malicious user escape from the context of the <style> tag?
29
- For example, when inserting HTML into the DOM, could someone prematurely close the </style> tag and add a <script> tag?
30
- e.g., </style><script>alert('hello')</script>
31
- The answer depends on whether the code is rendered on the client or server side.
32
-
33
- Client side
34
- - To prevent XSS inside of the <style> tag, we need to make sure it's not closed prematurely.
35
- - This is prevented by React because React creates a style DOM node (e.g., React.createElement(‘style’, ...)), and directly sets innerHTML as a string.
36
- - Even if the string contains a closing </style> tag, it will still be interpreted as CSS text by the browser.
37
- - Therefore, there is not an XSS vulnerability on the client side.
38
-
39
- Server side
40
- - When React code is rendered on the server side (e.g., NextJS), the code is sent to the browser as HTML text.
41
- - Therefore, it *IS* possible to insert a closing </style> tag and escape the CSS context, which opens an XSS vulnerability.
42
-
43
- Q: How are we mitigating the potential attack vector?
44
- A: To fix this potential attack vector on the server side, we need to filter out any closing </style> tags,
45
- as this the only way to escape from the context of the browser interpreting the text as CSS.
46
- We also need to catch cases where there is any kind of whitespace character </style[HERE]>, such as tabs, carriage returns, etc:
47
- </style
48
-
49
- >
50
- Therefore, by only rendering CSS text which does not include a closing '</style>' tag,
51
- we ensure that the browser will correctly interpret all the text as CSS.
52
- */
53
- if (/<\/style/i.test(cssText)) {
54
- return null;
55
- }
56
- else {
57
- return (React.createElement("style", { ...rest, ref: ref, id: `amplify-theme-${name}`,
58
- // eslint-disable-next-line react/no-danger
59
- dangerouslySetInnerHTML: { __html: cssText }, nonce: nonce }));
60
- }
9
+ return (React.createElement(Style, { ...rest, ref: ref, cssText: cssText, nonce: nonce, id: `amplify-theme-${name}` }));
61
10
  };
62
11
  /**
63
12
  * @experimental
@@ -1,2 +1,3 @@
1
1
  export { ThemeStyle } from './components/ThemeProvider/ThemeStyle.mjs';
2
+ export { ComponentStyle } from './components/ThemeProvider/ComponentStyle.mjs';
2
3
  export { createComponentClasses, createTheme, defaultDarkModeOverride, defaultTheme, defineComponentTheme } from '@aws-amplify/ui';
@@ -1,3 +1,3 @@
1
- const VERSION = '6.4.0';
1
+ const VERSION = '6.5.0';
2
2
 
3
3
  export { VERSION };
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ var RadixSlider = require('@radix-ui/react-slider');
15
15
  var QRCode = require('qrcode');
16
16
  var utils = require('aws-amplify/utils');
17
17
  var RadixDirection = require('@radix-ui/react-direction');
18
- var ThemeStyle = require('./ThemeStyle-b2dce96a.js');
18
+ var ThemeStyle = require('./ThemeStyle-1fee4302.js');
19
19
  require('@aws-amplify/core');
20
20
  require('aws-amplify/auth');
21
21
 
@@ -2523,7 +2523,7 @@ const defaultDeleteUserDisplayText = {
2523
2523
  warningText: 'Deleting your account is not reversible. You will lose access to your account and all data associated with it.',
2524
2524
  };
2525
2525
 
2526
- const VERSION = '6.4.0';
2526
+ const VERSION = '6.5.0';
2527
2527
 
2528
2528
  const logger$2 = ui.getLogger('AccountSettings');
2529
2529
  const getIsDisabled = (formValues, validationError) => {
package/dist/server.js CHANGED
@@ -2,31 +2,67 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ThemeStyle = require('./ThemeStyle-b2dce96a.js');
5
+ var ThemeStyle = require('./ThemeStyle-1fee4302.js');
6
+ var React = require('react');
6
7
  var ui = require('@aws-amplify/ui');
7
- require('react');
8
- require('./primitiveWithForwardRef-7e929242.js');
8
+ var primitiveWithForwardRef = require('./primitiveWithForwardRef-7e929242.js');
9
9
 
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n["default"] = e;
25
+ return Object.freeze(n);
26
+ }
10
27
 
28
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
+
30
+ const ComponentStylePrimitive = ({ theme, componentThemes = [], ...rest }, ref) => {
31
+ if (!theme || !componentThemes.length) {
32
+ return null;
33
+ }
34
+ const cssText = ui.createComponentCSS({
35
+ theme,
36
+ components: componentThemes,
37
+ });
38
+ return React__namespace.createElement(ThemeStyle.Style, { ...rest, ref: ref, cssText: cssText });
39
+ };
40
+ /**
41
+ * @experimental
42
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/theme)
43
+ */
44
+ const ComponentStyle = primitiveWithForwardRef.primitiveWithForwardRef(ComponentStylePrimitive);
45
+ ComponentStyle.displayName = 'ComponentStyle';
11
46
 
12
47
  exports.ThemeStyle = ThemeStyle.ThemeStyle;
13
48
  Object.defineProperty(exports, 'createComponentClasses', {
14
- enumerable: true,
15
- get: function () { return ui.createComponentClasses; }
49
+ enumerable: true,
50
+ get: function () { return ui.createComponentClasses; }
16
51
  });
17
52
  Object.defineProperty(exports, 'createTheme', {
18
- enumerable: true,
19
- get: function () { return ui.createTheme; }
53
+ enumerable: true,
54
+ get: function () { return ui.createTheme; }
20
55
  });
21
56
  Object.defineProperty(exports, 'defaultDarkModeOverride', {
22
- enumerable: true,
23
- get: function () { return ui.defaultDarkModeOverride; }
57
+ enumerable: true,
58
+ get: function () { return ui.defaultDarkModeOverride; }
24
59
  });
25
60
  Object.defineProperty(exports, 'defaultTheme', {
26
- enumerable: true,
27
- get: function () { return ui.defaultTheme; }
61
+ enumerable: true,
62
+ get: function () { return ui.defaultTheme; }
28
63
  });
29
64
  Object.defineProperty(exports, 'defineComponentTheme', {
30
- enumerable: true,
31
- get: function () { return ui.defineComponentTheme; }
65
+ enumerable: true,
66
+ get: function () { return ui.defineComponentTheme; }
32
67
  });
68
+ exports.ComponentStyle = ComponentStyle;
@@ -27,12 +27,14 @@
27
27
  font-weight: var(--amplify-components-breadcrumbs-link-font-weight);
28
28
  padding-inline: var(--amplify-components-breadcrumbs-link-padding-inline);
29
29
  padding-block: var(--amplify-components-breadcrumbs-link-padding-block);
30
- text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
30
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
31
+ text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
31
32
  }
32
33
 
33
34
  .amplify-breadcrumbs__link--current {
34
35
  color: var(--amplify-components-breadcrumbs-link-current-color);
35
36
  font-size: var(--amplify-components-breadcrumbs-link-current-font-size);
36
37
  font-weight: var(--amplify-components-breadcrumbs-link-current-font-weight);
37
- text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
38
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
39
+ text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
38
40
  }
@@ -28,13 +28,15 @@
28
28
  font-weight: var(--amplify-components-breadcrumbs-link-font-weight);
29
29
  padding-inline: var(--amplify-components-breadcrumbs-link-padding-inline);
30
30
  padding-block: var(--amplify-components-breadcrumbs-link-padding-block);
31
- text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
31
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
32
+ text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
32
33
  }
33
34
 
34
35
  .amplify-breadcrumbs__link--current {
35
36
  color: var(--amplify-components-breadcrumbs-link-current-color);
36
37
  font-size: var(--amplify-components-breadcrumbs-link-current-font-size);
37
38
  font-weight: var(--amplify-components-breadcrumbs-link-current-font-weight);
38
- text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
39
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
40
+ text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
39
41
  }
40
42
  }
@@ -34,8 +34,9 @@
34
34
  padding-inline-start: var(--amplify-components-button-padding-inline-start);
35
35
  padding-inline-end: var(--amplify-components-button-padding-inline-end);
36
36
  transition: all var(--amplify-components-button-transition-duration);
37
- -moz-user-select: none;
38
- user-select: none;
37
+ -webkit-user-select: none;
38
+ -moz-user-select: none;
39
+ user-select: none;
39
40
  --amplify-internal-button-disabled-color: var(
40
41
  --amplify-components-button-disabled-color
41
42
  );
@@ -1056,50 +1057,58 @@
1056
1057
  background-color: var(--amplify-internal-button-disabled-background-color);
1057
1058
  border-color: var(--amplify-internal-button-disabled-border-color);
1058
1059
  color: var(--amplify-internal-button-disabled-color);
1059
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1060
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1061
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1060
1062
  cursor: not-allowed;
1061
1063
  }
1062
1064
  .amplify-button--disabled:hover {
1063
1065
  background-color: var(--amplify-internal-button-disabled-background-color);
1064
1066
  border-color: var(--amplify-internal-button-disabled-border-color);
1065
1067
  color: var(--amplify-internal-button-disabled-color);
1066
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1068
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1069
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1067
1070
  }
1068
1071
  .amplify-button--disabled :focus {
1069
1072
  background-color: var(--amplify-internal-button-disabled-background-color);
1070
1073
  border-color: var(--amplify-internal-button-disabled-border-color);
1071
1074
  color: var(--amplify-internal-button-disabled-color);
1072
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1075
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1076
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1073
1077
  }
1074
1078
  .amplify-button--disabled:active {
1075
1079
  background-color: var(--amplify-internal-button-disabled-background-color);
1076
1080
  border-color: var(--amplify-internal-button-disabled-border-color);
1077
1081
  color: var(--amplify-internal-button-disabled-color);
1078
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1082
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1083
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1079
1084
  }
1080
1085
  .amplify-button--loading {
1081
1086
  background-color: var(--amplify-internal-button-loading-background-color);
1082
1087
  border-color: var(--amplify-internal-button-loading-border-color);
1083
1088
  color: var(--amplify-components-button-loading-color);
1084
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1089
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1090
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1085
1091
  }
1086
1092
  .amplify-button--loading:hover {
1087
1093
  background-color: var(--amplify-internal-button-loading-background-color);
1088
1094
  border-color: var(--amplify-internal-button-loading-border-color);
1089
1095
  color: var(--amplify-components-button-loading-color);
1090
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1096
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1097
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1091
1098
  }
1092
1099
  .amplify-button--loading:focus {
1093
1100
  background-color: var(--amplify-internal-button-loading-background-color);
1094
1101
  border-color: var(--amplify-internal-button-loading-border-color);
1095
1102
  color: var(--amplify-components-button-loading-color);
1096
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1103
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1104
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1097
1105
  }
1098
1106
  .amplify-button--loading:active {
1099
1107
  background-color: var(--amplify-internal-button-loading-background-color);
1100
1108
  border-color: var(--amplify-internal-button-loading-border-color);
1101
1109
  color: var(--amplify-components-button-loading-color);
1102
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1110
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1111
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1103
1112
  }
1104
1113
  .amplify-button__loader-wrapper {
1105
1114
  align-items: var(--amplify-components-button-loader-wrapper-align-items);
@@ -35,8 +35,9 @@
35
35
  padding-inline-start: var(--amplify-components-button-padding-inline-start);
36
36
  padding-inline-end: var(--amplify-components-button-padding-inline-end);
37
37
  transition: all var(--amplify-components-button-transition-duration);
38
- -moz-user-select: none;
39
- user-select: none;
38
+ -webkit-user-select: none;
39
+ -moz-user-select: none;
40
+ user-select: none;
40
41
  --amplify-internal-button-disabled-color: var(
41
42
  --amplify-components-button-disabled-color
42
43
  );
@@ -1057,50 +1058,58 @@
1057
1058
  background-color: var(--amplify-internal-button-disabled-background-color);
1058
1059
  border-color: var(--amplify-internal-button-disabled-border-color);
1059
1060
  color: var(--amplify-internal-button-disabled-color);
1060
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1061
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1062
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1061
1063
  cursor: not-allowed;
1062
1064
  }
1063
1065
  .amplify-button--disabled:hover {
1064
1066
  background-color: var(--amplify-internal-button-disabled-background-color);
1065
1067
  border-color: var(--amplify-internal-button-disabled-border-color);
1066
1068
  color: var(--amplify-internal-button-disabled-color);
1067
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1069
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1070
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1068
1071
  }
1069
1072
  .amplify-button--disabled :focus {
1070
1073
  background-color: var(--amplify-internal-button-disabled-background-color);
1071
1074
  border-color: var(--amplify-internal-button-disabled-border-color);
1072
1075
  color: var(--amplify-internal-button-disabled-color);
1073
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1076
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1077
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1074
1078
  }
1075
1079
  .amplify-button--disabled:active {
1076
1080
  background-color: var(--amplify-internal-button-disabled-background-color);
1077
1081
  border-color: var(--amplify-internal-button-disabled-border-color);
1078
1082
  color: var(--amplify-internal-button-disabled-color);
1079
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1083
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1084
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
1080
1085
  }
1081
1086
  .amplify-button--loading {
1082
1087
  background-color: var(--amplify-internal-button-loading-background-color);
1083
1088
  border-color: var(--amplify-internal-button-loading-border-color);
1084
1089
  color: var(--amplify-components-button-loading-color);
1085
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1090
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1091
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1086
1092
  }
1087
1093
  .amplify-button--loading:hover {
1088
1094
  background-color: var(--amplify-internal-button-loading-background-color);
1089
1095
  border-color: var(--amplify-internal-button-loading-border-color);
1090
1096
  color: var(--amplify-components-button-loading-color);
1091
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1097
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1098
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1092
1099
  }
1093
1100
  .amplify-button--loading:focus {
1094
1101
  background-color: var(--amplify-internal-button-loading-background-color);
1095
1102
  border-color: var(--amplify-internal-button-loading-border-color);
1096
1103
  color: var(--amplify-components-button-loading-color);
1097
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1104
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1105
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1098
1106
  }
1099
1107
  .amplify-button--loading:active {
1100
1108
  background-color: var(--amplify-internal-button-loading-background-color);
1101
1109
  border-color: var(--amplify-internal-button-loading-border-color);
1102
1110
  color: var(--amplify-components-button-loading-color);
1103
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
1111
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
1112
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
1104
1113
  }
1105
1114
  .amplify-button__loader-wrapper {
1106
1115
  align-items: var(--amplify-components-button-loader-wrapper-align-items);
@@ -17,8 +17,9 @@
17
17
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
18
18
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
19
19
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
20
- -moz-user-select: text;
21
- user-select: text;
20
+ -webkit-user-select: text;
21
+ -moz-user-select: text;
22
+ user-select: text;
22
23
  display: inline-block;
23
24
  --amplify-components-fieldcontrol-color: var(
24
25
  --amplify-components-input-color
@@ -18,8 +18,9 @@
18
18
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
19
19
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
20
20
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
21
- -moz-user-select: text;
22
- user-select: text;
21
+ -webkit-user-select: text;
22
+ -moz-user-select: text;
23
+ user-select: text;
23
24
  display: inline-block;
24
25
  --amplify-components-fieldcontrol-color: var(
25
26
  --amplify-components-input-color
@@ -1,21 +1,26 @@
1
1
  .amplify-link {
2
2
  color: var(--amplify-components-link-color);
3
- text-decoration: var(--amplify-components-link-text-decoration);
3
+ -webkit-text-decoration: var(--amplify-components-link-text-decoration);
4
+ text-decoration: var(--amplify-components-link-text-decoration);
4
5
  cursor: pointer;
5
6
  }
6
7
  .amplify-link:visited {
7
8
  color: var(--amplify-components-link-visited-color);
8
- text-decoration: var(--amplify-components-link-visited-text-decoration);
9
+ -webkit-text-decoration: var(--amplify-components-link-visited-text-decoration);
10
+ text-decoration: var(--amplify-components-link-visited-text-decoration);
9
11
  }
10
12
  .amplify-link:active {
11
13
  color: var(--amplify-components-link-active-color);
12
- text-decoration: var(--amplify-components-link-active-text-decoration);
14
+ -webkit-text-decoration: var(--amplify-components-link-active-text-decoration);
15
+ text-decoration: var(--amplify-components-link-active-text-decoration);
13
16
  }
14
17
  .amplify-link:focus {
15
18
  color: var(--amplify-components-link-focus-color);
16
- text-decoration: var(--amplify-components-link-focus-text-decoration);
19
+ -webkit-text-decoration: var(--amplify-components-link-focus-text-decoration);
20
+ text-decoration: var(--amplify-components-link-focus-text-decoration);
17
21
  }
18
22
  .amplify-link:hover {
19
23
  color: var(--amplify-components-link-hover-color);
20
- text-decoration: var(--amplify-components-link-hover-text-decoration);
24
+ -webkit-text-decoration: var(--amplify-components-link-hover-text-decoration);
25
+ text-decoration: var(--amplify-components-link-hover-text-decoration);
21
26
  }
@@ -1,23 +1,28 @@
1
1
  @layer amplify.components {
2
2
  .amplify-link {
3
3
  color: var(--amplify-components-link-color);
4
- text-decoration: var(--amplify-components-link-text-decoration);
4
+ -webkit-text-decoration: var(--amplify-components-link-text-decoration);
5
+ text-decoration: var(--amplify-components-link-text-decoration);
5
6
  cursor: pointer;
6
7
  }
7
8
  .amplify-link:visited {
8
9
  color: var(--amplify-components-link-visited-color);
9
- text-decoration: var(--amplify-components-link-visited-text-decoration);
10
+ -webkit-text-decoration: var(--amplify-components-link-visited-text-decoration);
11
+ text-decoration: var(--amplify-components-link-visited-text-decoration);
10
12
  }
11
13
  .amplify-link:active {
12
14
  color: var(--amplify-components-link-active-color);
13
- text-decoration: var(--amplify-components-link-active-text-decoration);
15
+ -webkit-text-decoration: var(--amplify-components-link-active-text-decoration);
16
+ text-decoration: var(--amplify-components-link-active-text-decoration);
14
17
  }
15
18
  .amplify-link:focus {
16
19
  color: var(--amplify-components-link-focus-color);
17
- text-decoration: var(--amplify-components-link-focus-text-decoration);
20
+ -webkit-text-decoration: var(--amplify-components-link-focus-text-decoration);
21
+ text-decoration: var(--amplify-components-link-focus-text-decoration);
18
22
  }
19
23
  .amplify-link:hover {
20
24
  color: var(--amplify-components-link-hover-color);
21
- text-decoration: var(--amplify-components-link-hover-text-decoration);
25
+ -webkit-text-decoration: var(--amplify-components-link-hover-text-decoration);
26
+ text-decoration: var(--amplify-components-link-hover-text-decoration);
22
27
  }
23
28
  }
@@ -6,6 +6,8 @@
6
6
 
7
7
  html:focus-within {
8
8
  scroll-behavior: smooth;
9
+ -moz-text-size-adjust: none;
10
+ -webkit-text-size-adjust: none;
9
11
  text-size-adjust: none;
10
12
  }
11
13
 
@@ -52,7 +54,8 @@ picture {
52
54
  }
53
55
 
54
56
  a:not([class]) {
55
- text-decoration-skip-ink: auto;
57
+ -webkit-text-decoration-skip: ink;
58
+ text-decoration-skip-ink: auto;
56
59
  color: currentColor;
57
60
  }
58
61
 
@@ -7,6 +7,8 @@
7
7
 
8
8
  html:focus-within {
9
9
  scroll-behavior: smooth;
10
+ -moz-text-size-adjust: none;
11
+ -webkit-text-size-adjust: none;
10
12
  text-size-adjust: none;
11
13
  }
12
14
 
@@ -53,7 +55,8 @@ picture {
53
55
  }
54
56
 
55
57
  a:not([class]) {
56
- text-decoration-skip-ink: auto;
58
+ -webkit-text-decoration-skip: ink;
59
+ text-decoration-skip-ink: auto;
57
60
  color: currentColor;
58
61
  }
59
62
 
@@ -14,8 +14,9 @@
14
14
  padding-block: var(--amplify-components-sliderfield-padding-block);
15
15
  position: relative;
16
16
  touch-action: none;
17
- -moz-user-select: none;
18
- user-select: none;
17
+ -webkit-user-select: none;
18
+ -moz-user-select: none;
19
+ user-select: none;
19
20
  --amplify-internal-sliderfield-root-height: var(
20
21
  --amplify-components-sliderfield-thumb-height
21
22
  );
@@ -15,8 +15,9 @@
15
15
  padding-block: var(--amplify-components-sliderfield-padding-block);
16
16
  position: relative;
17
17
  touch-action: none;
18
- -moz-user-select: none;
19
- user-select: none;
18
+ -webkit-user-select: none;
19
+ -moz-user-select: none;
20
+ user-select: none;
20
21
  --amplify-internal-sliderfield-root-height: var(
21
22
  --amplify-components-sliderfield-thumb-height
22
23
  );
@@ -17,8 +17,9 @@
17
17
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
18
18
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
19
19
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
20
- -moz-user-select: text;
21
- user-select: text;
20
+ -webkit-user-select: text;
21
+ -moz-user-select: text;
22
+ user-select: text;
22
23
  white-space: pre-wrap;
23
24
  }
24
25
  .amplify-textarea:focus {
@@ -18,8 +18,9 @@
18
18
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
19
19
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
20
20
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
21
- -moz-user-select: text;
22
- user-select: text;
21
+ -webkit-user-select: text;
22
+ -moz-user-select: text;
23
+ user-select: text;
23
24
  white-space: pre-wrap;
24
25
  }
25
26
  .amplify-textarea:focus {
package/dist/styles.css CHANGED
@@ -1730,8 +1730,9 @@ strong.amplify-text {
1730
1730
  padding-inline-start: var(--amplify-components-button-padding-inline-start);
1731
1731
  padding-inline-end: var(--amplify-components-button-padding-inline-end);
1732
1732
  transition: all var(--amplify-components-button-transition-duration);
1733
- -moz-user-select: none;
1734
- user-select: none;
1733
+ -webkit-user-select: none;
1734
+ -moz-user-select: none;
1735
+ user-select: none;
1735
1736
  --amplify-internal-button-disabled-color: var(
1736
1737
  --amplify-components-button-disabled-color
1737
1738
  );
@@ -2752,50 +2753,58 @@ strong.amplify-text {
2752
2753
  background-color: var(--amplify-internal-button-disabled-background-color);
2753
2754
  border-color: var(--amplify-internal-button-disabled-border-color);
2754
2755
  color: var(--amplify-internal-button-disabled-color);
2755
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2756
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2757
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2756
2758
  cursor: not-allowed;
2757
2759
  }
2758
2760
  .amplify-button--disabled:hover {
2759
2761
  background-color: var(--amplify-internal-button-disabled-background-color);
2760
2762
  border-color: var(--amplify-internal-button-disabled-border-color);
2761
2763
  color: var(--amplify-internal-button-disabled-color);
2762
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2764
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2765
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2763
2766
  }
2764
2767
  .amplify-button--disabled :focus {
2765
2768
  background-color: var(--amplify-internal-button-disabled-background-color);
2766
2769
  border-color: var(--amplify-internal-button-disabled-border-color);
2767
2770
  color: var(--amplify-internal-button-disabled-color);
2768
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2771
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2772
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2769
2773
  }
2770
2774
  .amplify-button--disabled:active {
2771
2775
  background-color: var(--amplify-internal-button-disabled-background-color);
2772
2776
  border-color: var(--amplify-internal-button-disabled-border-color);
2773
2777
  color: var(--amplify-internal-button-disabled-color);
2774
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2778
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2779
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2775
2780
  }
2776
2781
  .amplify-button--loading {
2777
2782
  background-color: var(--amplify-internal-button-loading-background-color);
2778
2783
  border-color: var(--amplify-internal-button-loading-border-color);
2779
2784
  color: var(--amplify-components-button-loading-color);
2780
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2785
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2786
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2781
2787
  }
2782
2788
  .amplify-button--loading:hover {
2783
2789
  background-color: var(--amplify-internal-button-loading-background-color);
2784
2790
  border-color: var(--amplify-internal-button-loading-border-color);
2785
2791
  color: var(--amplify-components-button-loading-color);
2786
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2792
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2793
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2787
2794
  }
2788
2795
  .amplify-button--loading:focus {
2789
2796
  background-color: var(--amplify-internal-button-loading-background-color);
2790
2797
  border-color: var(--amplify-internal-button-loading-border-color);
2791
2798
  color: var(--amplify-components-button-loading-color);
2792
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2799
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2800
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2793
2801
  }
2794
2802
  .amplify-button--loading:active {
2795
2803
  background-color: var(--amplify-internal-button-loading-background-color);
2796
2804
  border-color: var(--amplify-internal-button-loading-border-color);
2797
2805
  color: var(--amplify-components-button-loading-color);
2798
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2806
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2807
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2799
2808
  }
2800
2809
  .amplify-button__loader-wrapper {
2801
2810
  align-items: var(--amplify-components-button-loader-wrapper-align-items);
@@ -2943,8 +2952,9 @@ strong.amplify-text {
2943
2952
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
2944
2953
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
2945
2954
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
2946
- -moz-user-select: text;
2947
- user-select: text;
2955
+ -webkit-user-select: text;
2956
+ -moz-user-select: text;
2957
+ user-select: text;
2948
2958
  display: inline-block;
2949
2959
  --amplify-components-fieldcontrol-color: var(
2950
2960
  --amplify-components-input-color
@@ -3027,8 +3037,9 @@ strong.amplify-text {
3027
3037
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
3028
3038
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
3029
3039
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
3030
- -moz-user-select: text;
3031
- user-select: text;
3040
+ -webkit-user-select: text;
3041
+ -moz-user-select: text;
3042
+ user-select: text;
3032
3043
  white-space: pre-wrap;
3033
3044
  }
3034
3045
  .amplify-textarea:focus {
@@ -3092,24 +3103,29 @@ strong.amplify-text {
3092
3103
 
3093
3104
  .amplify-link {
3094
3105
  color: var(--amplify-components-link-color);
3095
- text-decoration: var(--amplify-components-link-text-decoration);
3106
+ -webkit-text-decoration: var(--amplify-components-link-text-decoration);
3107
+ text-decoration: var(--amplify-components-link-text-decoration);
3096
3108
  cursor: pointer;
3097
3109
  }
3098
3110
  .amplify-link:visited {
3099
3111
  color: var(--amplify-components-link-visited-color);
3100
- text-decoration: var(--amplify-components-link-visited-text-decoration);
3112
+ -webkit-text-decoration: var(--amplify-components-link-visited-text-decoration);
3113
+ text-decoration: var(--amplify-components-link-visited-text-decoration);
3101
3114
  }
3102
3115
  .amplify-link:active {
3103
3116
  color: var(--amplify-components-link-active-color);
3104
- text-decoration: var(--amplify-components-link-active-text-decoration);
3117
+ -webkit-text-decoration: var(--amplify-components-link-active-text-decoration);
3118
+ text-decoration: var(--amplify-components-link-active-text-decoration);
3105
3119
  }
3106
3120
  .amplify-link:focus {
3107
3121
  color: var(--amplify-components-link-focus-color);
3108
- text-decoration: var(--amplify-components-link-focus-text-decoration);
3122
+ -webkit-text-decoration: var(--amplify-components-link-focus-text-decoration);
3123
+ text-decoration: var(--amplify-components-link-focus-text-decoration);
3109
3124
  }
3110
3125
  .amplify-link:hover {
3111
3126
  color: var(--amplify-components-link-hover-color);
3112
- text-decoration: var(--amplify-components-link-hover-text-decoration);
3127
+ -webkit-text-decoration: var(--amplify-components-link-hover-text-decoration);
3128
+ text-decoration: var(--amplify-components-link-hover-text-decoration);
3113
3129
  }
3114
3130
 
3115
3131
  .amplify-loader {
@@ -3672,14 +3688,16 @@ strong.amplify-text {
3672
3688
  font-weight: var(--amplify-components-breadcrumbs-link-font-weight);
3673
3689
  padding-inline: var(--amplify-components-breadcrumbs-link-padding-inline);
3674
3690
  padding-block: var(--amplify-components-breadcrumbs-link-padding-block);
3675
- text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
3691
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
3692
+ text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
3676
3693
  }
3677
3694
 
3678
3695
  .amplify-breadcrumbs__link--current {
3679
3696
  color: var(--amplify-components-breadcrumbs-link-current-color);
3680
3697
  font-size: var(--amplify-components-breadcrumbs-link-current-font-size);
3681
3698
  font-weight: var(--amplify-components-breadcrumbs-link-current-font-weight);
3682
- text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
3699
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
3700
+ text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
3683
3701
  }
3684
3702
 
3685
3703
  .amplify-card {
@@ -5229,8 +5247,9 @@ html[dir=rtl] .amplify-field-group__inner-start {
5229
5247
  padding-block: var(--amplify-components-sliderfield-padding-block);
5230
5248
  position: relative;
5231
5249
  touch-action: none;
5232
- -moz-user-select: none;
5233
- user-select: none;
5250
+ -webkit-user-select: none;
5251
+ -moz-user-select: none;
5252
+ user-select: none;
5234
5253
  --amplify-internal-sliderfield-root-height: var(
5235
5254
  --amplify-components-sliderfield-thumb-height
5236
5255
  );
@@ -1731,8 +1731,9 @@ strong.amplify-text {
1731
1731
  padding-inline-start: var(--amplify-components-button-padding-inline-start);
1732
1732
  padding-inline-end: var(--amplify-components-button-padding-inline-end);
1733
1733
  transition: all var(--amplify-components-button-transition-duration);
1734
- -moz-user-select: none;
1735
- user-select: none;
1734
+ -webkit-user-select: none;
1735
+ -moz-user-select: none;
1736
+ user-select: none;
1736
1737
  --amplify-internal-button-disabled-color: var(
1737
1738
  --amplify-components-button-disabled-color
1738
1739
  );
@@ -2753,50 +2754,58 @@ strong.amplify-text {
2753
2754
  background-color: var(--amplify-internal-button-disabled-background-color);
2754
2755
  border-color: var(--amplify-internal-button-disabled-border-color);
2755
2756
  color: var(--amplify-internal-button-disabled-color);
2756
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2757
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2758
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2757
2759
  cursor: not-allowed;
2758
2760
  }
2759
2761
  .amplify-button--disabled:hover {
2760
2762
  background-color: var(--amplify-internal-button-disabled-background-color);
2761
2763
  border-color: var(--amplify-internal-button-disabled-border-color);
2762
2764
  color: var(--amplify-internal-button-disabled-color);
2763
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2765
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2766
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2764
2767
  }
2765
2768
  .amplify-button--disabled :focus {
2766
2769
  background-color: var(--amplify-internal-button-disabled-background-color);
2767
2770
  border-color: var(--amplify-internal-button-disabled-border-color);
2768
2771
  color: var(--amplify-internal-button-disabled-color);
2769
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2772
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2773
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2770
2774
  }
2771
2775
  .amplify-button--disabled:active {
2772
2776
  background-color: var(--amplify-internal-button-disabled-background-color);
2773
2777
  border-color: var(--amplify-internal-button-disabled-border-color);
2774
2778
  color: var(--amplify-internal-button-disabled-color);
2775
- text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2779
+ -webkit-text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2780
+ text-decoration: var(--amplify-internal-button-disabled-text-decoration);
2776
2781
  }
2777
2782
  .amplify-button--loading {
2778
2783
  background-color: var(--amplify-internal-button-loading-background-color);
2779
2784
  border-color: var(--amplify-internal-button-loading-border-color);
2780
2785
  color: var(--amplify-components-button-loading-color);
2781
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2786
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2787
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2782
2788
  }
2783
2789
  .amplify-button--loading:hover {
2784
2790
  background-color: var(--amplify-internal-button-loading-background-color);
2785
2791
  border-color: var(--amplify-internal-button-loading-border-color);
2786
2792
  color: var(--amplify-components-button-loading-color);
2787
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2793
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2794
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2788
2795
  }
2789
2796
  .amplify-button--loading:focus {
2790
2797
  background-color: var(--amplify-internal-button-loading-background-color);
2791
2798
  border-color: var(--amplify-internal-button-loading-border-color);
2792
2799
  color: var(--amplify-components-button-loading-color);
2793
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2800
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2801
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2794
2802
  }
2795
2803
  .amplify-button--loading:active {
2796
2804
  background-color: var(--amplify-internal-button-loading-background-color);
2797
2805
  border-color: var(--amplify-internal-button-loading-border-color);
2798
2806
  color: var(--amplify-components-button-loading-color);
2799
- text-decoration: var(--amplify-internal-button-loading-text-decoration);
2807
+ -webkit-text-decoration: var(--amplify-internal-button-loading-text-decoration);
2808
+ text-decoration: var(--amplify-internal-button-loading-text-decoration);
2800
2809
  }
2801
2810
  .amplify-button__loader-wrapper {
2802
2811
  align-items: var(--amplify-components-button-loader-wrapper-align-items);
@@ -2944,8 +2953,9 @@ strong.amplify-text {
2944
2953
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
2945
2954
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
2946
2955
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
2947
- -moz-user-select: text;
2948
- user-select: text;
2956
+ -webkit-user-select: text;
2957
+ -moz-user-select: text;
2958
+ user-select: text;
2949
2959
  display: inline-block;
2950
2960
  --amplify-components-fieldcontrol-color: var(
2951
2961
  --amplify-components-input-color
@@ -3028,8 +3038,9 @@ strong.amplify-text {
3028
3038
  outline-style: var(--amplify-components-fieldcontrol-outline-style);
3029
3039
  outline-width: var(--amplify-components-fieldcontrol-outline-width);
3030
3040
  outline-offset: var(--amplify-components-fieldcontrol-outline-offset);
3031
- -moz-user-select: text;
3032
- user-select: text;
3041
+ -webkit-user-select: text;
3042
+ -moz-user-select: text;
3043
+ user-select: text;
3033
3044
  white-space: pre-wrap;
3034
3045
  }
3035
3046
  .amplify-textarea:focus {
@@ -3093,24 +3104,29 @@ strong.amplify-text {
3093
3104
 
3094
3105
  .amplify-link {
3095
3106
  color: var(--amplify-components-link-color);
3096
- text-decoration: var(--amplify-components-link-text-decoration);
3107
+ -webkit-text-decoration: var(--amplify-components-link-text-decoration);
3108
+ text-decoration: var(--amplify-components-link-text-decoration);
3097
3109
  cursor: pointer;
3098
3110
  }
3099
3111
  .amplify-link:visited {
3100
3112
  color: var(--amplify-components-link-visited-color);
3101
- text-decoration: var(--amplify-components-link-visited-text-decoration);
3113
+ -webkit-text-decoration: var(--amplify-components-link-visited-text-decoration);
3114
+ text-decoration: var(--amplify-components-link-visited-text-decoration);
3102
3115
  }
3103
3116
  .amplify-link:active {
3104
3117
  color: var(--amplify-components-link-active-color);
3105
- text-decoration: var(--amplify-components-link-active-text-decoration);
3118
+ -webkit-text-decoration: var(--amplify-components-link-active-text-decoration);
3119
+ text-decoration: var(--amplify-components-link-active-text-decoration);
3106
3120
  }
3107
3121
  .amplify-link:focus {
3108
3122
  color: var(--amplify-components-link-focus-color);
3109
- text-decoration: var(--amplify-components-link-focus-text-decoration);
3123
+ -webkit-text-decoration: var(--amplify-components-link-focus-text-decoration);
3124
+ text-decoration: var(--amplify-components-link-focus-text-decoration);
3110
3125
  }
3111
3126
  .amplify-link:hover {
3112
3127
  color: var(--amplify-components-link-hover-color);
3113
- text-decoration: var(--amplify-components-link-hover-text-decoration);
3128
+ -webkit-text-decoration: var(--amplify-components-link-hover-text-decoration);
3129
+ text-decoration: var(--amplify-components-link-hover-text-decoration);
3114
3130
  }
3115
3131
 
3116
3132
  .amplify-loader {
@@ -3673,14 +3689,16 @@ strong.amplify-text {
3673
3689
  font-weight: var(--amplify-components-breadcrumbs-link-font-weight);
3674
3690
  padding-inline: var(--amplify-components-breadcrumbs-link-padding-inline);
3675
3691
  padding-block: var(--amplify-components-breadcrumbs-link-padding-block);
3676
- text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
3692
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
3693
+ text-decoration: var(--amplify-components-breadcrumbs-link-text-decoration);
3677
3694
  }
3678
3695
 
3679
3696
  .amplify-breadcrumbs__link--current {
3680
3697
  color: var(--amplify-components-breadcrumbs-link-current-color);
3681
3698
  font-size: var(--amplify-components-breadcrumbs-link-current-font-size);
3682
3699
  font-weight: var(--amplify-components-breadcrumbs-link-current-font-weight);
3683
- text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
3700
+ -webkit-text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
3701
+ text-decoration: var(--amplify-components-breadcrumbs-link-current-text-decoration);
3684
3702
  }
3685
3703
 
3686
3704
  .amplify-card {
@@ -5230,8 +5248,9 @@ html[dir=rtl] .amplify-field-group__inner-start {
5230
5248
  padding-block: var(--amplify-components-sliderfield-padding-block);
5231
5249
  position: relative;
5232
5250
  touch-action: none;
5233
- -moz-user-select: none;
5234
- user-select: none;
5251
+ -webkit-user-select: none;
5252
+ -moz-user-select: none;
5253
+ user-select: none;
5235
5254
  --amplify-internal-sliderfield-root-height: var(
5236
5255
  --amplify-components-sliderfield-thumb-height
5237
5256
  );
@@ -0,0 +1,20 @@
1
+ import { WebTheme } from '@aws-amplify/ui';
2
+ import { BaseComponentProps, ElementType, ForwardRefPrimitive, PrimitiveProps } from '../../primitives/types';
3
+ import { BaseComponentTheme } from '@aws-amplify/ui';
4
+ interface BaseComponentStyleProps extends BaseComponentProps {
5
+ /**
6
+ * Provide a server generated nonce which matches your CSP `style-src` rule.
7
+ * This will be attached to the generated <style> tag.
8
+ * @see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src
9
+ */
10
+ nonce?: string;
11
+ theme: Pick<WebTheme, 'name' | 'breakpoints' | 'tokens'>;
12
+ componentThemes: BaseComponentTheme[];
13
+ }
14
+ export type ComponentStyleProps<Element extends ElementType = 'style'> = PrimitiveProps<BaseComponentStyleProps, Element>;
15
+ /**
16
+ * @experimental
17
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/theme)
18
+ */
19
+ export declare const ComponentStyle: ForwardRefPrimitive<BaseComponentStyleProps, 'style'>;
20
+ export {};
@@ -0,0 +1,11 @@
1
+ import { BaseComponentProps, ElementType, ForwardRefPrimitive, PrimitiveProps } from '../../primitives/types';
2
+ interface BaseStyleProps extends BaseComponentProps {
3
+ cssText?: string;
4
+ }
5
+ export type StyleProps<Element extends ElementType = 'style'> = PrimitiveProps<BaseStyleProps, Element>;
6
+ /**
7
+ * @experimental
8
+ * [📖 Docs](https://ui.docs.amplify.aws/react/components/theme)
9
+ */
10
+ export declare const Style: ForwardRefPrimitive<BaseStyleProps, 'style'>;
11
+ export {};
@@ -1,2 +1,3 @@
1
1
  export { ThemeStyle } from './components/ThemeProvider/ThemeStyle';
2
+ export { ComponentStyle } from './components/ThemeProvider/ComponentStyle';
2
3
  export { createTheme, defineComponentTheme, createComponentClasses, defaultTheme, defaultDarkModeOverride, } from '@aws-amplify/ui';
@@ -1 +1 @@
1
- export declare const VERSION = "6.4.0";
1
+ export declare const VERSION = "6.5.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-react",
3
- "version": "6.4.0",
3
+ "version": "6.5.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/esm/index.mjs",
6
6
  "exports": {
@@ -55,8 +55,8 @@
55
55
  "typecheck": "tsc --noEmit"
56
56
  },
57
57
  "dependencies": {
58
- "@aws-amplify/ui": "6.5.0",
59
- "@aws-amplify/ui-react-core": "3.0.23",
58
+ "@aws-amplify/ui": "6.6.0",
59
+ "@aws-amplify/ui-react-core": "3.0.24",
60
60
  "@radix-ui/react-direction": "1.0.0",
61
61
  "@radix-ui/react-dropdown-menu": "1.0.0",
62
62
  "@radix-ui/react-slider": "1.0.0",