@react-spectrum/textfield 3.13.5 → 3.14.1
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/TextArea.main.js +9 -1
- package/dist/TextArea.main.js.map +1 -1
- package/dist/TextArea.mjs +10 -2
- package/dist/TextArea.module.js +10 -2
- package/dist/TextArea.module.js.map +1 -1
- package/dist/TextField.main.js +9 -1
- package/dist/TextField.main.js.map +1 -1
- package/dist/TextField.mjs +10 -2
- package/dist/TextField.module.js +10 -2
- package/dist/TextField.module.js.map +1 -1
- package/dist/TextFieldBase.main.js +17 -1
- package/dist/TextFieldBase.main.js.map +1 -1
- package/dist/TextFieldBase.mjs +18 -2
- package/dist/TextFieldBase.module.js +18 -2
- package/dist/TextFieldBase.module.js.map +1 -1
- 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/intlStrings.main.js +108 -0
- package/dist/intlStrings.main.js.map +1 -0
- package/dist/intlStrings.mjs +110 -0
- package/dist/intlStrings.module.js +110 -0
- package/dist/intlStrings.module.js.map +1 -0
- 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/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 +14 -13
- package/src/TextArea.tsx +8 -4
- package/src/TextField.tsx +8 -4
- package/src/TextFieldBase.tsx +18 -2
package/dist/sr-SP.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";AAAA,4BAAiB;IAAG,SAAS,CAAC,kBAAM,CAAC;AACrC","sources":["packages/@react-spectrum/textfield/intl/sr-SP.json"],"sourcesContent":["{\n \"valid\": \"Važeće\"\n}\n"],"names":[],"version":3,"file":"sr-SP.module.js.map"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,SAAS,CAAC,MAAM,CAAC;AACrC","sources":["packages/@react-spectrum/textfield/intl/sv-SE.json"],"sourcesContent":["{\n \"valid\": \"Giltig\"\n}\n"],"names":[],"version":3,"file":"sv-SE.main.js.map"}
|
package/dist/sv-SE.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";AAAA,4BAAiB;IAAG,SAAS,CAAC,MAAM,CAAC;AACrC","sources":["packages/@react-spectrum/textfield/intl/sv-SE.json"],"sourcesContent":["{\n \"valid\": \"Giltig\"\n}\n"],"names":[],"version":3,"file":"sv-SE.module.js.map"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,SAAS,CAAC,UAAO,CAAC;AACtC","sources":["packages/@react-spectrum/textfield/intl/tr-TR.json"],"sourcesContent":["{\n \"valid\": \"Geçerli\"\n}\n"],"names":[],"version":3,"file":"tr-TR.main.js.map"}
|
package/dist/tr-TR.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":";AAAA,4BAAiB;IAAG,SAAS,CAAC,UAAO,CAAC;AACtC","sources":["packages/@react-spectrum/textfield/intl/tr-TR.json"],"sourcesContent":["{\n \"valid\": \"Geçerli\"\n}\n"],"names":[],"version":3,"file":"tr-TR.module.js.map"}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;
|
|
1
|
+
{"mappings":";;;AA2BA,4BAA6B,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAChI,eAAe,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,oBAAoB,gBAAgB,CAAC,CAAC;IACnD,UAAU,EAAE,oBAAoB,gBAAgB,CAAC,GAAG,uBAAuB,mBAAmB,CAAC,CAAC;IAChG,gBAAgB,CAAC,EAAE,eAAe,WAAW,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,eAAe,WAAW,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,UAAU,gBAAgB,GAAG,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACpE,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,OAAO,MAAM,8IA2IX,CAAC;AChKH;;;;GAIG;AACH,OAAO,MAAM,yHAuEX,CAAC;AC9EH;;;;GAIG;AACH,OAAO,MAAM,wHAsBX,CAAC;AC7BH,YAAY,EAAC,sBAAsB,EAAE,qBAAqB,EAAC,MAAM,wBAAwB,CAAC","sources":["packages/@react-spectrum/textfield/src/packages/@react-spectrum/textfield/src/TextFieldBase.tsx","packages/@react-spectrum/textfield/src/packages/@react-spectrum/textfield/src/TextArea.tsx","packages/@react-spectrum/textfield/src/packages/@react-spectrum/textfield/src/TextField.tsx","packages/@react-spectrum/textfield/src/packages/@react-spectrum/textfield/src/index.ts","packages/@react-spectrum/textfield/src/index.ts"],"sourcesContent":[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\n/// <reference types=\"css-module-types\" />\n\nexport {TextArea} from './TextArea';\nexport {TextField} from './TextField';\nexport {TextFieldBase} from './TextFieldBase';\nexport type {SpectrumTextFieldProps, SpectrumTextAreaProps} from '@react-types/textfield';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,SAAS,CAAC,iDAAO,CAAC;AACtC","sources":["packages/@react-spectrum/textfield/intl/uk-UA.json"],"sourcesContent":["{\n \"valid\": \"Дійсний\"\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,SAAS,CAAC,iDAAO,CAAC;AACtC","sources":["packages/@react-spectrum/textfield/intl/uk-UA.json"],"sourcesContent":["{\n \"valid\": \"Дійсний\"\n}\n"],"names":[],"version":3,"file":"uk-UA.module.js.map"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,SAAS,CAAC,gBAAE,CAAC;AACjC","sources":["packages/@react-spectrum/textfield/intl/zh-CN.json"],"sourcesContent":["{\n \"valid\": \"有效\"\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,SAAS,CAAC,gBAAE,CAAC;AACjC","sources":["packages/@react-spectrum/textfield/intl/zh-CN.json"],"sourcesContent":["{\n \"valid\": \"有效\"\n}\n"],"names":[],"version":3,"file":"zh-CN.module.js.map"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"mappings":"AAAA,iBAAiB;IAAG,SAAS,CAAC,gBAAE,CAAC;AACjC","sources":["packages/@react-spectrum/textfield/intl/zh-TW.json"],"sourcesContent":["{\n \"valid\": \"有效\"\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,SAAS,CAAC,gBAAE,CAAC;AACjC","sources":["packages/@react-spectrum/textfield/intl/zh-TW.json"],"sourcesContent":["{\n \"valid\": \"有效\"\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/textfield",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.14.1",
|
|
4
4
|
"description": "Spectrum UI components in React",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -40,17 +40,18 @@
|
|
|
40
40
|
"url": "https://github.com/adobe/react-spectrum"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@react-aria/focus": "^3.
|
|
44
|
-
"@react-aria/
|
|
45
|
-
"@react-aria/
|
|
46
|
-
"@react-aria/
|
|
47
|
-
"@react-
|
|
48
|
-
"@react-spectrum/
|
|
49
|
-
"@react-spectrum/
|
|
50
|
-
"@react-
|
|
51
|
-
"@react-
|
|
52
|
-
"@react-types/
|
|
53
|
-
"@
|
|
43
|
+
"@react-aria/focus": "^3.21.1",
|
|
44
|
+
"@react-aria/i18n": "^3.12.12",
|
|
45
|
+
"@react-aria/interactions": "^3.25.5",
|
|
46
|
+
"@react-aria/textfield": "^3.18.1",
|
|
47
|
+
"@react-aria/utils": "^3.30.1",
|
|
48
|
+
"@react-spectrum/form": "^3.7.18",
|
|
49
|
+
"@react-spectrum/label": "^3.16.18",
|
|
50
|
+
"@react-spectrum/utils": "^3.12.8",
|
|
51
|
+
"@react-stately/utils": "^3.10.8",
|
|
52
|
+
"@react-types/shared": "^3.32.0",
|
|
53
|
+
"@react-types/textfield": "^3.12.5",
|
|
54
|
+
"@spectrum-icons/ui": "^3.6.19",
|
|
54
55
|
"@swc/helpers": "^0.5.0"
|
|
55
56
|
},
|
|
56
57
|
"devDependencies": {
|
|
@@ -65,5 +66,5 @@
|
|
|
65
66
|
"publishConfig": {
|
|
66
67
|
"access": "public"
|
|
67
68
|
},
|
|
68
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "2c58ed3ddd9be9100af9b1d0cfd137fcdc95ba2d"
|
|
69
70
|
}
|
package/src/TextArea.tsx
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import {chain, useLayoutEffect} from '@react-aria/utils';
|
|
14
|
-
import React, {Ref, useCallback, useRef} from 'react';
|
|
14
|
+
import React, {Ref, useCallback, useEffect, useRef} from 'react';
|
|
15
15
|
import {SpectrumTextAreaProps, SpectrumTextFieldBaseProps, TextFieldRef} from '@react-types/textfield';
|
|
16
16
|
import {TextFieldBase} from './TextFieldBase';
|
|
17
17
|
import {useControlledState} from '@react-stately/utils';
|
|
@@ -69,9 +69,13 @@ export const TextArea = React.forwardRef(function TextArea(props: SpectrumTextAr
|
|
|
69
69
|
}
|
|
70
70
|
}, [onHeightChange, inputValue, inputRef]);
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
let hasWarned = useRef(false);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
if (props.placeholder && !hasWarned.current && process.env.NODE_ENV !== 'production') {
|
|
75
|
+
console.warn('Placeholders are deprecated due to accessibility issues. Please use help text instead. See the docs for details: https://react-spectrum.adobe.com/react-spectrum/TextArea.html#help-text');
|
|
76
|
+
hasWarned.current = true;
|
|
77
|
+
}
|
|
78
|
+
}, [props.placeholder]);
|
|
75
79
|
|
|
76
80
|
let result = useTextField({
|
|
77
81
|
...props,
|
package/src/TextField.tsx
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* governing permissions and limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import React, {forwardRef, Ref, useRef} from 'react';
|
|
13
|
+
import React, {forwardRef, Ref, useEffect, useRef} from 'react';
|
|
14
14
|
import {SpectrumTextFieldProps, TextFieldRef} from '@react-types/textfield';
|
|
15
15
|
import {TextFieldBase} from './TextFieldBase';
|
|
16
16
|
import {useFormProps} from '@react-spectrum/form';
|
|
@@ -29,9 +29,13 @@ export const TextField = forwardRef(function TextField(props: SpectrumTextFieldP
|
|
|
29
29
|
let inputRef = useRef<HTMLInputElement>(null);
|
|
30
30
|
let result = useTextField(props, inputRef);
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
let hasWarned = useRef(false);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (props.placeholder && !hasWarned.current && process.env.NODE_ENV !== 'production') {
|
|
35
|
+
console.warn('Placeholders are deprecated due to accessibility issues. Please use help text instead. See the docs for details: https://react-spectrum.adobe.com/react-spectrum/TextField.html#help-text');
|
|
36
|
+
hasWarned.current = true;
|
|
37
|
+
}
|
|
38
|
+
}, [props.placeholder]);
|
|
35
39
|
|
|
36
40
|
return (
|
|
37
41
|
<TextFieldBase
|
package/src/TextFieldBase.tsx
CHANGED
|
@@ -14,13 +14,16 @@ import AlertMedium from '@spectrum-icons/ui/AlertMedium';
|
|
|
14
14
|
import CheckmarkMedium from '@spectrum-icons/ui/CheckmarkMedium';
|
|
15
15
|
import {classNames, createFocusableRef} from '@react-spectrum/utils';
|
|
16
16
|
import {Field} from '@react-spectrum/label';
|
|
17
|
-
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
import intlMessages from '../intl/*.json';
|
|
19
|
+
import {mergeProps, useId} from '@react-aria/utils';
|
|
18
20
|
import {PressEvents, RefObject, ValidationResult} from '@react-types/shared';
|
|
19
21
|
import React, {cloneElement, forwardRef, HTMLAttributes, InputHTMLAttributes, LabelHTMLAttributes, ReactElement, Ref, TextareaHTMLAttributes, useImperativeHandle, useRef} from 'react';
|
|
20
22
|
import {SpectrumTextFieldProps, TextFieldRef} from '@react-types/textfield';
|
|
21
23
|
import styles from '@adobe/spectrum-css-temp/components/textfield/vars.css';
|
|
22
24
|
import {useFocusRing} from '@react-aria/focus';
|
|
23
25
|
import {useHover} from '@react-aria/interactions';
|
|
26
|
+
import {useLocalizedStringFormatter} from '@react-aria/i18n';
|
|
24
27
|
|
|
25
28
|
interface TextFieldBaseProps extends Omit<SpectrumTextFieldProps, 'onChange' | 'validate'>, PressEvents, Partial<ValidationResult> {
|
|
26
29
|
wrapperChildren?: ReactElement | ReactElement[],
|
|
@@ -91,7 +94,11 @@ export const TextFieldBase = forwardRef(function TextFieldBase(props: TextFieldB
|
|
|
91
94
|
} as any);
|
|
92
95
|
}
|
|
93
96
|
|
|
94
|
-
let
|
|
97
|
+
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/textfield');
|
|
98
|
+
let validId = useId();
|
|
99
|
+
let validationIcon = isInvalid
|
|
100
|
+
? <AlertMedium />
|
|
101
|
+
: <CheckmarkMedium id={validId} aria-hidden aria-label={stringFormatter.format('valid')} />;
|
|
95
102
|
let validation = cloneElement(validationIcon, {
|
|
96
103
|
UNSAFE_className: classNames(
|
|
97
104
|
styles,
|
|
@@ -100,6 +107,15 @@ export const TextFieldBase = forwardRef(function TextFieldBase(props: TextFieldB
|
|
|
100
107
|
)
|
|
101
108
|
});
|
|
102
109
|
|
|
110
|
+
// Add validation icon IDREF to aria-describedby when validationState is valid
|
|
111
|
+
let inputPropsAriaDescribedBy = inputProps['aria-describedby'];
|
|
112
|
+
if (
|
|
113
|
+
!isInvalid && validationState === 'valid' && !isLoading && !isDisabled &&
|
|
114
|
+
(!inputPropsAriaDescribedBy || !inputPropsAriaDescribedBy.includes(validId))
|
|
115
|
+
) {
|
|
116
|
+
inputProps['aria-describedby'] = [inputPropsAriaDescribedBy, validId].join(' ').trim();
|
|
117
|
+
}
|
|
118
|
+
|
|
103
119
|
let {focusProps, isFocusVisible} = useFocusRing({
|
|
104
120
|
isTextInput: true,
|
|
105
121
|
autoFocus
|