@react-spectrum/button 3.0.0-nightly.2613 → 3.0.0-nightly.2668
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/dist/ar-AE.main.js +6 -0
- package/dist/ar-AE.main.js.map +1 -0
- package/dist/ar-AE.mjs +8 -0
- package/dist/ar-AE.module.js +8 -0
- package/dist/ar-AE.module.js.map +1 -0
- package/dist/bg-BG.main.js +6 -0
- package/dist/bg-BG.main.js.map +1 -0
- package/dist/bg-BG.mjs +8 -0
- package/dist/bg-BG.module.js +8 -0
- package/dist/bg-BG.module.js.map +1 -0
- package/dist/cs-CZ.main.js +6 -0
- package/dist/cs-CZ.main.js.map +1 -0
- package/dist/cs-CZ.mjs +8 -0
- package/dist/cs-CZ.module.js +8 -0
- package/dist/cs-CZ.module.js.map +1 -0
- package/dist/da-DK.main.js +6 -0
- package/dist/da-DK.main.js.map +1 -0
- package/dist/da-DK.mjs +8 -0
- package/dist/da-DK.module.js +8 -0
- package/dist/da-DK.module.js.map +1 -0
- package/dist/de-DE.main.js +6 -0
- package/dist/de-DE.main.js.map +1 -0
- package/dist/de-DE.mjs +8 -0
- package/dist/de-DE.module.js +8 -0
- package/dist/de-DE.module.js.map +1 -0
- package/dist/el-GR.main.js +6 -0
- package/dist/el-GR.main.js.map +1 -0
- package/dist/el-GR.mjs +8 -0
- package/dist/el-GR.module.js +8 -0
- package/dist/el-GR.module.js.map +1 -0
- package/dist/en-US.main.js +6 -0
- package/dist/en-US.main.js.map +1 -0
- package/dist/en-US.mjs +8 -0
- package/dist/en-US.module.js +8 -0
- package/dist/en-US.module.js.map +1 -0
- package/dist/es-ES.main.js +6 -0
- package/dist/es-ES.main.js.map +1 -0
- package/dist/es-ES.mjs +8 -0
- package/dist/es-ES.module.js +8 -0
- package/dist/es-ES.module.js.map +1 -0
- package/dist/et-EE.main.js +6 -0
- package/dist/et-EE.main.js.map +1 -0
- package/dist/et-EE.mjs +8 -0
- package/dist/et-EE.module.js +8 -0
- package/dist/et-EE.module.js.map +1 -0
- package/dist/fi-FI.main.js +6 -0
- package/dist/fi-FI.main.js.map +1 -0
- package/dist/fi-FI.mjs +8 -0
- package/dist/fi-FI.module.js +8 -0
- package/dist/fi-FI.module.js.map +1 -0
- package/dist/fr-FR.main.js +6 -0
- package/dist/fr-FR.main.js.map +1 -0
- package/dist/fr-FR.mjs +8 -0
- package/dist/fr-FR.module.js +8 -0
- package/dist/fr-FR.module.js.map +1 -0
- package/dist/he-IL.main.js +6 -0
- package/dist/he-IL.main.js.map +1 -0
- package/dist/he-IL.mjs +8 -0
- package/dist/he-IL.module.js +8 -0
- package/dist/he-IL.module.js.map +1 -0
- package/dist/hr-HR.main.js +6 -0
- package/dist/hr-HR.main.js.map +1 -0
- package/dist/hr-HR.mjs +8 -0
- package/dist/hr-HR.module.js +8 -0
- package/dist/hr-HR.module.js.map +1 -0
- package/dist/hu-HU.main.js +6 -0
- package/dist/hu-HU.main.js.map +1 -0
- package/dist/hu-HU.mjs +8 -0
- package/dist/hu-HU.module.js +8 -0
- package/dist/hu-HU.module.js.map +1 -0
- package/dist/import.mjs +129 -29
- package/dist/it-IT.main.js +6 -0
- package/dist/it-IT.main.js.map +1 -0
- package/dist/it-IT.mjs +8 -0
- package/dist/it-IT.module.js +8 -0
- package/dist/it-IT.module.js.map +1 -0
- package/dist/ja-JP.main.js +6 -0
- package/dist/ja-JP.main.js.map +1 -0
- package/dist/ja-JP.mjs +8 -0
- package/dist/ja-JP.module.js +8 -0
- package/dist/ja-JP.module.js.map +1 -0
- package/dist/ko-KR.main.js +6 -0
- package/dist/ko-KR.main.js.map +1 -0
- package/dist/ko-KR.mjs +8 -0
- package/dist/ko-KR.module.js +8 -0
- package/dist/ko-KR.module.js.map +1 -0
- package/dist/lt-LT.main.js +6 -0
- package/dist/lt-LT.main.js.map +1 -0
- package/dist/lt-LT.mjs +8 -0
- package/dist/lt-LT.module.js +8 -0
- package/dist/lt-LT.module.js.map +1 -0
- package/dist/lv-LV.main.js +6 -0
- package/dist/lv-LV.main.js.map +1 -0
- package/dist/lv-LV.mjs +8 -0
- package/dist/lv-LV.module.js +8 -0
- package/dist/lv-LV.module.js.map +1 -0
- package/dist/main.css +4 -2
- package/dist/main.css.map +1 -1
- package/dist/main.js +128 -28
- package/dist/main.js.map +1 -1
- package/dist/module.js +129 -29
- package/dist/module.js.map +1 -1
- package/dist/nb-NO.main.js +6 -0
- package/dist/nb-NO.main.js.map +1 -0
- package/dist/nb-NO.mjs +8 -0
- package/dist/nb-NO.module.js +8 -0
- package/dist/nb-NO.module.js.map +1 -0
- package/dist/nl-NL.main.js +6 -0
- package/dist/nl-NL.main.js.map +1 -0
- package/dist/nl-NL.mjs +8 -0
- package/dist/nl-NL.module.js +8 -0
- package/dist/nl-NL.module.js.map +1 -0
- package/dist/pl-PL.main.js +6 -0
- package/dist/pl-PL.main.js.map +1 -0
- package/dist/pl-PL.mjs +8 -0
- package/dist/pl-PL.module.js +8 -0
- package/dist/pl-PL.module.js.map +1 -0
- package/dist/pt-BR.main.js +6 -0
- package/dist/pt-BR.main.js.map +1 -0
- package/dist/pt-BR.mjs +8 -0
- package/dist/pt-BR.module.js +8 -0
- package/dist/pt-BR.module.js.map +1 -0
- package/dist/pt-PT.main.js +6 -0
- package/dist/pt-PT.main.js.map +1 -0
- package/dist/pt-PT.mjs +8 -0
- package/dist/pt-PT.module.js +8 -0
- package/dist/pt-PT.module.js.map +1 -0
- package/dist/ro-RO.main.js +6 -0
- package/dist/ro-RO.main.js.map +1 -0
- package/dist/ro-RO.mjs +8 -0
- package/dist/ro-RO.module.js +8 -0
- package/dist/ro-RO.module.js.map +1 -0
- package/dist/ru-RU.main.js +6 -0
- package/dist/ru-RU.main.js.map +1 -0
- package/dist/ru-RU.mjs +8 -0
- package/dist/ru-RU.module.js +8 -0
- package/dist/ru-RU.module.js.map +1 -0
- package/dist/sk-SK.main.js +6 -0
- package/dist/sk-SK.main.js.map +1 -0
- package/dist/sk-SK.mjs +8 -0
- package/dist/sk-SK.module.js +8 -0
- package/dist/sk-SK.module.js.map +1 -0
- package/dist/sl-SI.main.js +6 -0
- package/dist/sl-SI.main.js.map +1 -0
- package/dist/sl-SI.mjs +8 -0
- package/dist/sl-SI.module.js +8 -0
- package/dist/sl-SI.module.js.map +1 -0
- package/dist/sr-SP.main.js +6 -0
- package/dist/sr-SP.main.js.map +1 -0
- package/dist/sr-SP.mjs +8 -0
- package/dist/sr-SP.module.js +8 -0
- package/dist/sr-SP.module.js.map +1 -0
- package/dist/sv-SE.main.js +6 -0
- package/dist/sv-SE.main.js.map +1 -0
- package/dist/sv-SE.mjs +8 -0
- package/dist/sv-SE.module.js +8 -0
- package/dist/sv-SE.module.js.map +1 -0
- package/dist/tr-TR.main.js +6 -0
- package/dist/tr-TR.main.js.map +1 -0
- package/dist/tr-TR.mjs +8 -0
- package/dist/tr-TR.module.js +8 -0
- package/dist/tr-TR.module.js.map +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/uk-UA.main.js +6 -0
- package/dist/uk-UA.main.js.map +1 -0
- package/dist/uk-UA.mjs +8 -0
- package/dist/uk-UA.module.js +8 -0
- package/dist/uk-UA.module.js.map +1 -0
- package/dist/zh-CN.main.js +6 -0
- package/dist/zh-CN.main.js.map +1 -0
- package/dist/zh-CN.mjs +8 -0
- package/dist/zh-CN.module.js +8 -0
- package/dist/zh-CN.module.js.map +1 -0
- package/dist/zh-TW.main.js +6 -0
- package/dist/zh-TW.main.js.map +1 -0
- package/dist/zh-TW.mjs +8 -0
- package/dist/zh-TW.module.js +8 -0
- package/dist/zh-TW.module.js.map +1 -0
- package/package.json +16 -16
- package/src/Button.tsx +38 -27
@@ -0,0 +1 @@
|
|
1
|
+
{"mappings":";AAAA,4BAAiB;IAAG,WAAW,CAAC,SAAS,CAAC;AAC1C","sources":["packages/@react-spectrum/button/intl/tr-TR.json"],"sourcesContent":["{\n \"pending\": \"beklemede\"\n}\n"],"names":[],"version":3,"file":"tr-TR.module.js.map"}
|
package/dist/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"mappings":";;;
|
1
|
+
{"mappings":";;;AA8LA;;;;GAIG;AACH,OAAA,IAAI;UAAgH,aAAa,WAAW,CAAC;MAAM,YAAY,CAAC;AC1GhK;;;GAGG;AACH,OAAA,IAAI,qLAA8C,CAAC;ACvEnD,0BAA2B,SAAQ,WAAW,EAAE,QAAQ,EAAE,UAAU;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAsDD,OAAA,IAAI,+JAA4C,CAAC;ACpBjD;;GAEG;AACH,OAAA,IAAI,mLAA4C,CAAC;AC1CjD,2BAA2B,CAAC,SAAS,WAAW,GAAG,QAAQ,CAAE,SAAQ,WAAW,EAAE,2BAA2B,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU;IACnI,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAmDD,OAAA,IAAI,qLAA4C,CAAC;ACQjD;;;GAGG;AACH,OAAA,IAAI,qLAA8C,CAAC;ACzEnD,YAAY,EAAC,yBAAyB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,yBAAyB,EAAC,MAAM,qBAAqB,CAAC","sources":["packages/@react-spectrum/button/src/packages/@react-spectrum/button/src/Button.tsx","packages/@react-spectrum/button/src/packages/@react-spectrum/button/src/ActionButton.tsx","packages/@react-spectrum/button/src/packages/@react-spectrum/button/src/FieldButton.tsx","packages/@react-spectrum/button/src/packages/@react-spectrum/button/src/LogicButton.tsx","packages/@react-spectrum/button/src/packages/@react-spectrum/button/src/ClearButton.tsx","packages/@react-spectrum/button/src/packages/@react-spectrum/button/src/ToggleButton.tsx","packages/@react-spectrum/button/src/packages/@react-spectrum/button/src/index.ts","packages/@react-spectrum/button/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,"/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n/// <reference types=\"css-module-types\" />\nexport {Button} from './Button';\nexport {ActionButton} from './ActionButton';\nexport {FieldButton} from './FieldButton';\nexport {LogicButton} from './LogicButton';\nexport {ClearButton} from './ClearButton';\nexport {ToggleButton} from './ToggleButton';\nexport type {SpectrumActionButtonProps, SpectrumButtonProps, SpectrumLogicButtonProps, SpectrumToggleButtonProps} from '@react-types/button';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,WAAW,CAAC,8EAAY,CAAC;AAC7C","sources":["packages/@react-spectrum/button/intl/uk-UA.json"],"sourcesContent":["{\n \"pending\": \"в очікуванні\"\n}\n"],"names":[],"version":3,"file":"uk-UA.main.js.map"}
|
package/dist/uk-UA.mjs
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"mappings":";AAAA,4BAAiB;IAAG,WAAW,CAAC,8EAAY,CAAC;AAC7C","sources":["packages/@react-spectrum/button/intl/uk-UA.json"],"sourcesContent":["{\n \"pending\": \"в очікуванні\"\n}\n"],"names":[],"version":3,"file":"uk-UA.module.js.map"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,WAAW,CAAC,wBAAG,CAAC;AACpC","sources":["packages/@react-spectrum/button/intl/zh-CN.json"],"sourcesContent":["{\n \"pending\": \"待处理\"\n}\n"],"names":[],"version":3,"file":"zh-CN.main.js.map"}
|
package/dist/zh-CN.mjs
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"mappings":";AAAA,4BAAiB;IAAG,WAAW,CAAC,wBAAG,CAAC;AACpC","sources":["packages/@react-spectrum/button/intl/zh-CN.json"],"sourcesContent":["{\n \"pending\": \"待处理\"\n}\n"],"names":[],"version":3,"file":"zh-CN.module.js.map"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,WAAW,CAAC,wBAAG,CAAC;AACpC","sources":["packages/@react-spectrum/button/intl/zh-TW.json"],"sourcesContent":["{\n \"pending\": \"待處理\"\n}\n"],"names":[],"version":3,"file":"zh-TW.main.js.map"}
|
package/dist/zh-TW.mjs
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"mappings":";AAAA,4BAAiB;IAAG,WAAW,CAAC,wBAAG,CAAC;AACpC","sources":["packages/@react-spectrum/button/intl/zh-TW.json"],"sourcesContent":["{\n \"pending\": \"待處理\"\n}\n"],"names":[],"version":3,"file":"zh-TW.module.js.map"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@react-spectrum/button",
|
3
|
-
"version": "3.0.0-nightly.
|
3
|
+
"version": "3.0.0-nightly.2668+86b38c878",
|
4
4
|
"description": "Spectrum UI components in React",
|
5
5
|
"license": "Apache-2.0",
|
6
6
|
"main": "dist/main.js",
|
@@ -36,23 +36,23 @@
|
|
36
36
|
"url": "https://github.com/adobe/react-spectrum"
|
37
37
|
},
|
38
38
|
"dependencies": {
|
39
|
-
"@react-aria/button": "3.0.0-nightly.
|
40
|
-
"@react-aria/focus": "3.0.0-nightly.
|
41
|
-
"@react-aria/i18n": "3.0.0-nightly.
|
42
|
-
"@react-aria/interactions": "3.0.0-nightly.
|
43
|
-
"@react-aria/utils": "3.0.0-nightly.
|
44
|
-
"@react-spectrum/progress": "3.0.0-nightly.
|
45
|
-
"@react-spectrum/text": "3.5.
|
46
|
-
"@react-spectrum/utils": "3.0.0-nightly.
|
47
|
-
"@react-stately/toggle": "3.0.0-nightly.
|
48
|
-
"@react-types/button": "3.9.2-nightly.
|
49
|
-
"@react-types/shared": "3.0.0-nightly.
|
50
|
-
"@spectrum-icons/ui": "3.0.0-nightly.
|
39
|
+
"@react-aria/button": "3.0.0-nightly.2668+86b38c878",
|
40
|
+
"@react-aria/focus": "3.0.0-nightly.2668+86b38c878",
|
41
|
+
"@react-aria/i18n": "3.0.0-nightly.2668+86b38c878",
|
42
|
+
"@react-aria/interactions": "3.0.0-nightly.2668+86b38c878",
|
43
|
+
"@react-aria/utils": "3.0.0-nightly.2668+86b38c878",
|
44
|
+
"@react-spectrum/progress": "3.0.0-nightly.2668+86b38c878",
|
45
|
+
"@react-spectrum/text": "3.5.2-nightly.4380+86b38c878",
|
46
|
+
"@react-spectrum/utils": "3.0.0-nightly.2668+86b38c878",
|
47
|
+
"@react-stately/toggle": "3.0.0-nightly.2668+86b38c878",
|
48
|
+
"@react-types/button": "3.9.2-nightly.4380+86b38c878",
|
49
|
+
"@react-types/shared": "3.0.0-nightly.2668+86b38c878",
|
50
|
+
"@spectrum-icons/ui": "3.0.0-nightly.2668+86b38c878",
|
51
51
|
"@swc/helpers": "^0.5.0"
|
52
52
|
},
|
53
53
|
"devDependencies": {
|
54
|
-
"@adobe/spectrum-css-temp": "3.0.0-nightly.
|
55
|
-
"@react-spectrum/test-utils": "3.0.0-nightly.
|
54
|
+
"@adobe/spectrum-css-temp": "3.0.0-nightly.2668+86b38c878",
|
55
|
+
"@react-spectrum/test-utils": "3.0.0-nightly.2668+86b38c878"
|
56
56
|
},
|
57
57
|
"peerDependencies": {
|
58
58
|
"@react-spectrum/provider": "^3.0.0",
|
@@ -61,5 +61,5 @@
|
|
61
61
|
"publishConfig": {
|
62
62
|
"access": "public"
|
63
63
|
},
|
64
|
-
"gitHead": "
|
64
|
+
"gitHead": "86b38c87868ce7f262e0df905e5ac4eb2653791d"
|
65
65
|
}
|
package/src/Button.tsx
CHANGED
@@ -22,7 +22,7 @@ import {FocusableRef} from '@react-types/shared';
|
|
22
22
|
import {FocusRing} from '@react-aria/focus';
|
23
23
|
// @ts-ignore
|
24
24
|
import intlMessages from '../intl/*.json';
|
25
|
-
import {mergeProps, useId} from '@react-aria/utils';
|
25
|
+
import {isAppleDevice, isFirefox, mergeProps, useId} from '@react-aria/utils';
|
26
26
|
import {ProgressCircle} from '@react-spectrum/progress';
|
27
27
|
import React, {ElementType, ReactElement, useEffect, useState} from 'react';
|
28
28
|
import {SpectrumButtonProps} from '@react-types/button';
|
@@ -69,7 +69,7 @@ function Button<T extends ElementType = 'button'>(props: SpectrumButtonProps<T>,
|
|
69
69
|
let {hoverProps, isHovered} = useHover({isDisabled});
|
70
70
|
let [isFocused, onFocusChange] = useState(false);
|
71
71
|
let {focusProps} = useFocus({onFocusChange, isDisabled});
|
72
|
-
let stringFormatter = useLocalizedStringFormatter(intlMessages);
|
72
|
+
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/button');
|
73
73
|
let {styleProps} = useStyleProps(otherProps);
|
74
74
|
let hasLabel = useHasChild(`.${styles['spectrum-Button-label']}`, domRef);
|
75
75
|
let hasIcon = useHasChild(`.${styles['spectrum-Icon']}`, domRef);
|
@@ -78,10 +78,9 @@ function Button<T extends ElementType = 'button'>(props: SpectrumButtonProps<T>,
|
|
78
78
|
let [isProgressVisible, setIsProgressVisible] = useState(false);
|
79
79
|
let backupButtonId = useId();
|
80
80
|
let buttonId = buttonProps.id || backupButtonId;
|
81
|
-
let spinnerId = useId();
|
82
|
-
let textId = useId();
|
83
81
|
let iconId = useId();
|
84
|
-
let
|
82
|
+
let textId = useId();
|
83
|
+
let spinnerId = useId();
|
85
84
|
|
86
85
|
useEffect(() => {
|
87
86
|
let timeout: ReturnType<typeof setTimeout>;
|
@@ -108,6 +107,13 @@ function Button<T extends ElementType = 'button'>(props: SpectrumButtonProps<T>,
|
|
108
107
|
staticColor = 'white';
|
109
108
|
}
|
110
109
|
|
110
|
+
const isPendingAriaLiveLabel = `${hasAriaLabel ? buttonProps['aria-label'] : ''} ${stringFormatter.format('pending')}`.trim();
|
111
|
+
const isPendingAriaLiveLabelledby = hasAriaLabel ? (buttonProps['aria-labelledby']?.replace(buttonId, spinnerId) ?? spinnerId) : `${hasIcon ? iconId : ''} ${hasLabel ? textId : ''} ${spinnerId}`.trim();
|
112
|
+
|
113
|
+
let ariaLive: 'off' | 'polite' | 'assertive' = 'polite';
|
114
|
+
if (isAppleDevice() && (!hasAriaLabel || isFirefox())) {
|
115
|
+
ariaLive = 'off';
|
116
|
+
}
|
111
117
|
return (
|
112
118
|
<FocusRing focusRingClass={classNames(styles, 'focus-ring')} autoFocus={autoFocus}>
|
113
119
|
<Element
|
@@ -119,9 +125,8 @@ function Button<T extends ElementType = 'button'>(props: SpectrumButtonProps<T>,
|
|
119
125
|
data-style={style}
|
120
126
|
data-static-color={staticColor || undefined}
|
121
127
|
aria-disabled={isPending ? 'true' : undefined}
|
122
|
-
aria-label={isPending ?
|
123
|
-
aria-labelledby={isPending ?
|
124
|
-
aria-live={isPending && isFocused ? 'polite' : undefined}
|
128
|
+
aria-label={isPending ? isPendingAriaLiveLabel : buttonProps['aria-label']}
|
129
|
+
aria-labelledby={isPending ? isPendingAriaLiveLabelledby : buttonProps['aria-labelledby']}
|
125
130
|
className={
|
126
131
|
classNames(
|
127
132
|
styles,
|
@@ -151,25 +156,31 @@ function Button<T extends ElementType = 'button'>(props: SpectrumButtonProps<T>,
|
|
151
156
|
{typeof children === 'string'
|
152
157
|
? <Text>{children}</Text>
|
153
158
|
: children}
|
154
|
-
{isPending &&
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
{isPending &&
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
159
|
+
{isPending && (
|
160
|
+
<div
|
161
|
+
aria-hidden="true"
|
162
|
+
style={{visibility: isProgressVisible ? 'visible' : 'hidden'}}
|
163
|
+
className={classNames(styles, 'spectrum-Button-circleLoader')}>
|
164
|
+
<ProgressCircle
|
165
|
+
aria-label={isPendingAriaLiveLabel}
|
166
|
+
isIndeterminate
|
167
|
+
size="S"
|
168
|
+
staticColor={staticColor} />
|
169
|
+
</div>
|
170
|
+
)}
|
171
|
+
{isPending &&
|
172
|
+
<>
|
173
|
+
<div aria-live={isFocused ? ariaLive : 'off'}>
|
174
|
+
{isProgressVisible &&
|
175
|
+
<div role="img" aria-labelledby={isPendingAriaLiveLabelledby} />
|
176
|
+
}
|
177
|
+
</div>
|
178
|
+
{/* Adding the element here with the same labels as the button itself causes aria-live to pick up the change in Safari.
|
179
|
+
Safari with VO unfortunately doesn't announce changes to *all* of its labels specifically for button
|
180
|
+
https://a11ysupport.io/tests/tech__html__button-name-change#assertion-aria-aria-label_attribute-convey_name_change-html-button_element-vo_macos-safari
|
181
|
+
The aria-live may cause extra announcements in other browsers. */}
|
182
|
+
<div id={spinnerId} role="img" aria-label={isPendingAriaLiveLabel} />
|
183
|
+
</>
|
173
184
|
}
|
174
185
|
</SlotProvider>
|
175
186
|
</Element>
|