chore: auto merge branches (#41588)

chore: merge feature into master
This commit is contained in:
github-actions[bot] 2023-04-01 15:04:49 +00:00 committed by GitHub
commit 787dd65c4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
140 changed files with 11183 additions and 2977 deletions

View File

@ -16,6 +16,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -61,6 +62,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -114,6 +116,7 @@ exports[`renders components/auto-complete/demo/certain-category.tsx extend conte
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -467,6 +470,7 @@ exports[`renders components/auto-complete/demo/custom.tsx extend context correct
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -540,6 +544,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -609,6 +614,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -756,6 +762,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -870,6 +877,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -944,6 +952,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1041,6 +1050,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1158,6 +1168,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1256,6 +1267,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1376,6 +1388,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1480,6 +1493,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1600,6 +1614,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1708,6 +1723,7 @@ exports[`renders components/auto-complete/demo/non-case-sensitive.tsx extend con
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1830,6 +1846,7 @@ exports[`renders components/auto-complete/demo/options.tsx extend context correc
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2058,6 +2075,7 @@ exports[`renders components/auto-complete/demo/status.tsx extend context correct
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2103,6 +2121,7 @@ exports[`renders components/auto-complete/demo/status.tsx extend context correct
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2155,6 +2174,7 @@ exports[`renders components/auto-complete/demo/uncertain-category.tsx extend con
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -16,6 +16,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -48,6 +49,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -88,6 +90,7 @@ exports[`renders components/auto-complete/demo/certain-category.tsx correctly 1`
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -150,6 +153,7 @@ exports[`renders components/auto-complete/demo/custom.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -210,6 +214,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -266,6 +271,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -355,6 +361,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -411,6 +418,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -472,6 +480,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -556,6 +565,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -615,6 +625,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -700,6 +711,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -762,6 +774,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -853,6 +866,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -915,6 +929,7 @@ exports[`renders components/auto-complete/demo/form-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1010,6 +1025,7 @@ exports[`renders components/auto-complete/demo/non-case-sensitive.tsx correctly
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1043,6 +1059,7 @@ exports[`renders components/auto-complete/demo/options.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1151,6 +1168,7 @@ exports[`renders components/auto-complete/demo/status.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1183,6 +1201,7 @@ exports[`renders components/auto-complete/demo/status.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1222,6 +1241,7 @@ exports[`renders components/auto-complete/demo/uncertain-category.tsx correctly
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -14,6 +14,7 @@ exports[`AutoComplete rtl render component should be rendered correctly in RTL d
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -20,6 +20,7 @@ exports[`renders components/calendar/demo/basic.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -466,6 +467,7 @@ exports[`renders components/calendar/demo/basic.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1603,6 +1605,7 @@ exports[`renders components/calendar/demo/card.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2049,6 +2052,7 @@ exports[`renders components/calendar/demo/card.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3248,6 +3252,7 @@ exports[`renders components/calendar/demo/customize-header.tsx extend context co
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3719,6 +3724,7 @@ exports[`renders components/calendar/demo/customize-header.tsx extend context co
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4817,6 +4823,7 @@ exports[`renders components/calendar/demo/notice-calendar.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -5263,6 +5270,7 @@ exports[`renders components/calendar/demo/notice-calendar.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6810,6 +6818,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -7256,6 +7265,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -20,6 +20,7 @@ exports[`renders components/calendar/demo/basic.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -79,6 +80,7 @@ exports[`renders components/calendar/demo/basic.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -965,6 +967,7 @@ exports[`renders components/calendar/demo/card.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1024,6 +1027,7 @@ exports[`renders components/calendar/demo/card.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1972,6 +1976,7 @@ exports[`renders components/calendar/demo/customize-header.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2036,6 +2041,7 @@ exports[`renders components/calendar/demo/customize-header.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2879,6 +2885,7 @@ exports[`renders components/calendar/demo/notice-calendar.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2938,6 +2945,7 @@ exports[`renders components/calendar/demo/notice-calendar.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -4234,6 +4242,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -4293,6 +4302,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -20,6 +20,7 @@ exports[`Calendar Calendar MonthSelect should display correct label 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -80,6 +81,7 @@ exports[`Calendar Calendar MonthSelect should display correct label 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -964,6 +966,7 @@ exports[`Calendar Calendar should support locale 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1024,6 +1027,7 @@ exports[`Calendar Calendar should support locale 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1908,6 +1912,7 @@ exports[`Calendar rtl render component should be rendered correctly in RTL direc
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1968,6 +1973,7 @@ exports[`Calendar rtl render component should be rendered correctly in RTL direc
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -10,7 +10,7 @@ import type {
import useMergedState from 'rc-util/lib/hooks/useMergedState';
import * as React from 'react';
import { ConfigContext } from '../config-provider';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import CalendarHeader from './Header';
import enUS from './locale/en_US';

View File

@ -0,0 +1,3 @@
import myMM from '../../date-picker/locale/my_MM';
export default myMM;

View File

@ -13,6 +13,7 @@ exports[`renders components/cascader/demo/basic.tsx extend context correctly 1`]
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -162,6 +163,7 @@ exports[`renders components/cascader/demo/change-on-select.tsx extend context co
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -309,6 +311,7 @@ exports[`renders components/cascader/demo/custom-dropdown.tsx extend context cor
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -471,6 +474,7 @@ exports[`renders components/cascader/demo/custom-render.tsx extend context corre
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -757,6 +761,7 @@ exports[`renders components/cascader/demo/default-value.tsx extend context corre
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -933,6 +938,7 @@ exports[`renders components/cascader/demo/disabled-option.tsx extend context cor
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1080,6 +1086,7 @@ exports[`renders components/cascader/demo/fields-name.tsx extend context correct
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1229,6 +1236,7 @@ exports[`renders components/cascader/demo/hover.tsx extend context correctly 1`]
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1376,6 +1384,7 @@ exports[`renders components/cascader/demo/lazy.tsx extend context correctly 1`]
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1532,6 +1541,7 @@ exports[`renders components/cascader/demo/multiple.tsx extend context correctly
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1784,6 +1794,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2089,6 +2100,7 @@ exports[`renders components/cascader/demo/search.tsx extend context correctly 1`
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2261,6 +2273,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2476,6 +2489,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2669,6 +2683,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2815,6 +2830,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2961,6 +2977,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3118,6 +3135,7 @@ exports[`renders components/cascader/demo/status.tsx extend context correctly 1`
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3260,6 +3278,7 @@ exports[`renders components/cascader/demo/status.tsx extend context correctly 1`
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3403,6 +3422,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3551,6 +3571,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3681,6 +3702,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3829,6 +3851,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -13,6 +13,7 @@ exports[`renders components/cascader/demo/basic.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -73,6 +74,7 @@ exports[`renders components/cascader/demo/change-on-select.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -131,6 +133,7 @@ exports[`renders components/cascader/demo/custom-dropdown.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -192,6 +195,7 @@ exports[`renders components/cascader/demo/custom-render.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -308,6 +312,7 @@ exports[`renders components/cascader/demo/default-value.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -395,6 +400,7 @@ exports[`renders components/cascader/demo/disabled-option.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -453,6 +459,7 @@ exports[`renders components/cascader/demo/fields-name.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -513,6 +520,7 @@ exports[`renders components/cascader/demo/hover.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -571,6 +579,7 @@ exports[`renders components/cascader/demo/lazy.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -638,6 +647,7 @@ exports[`renders components/cascader/demo/multiple.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -787,6 +797,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -914,6 +925,7 @@ exports[`renders components/cascader/demo/search.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -997,6 +1009,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1109,6 +1122,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1199,6 +1213,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1256,6 +1271,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1313,6 +1329,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1381,6 +1398,7 @@ exports[`renders components/cascader/demo/status.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1450,6 +1468,7 @@ exports[`renders components/cascader/demo/status.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1520,6 +1539,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1579,6 +1599,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1620,6 +1641,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1679,6 +1701,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -1617,6 +1617,7 @@ exports[`Cascader rtl render component should be rendered correctly in RTL direc
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1830,6 +1831,7 @@ exports[`Cascader support controlled mode 1`] = `
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -1,4 +1,5 @@
import classNames from 'classnames';
import type { CheckboxRef } from 'rc-checkbox';
import RcCheckbox from 'rc-checkbox';
import * as React from 'react';
import { ConfigContext } from '../config-provider';
@ -48,7 +49,7 @@ export interface CheckboxProps extends AbstractCheckboxProps<CheckboxChangeEvent
indeterminate?: boolean;
}
const InternalCheckbox: React.ForwardRefRenderFunction<HTMLInputElement, CheckboxProps> = (
const InternalCheckbox: React.ForwardRefRenderFunction<CheckboxRef, CheckboxProps> = (
{
prefixCls: customizePrefixCls,
className,

View File

@ -10,7 +10,6 @@ exports[`Checkbox rtl render component should be rendered correctly in RTL direc
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"

View File

@ -10,7 +10,6 @@ exports[`renders components/checkbox/demo/basic.tsx extend context correctly 1`]
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -34,7 +33,6 @@ Array [
aria-checked="mixed"
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -129,7 +127,6 @@ Array [
checked=""
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -177,7 +174,6 @@ exports[`renders components/checkbox/demo/debug-disable-popover.tsx extend conte
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -419,7 +415,6 @@ exports[`renders components/checkbox/demo/debug-line.tsx extend context correctl
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -444,7 +439,6 @@ Array [
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -463,7 +457,6 @@ Array [
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -482,7 +475,6 @@ Array [
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"

View File

@ -5,6 +5,7 @@ import Group from './Group';
export type { CheckboxChangeEvent, CheckboxProps } from './Checkbox';
export type { CheckboxGroupProps, CheckboxOptionType } from './Group';
export type { CheckboxRef } from 'rc-checkbox';
type CompoundedComponent = React.ForwardRefExoticComponent<
CheckboxProps & React.RefAttributes<HTMLInputElement>

View File

@ -962,6 +962,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -962,6 +962,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -364,6 +364,7 @@ exports[`ConfigProvider components AutoComplete configProvider 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -428,6 +429,7 @@ exports[`ConfigProvider components AutoComplete configProvider componentSize lar
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -459,6 +461,7 @@ exports[`ConfigProvider components AutoComplete configProvider componentSize mid
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -490,6 +493,7 @@ exports[`ConfigProvider components AutoComplete configProvider virtual and dropd
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -521,6 +525,7 @@ exports[`ConfigProvider components AutoComplete normal 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -552,6 +557,7 @@ exports[`ConfigProvider components AutoComplete prefixCls 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1587,6 +1593,7 @@ exports[`ConfigProvider components Calendar configProvider 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1647,6 +1654,7 @@ exports[`ConfigProvider components Calendar configProvider 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2528,6 +2536,7 @@ exports[`ConfigProvider components Calendar configProvider 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4173,6 +4182,7 @@ exports[`ConfigProvider components Calendar configProvider componentSize large 1
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4233,6 +4243,7 @@ exports[`ConfigProvider components Calendar configProvider componentSize large 1
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -5114,6 +5125,7 @@ exports[`ConfigProvider components Calendar configProvider componentSize large 1
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -5461,6 +5473,7 @@ exports[`ConfigProvider components Calendar configProvider componentSize middle
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -5521,6 +5534,7 @@ exports[`ConfigProvider components Calendar configProvider componentSize middle
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6402,6 +6416,7 @@ exports[`ConfigProvider components Calendar configProvider componentSize middle
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6749,6 +6764,7 @@ exports[`ConfigProvider components Calendar configProvider virtual and dropdownM
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6809,6 +6825,7 @@ exports[`ConfigProvider components Calendar configProvider virtual and dropdownM
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -7690,6 +7707,7 @@ exports[`ConfigProvider components Calendar configProvider virtual and dropdownM
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8037,6 +8055,7 @@ exports[`ConfigProvider components Calendar normal 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8097,6 +8116,7 @@ exports[`ConfigProvider components Calendar normal 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8978,6 +8998,7 @@ exports[`ConfigProvider components Calendar normal 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -9325,6 +9346,7 @@ exports[`ConfigProvider components Calendar prefixCls 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -9385,6 +9407,7 @@ exports[`ConfigProvider components Calendar prefixCls 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -10266,6 +10289,7 @@ exports[`ConfigProvider components Calendar prefixCls 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -11641,6 +11665,7 @@ exports[`ConfigProvider components Cascader configProvider 1`] = `
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -11755,6 +11780,7 @@ exports[`ConfigProvider components Cascader configProvider componentSize large 1
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -11811,6 +11837,7 @@ exports[`ConfigProvider components Cascader configProvider componentSize middle
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -11867,6 +11894,7 @@ exports[`ConfigProvider components Cascader configProvider virtual and dropdownM
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -11923,6 +11951,7 @@ exports[`ConfigProvider components Cascader normal 1`] = `
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -11979,6 +12008,7 @@ exports[`ConfigProvider components Cascader prefixCls 1`] = `
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -12035,7 +12065,6 @@ exports[`ConfigProvider components Checkbox configProvider 1`] = `
<input
class="config-checkbox-input"
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -12062,7 +12091,6 @@ exports[`ConfigProvider components Checkbox configProvider componentDisabled 1`]
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -12088,7 +12116,6 @@ exports[`ConfigProvider components Checkbox configProvider componentSize large 1
<input
class="config-checkbox-input"
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -12114,7 +12141,6 @@ exports[`ConfigProvider components Checkbox configProvider componentSize middle
<input
class="config-checkbox-input"
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -12140,7 +12166,6 @@ exports[`ConfigProvider components Checkbox configProvider virtual and dropdownM
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -12166,7 +12191,6 @@ exports[`ConfigProvider components Checkbox normal 1`] = `
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -12192,7 +12216,6 @@ exports[`ConfigProvider components Checkbox prefixCls 1`] = `
<input
class="prefix-Checkbox-input"
type="checkbox"
value=""
/>
<span
class="prefix-Checkbox-inner"
@ -21902,7 +21925,6 @@ exports[`ConfigProvider components Radio configProvider 1`] = `
checked=""
class="config-radio-input"
type="radio"
value=""
/>
<span
class="config-radio-inner"
@ -21926,7 +21948,6 @@ exports[`ConfigProvider components Radio configProvider 1`] = `
checked=""
class="config-radio-button-input"
type="radio"
value=""
/>
<span
class="config-radio-button-inner"
@ -21956,7 +21977,6 @@ exports[`ConfigProvider components Radio configProvider componentDisabled 1`] =
class="config-radio-input"
disabled=""
type="radio"
value=""
/>
<span
class="config-radio-inner"
@ -21981,7 +22001,6 @@ exports[`ConfigProvider components Radio configProvider componentDisabled 1`] =
class="config-radio-button-input"
disabled=""
type="radio"
value=""
/>
<span
class="config-radio-button-inner"
@ -22010,7 +22029,6 @@ exports[`ConfigProvider components Radio configProvider componentSize large 1`]
checked=""
class="config-radio-input"
type="radio"
value=""
/>
<span
class="config-radio-inner"
@ -22034,7 +22052,6 @@ exports[`ConfigProvider components Radio configProvider componentSize large 1`]
checked=""
class="config-radio-button-input"
type="radio"
value=""
/>
<span
class="config-radio-button-inner"
@ -22063,7 +22080,6 @@ exports[`ConfigProvider components Radio configProvider componentSize middle 1`]
checked=""
class="config-radio-input"
type="radio"
value=""
/>
<span
class="config-radio-inner"
@ -22087,7 +22103,6 @@ exports[`ConfigProvider components Radio configProvider componentSize middle 1`]
checked=""
class="config-radio-button-input"
type="radio"
value=""
/>
<span
class="config-radio-button-inner"
@ -22116,7 +22131,6 @@ exports[`ConfigProvider components Radio configProvider virtual and dropdownMatc
checked=""
class="ant-radio-input"
type="radio"
value=""
/>
<span
class="ant-radio-inner"
@ -22140,7 +22154,6 @@ exports[`ConfigProvider components Radio configProvider virtual and dropdownMatc
checked=""
class="ant-radio-button-input"
type="radio"
value=""
/>
<span
class="ant-radio-button-inner"
@ -22169,7 +22182,6 @@ exports[`ConfigProvider components Radio normal 1`] = `
checked=""
class="ant-radio-input"
type="radio"
value=""
/>
<span
class="ant-radio-inner"
@ -22193,7 +22205,6 @@ exports[`ConfigProvider components Radio normal 1`] = `
checked=""
class="ant-radio-button-input"
type="radio"
value=""
/>
<span
class="ant-radio-button-inner"
@ -22222,7 +22233,6 @@ exports[`ConfigProvider components Radio prefixCls 1`] = `
checked=""
class="prefix-Radio-input"
type="radio"
value=""
/>
<span
class="prefix-Radio-inner"
@ -22246,7 +22256,6 @@ exports[`ConfigProvider components Radio prefixCls 1`] = `
checked=""
class="prefix-Radio-button-input"
type="radio"
value=""
/>
<span
class="prefix-Radio-button-inner"
@ -26597,7 +26606,6 @@ exports[`ConfigProvider components Table configProvider 1`] = `
<input
class="config-checkbox-input"
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -26905,7 +26913,6 @@ exports[`ConfigProvider components Table configProvider componentDisabled 1`] =
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -27213,7 +27220,6 @@ exports[`ConfigProvider components Table configProvider componentSize large 1`]
<input
class="config-checkbox-input"
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -27520,7 +27526,6 @@ exports[`ConfigProvider components Table configProvider componentSize middle 1`]
<input
class="config-checkbox-input"
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -27827,7 +27832,6 @@ exports[`ConfigProvider components Table configProvider virtual and dropdownMatc
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -28134,7 +28138,6 @@ exports[`ConfigProvider components Table normal 1`] = `
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -28441,7 +28444,6 @@ exports[`ConfigProvider components Table prefixCls 1`] = `
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -38233,7 +38235,6 @@ exports[`ConfigProvider components Transfer configProvider 1`] = `
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -38393,7 +38394,6 @@ exports[`ConfigProvider components Transfer configProvider 1`] = `
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -38506,7 +38506,6 @@ exports[`ConfigProvider components Transfer configProvider componentDisabled 1`]
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -38666,7 +38665,6 @@ exports[`ConfigProvider components Transfer configProvider componentDisabled 1`]
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -38779,7 +38777,6 @@ exports[`ConfigProvider components Transfer configProvider componentSize large 1
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -38939,7 +38936,6 @@ exports[`ConfigProvider components Transfer configProvider componentSize large 1
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -39052,7 +39048,6 @@ exports[`ConfigProvider components Transfer configProvider componentSize middle
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -39212,7 +39207,6 @@ exports[`ConfigProvider components Transfer configProvider componentSize middle
class="config-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="config-checkbox-inner"
@ -39325,7 +39319,6 @@ exports[`ConfigProvider components Transfer configProvider virtual and dropdownM
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -39485,7 +39478,6 @@ exports[`ConfigProvider components Transfer configProvider virtual and dropdownM
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -39598,7 +39590,6 @@ exports[`ConfigProvider components Transfer normal 1`] = `
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -39758,7 +39749,6 @@ exports[`ConfigProvider components Transfer normal 1`] = `
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -39871,7 +39861,6 @@ exports[`ConfigProvider components Transfer prefixCls 1`] = `
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -40031,7 +40020,6 @@ exports[`ConfigProvider components Transfer prefixCls 1`] = `
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"

View File

@ -57657,6 +57657,7 @@ exports[`renders components/date-picker/demo/switchable.tsx extend context corre
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -4481,6 +4481,7 @@ exports[`renders components/date-picker/demo/switchable.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -5,7 +5,6 @@ import React from 'react';
import DatePicker from '..';
import ConfigProvider from '../../config-provider';
import type { Locale } from '../../locale';
import LocaleProvider from '../../locale';
import locale from '../../locale/zh_CN';
import jaJP from '../../locale/ja_JP';
import zhTW from '../locale/zh_TW';
@ -31,9 +30,9 @@ describe('Picker format by locale', () => {
function matchPicker(name: string, Picker: typeof MonthPicker | typeof WeekPicker, props?: any) {
it(name, () => {
const { container } = render(
<LocaleProvider locale={myLocale as Locale}>
<ConfigProvider locale={myLocale as Locale}>
<Picker value={date} {...props} />
</LocaleProvider>,
</ConfigProvider>,
);
expect(container.firstChild).toMatchSnapshot();
});

View File

@ -13,7 +13,7 @@ import { ConfigContext } from '../../config-provider';
import DisabledContext from '../../config-provider/DisabledContext';
import SizeContext from '../../config-provider/SizeContext';
import { FormItemInputContext } from '../../form/context';
import useLocale from '../../locale/useLocale';
import { useLocale } from '../../locale';
import { useCompactItemContext } from '../../space/Compact';
import { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';
import warning from '../../_util/warning';

View File

@ -13,7 +13,7 @@ import { ConfigContext } from '../../config-provider';
import DisabledContext from '../../config-provider/DisabledContext';
import SizeContext from '../../config-provider/SizeContext';
import { FormItemInputContext } from '../../form/context';
import useLocale from '../../locale/useLocale';
import { useLocale } from '../../locale';
import { useCompactItemContext } from '../../space/Compact';
import type { InputStatus } from '../../_util/statusUtils';
import { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';

View File

@ -0,0 +1,28 @@
import CalendarLocale from 'rc-picker/lib/locale/my_MM';
import TimePickerLocale from '../../time-picker/locale/my_MM';
import type { PickerLocale } from '../generatePicker';
// Merge into a locale object
const locale: PickerLocale = {
lang: {
placeholder: 'ရက်စွဲကို ရွေးပါ။',
yearPlaceholder: 'နှစ်ကို ရွေးပါ။',
quarterPlaceholder: 'လေးပုံတစ်ပုံကို ရွေးပါ။',
monthPlaceholder: 'လကိုရွေးပါ။',
weekPlaceholder: 'ရက်သတ္တပတ်ကို ရွေးပါ။',
rangePlaceholder: ['စတင်သည့်ရက်စွဲ', 'ကုန်ဆုံးရက်'],
rangeYearPlaceholder: ['စတင်သည့်နှစ်', 'နှစ်ကုန်'],
rangeQuarterPlaceholder: ['လေးပုံတစ်ပုံကို စတင်ပါ။', 'အဆုံးသုံးလ'],
rangeMonthPlaceholder: ['စတင်လ', 'လကုန်'],
rangeWeekPlaceholder: ['ရက်သတ္တပတ်စတင်ပါ။', 'သီတင်းပတ်ကုန်'],
...CalendarLocale,
},
timePickerLocale: {
...TimePickerLocale,
},
};
// All settings at:
// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json
export default locale;

View File

@ -6,7 +6,15 @@ import type { PickerLocale } from '../generatePicker';
const locale: PickerLocale = {
lang: {
placeholder: 'Chọn thời điểm',
yearPlaceholder: 'Chọn năm',
quarterPlaceholder: 'Chọn quý',
monthPlaceholder: 'Chọn tháng',
weekPlaceholder: 'Chọn tuần',
rangePlaceholder: ['Ngày bắt đầu', 'Ngày kết thúc'],
rangeYearPlaceholder: ['Năm bắt đầu', 'Năm kết thúc'],
rangeQuarterPlaceholder: ['Quý bắt đầu', 'Quý kết thúc'],
rangeMonthPlaceholder: ['Tháng bắt đầu', 'Tháng kết thúc'],
rangeWeekPlaceholder: ['Tuần bắt đầu', 'Tuần kết thúc'],
...CalendarLocale,
},
timePickerLocale: {

View File

@ -725,6 +725,7 @@ Array [
aria-activedescendant="owner_list_0"
aria-autocomplete="list"
aria-controls="owner_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="owner_list"
aria-required="true"
@ -902,6 +903,7 @@ Array [
aria-activedescendant="type_list_0"
aria-autocomplete="list"
aria-controls="type_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="type_list"
aria-required="true"
@ -1084,6 +1086,7 @@ Array [
aria-activedescendant="approver_list_0"
aria-autocomplete="list"
aria-controls="approver_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="approver_list"
aria-required="true"

View File

@ -135,6 +135,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -245,6 +246,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -354,6 +356,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -481,7 +484,6 @@ Array [
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -733,7 +735,6 @@ Array [
class="ant-checkbox-input"
disabled=""
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"

View File

@ -135,6 +135,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -204,6 +205,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -273,6 +275,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -1,7 +1,7 @@
import classNames from 'classnames';
import * as React from 'react';
import { ConfigContext } from '../config-provider';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import DefaultEmptyImg from './empty';
import SimpleEmptyImg from './simple';

View File

@ -1,13 +1,16 @@
import classNames from 'classnames';
import omit from 'rc-util/lib/omit';
import React, { useContext, useMemo } from 'react';
import warning from '../_util/warning';
import Badge from '../badge';
import type { ConfigConsumerProps } from '../config-provider';
import { ConfigContext } from '../config-provider';
import Tooltip from '../tooltip';
import warning from '../_util/warning';
import FloatButtonGroupContext from './context';
import Content from './FloatButtonContent';
import FloatButtonGroupContext from './context';
import type {
CompoundedComponent,
FloatButtonBadgeProps,
FloatButtonContentProps,
FloatButtonProps,
FloatButtonShape,
@ -29,6 +32,7 @@ const FloatButton: React.ForwardRefRenderFunction<
icon,
description,
tooltip,
badge = {},
...restProps
} = props;
const { getPrefixCls, direction } = useContext<ConfigConsumerProps>(ConfigContext);
@ -50,16 +54,24 @@ const FloatButton: React.ForwardRefRenderFunction<
},
);
// 虽然在 ts 中已经 omit 过了,但是为了防止多余的属性被透传进来,这里再 omit 一遍,以防万一
const badgeProps = useMemo<FloatButtonBadgeProps>(
() => omit(badge, ['title', 'children', 'status', 'text'] as any[]),
[badge],
);
const contentProps = useMemo<FloatButtonContentProps>(
() => ({ prefixCls, description, icon, type }),
[prefixCls, description, icon, type],
);
const buttonNode = (
const buttonNode: React.ReactNode = (
<Tooltip title={tooltip} placement={direction === 'rtl' ? 'right' : 'left'}>
<div className={`${prefixCls}-body`}>
<Content {...contentProps} />
</div>
<Badge {...badgeProps}>
<div className={`${prefixCls}-body`}>
<Content {...contentProps} />
</div>
</Badge>
</Tooltip>
);

View File

@ -8,109 +8,121 @@ exports[`FloatButtonGroup should correct render 1`] = `
class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
type="button"
>
<div
class="ant-float-btn-body"
<span
class="ant-badge"
>
<div
class="ant-float-btn-content"
class="ant-float-btn-body"
>
<div
class="ant-float-btn-icon"
class="ant-float-btn-content"
>
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
<div
class="ant-float-btn-icon"
>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
</div>
</div>
</div>
</div>
</span>
</button>
<button
class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
type="button"
>
<div
class="ant-float-btn-body"
<span
class="ant-badge"
>
<div
class="ant-float-btn-content"
class="ant-float-btn-body"
>
<div
class="ant-float-btn-icon"
class="ant-float-btn-content"
>
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
<div
class="ant-float-btn-icon"
>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
</div>
</div>
</div>
</div>
</span>
</button>
<button
class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
type="button"
>
<div
class="ant-float-btn-body"
<span
class="ant-badge"
>
<div
class="ant-float-btn-content"
class="ant-float-btn-body"
>
<div
class="ant-float-btn-icon"
class="ant-float-btn-content"
>
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
<div
class="ant-float-btn-icon"
>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
</div>
</div>
</div>
</div>
</span>
</button>
</div>
`;

View File

@ -5,37 +5,41 @@ exports[`FloatButton rtl render component should be rendered correctly in RTL di
class="ant-float-btn ant-float-btn-default ant-float-btn-circle ant-float-btn-rtl"
type="button"
>
<div
class="ant-float-btn-body"
<span
class="ant-badge ant-badge-rtl"
>
<div
class="ant-float-btn-content"
class="ant-float-btn-body"
>
<div
class="ant-float-btn-icon"
class="ant-float-btn-content"
>
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
<div
class="ant-float-btn-icon"
>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
</div>
</div>
</div>
</div>
</span>
</button>
`;
@ -44,36 +48,40 @@ exports[`FloatButton should correct render 1`] = `
class="ant-float-btn ant-float-btn-default ant-float-btn-circle"
type="button"
>
<div
class="ant-float-btn-body"
<span
class="ant-badge"
>
<div
class="ant-float-btn-content"
class="ant-float-btn-body"
>
<div
class="ant-float-btn-icon"
class="ant-float-btn-content"
>
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
<div
class="ant-float-btn-icon"
>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
<span
aria-label="file-text"
class="anticon anticon-file-text"
role="img"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
<svg
aria-hidden="true"
data-icon="file-text"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"
/>
</svg>
</span>
</div>
</div>
</div>
</div>
</span>
</button>
`;

View File

@ -3,6 +3,7 @@ import FloatButton from '..';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import { fireEvent, render, waitFakeTimer } from '../../../tests/utils';
import getOffset from '../util';
describe('FloatButton', () => {
mountTest(FloatButton);
@ -62,4 +63,23 @@ describe('FloatButton', () => {
jest.clearAllTimers();
jest.useRealTimers();
});
it('getOffset should return 0 when radius is 0', () => {
const result1 = getOffset(0);
expect(result1).toBe(0);
const result2 = getOffset(1);
expect(result2).not.toBe(0);
});
it('support badge number', () => {
const { container } = render(<FloatButton badge={{ count: 10 }} />);
const badgeElement = container?.querySelector<HTMLSpanElement>('.ant-float-btn .ant-badge');
expect(badgeElement?.querySelector<HTMLElement>('.ant-badge-count')).toBeTruthy();
});
it('support badge dot', () => {
const { container } = render(<FloatButton badge={{ dot: true }} />);
const badgeElement = container?.querySelector<HTMLSpanElement>('.ant-float-btn .ant-badge');
expect(badgeElement?.querySelector<HTMLElement>('.ant-badge-dot')).toBeTruthy();
});
});

View File

@ -0,0 +1,7 @@
## zh-CN
调试使用。
## en-US
debug use.

View File

@ -0,0 +1,22 @@
import { ConfigProvider, FloatButton, Slider } from 'antd';
import type { AliasToken } from 'antd/es/theme/interface';
import React, { useState } from 'react';
const App: React.FC = () => {
const [radius, setRadius] = useState<number>(0);
const token: Partial<AliasToken> = {
borderRadius: radius,
};
return (
<>
<Slider min={0} max={20} style={{ margin: 16 }} onChange={setRadius} />
<ConfigProvider theme={{ token }}>
<FloatButton shape="square" badge={{ dot: true }} />
</ConfigProvider>
</>
);
};
export default App;

View File

@ -0,0 +1,7 @@
## zh-CN
右上角附带圆形徽标数字的悬浮按钮。
## en-US
FloatButton with Badge.

View File

@ -0,0 +1,20 @@
import { QuestionCircleOutlined } from '@ant-design/icons';
import { FloatButton } from 'antd';
import React from 'react';
const App: React.FC = () => (
<>
<FloatButton shape="circle" badge={{ dot: true }} style={{ right: 24 + 70 + 70 }} />
<FloatButton.Group shape="circle" style={{ right: 24 + 70 }}>
<FloatButton tooltip={<div>custom badge color</div>} badge={{ count: 5, color: 'blue' }} />
<FloatButton badge={{ count: 5 }} />
</FloatButton.Group>
<FloatButton.Group shape="circle">
<FloatButton badge={{ count: 12 }} icon={<QuestionCircleOutlined />} />
<FloatButton badge={{ count: 123, overflowCount: 999 }} />
<FloatButton.BackTop visibilityHeight={0} />
</FloatButton.Group>
</>
);
export default App;

View File

@ -1,11 +1,11 @@
import React from 'react';
import { CustomerServiceOutlined, QuestionCircleOutlined, SyncOutlined } from '@ant-design/icons';
import { FloatButton } from 'antd';
import React from 'react';
/** Test usage. Do not use in your production. */
const { _InternalPanelDoNotUseOrYouWillBeFired: InternalFloatButton } = FloatButton;
export default () => (
const App: React.FC = () => (
<div style={{ display: 'flex', columnGap: 16, alignItems: 'center' }}>
<InternalFloatButton backTop />
<InternalFloatButton icon={<CustomerServiceOutlined />} />
@ -18,32 +18,22 @@ export default () => (
<InternalFloatButton
shape="square"
items={[
{
icon: <QuestionCircleOutlined />,
},
{
icon: <CustomerServiceOutlined />,
},
{
icon: <SyncOutlined />,
},
{ icon: <QuestionCircleOutlined /> },
{ icon: <CustomerServiceOutlined /> },
{ icon: <SyncOutlined /> },
]}
/>
<InternalFloatButton
open
icon={<CustomerServiceOutlined />}
trigger="click"
open
items={[
{
icon: <QuestionCircleOutlined />,
},
{
icon: <CustomerServiceOutlined />,
},
{
icon: <SyncOutlined />,
},
{ icon: <QuestionCircleOutlined /> },
{ icon: <CustomerServiceOutlined /> },
{ icon: <SyncOutlined /> },
]}
/>
</div>
);
export default App;

View File

@ -26,6 +26,8 @@ FloatButton. Available since `5.0.0`.
<code src="./demo/group.tsx" iframe="360">FloatButton Group</code>
<code src="./demo/group-menu.tsx" iframe="360">Menu mode</code>
<code src="./demo/back-top.tsx" iframe="360">BackTop</code>
<code src="./demo/badge.tsx" iframe="360">badge</code>
<code src="./demo/badge-debug.tsx" iframe="360" debug>debug dot</code>
<code src="./demo/render-panel.tsx" debug>\_InternalPanelDoNotUseOrYouWillBeFired</code>
## API
@ -44,6 +46,7 @@ FloatButton. Available since `5.0.0`.
| onClick | Set the handler to handle `click` event | (event) => void | - | |
| href | The target of hyperlink | string | - | |
| target | Specifies where to display the linked URL | string | - | |
| badge | Attach Badge to FloatButton. `status` and other props related are not supported. | [BadgeProps](/components/badge#api) | - | 5.4.0 |
### FloatButton.Group

View File

@ -27,6 +27,8 @@ demo:
<code src="./demo/group.tsx" iframe="360">浮动按钮组</code>
<code src="./demo/group-menu.tsx" iframe="360">菜单模式</code>
<code src="./demo/back-top.tsx" iframe="360">回到顶部</code>
<code src="./demo/badge.tsx" iframe="360">徽标数</code>
<code src="./demo/badge-debug.tsx" iframe="360" debug>调试小圆点使用</code>
<code src="./demo/render-panel.tsx" debug>\_InternalPanelDoNotUseOrYouWillBeFired</code>
## API
@ -45,6 +47,7 @@ demo:
| onClick | 点击按钮时的回调 | (event) => void | - | |
| href | 点击跳转的地址,指定此属性 button 的行为和 a 链接一致 | string | - | |
| target | 相当于 a 标签的 target 属性href 存在时生效 | string | - | |
| badge | 带徽标数字的悬浮按钮(不支持 `status` 以及相关属性) | [BadgeProps](/components/badge-cn#api) | - | 5.4.0 |
### FloatButton.Group

View File

@ -1,7 +1,8 @@
import type React from 'react';
import type Group from './FloatButtonGroup';
import type BackTop from './BackTop';
import type { BadgeProps } from '../badge';
import type { TooltipProps } from '../tooltip';
import type BackTop from './BackTop';
import type Group from './FloatButtonGroup';
import type PurePanel from './PurePanel';
export type FloatButtonType = 'default' | 'primary';
@ -10,6 +11,8 @@ export type FloatButtonShape = 'circle' | 'square';
export type FloatButtonGroupTrigger = 'click' | 'hover';
export type FloatButtonBadgeProps = Omit<BadgeProps, 'status' | 'text' | 'title' | 'children'>;
export interface FloatButtonProps {
prefixCls?: string;
className?: string;
@ -22,6 +25,7 @@ export interface FloatButtonProps {
tooltip?: TooltipProps['title'];
href?: string;
target?: React.HTMLAttributeAnchorTarget;
badge?: FloatButtonBadgeProps;
onClick?: React.MouseEventHandler<HTMLElement>;
}

View File

@ -1,10 +1,11 @@
import type { CSSObject } from '@ant-design/cssinjs';
import { Keyframes } from '@ant-design/cssinjs';
import { resetComponent } from '../../style';
import { initFadeMotion } from '../../style/motion/fade';
import { initMotion } from '../../style/motion/motion';
import type { FullToken, GenerateStyle } from '../../theme/internal';
import { genComponentStyleHook, mergeToken } from '../../theme/internal';
import { initFadeMotion } from '../../style/motion/fade';
import { resetComponent } from '../../style';
import { initMotion } from '../../style/motion/motion';
import getOffset from '../util';
/** Component only token. Which will handle additional calculation of alias token */
export interface ComponentToken {
@ -18,6 +19,11 @@ type FloatButtonToken = FullToken<'FloatButton'> & {
floatButtonFontSize: number;
floatButtonSize: number;
floatButtonIconSize: number;
floatButtonBodySize: number;
floatButtonBodyPadding: number;
badgeOffset: number;
dotOffsetInCircle: number;
dotOffsetInSquare: number;
// Position
floatButtonInsetBlockEnd: number;
@ -33,20 +39,19 @@ const initFloatButtonGroupMotion = (token: FloatButtonToken) => {
transformOrigin: '0 0',
opacity: 0,
},
'100%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1,
},
});
const moveDownOut = new Keyframes('antFloatButtonMoveDownOut', {
'0%': {
transform: 'translate3d(0, 0, 0)',
transformOrigin: '0 0',
opacity: 1,
},
'100%': {
transform: `translate3d(0, ${floatButtonSize}px, 0)`,
transformOrigin: '0 0',
@ -69,7 +74,6 @@ const initFloatButtonGroupMotion = (token: FloatButtonToken) => {
opacity: 0,
animationTimingFunction: motionEaseInOutCirc,
},
[`&${groupPrefixCls}-wrap-leave`]: {
animationTimingFunction: motionEaseInOutCirc,
},
@ -80,7 +84,16 @@ const initFloatButtonGroupMotion = (token: FloatButtonToken) => {
// ============================== Group ==============================
const floatButtonGroupStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token) => {
const { componentCls, floatButtonSize, margin, borderRadiusLG } = token;
const {
antCls,
componentCls,
floatButtonSize,
margin,
borderRadiusLG,
borderRadiusSM,
badgeOffset,
floatButtonBodyPadding,
} = token;
const groupPrefixCls = `${componentCls}-group`;
return {
[groupPrefixCls]: {
@ -116,6 +129,7 @@ const floatButtonGroupStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token
[`${componentCls}-body`]: {
width: floatButtonSize,
height: floatButtonSize,
borderRadius: '50%',
},
},
},
@ -134,17 +148,22 @@ const floatButtonGroupStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token
'&:not(:last-child)': {
borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,
},
[`${antCls}-badge`]: {
[`${antCls}-badge-count`]: {
top: -(floatButtonBodyPadding + badgeOffset),
insetInlineEnd: -(floatButtonBodyPadding + badgeOffset),
},
},
},
[`${groupPrefixCls}-wrap`]: {
display: 'block',
borderRadius: borderRadiusLG,
boxShadow: token.boxShadowSecondary,
overflow: 'hidden',
[`${componentCls}-square`]: {
boxShadow: 'none',
marginTop: 0,
borderRadius: 0,
padding: token.paddingXXS,
padding: floatButtonBodyPadding,
'&:first-child': {
borderStartStartRadius: borderRadiusLG,
borderStartEndRadius: borderRadiusLG,
@ -157,13 +176,12 @@ const floatButtonGroupStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token
borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,
},
[`${componentCls}-body`]: {
width: floatButtonSize - token.paddingXXS * 2,
height: floatButtonSize - token.paddingXXS * 2,
width: token.floatButtonBodySize,
height: token.floatButtonBodySize,
},
},
},
},
[`${groupPrefixCls}-circle-shadow`]: {
boxShadow: 'none',
},
@ -171,10 +189,11 @@ const floatButtonGroupStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token
boxShadow: token.boxShadowSecondary,
[`${componentCls}-square`]: {
boxShadow: 'none',
padding: token.paddingXXS,
padding: floatButtonBodyPadding,
[`${componentCls}-body`]: {
width: floatButtonSize - token.paddingXXS * 2,
height: floatButtonSize - token.paddingXXS * 2,
width: token.floatButtonBodySize,
height: token.floatButtonBodySize,
borderRadius: borderRadiusSM,
},
},
},
@ -183,14 +202,23 @@ const floatButtonGroupStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token
// ============================== Shared ==============================
const sharedFloatButtonStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token) => {
const { componentCls, floatButtonIconSize, floatButtonSize, borderRadiusLG } = token;
const {
antCls,
componentCls,
floatButtonBodyPadding,
floatButtonIconSize,
floatButtonSize,
borderRadiusLG,
badgeOffset,
dotOffsetInSquare,
dotOffsetInCircle,
} = token;
return {
[componentCls]: {
...resetComponent(token),
border: 'none',
position: 'fixed',
cursor: 'pointer',
overflow: 'hidden',
zIndex: 99,
display: 'block',
justifyContent: 'center',
@ -200,17 +228,24 @@ const sharedFloatButtonStyle: GenerateStyle<FloatButtonToken, CSSObject> = (toke
insetInlineEnd: token.floatButtonInsetInlineEnd,
insetBlockEnd: token.floatButtonInsetBlockEnd,
boxShadow: token.boxShadowSecondary,
// Pure Panel
'&-pure': {
position: 'relative',
inset: 'auto',
},
'&:empty': {
display: 'none',
},
[`${antCls}-badge`]: {
width: '100%',
height: '100%',
[`${antCls}-badge-count`]: {
transform: 'translate(0, 0)',
transformOrigin: 'center',
top: -badgeOffset,
insetInlineEnd: -badgeOffset,
},
},
[`${componentCls}-body`]: {
width: '100%',
height: '100%',
@ -226,7 +261,7 @@ const sharedFloatButtonStyle: GenerateStyle<FloatButtonToken, CSSObject> = (toke
flexDirection: 'column',
justifyContent: 'center',
alignItems: 'center',
padding: `2px 4px`,
padding: `${floatButtonBodyPadding / 2}px ${floatButtonBodyPadding}px`,
[`${componentCls}-icon`]: {
textAlign: 'center',
margin: 'auto',
@ -237,12 +272,19 @@ const sharedFloatButtonStyle: GenerateStyle<FloatButtonToken, CSSObject> = (toke
},
},
},
[`${componentCls}-rtl`]: {
direction: 'rtl',
},
[`${componentCls}-circle`]: {
height: floatButtonSize,
borderRadius: '50%',
[`${antCls}-badge`]: {
[`${antCls}-badge-dot`]: {
top: dotOffsetInCircle,
insetInlineEnd: dotOffsetInCircle,
},
},
[`${componentCls}-body`]: {
borderRadius: '50%',
},
@ -251,9 +293,15 @@ const sharedFloatButtonStyle: GenerateStyle<FloatButtonToken, CSSObject> = (toke
height: 'auto',
minHeight: floatButtonSize,
borderRadius: borderRadiusLG,
[`${antCls}-badge`]: {
[`${antCls}-badge-dot`]: {
top: dotOffsetInSquare,
insetInlineEnd: dotOffsetInSquare,
},
},
[`${componentCls}-body`]: {
height: 'auto',
borderRadius: token.borderRadiusSM,
borderRadius: borderRadiusLG,
},
},
[`${componentCls}-default`]: {
@ -315,7 +363,10 @@ export default genComponentStyleHook<'FloatButton'>('FloatButton', (token) => {
fontSize,
fontSizeIcon,
controlItemBgHover,
paddingXXS,
borderRadiusLG,
} = token;
const floatButtonToken = mergeToken<FloatButtonToken>(token, {
floatButtonBackgroundColor: colorBgElevated,
floatButtonColor: colorTextLightSolid,
@ -323,10 +374,16 @@ export default genComponentStyleHook<'FloatButton'>('FloatButton', (token) => {
floatButtonFontSize: fontSize,
floatButtonIconSize: fontSizeIcon * 1.5,
floatButtonSize: controlHeightLG,
floatButtonInsetBlockEnd: marginXXL,
floatButtonInsetInlineEnd: marginLG,
floatButtonBodySize: controlHeightLG - paddingXXS * 2,
// 这里的 paddingXXS 是简写,完整逻辑是 (controlHeightLG - (controlHeightLG - paddingXXS * 2)) / 2,
floatButtonBodyPadding: paddingXXS,
badgeOffset: paddingXXS * 1.5,
dotOffsetInCircle: getOffset(controlHeightLG / 2),
dotOffsetInSquare: getOffset(borderRadiusLG),
});
return [
floatButtonGroupStyle(floatButtonToken),
sharedFloatButtonStyle(floatButtonToken),

View File

@ -0,0 +1,10 @@
const getOffset = (radius: number): number => {
if (radius === 0) {
return 0;
}
// 如果要考虑通用性,这里应该用三角函数 Math.sin(45)
// 但是这个场景比较特殊,始终是等腰直角三角形,所以直接用 Math.sqrt() 开方即可
return radius - Math.sqrt(radius ** 2 / 2);
};
export default getOffset;

View File

@ -126,6 +126,8 @@ export default function ItemHolder(props: ItemHolderProps) {
return {
status: mergedValidateStatus,
errors,
warnings,
hasFeedback,
feedbackIcon,
isFormItemInput: true,

View File

@ -4,7 +4,7 @@ import * as React from 'react';
import type { ColProps } from '../grid/col';
import Col from '../grid/col';
import defaultLocale from '../locale/en_US';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import type { TooltipProps } from '../tooltip';
import Tooltip from '../tooltip';
import type { FormContextProps } from './context';

View File

@ -99,6 +99,7 @@ exports[`renders components/form/demo/advanced-search.tsx extend context correct
aria-activedescendant="advanced_search_field-1_list_0"
aria-autocomplete="list"
aria-controls="advanced_search_field-1_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="advanced_search_field-1_list"
aria-required="true"
@ -365,6 +366,7 @@ exports[`renders components/form/demo/advanced-search.tsx extend context correct
aria-activedescendant="advanced_search_field-4_list_0"
aria-autocomplete="list"
aria-controls="advanced_search_field-4_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="advanced_search_field-4_list"
aria-required="true"
@ -743,7 +745,6 @@ exports[`renders components/form/demo/basic.tsx extend context correctly 1`] = `
class="ant-checkbox-input"
id="basic_remember"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -998,6 +999,7 @@ Array [
aria-activedescendant="basic_select_list_0"
aria-autocomplete="list"
aria-controls="basic_select_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="basic_select_list"
autocomplete="off"
@ -1427,6 +1429,7 @@ Array [
aria-activedescendant="select_list_0"
aria-autocomplete="list"
aria-controls="select_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="select_list"
autocomplete="off"
@ -1710,6 +1713,7 @@ exports[`renders components/form/demo/control-hooks.tsx extend context correctly
aria-activedescendant="control-hooks_gender_list_0"
aria-autocomplete="list"
aria-controls="control-hooks_gender_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="control-hooks_gender_list"
aria-required="true"
@ -1990,6 +1994,7 @@ exports[`renders components/form/demo/control-ref.tsx extend context correctly 1
aria-activedescendant="control-ref_gender_list_0"
aria-autocomplete="list"
aria-controls="control-ref_gender_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="control-ref_gender_list"
aria-required="true"
@ -2238,6 +2243,7 @@ exports[`renders components/form/demo/customized-form-controls.tsx extend contex
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2414,7 +2420,6 @@ Array [
checked=""
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -2465,7 +2470,6 @@ Array [
disabled=""
id="disabled"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -6163,6 +6167,7 @@ exports[`renders components/form/demo/dynamic-form-items-complex.tsx extend cont
aria-activedescendant="dynamic_form_complex_area_list_0"
aria-autocomplete="list"
aria-controls="dynamic_form_complex_area_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="dynamic_form_complex_area_list"
aria-required="true"
@ -6605,7 +6610,6 @@ exports[`renders components/form/demo/dynamic-rule.tsx extend context correctly
<input
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -8022,7 +8026,6 @@ exports[`renders components/form/demo/normal-login.tsx extend context correctly
class="ant-checkbox-input"
id="normal_login_remember"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -8468,6 +8471,7 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
<input
aria-autocomplete="list"
aria-controls="register_residence_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_residence_list"
aria-required="true"
@ -8685,6 +8689,7 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
aria-activedescendant="register_prefix_list_0"
aria-autocomplete="list"
aria-controls="register_prefix_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_prefix_list"
autocomplete="off"
@ -8952,6 +8957,7 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
aria-activedescendant="register_suffix_list_0"
aria-autocomplete="list"
aria-controls="register_suffix_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_suffix_list"
autocomplete="off"
@ -9124,6 +9130,7 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
aria-activedescendant="register_website_list_-1"
aria-autocomplete="list"
aria-controls="register_website_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_website_list"
aria-required="true"
@ -9185,8 +9192,8 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
<div
class="ant-form-item-control-input-content"
>
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
>
<textarea
@ -9195,11 +9202,15 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
id="register_intro"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>
</span>
</div>
</div>
</div>
@ -9245,6 +9256,7 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
aria-activedescendant="register_gender_list_0"
aria-autocomplete="list"
aria-controls="register_gender_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_gender_list"
aria-required="true"
@ -9484,7 +9496,6 @@ exports[`renders components/form/demo/register.tsx extend context correctly 1`]
class="ant-checkbox-input"
id="register_agreement"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"
@ -10004,6 +10015,7 @@ exports[`renders components/form/demo/size.tsx extend context correctly 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -10145,6 +10157,7 @@ exports[`renders components/form/demo/size.tsx extend context correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -10326,6 +10339,7 @@ exports[`renders components/form/demo/size.tsx extend context correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -19081,6 +19095,7 @@ exports[`renders components/form/demo/validate-other.tsx extend context correctl
aria-activedescendant="validate_other_select_list_0"
aria-autocomplete="list"
aria-controls="validate_other_select_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="validate_other_select_list"
aria-required="true"
@ -19261,6 +19276,7 @@ exports[`renders components/form/demo/validate-other.tsx extend context correctl
aria-activedescendant="validate_other_select-multiple_list_0"
aria-autocomplete="list"
aria-controls="validate_other_select-multiple_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="validate_other_select-multiple_list"
aria-required="true"
@ -24443,6 +24459,7 @@ exports[`renders components/form/demo/validate-static.tsx extend context correct
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -24651,6 +24668,7 @@ exports[`renders components/form/demo/validate-static.tsx extend context correct
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -24813,6 +24831,7 @@ exports[`renders components/form/demo/validate-static.tsx extend context correct
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -26800,23 +26819,46 @@ exports[`renders components/form/demo/validate-static.tsx extend context correct
<div
class="ant-form-item-control-input-content"
>
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-affix-wrapper-status-error ant-input-show-count ant-input-textarea-allow-clear"
data-count="0"
>
<textarea
class="ant-input ant-input-status-error"
/>
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-affix-wrapper-status-error"
class="ant-input-suffix"
>
<textarea
class="ant-input ant-input-status-error"
/>
<span
class="ant-input-suffix"
class="ant-input-clear-icon ant-input-clear-icon-hidden ant-input-clear-icon-has-suffix"
role="button"
tabindex="-1"
>
<span
class="ant-input-clear-icon ant-input-clear-icon-hidden ant-input-clear-icon-has-suffix"
role="button"
tabindex="-1"
aria-label="close-circle"
class="anticon anticon-close-circle"
role="img"
>
<svg
aria-hidden="true"
data-icon="close-circle"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"
/>
</svg>
</span>
</span>
<span
class="ant-input-textarea-suffix"
>
<span
class="ant-form-item-feedback-icon ant-form-item-feedback-icon-error"
>
<span
aria-label="close-circle"
@ -26838,41 +26880,14 @@ exports[`renders components/form/demo/validate-static.tsx extend context correct
</svg>
</span>
</span>
<span
class="ant-input-textarea-suffix"
>
<span
class="ant-form-item-feedback-icon ant-form-item-feedback-icon-error"
>
<span
aria-label="close-circle"
class="anticon anticon-close-circle"
role="img"
>
<svg
aria-hidden="true"
data-icon="close-circle"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"
/>
</svg>
</span>
</span>
</span>
</span>
<span
class="ant-input-data-count"
>
0
</span>
</span>
<span
class="ant-input-data-count"
>
0
</span>
</div>
</span>
</div>
</div>
<div

View File

@ -99,6 +99,7 @@ exports[`renders components/form/demo/advanced-search.tsx correctly 1`] = `
aria-activedescendant="advanced_search_field-1_list_0"
aria-autocomplete="list"
aria-controls="advanced_search_field-1_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="advanced_search_field-1_list"
aria-required="true"
@ -285,6 +286,7 @@ exports[`renders components/form/demo/advanced-search.tsx correctly 1`] = `
aria-activedescendant="advanced_search_field-4_list_0"
aria-autocomplete="list"
aria-controls="advanced_search_field-4_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="advanced_search_field-4_list"
aria-required="true"
@ -837,6 +839,7 @@ Array [
aria-activedescendant="basic_select_list_0"
aria-autocomplete="list"
aria-controls="basic_select_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="basic_select_list"
autocomplete="off"
@ -1161,6 +1164,7 @@ Array [
aria-activedescendant="select_list_0"
aria-autocomplete="list"
aria-controls="select_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="select_list"
autocomplete="off"
@ -1339,6 +1343,7 @@ exports[`renders components/form/demo/control-hooks.tsx correctly 1`] = `
aria-activedescendant="control-hooks_gender_list_0"
aria-autocomplete="list"
aria-controls="control-hooks_gender_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="control-hooks_gender_list"
aria-required="true"
@ -1522,6 +1527,7 @@ exports[`renders components/form/demo/control-ref.tsx correctly 1`] = `
aria-activedescendant="control-ref_gender_list_0"
aria-autocomplete="list"
aria-controls="control-ref_gender_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="control-ref_gender_list"
aria-required="true"
@ -1673,6 +1679,7 @@ exports[`renders components/form/demo/customized-form-controls.tsx correctly 1`]
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3477,6 +3484,7 @@ exports[`renders components/form/demo/dynamic-form-items-complex.tsx correctly 1
aria-activedescendant="dynamic_form_complex_area_list_0"
aria-autocomplete="list"
aria-controls="dynamic_form_complex_area_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="dynamic_form_complex_area_list"
aria-required="true"
@ -5716,6 +5724,7 @@ exports[`renders components/form/demo/register.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="register_residence_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_residence_list"
aria-required="true"
@ -5845,6 +5854,7 @@ exports[`renders components/form/demo/register.tsx correctly 1`] = `
aria-activedescendant="register_prefix_list_0"
aria-autocomplete="list"
aria-controls="register_prefix_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_prefix_list"
autocomplete="off"
@ -6032,6 +6042,7 @@ exports[`renders components/form/demo/register.tsx correctly 1`] = `
aria-activedescendant="register_suffix_list_0"
aria-autocomplete="list"
aria-controls="register_suffix_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_suffix_list"
autocomplete="off"
@ -6124,6 +6135,7 @@ exports[`renders components/form/demo/register.tsx correctly 1`] = `
aria-activedescendant="register_website_list_0"
aria-autocomplete="list"
aria-controls="register_website_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_website_list"
aria-required="true"
@ -6173,8 +6185,8 @@ exports[`renders components/form/demo/register.tsx correctly 1`] = `
<div
class="ant-form-item-control-input-content"
>
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
>
<textarea
@ -6183,11 +6195,15 @@ exports[`renders components/form/demo/register.tsx correctly 1`] = `
id="register_intro"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>
</span>
</div>
</div>
</div>
@ -6233,6 +6249,7 @@ exports[`renders components/form/demo/register.tsx correctly 1`] = `
aria-activedescendant="register_gender_list_0"
aria-autocomplete="list"
aria-controls="register_gender_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="register_gender_list"
aria-required="true"
@ -6856,6 +6873,7 @@ exports[`renders components/form/demo/size.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -6941,6 +6959,7 @@ exports[`renders components/form/demo/size.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -7026,6 +7045,7 @@ exports[`renders components/form/demo/size.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -8133,6 +8153,7 @@ exports[`renders components/form/demo/validate-other.tsx correctly 1`] = `
aria-activedescendant="validate_other_select_list_0"
aria-autocomplete="list"
aria-controls="validate_other_select_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="validate_other_select_list"
aria-required="true"
@ -8233,6 +8254,7 @@ exports[`renders components/form/demo/validate-other.tsx correctly 1`] = `
aria-activedescendant="validate_other_select-multiple_list_0"
aria-autocomplete="list"
aria-controls="validate_other_select-multiple_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="validate_other_select-multiple_list"
aria-required="true"
@ -10227,6 +10249,7 @@ exports[`renders components/form/demo/validate-static.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -10337,6 +10360,7 @@ exports[`renders components/form/demo/validate-static.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -10447,6 +10471,7 @@ exports[`renders components/form/demo/validate-static.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -11202,23 +11227,46 @@ exports[`renders components/form/demo/validate-static.tsx correctly 1`] = `
<div
class="ant-form-item-control-input-content"
>
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-affix-wrapper-status-error ant-input-show-count ant-input-textarea-allow-clear"
data-count="0"
>
<textarea
class="ant-input ant-input-status-error"
/>
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-affix-wrapper-status-error"
class="ant-input-suffix"
>
<textarea
class="ant-input ant-input-status-error"
/>
<span
class="ant-input-suffix"
class="ant-input-clear-icon ant-input-clear-icon-hidden ant-input-clear-icon-has-suffix"
role="button"
tabindex="-1"
>
<span
class="ant-input-clear-icon ant-input-clear-icon-hidden ant-input-clear-icon-has-suffix"
role="button"
tabindex="-1"
aria-label="close-circle"
class="anticon anticon-close-circle"
role="img"
>
<svg
aria-hidden="true"
data-icon="close-circle"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"
/>
</svg>
</span>
</span>
<span
class="ant-input-textarea-suffix"
>
<span
class="ant-form-item-feedback-icon ant-form-item-feedback-icon-error"
>
<span
aria-label="close-circle"
@ -11240,41 +11288,14 @@ exports[`renders components/form/demo/validate-static.tsx correctly 1`] = `
</svg>
</span>
</span>
<span
class="ant-input-textarea-suffix"
>
<span
class="ant-form-item-feedback-icon ant-form-item-feedback-icon-error"
>
<span
aria-label="close-circle"
class="anticon anticon-close-circle"
role="img"
>
<svg
aria-hidden="true"
data-icon="close-circle"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z"
/>
</svg>
</span>
</span>
</span>
</span>
<span
class="ant-input-data-count"
>
0
</span>
</span>
<span
class="ant-input-data-count"
>
0
</span>
</div>
</span>
</div>
</div>
</div>

View File

@ -138,7 +138,6 @@ exports[`Form form should support disabled 1`] = `
disabled=""
id="disabled"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"

View File

@ -1491,6 +1491,53 @@ describe('Form', () => {
);
});
it('Form.Item.useStatus should supports get error messages and warning messages', async () => {
const {
Item: { useStatus },
} = Form;
const ErrorItem: React.FC = () => {
const { errors } = useStatus();
return <div className="test-error">{errors[0]}</div>;
};
const WarningItem: React.FC = () => {
const { warnings } = useStatus();
return <div className="test-warning">{warnings[0]}</div>;
};
const Demo: React.FC = () => {
const [form] = Form.useForm();
return (
<Form form={form} name='test-form'>
<Form.Item name="error" rules={[{ required: true, message: 'This is a error message.' }]}>
<ErrorItem />
</Form.Item>
<Form.Item
name="warning"
rules={[{ required: true, message: 'This is a warning message.', warningOnly: true }]}
>
<WarningItem />
</Form.Item>
<Button onClick={() => form.submit()} className="submit-button">
Submit
</Button>
</Form>
);
};
const { container } = render(<Demo />);
fireEvent.click(container.querySelector('.submit-button')!);
await waitFakeTimer();
expect(container.querySelector('.test-error')).toHaveTextContent('This is a error message.');
expect(container.querySelector('.test-warning')).toHaveTextContent(
'This is a warning message.',
);
});
it('item customize margin', async () => {
const computeSpy = jest
.spyOn(window, 'getComputedStyle')

View File

@ -57,6 +57,8 @@ export const FormItemPrefixContext = React.createContext<FormItemPrefixContextPr
export interface FormItemStatusContextProps {
isFormItemInput?: boolean;
status?: ValidateStatus;
errors?: React.ReactNode[];
warnings?: React.ReactNode[];
hasFeedback?: boolean;
feedbackIcon?: ReactNode;
}

View File

@ -5,10 +5,12 @@ import warning from '../../_util/warning';
type UseFormItemStatus = () => {
status?: ValidateStatus;
errors: React.ReactNode[];
warnings: React.ReactNode[];
};
const useFormItemStatus: UseFormItemStatus = () => {
const { status } = useContext(FormItemInputContext);
const { status, errors = [], warnings = [] } = useContext(FormItemInputContext);
warning(
status !== undefined,
@ -16,7 +18,7 @@ const useFormItemStatus: UseFormItemStatus = () => {
'Form.Item.useStatus should be used under Form.Item component. For more information: https://u.ant.design/form-item-usestatus',
);
return { status };
return { status, errors, warnings };
};
// Only used for compatible package. Not promise this will work on future version.

View File

@ -354,9 +354,9 @@ export default () => {
### Form.useWatch
`type Form.useWatch = (namePath: NamePath, formInstance?: FormInstance): Value`
`type Form.useWatch = (namePath: NamePath, formInstance?: FormInstance | WatchOptions): Value`
Added in `4.20.0`. Watch the value of a field. You can use this to interactive with other hooks like `useSWR` to reduce develop cost:
Watch the value of a field. You can use this to interact with other hooks like `useSWR` to reduce development costs:
```tsx
const Demo = () => {
@ -375,16 +375,47 @@ const Demo = () => {
};
```
If your component is wrapped by `Form.Item`, you can omit the second argument, `Form.useWatch` will find the nearest `FormInstance` automatically.
By default `useWatch` only watches the registered field. If you want to watch the unregistered field, please use `preserve`:
```tsx
const Demo = () => {
const [form] = Form.useForm();
const age = Form.useWatch('age', { form, preserve: true });
console.log(age);
return (
<div>
<Button onClick={() => form.setFieldValue('age', 2)}>Update</Button>
<Form form={form}>
<Form.Item name="name">
<Input />
</Form.Item>
</Form>
</div>
);
};
```
### Form.Item.useStatus
`type Form.useFormItemStatus = (): { status: ValidateStatus | undefined }`
`type Form.Item.useStatus = (): { status: ValidateStatus | undefined, errors: ReactNode[], warnings: ReactNode[] }`
Added in `4.22.0`. Could be used to get validate status of Form.Item. If this hook is not used under Form.Item, `status` would be `undefined`:
Added in `4.22.0`. Could be used to get validate status of Form.Item. If this hook is not used under Form.Item, `status` would be `undefined`. Added `error` and `warnings` in `5.4.0`, Could be used to get error messages and warning messages of Form.Item:
```tsx
const CustomInput = ({ value, onChange }) => {
const { status } = Form.Item.useStatus();
return <input value={value} onChange={onChange} className={`custom-input-${status}`} />;
const { status, errors } = Form.Item.useStatus();
return (
<input
value={value}
onChange={onChange}
className={`custom-input-${status}`}
placeholder={(errors.length && errors[0]) || ''}
/>
);
};
export default () => (
@ -443,6 +474,13 @@ type Rule = RuleConfig | ((form: FormInstance) => RuleConfig);
| warningOnly | Warning only. Not block form submit | boolean | 4.17.0 |
| whitespace | Failed if only has whitespace, only work with `type: 'string'` rule | boolean | |
#### WatchOptions
| Name | Description | Type | Default | Version |
| --- | --- | --- | --- | --- |
| form | Form instance | FormInstance | Current form in context | 5.4.0 |
| preserve | Whether to watch the field which has no matched `Form.Item` | boolean | false | 5.4.0 |
## FAQ
### Custom validator not working

View File

@ -353,9 +353,9 @@ export default () => {
### Form.useWatch
`type Form.useWatch = (namePath: NamePath, formInstance?: FormInstance): Value`
`type Form.useWatch = (namePath: NamePath, formInstance?: FormInstance | WatchOptions): Value`
`4.20.0` 新增,用于直接获取 form 中字段对应的值。通过该 Hooks 可以与诸如 `useSWR` 进行联动从而降低维护成本:
用于直接获取 form 中字段对应的值。通过该 Hooks 可以与诸如 `useSWR` 进行联动从而降低维护成本:
```tsx
const Demo = () => {
@ -374,16 +374,47 @@ const Demo = () => {
};
```
如果你的组件被包裹在 `Form.Item` 内部,你可以省略第二个参数,`Form.useWatch` 会自动找到上层最近的 `FormInstance`
`useWatch` 默认只监听在 Form 中注册的字段,如果需要监听非注册字段,可以通过配置 `preserve` 进行监听:
```tsx
const Demo = () => {
const [form] = Form.useForm();
const age = Form.useWatch('age', { form, preserve: true });
console.log(age);
return (
<div>
<Button onClick={() => form.setFieldValue('age', 2)}>Update</Button>
<Form form={form}>
<Form.Item name="name">
<Input />
</Form.Item>
</Form>
</div>
);
};
```
### Form.Item.useStatus
`type Form.Item.useStatus = (): { status: ValidateStatus | undefined }`
`type Form.Item.useStatus = (): { status: ValidateStatus | undefined, errors: ReactNode[], warnings: ReactNode[] }`
`4.22.0` 新增,可用于获取当前 Form.Item 的校验状态,如果上层没有 Form.Item`status` 将会返回 `undefined`
`4.22.0` 新增,可用于获取当前 Form.Item 的校验状态,如果上层没有 Form.Item`status` 将会返回 `undefined`。`5.4.0` 新增 `errors``warnings`,可用于获取当前 Form.Item 的错误信息和警告信息
```tsx
const CustomInput = ({ value, onChange }) => {
const { status } = Form.Item.useStatus();
return <input value={value} onChange={onChange} className={`custom-input-${status}`} />;
const { status, errors } = Form.Item.useStatus();
return (
<input
value={value}
onChange={onChange}
className={`custom-input-${status}`}
placeholder={(errors.length && errors[0]) || ''}
/>
);
};
export default () => (
@ -442,6 +473,13 @@ type Rule = RuleConfig | ((form: FormInstance) => RuleConfig);
| warningOnly | 仅警告,不阻塞表单提交 | boolean | 4.17.0 |
| whitespace | 如果字段仅包含空格则校验不通过,只在 `type: 'string'` 时生效 | boolean | |
#### WatchOptions
| 名称 | 说明 | 类型 | 默认值 | 版本 |
| -------- | ------------------------------------- | ------------ | ---------------------- | ----- |
| form | 指定 Form 实例 | FormInstance | 当前 context 中的 Form | 5.4.0 |
| preserve | 是否监视没有对应的 `Form.Item` 的字段 | boolean | false | 5.4.0 |
## FAQ
### 自定义 validator 没有效果

View File

@ -9,6 +9,7 @@ import ZoomOutOutlined from '@ant-design/icons/ZoomOutOutlined';
import RcImage from 'rc-image';
import type { GroupConsumerProps } from 'rc-image/lib/PreviewGroup';
import * as React from 'react';
import classNames from 'classnames';
import { ConfigContext } from '../config-provider';
import { getTransitionName } from '../_util/motion';
@ -44,12 +45,13 @@ const InternalPreviewGroup: React.FC<GroupConsumerProps> = ({
return preview;
}
const _preview = typeof preview === 'object' ? preview : {};
const mergedRootClassName = classNames(hashId, _preview.rootClassName ?? '');
return {
..._preview,
transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),
maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),
rootClassName: hashId,
rootClassName: mergedRootClassName,
};
}, [preview]);

View File

@ -105,4 +105,15 @@ describe('Image', () => {
fireEvent.load(baseElement.querySelector('.ant-image-preview-img')!);
expect(onLoadCb).toHaveBeenCalled();
});
it('Preview should support rootClassName', () => {
const { container, baseElement } = render(
<Image.PreviewGroup preview={{ visible: true, rootClassName: 'test-root-class' }}>
<Image src={src} />
</Image.PreviewGroup>,
);
fireEvent.click(container.querySelector('.ant-image')!);
expect(baseElement.querySelector('.test-root-class')).toBeTruthy();
});
});

View File

@ -51,6 +51,7 @@ Previewable image.
src?: string; // v4.10.0
mask?: ReactNode; // v4.9.0
maskClassName?: string; // v4.11.0
rootClassName?: string; // only support after v5.4.0
current?: number; // v4.12.0 Only support PreviewGroup
countRender?: (current: number, total: number) => string // v4.20.0 Only support PreviewGroup
scaleStep?: number;

View File

@ -52,6 +52,7 @@ coverDark: https://mdn.alipayobjects.com/huamei_7uahnr/afts/img/A*LVQ3R5JjjJEAAA
src?: string; // v4.10.0
mask?: ReactNode; // v4.9.0
maskClassName?: string; // v4.11.0
rootClassName?: string; // v5.4.0后支持
current?: number; // v4.12.0 仅支持 PreviewGroup
countRender?: (current: number, total: number) => string // v4.20.0 仅支持 PreviewGroup
scaleStep?: number;

View File

@ -28,7 +28,7 @@ export type { CarouselProps } from './carousel';
export { default as Cascader } from './cascader';
export type { CascaderProps } from './cascader';
export { default as Checkbox } from './checkbox';
export type { CheckboxOptionType, CheckboxProps } from './checkbox';
export type { CheckboxOptionType, CheckboxProps, CheckboxRef } from './checkbox';
export { default as Col } from './col';
export type { ColProps } from './col';
export { default as Collapse } from './collapse';

View File

@ -128,6 +128,7 @@ exports[`renders components/input-number/demo/addon.tsx extend context correctly
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -347,6 +348,7 @@ exports[`renders components/input-number/demo/addon.tsx extend context correctly
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -647,6 +649,7 @@ exports[`renders components/input-number/demo/addon.tsx extend context correctly
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1688,7 +1691,6 @@ exports[`renders components/input-number/demo/keyboard.tsx extend context correc
checked=""
class="ant-checkbox-input"
type="checkbox"
value=""
/>
<span
class="ant-checkbox-inner"

View File

@ -128,6 +128,7 @@ exports[`renders components/input-number/demo/addon.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -266,6 +267,7 @@ exports[`renders components/input-number/demo/addon.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -451,6 +453,7 @@ exports[`renders components/input-number/demo/addon.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -58,7 +58,7 @@ export function triggerFocus(
export interface InputProps
extends Omit<
RcInputProps,
'wrapperClassName' | 'groupClassName' | 'inputClassName' | 'affixWrapperClassName'
'wrapperClassName' | 'groupClassName' | 'inputClassName' | 'affixWrapperClassName' | 'classes'
> {
rootClassName?: string;
size?: SizeType;
@ -84,6 +84,7 @@ const Input = forwardRef<InputRef, InputProps>((props, ref) => {
className,
rootClassName,
onChange,
classNames: classes,
...rest
} = props;
const { getPrefixCls, direction, input } = React.useContext(ConfigContext);
@ -187,7 +188,8 @@ const Input = forwardRef<InputRef, InputProps>((props, ref) => {
</NoCompactStyle>
)
}
classes={{
classNames={{
...classes,
input: classNames(
{
[`${prefixCls}-sm`]: mergedSize === 'small',
@ -196,8 +198,11 @@ const Input = forwardRef<InputRef, InputProps>((props, ref) => {
[`${prefixCls}-borderless`]: !bordered,
},
!inputHasPrefixSuffix && getStatusClassNames(prefixCls, mergedStatus),
classes?.input,
hashId,
),
}}
classes={{
affixWrapper: classNames(
{
[`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',

View File

@ -38,6 +38,8 @@ const TextArea = forwardRef<TextAreaRef, TextAreaProps>(
disabled: customDisabled,
status: customStatus,
allowClear,
showCount,
classNames: classes,
...rest
},
ref,
@ -97,16 +99,14 @@ const TextArea = forwardRef<TextAreaRef, TextAreaProps>(
[`${prefixCls}-affix-wrapper-borderless`]: !bordered,
[`${prefixCls}-affix-wrapper-sm`]: mergedSize === 'small',
[`${prefixCls}-affix-wrapper-lg`]: mergedSize === 'large',
[`${prefixCls}-textarea-show-count`]: showCount,
},
getStatusClassNames(`${prefixCls}-affix-wrapper`, mergedStatus),
hashId,
),
countWrapper: classNames(
`${prefixCls}-textarea`,
`${prefixCls}-textarea-show-count`,
{ [`${prefixCls}-textarea-show-count-rtl`]: direction === 'rtl' },
hashId,
),
}}
classNames={{
...classes,
textarea: classNames(
{
[`${prefixCls}-borderless`]: !bordered,
@ -115,12 +115,14 @@ const TextArea = forwardRef<TextAreaRef, TextAreaProps>(
},
getStatusClassNames(prefixCls, mergedStatus),
hashId,
classes?.textarea,
),
}}
prefixCls={prefixCls}
suffix={
hasFeedback && <span className={`${prefixCls}-textarea-suffix`}>{feedbackIcon}</span>
}
showCount={showCount}
ref={innerRef}
/>,
);

View File

@ -58,6 +58,7 @@ exports[`renders components/input/demo/addon.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -207,6 +208,7 @@ exports[`renders components/input/demo/addon.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -470,6 +472,7 @@ exports[`renders components/input/demo/addon.tsx extend context correctly 1`] =
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2819,6 +2822,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2993,6 +2997,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3106,6 +3111,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4737,6 +4743,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4882,7 +4889,7 @@ Array [
<br />,
<br />,
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -4986,7 +4993,7 @@ exports[`renders components/input/demo/borderless-debug.tsx extend context corre
placeholder="Unbordered"
/>
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-affix-wrapper-borderless"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-affix-wrapper-borderless ant-input-textarea-allow-clear"
>
<textarea
class="ant-input ant-input-borderless"
@ -5101,7 +5108,7 @@ exports[`renders components/input/demo/borderless-debug.tsx extend context corre
</span>
</span>
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
style="border: 2px solid #000;"
>
<textarea
@ -5310,6 +5317,7 @@ exports[`renders components/input/demo/compact-style.tsx extend context correctl
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -5838,6 +5846,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6144,6 +6153,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8169,6 +8179,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8309,6 +8320,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8454,6 +8466,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8622,6 +8635,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8763,6 +8777,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8870,6 +8885,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -9010,6 +9026,7 @@ exports[`renders components/input/demo/group.tsx extend context correctly 1`] =
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -9994,19 +10011,23 @@ Array [
</span>,
<br />,
<br />,
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
>
<textarea
class="ant-input"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>,
</span>,
]
`;
@ -10263,7 +10284,7 @@ Array [
The autoSize property applies to textarea nodes, and only the height changes automatically. In addition, autoSize can be set to an object, specifying the minimum number of rows and the maximum number of rows. The autoSize property applies to textarea nodes, and only the height changes automatically. In addition, autoSize can be set to an object, specifying the minimum number of rows and the maximum number of rows.
</textarea>,
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
style="width: 93px;"
>
<textarea
@ -10304,8 +10325,8 @@ Array [
exports[`renders components/input/demo/textarea-show-count.tsx extend context correctly 1`] = `
Array [
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
style="height: 120px; margin-bottom: 24px;"
>
@ -10314,13 +10335,17 @@ Array [
placeholder="can resize"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>,
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
</span>,
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
style="height: 120px; resize: none;"
>
@ -10330,11 +10355,15 @@ Array [
style="resize: none;"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>,
</span>,
]
`;

View File

@ -58,6 +58,7 @@ exports[`renders components/input/demo/addon.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -126,6 +127,7 @@ exports[`renders components/input/demo/addon.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -274,6 +276,7 @@ exports[`renders components/input/demo/addon.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -608,6 +611,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -667,6 +671,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -722,6 +727,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -971,6 +977,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1103,7 +1110,7 @@ Array [
<br />,
<br />,
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -1204,7 +1211,7 @@ exports[`renders components/input/demo/borderless-debug.tsx correctly 1`] = `
placeholder="Unbordered"
/>
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-affix-wrapper-borderless"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-affix-wrapper-borderless ant-input-textarea-allow-clear"
>
<textarea
class="ant-input ant-input-borderless"
@ -1319,7 +1326,7 @@ exports[`renders components/input/demo/borderless-debug.tsx correctly 1`] = `
</span>
</span>
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
style="border:2px solid #000"
>
<textarea
@ -1528,6 +1535,7 @@ exports[`renders components/input/demo/compact-style.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1956,6 +1964,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2181,6 +2190,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2468,6 +2478,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2527,6 +2538,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2591,6 +2603,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2678,6 +2691,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2738,6 +2752,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2773,6 +2788,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2832,6 +2848,7 @@ exports[`renders components/input/demo/group.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3707,19 +3724,23 @@ Array [
</span>,
<br />,
<br />,
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
>
<textarea
class="ant-input"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>,
</span>,
]
`;
@ -3976,7 +3997,7 @@ Array [
The autoSize property applies to textarea nodes, and only the height changes automatically. In addition, autoSize can be set to an object, specifying the minimum number of rows and the maximum number of rows. The autoSize property applies to textarea nodes, and only the height changes automatically. In addition, autoSize can be set to an object, specifying the minimum number of rows and the maximum number of rows.
</textarea>,
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
style="width:93px"
>
<textarea
@ -4017,8 +4038,8 @@ Array [
exports[`renders components/input/demo/textarea-show-count.tsx correctly 1`] = `
Array [
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
style="height:120px;margin-bottom:24px"
>
@ -4027,13 +4048,17 @@ Array [
placeholder="can resize"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>,
<div
class="ant-input-show-count ant-input-textarea ant-input-textarea-show-count"
</span>,
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0 / 100"
style="height:120px;resize:none"
>
@ -4043,11 +4068,15 @@ Array [
style="resize:none"
/>
<span
class="ant-input-data-count"
class="ant-input-suffix"
>
0 / 100
<span
class="ant-input-data-count"
>
0 / 100
</span>
</span>
</div>,
</span>,
]
`;

View File

@ -328,6 +328,108 @@ exports[`Input allowClear should not show icon if value is undefined, null or em
</span>
`;
exports[`Input allowClear should support classNames and styles 1`] = `
<div>
<span
class="rc-input-affix-wrapper custom-class"
style="background-color: red;"
>
<span
class="rc-input-prefix custom-prefix"
style="color: blue;"
>
prefix
</span>
<input
class="rc-input custom-input"
style="color: red;"
type="text"
value="123"
/>
<span
class="rc-input-suffix custom-suffix"
style="color: yellow;"
>
<span
class="rc-input-show-count-suffix rc-input-show-count-has-suffix custom-count"
style="color: green;"
>
3
</span>
suffix
</span>
</span>
<span
class="rc-input-group-wrapper custom-class"
style="background-color: red;"
>
<span
class="rc-input-wrapper rc-input-group"
>
<span
class="rc-input-affix-wrapper"
>
<span
class="rc-input-prefix custom-prefix"
style="color: blue;"
>
prefix
</span>
<input
class="rc-input custom-input"
style="color: red;"
type="text"
value="123"
/>
<span
class="rc-input-suffix custom-suffix"
style="color: yellow;"
>
<span
class="rc-input-show-count-suffix rc-input-show-count-has-suffix custom-count"
style="color: green;"
>
3
</span>
suffix
</span>
</span>
<span
class="rc-input-group-addon"
>
addon
</span>
</span>
</span>
<input
class="rc-input custom-input custom-class"
style="color: red; background-color: red;"
type="text"
value="123"
/>
<span
class="rc-input-group-wrapper custom-class"
style="background-color: red;"
>
<span
class="rc-input-wrapper rc-input-group"
>
<input
class="rc-input custom-input"
style="color: red;"
type="text"
value="123"
/>
<span
class="rc-input-group-addon"
>
addon
</span>
</span>
</span>
</div>
`;
exports[`Input rtl render component should be rendered correctly in RTL direction 1`] = `
<input
class="ant-input ant-input-rtl"

View File

@ -1,8 +1,37 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`TextArea allowClear classNames and styles should work 1`] = `
<div>
<textarea
class="ant-input custom-textarea custom-class"
style="color: red; background: red;"
/>
<span
class="ant-input-affix-wrapper custom-class ant-input-textarea-affix-wrapper ant-input-textarea-show-count ant-input-show-count"
data-count="0"
style="background: red;"
>
<textarea
class="ant-input custom-textarea"
style="color: red;"
/>
<span
class="ant-input-suffix"
>
<span
class="ant-input-data-count custom-count"
style="color: blue;"
>
0
</span>
</span>
</span>
</div>
`;
exports[`TextArea allowClear should change type when click 1`] = `
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -43,7 +72,7 @@ exports[`TextArea allowClear should change type when click 1`] = `
exports[`TextArea allowClear should change type when click 2`] = `
<span
class="ant-input-affix-wrapper ant-input-affix-wrapper-focused ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-affix-wrapper-focused ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -82,7 +111,7 @@ exports[`TextArea allowClear should change type when click 2`] = `
exports[`TextArea allowClear should not show icon if defaultValue is undefined, null or empty string 1`] = `
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -121,7 +150,7 @@ exports[`TextArea allowClear should not show icon if defaultValue is undefined,
exports[`TextArea allowClear should not show icon if defaultValue is undefined, null or empty string 2`] = `
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -160,7 +189,7 @@ exports[`TextArea allowClear should not show icon if defaultValue is undefined,
exports[`TextArea allowClear should not show icon if defaultValue is undefined, null or empty string 3`] = `
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -199,7 +228,7 @@ exports[`TextArea allowClear should not show icon if defaultValue is undefined,
exports[`TextArea allowClear should not show icon if value is undefined, null or empty string 1`] = `
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -238,7 +267,7 @@ exports[`TextArea allowClear should not show icon if value is undefined, null or
exports[`TextArea allowClear should not show icon if value is undefined, null or empty string 2`] = `
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"
@ -277,7 +306,7 @@ exports[`TextArea allowClear should not show icon if value is undefined, null or
exports[`TextArea allowClear should not show icon if value is undefined, null or empty string 3`] = `
<span
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper"
class="ant-input-affix-wrapper ant-input-textarea-affix-wrapper ant-input-textarea-allow-clear"
>
<textarea
class="ant-input"

View File

@ -441,6 +441,82 @@ describe('Input allowClear', () => {
const { container } = render(<Input allowClear={{ clearIcon: 'clear' }} />);
expect(container.querySelector('.ant-input-clear-icon')?.textContent).toBe('clear');
});
it('should support classNames and styles', () => {
const { container } = render(
<>
<Input
value="123"
showCount
prefixCls="rc-input"
prefix="prefix"
suffix="suffix"
className="custom-class"
style={{ backgroundColor: 'red' }}
classNames={{
input: 'custom-input',
prefix: 'custom-prefix',
suffix: 'custom-suffix',
count: 'custom-count',
}}
styles={{
input: { color: 'red' },
prefix: { color: 'blue' },
suffix: { color: 'yellow' },
count: { color: 'green' },
}}
/>
<Input
value="123"
addonAfter="addon"
showCount
prefixCls="rc-input"
prefix="prefix"
suffix="suffix"
className="custom-class"
style={{ backgroundColor: 'red' }}
classNames={{
input: 'custom-input',
prefix: 'custom-prefix',
suffix: 'custom-suffix',
count: 'custom-count',
}}
styles={{
input: { color: 'red' },
prefix: { color: 'blue' },
suffix: { color: 'yellow' },
count: { color: 'green' },
}}
/>
<Input
value="123"
prefixCls="rc-input"
className="custom-class"
style={{ backgroundColor: 'red' }}
classNames={{
input: 'custom-input',
}}
styles={{
input: { color: 'red' },
}}
/>
<Input
value="123"
prefixCls="rc-input"
className="custom-class"
addonAfter="addon"
style={{ backgroundColor: 'red' }}
classNames={{
input: 'custom-input',
}}
styles={{
input: { color: 'red' },
}}
/>
</>,
);
expect(container).toMatchSnapshot();
});
});
describe('typescript types', () => {

View File

@ -246,33 +246,33 @@ describe('TextArea', () => {
it('maxLength', () => {
const { container } = render(<TextArea maxLength={5} showCount value="12345" />);
expect(container.querySelector('textarea')?.value).toBe('12345');
expect(container.querySelector('.ant-input-textarea')?.getAttribute('data-count')).toBe(
'5 / 5',
);
expect(
container.querySelector('.ant-input-textarea-show-count')?.getAttribute('data-count'),
).toBe('5 / 5');
});
it('control exceed maxLength', () => {
const { container } = render(<TextArea maxLength={5} showCount value="12345678" />);
expect(container.querySelector('textarea')?.value).toBe('12345678');
expect(container.querySelector('.ant-input-textarea')?.getAttribute('data-count')).toBe(
'8 / 5',
);
expect(
container.querySelector('.ant-input-textarea-show-count')?.getAttribute('data-count'),
).toBe('8 / 5');
});
describe('emoji', () => {
it('should minimize value between emoji length and maxLength', () => {
const { container } = render(<TextArea maxLength={1} showCount value="👀" />);
expect(container.querySelector('textarea')?.value).toBe('👀');
expect(container.querySelector('.ant-input-textarea')?.getAttribute('data-count')).toBe(
'1 / 1',
);
expect(
container.querySelector('.ant-input-textarea-show-count')?.getAttribute('data-count'),
).toBe('1 / 1');
// fix: 当 maxLength 长度为 2 的时候,输入 emoji 之后 showCount 会显示 1/2但是不能再输入了
// zombieJ: 逻辑统一了emoji 现在也可以正确计数了
const { container: container1 } = render(<TextArea maxLength={2} showCount value="👀" />);
expect(container1.querySelector('.ant-input-textarea')?.getAttribute('data-count')).toBe(
'1 / 2',
);
expect(
container1.querySelector('.ant-input-textarea-show-count')?.getAttribute('data-count'),
).toBe('1 / 2');
});
it('defaultValue should slice', () => {
@ -284,9 +284,9 @@ describe('TextArea', () => {
it('slice emoji', () => {
const { container } = render(<TextArea maxLength={5} showCount value="1234😂" />);
expect(container.querySelector('textarea')?.value).toBe('1234😂');
expect(container.querySelector('.ant-input-textarea')?.getAttribute('data-count')).toBe(
'5 / 5',
);
expect(
container.querySelector('.ant-input-textarea-show-count')?.getAttribute('data-count'),
).toBe('5 / 5');
});
});
@ -296,8 +296,8 @@ describe('TextArea', () => {
);
// Outer
expect(container.querySelector('div')?.classList.contains('bamboo')).toBeTruthy();
expect(container.querySelector('div')?.style.background).toEqual('red');
expect(container.querySelector('span')?.classList.contains('bamboo')).toBeTruthy();
expect(container.querySelector('span')?.style.background).toEqual('red');
// Inner
expect(container.querySelector('.ant-input')?.classList.contains('bamboo')).toBeFalsy();
@ -315,9 +315,9 @@ describe('TextArea', () => {
/>,
);
expect(container.querySelector('textarea')?.value).toBe('12345');
expect(container.querySelector('.ant-input-textarea')?.getAttribute('data-count')).toBe(
'12345, 5, 5',
);
expect(
container.querySelector('.ant-input-textarea-show-count')?.getAttribute('data-count'),
).toBe('12345, 5, 5');
});
});
@ -579,4 +579,45 @@ describe('TextArea allowClear', () => {
const { container } = render(<TextArea allowClear={{ clearIcon: 'clear' }} />);
expect(container.querySelector('.ant-input-clear-icon')?.textContent).toBe('clear');
});
it('classNames and styles should work', () => {
const { container } = render(
<>
<TextArea
className="custom-class"
style={{ background: 'red' }}
classNames={{
textarea: 'custom-textarea',
count: 'custom-count',
}}
styles={{
textarea: {
color: 'red',
},
count: {
color: 'blue',
},
}}
/>
<TextArea
showCount
className="custom-class"
style={{ background: 'red' }}
classNames={{
textarea: 'custom-textarea',
count: 'custom-count',
}}
styles={{
textarea: {
color: 'red',
},
count: {
color: 'blue',
},
}}
/>
</>,
);
expect(container).toMatchSnapshot();
});
});

View File

@ -51,12 +51,14 @@ A basic widget for getting the user input is a text field. Keyboard and mouse ca
| addonBefore | The label text displayed before (on the left side of) the input field | ReactNode | - | |
| allowClear | If allow to remove input content with clear icon | boolean \| { clearIcon: ReactNode } | false | |
| bordered | Whether has border style | boolean | true | 4.5.0 |
| classNames | Semantic DOM class | Record<[SemanticDOM](#input-1), string> | - | 5.4.0 |
| defaultValue | The initial input content | string | - | |
| disabled | Whether the input is disabled | boolean | false | |
| id | The ID for input | string | - | |
| maxLength | The max length | number | - | |
| showCount | Whether show text count | boolean \| { formatter: (info: { value: string, count: number, maxLength?: number }) => ReactNode } | false | 4.18.0 info.value: 4.23.0 |
| status | Set validation status | 'error' \| 'warning' | - | 4.19.0 |
| styles | Semantic DOM style | Record<[SemanticDOM](#input-1), CSSProperties> | - | 5.4.0 |
| prefix | The prefix icon for the Input | ReactNode | - | |
| size | The size of the input box. Note: in the context of a form, the `middle` size is used | `large` \| `middle` \| `small` | - | |
| suffix | The suffix icon for the Input | ReactNode | - | |
@ -76,9 +78,11 @@ The rest of the props of Input are exactly the same as the original [input](http
| allowClear | If allow to remove input content with clear icon | boolean | false | |
| autoSize | Height autosize feature, can be set to true \| false or an object { minRows: 2, maxRows: 6 } | boolean \| object | false | |
| bordered | Whether has border style | boolean | true | 4.5.0 |
| classNames | Semantic DOM class | Record<[SemanticDOM](#inputtextarea-1), string> | - | 5.4.0 |
| defaultValue | The initial input content | string | - | |
| maxLength | The max length | number | - | 4.7.0 |
| showCount | Whether show text count | boolean \| { formatter: (info: { value: string, count: number, maxLength?: number }) => string } | false | 4.7.0 formatter: 4.10.0 info.value: 4.23.0 |
| styles | Semantic DOM style | Record<[SemanticDOM](#inputtextarea-1), CSSProperties> | - | 5.4.0 |
| value | The input content value | string | - | |
| onPressEnter | The callback function that is triggered when Enter key is pressed | function(e) | - | |
| onResize | The callback function that is triggered when resize | function({ width, height }) | - | |
@ -116,6 +120,26 @@ Supports all props of `Input`.
| blur | Remove focus | - | |
| focus | Get focus | (option?: { preventScroll?: boolean, cursor?: 'start' \| 'end' \| 'all' }) | option - 4.10.0 |
### Semantic DOM
#### Input
<!-- prettier-ignore -->
| Property | Description | Version |
| --- | --- | --- |
| input | `input` element | 5.4.0 |
| prefix | Wrapper of prefix | 5.4.0 |
| suffix | Wrapper of suffix | 5.4.0 |
| count | Text count element | 5.4.0 |
#### Input.TextArea
<!-- prettier-ignore -->
| Property | Description | Version |
| --- | --- | --- |
| textarea | `textarea` element | 5.4.0 |
| count | Text count element | 5.4.0 |
## Design Token
<ComponentTokenTable component="Input"></ComponentTokenTable>

View File

@ -52,12 +52,14 @@ demo:
| addonBefore | 带标签的 input设置前置标签 | ReactNode | - | |
| allowClear | 可以点击清除图标删除内容 | boolean \| { clearIcon: ReactNode } | - | |
| bordered | 是否有边框 | boolean | true | 4.5.0 |
| classNames | 语义化结构 class | Record<[SemanticDOM](#input-1), string> | - | 5.4.0 |
| defaultValue | 输入框默认内容 | string | - | |
| disabled | 是否禁用状态,默认为 false | boolean | false | |
| id | 输入框的 id | string | - | |
| maxLength | 最大长度 | number | - | |
| showCount | 是否展示字数 | boolean \| { formatter: (info: { value: string, count: number, maxLength?: number }) => ReactNode } | false | 4.18.0 info.value: 4.23.0 |
| status | 设置校验状态 | 'error' \| 'warning' | - | 4.19.0 |
| styles | 语义化结构 style | Record<[SemanticDOM](#input-1), CSSProperties> | - | 5.4.0 |
| prefix | 带有前缀图标的 input | ReactNode | - | |
| size | 控件大小。注:标准表单内的输入框大小限制为 `middle` | `large` \| `middle` \| `small` | - | |
| suffix | 带有后缀图标的 input | ReactNode | - | |
@ -77,9 +79,11 @@ Input 的其他属性和 React 自带的 [input](https://reactjs.org/docs/dom-el
| allowClear | 可以点击清除图标删除内容 | boolean | false | |
| autoSize | 自适应内容高度,可设置为 true \| false 或对象:{ minRows: 2, maxRows: 6 } | boolean \| object | false | |
| bordered | 是否有边框 | boolean | true | 4.5.0 |
| classNames | 语义化结构 class | Record<[SemanticDOM](#inputtextarea-1), string> | - | 5.4.0 |
| defaultValue | 输入框默认内容 | string | - | |
| maxLength | 内容最大长度 | number | - | 4.7.0 |
| showCount | 是否展示字数 | boolean \| { formatter: (info: { value: string, count: number, maxLength?: number }) => string } | false | 4.7.0 formatter: 4.10.0 info.value: 4.23.0 |
| styles | 语义化结构 style | Record<[SemanticDOM](#inputtextarea-1), CSSProperties> | - | 5.4.0 |
| value | 输入框内容 | string | - | |
| onPressEnter | 按下回车的回调 | function(e) | - | |
| onResize | resize 回调 | function({ width, height }) | - | |
@ -117,6 +121,24 @@ Input 的其他属性和 React 自带的 [input](https://reactjs.org/docs/dom-el
| blur | 取消焦点 | - | |
| focus | 获取焦点 | (option?: { preventScroll?: boolean, cursor?: 'start' \| 'end' \| 'all' }) | option - 4.10.0 |
### Semantic DOM
#### Input
| 名称 | 说明 | 版本 |
| ------ | ------------------ | ----- |
| input | `input` 元素 | 5.4.0 |
| prefix | 所有前缀的包裹元素 | 5.4.0 |
| suffix | 所有后缀的包裹元素 | 5.4.0 |
| count | 文字计数元素 | 5.4.0 |
#### Input.TextArea
| 名称 | 说明 | 版本 |
| -------- | --------------- | ----- |
| textarea | `textarea` 元素 | 5.4.0 |
| count | 文字计数元素 | 5.4.0 |
## Design Token
<ComponentTokenTable component="Input"></ComponentTokenTable>

View File

@ -881,17 +881,12 @@ const genTextAreaStyle: GenerateStyle<InputToken> = (token) => {
},
[`${componentCls}-data-count`]: {
position: 'absolute',
bottom: -token.fontSize * token.lineHeight,
insetInlineEnd: 0,
color: token.colorTextDescription,
whiteSpace: 'nowrap',
pointerEvents: 'none',
float: 'right',
marginBottom: -token.fontSize * token.lineHeight,
},
'&-rtl': {
[`${componentCls}-data-count`]: {
float: 'left',
},
},
},

View File

@ -1,6 +0,0 @@
// locale-provider 文件夹的移除需要修改 @ant-design/tools 和 antd-img-crop
import useLocale from '../locale/useLocale';
export * from '../locale/useLocale';
export default useLocale;

View File

@ -1,6 +0,0 @@
// locale-provider 文件夹的移除需要修改 @ant-design/tools 和 antd-img-crop
import locale from '../locale';
export * from '../locale';
export default locale;

View File

@ -1,7 +1,7 @@
import React, { memo, useContext } from 'react';
import { fireEvent, pureRender } from '../../../tests/utils';
import LocaleProvider from '../../locale';
import LocaleContext from '../../locale/context';
import LocaleProvider from '..';
import LocaleContext from '../context';
let innerCount = 0;
let outerCount = 0;

View File

@ -2,7 +2,7 @@ import React, { useEffect } from 'react';
import { Modal } from '../..';
import { waitFakeTimer, render, fireEvent } from '../../../tests/utils';
import ConfigProvider from '../../config-provider';
import zhCN from '../../locale/zh_CN';
import zhCN from '../zh_CN';
const Demo: React.FC<{ type: string }> = ({ type }) => {
useEffect(() => {

View File

@ -68,8 +68,8 @@ import preParsePostFormat from 'dayjs/plugin/preParsePostFormat';
import MockDate from 'mockdate';
import React from 'react';
import { render } from '../../../tests/utils';
import type { Locale } from '../../locale';
import LocaleProvider from '../../locale';
import type { Locale } from '..';
import LocaleProvider from '..';
import {
Calendar,
DatePicker,
@ -150,6 +150,7 @@ import viVN from '../../locale/vi_VN';
import zhCN from '../../locale/zh_CN';
import zhHK from '../../locale/zh_HK';
import zhTW from '../../locale/zh_TW';
import myMM from '../../locale/my_MM';
dayjs.extend(preParsePostFormat);
@ -222,6 +223,7 @@ const locales = [
zhHK,
zhTW,
urPK,
myMM,
];
const { Option } = Select;

View File

@ -14,6 +14,8 @@ import type { UploadLocale } from '../upload/interface';
import type { LocaleContextProps } from './context';
import LocaleContext from './context';
export { default as useLocale } from './useLocale';
export const ANT_MARK = 'internalMark';
export interface Locale {

143
components/locale/my_MM.ts Normal file
View File

@ -0,0 +1,143 @@
/* eslint-disable no-template-curly-in-string */
import Pagination from 'rc-pagination/lib/locale/my_MM';
import Calendar from '../calendar/locale/my_MM';
import DatePicker from '../date-picker/locale/my_MM';
import type { Locale } from '.';
import TimePicker from '../time-picker/locale/my_MM';
const typeTemplate = '${label} သည် တရားဝင် ${type} မဟုတ်ပါ';
const localeValues: Locale = {
locale: 'my',
Pagination,
DatePicker,
TimePicker,
Calendar,
// locales for all components
global: {
placeholder: 'ကျေးဇူးပြု၍ ရွေးချယ်ပါ။',
},
Table: {
filterTitle: 'စစ်ထုတ်ခြင်း မီနူ',
filterConfirm: 'အိုကေ',
filterReset: 'ပြန်လည်သတ်မှတ်ပါ။',
filterEmptyText: 'စစ်ထုတ်မှုများမရှိပါ။',
filterCheckall: 'ပစ္စည်းအားလုံးကို ရွေးပါ။',
filterSearchPlaceholder: 'စစ်ထုတ်မှုများတွင် ရှာဖွေပါ။',
selectAll: 'လက်ရှိစာမျက်နှာကို ရွေးပါ။',
selectInvert: 'လက်ရှိစာမျက်နှာကို ပြောင်းလိုက်ပါ။',
selectNone: 'ဒေတာအားလုံးကို ရှင်းလင်းပါ။',
selectionAll: 'ဒေတာအားလုံးကို ရွေးပါ။',
sortTitle: 'မျိုးတူစု',
expand: 'အတန်းချဲ့ပါ။',
collapse: 'အတန်းကို ခေါက်သိမ်းပါ။',
cancelSort: 'အမျိုးအစားခွဲခြင်းကို ပယ်ဖျက်ရန် နှိပ်ပါ။',
},
Tour: {
Next: 'နောက်တစ်ခု',
Previous: 'အရင်',
Finish: 'ပြီးအောင်',
},
Modal: {
okText: 'အိုကေ',
cancelText: 'မလုပ်တော့',
justOkText: 'အိုကေ',
},
Popconfirm: {
cancelText: 'မလုပ်တော့',
okText: 'အိုကေ',
},
Transfer: {
titles: ['', ''],
searchPlaceholder: 'ဒီမှာရှာပါ။',
itemUnit: 'ပစ္စည်း',
itemsUnit: 'ပစ္စည်းများ',
remove: 'ဖယ်ရှားပါ။',
selectCurrent: 'လက်ရှိစာမျက်နှာကို ရွေးပါ။',
removeCurrent: 'လက်ရှိစာမျက်နှာကို ဖယ်ရှားပါ။',
selectAll: 'ဒေတာအားလုံးကို ရွေးပါ။',
removeAll: 'ဒေတာအားလုံးကို ဖယ်ရှားပါ။',
selectInvert: 'လက်ရှိစာမျက်နှာကို ပြောင်းလိုက်ပါ။',
},
Upload: {
uploading: 'တင်ခြင်း။...',
removeFile: 'ဖိုင်ကို ဖယ်ရှားပါ။',
uploadError: 'အပ်လုဒ်အမှား',
previewFile: 'ဖိုင်ကို အစမ်းကြည့်ပါ။',
downloadFile: 'ဖိုင်ကိုဒေါင်းလုဒ်လုပ်ပါ။',
},
Empty: {
description: 'ဒေတာမရှိပါ။',
},
Icon: {
icon: 'အိုင်ကွန်',
},
Text: {
edit: 'တည်းဖြတ်ပါ။',
copy: 'ကော်ပီ',
copied: 'ကူးယူသည်။',
expand: 'ချဲ့ထွင်ပါ။',
},
PageHeader: {
back: 'ကျော',
},
Form: {
optional: '(ချန်လှပ်ထားနိုင်သည်)',
defaultValidateMessages: {
default: '${label} အတွက် အကွက်အတည်ပြုခြင်း အမှား',
required: '${label} ကို ထည့်ပါ',
enum: '${label} သည် [${enum}] မှ တစ်ခု ဖြစ်ရမည်',
whitespace: '${label} သည် အလွတ်စာလုံးမဖြစ်ရပါ။',
date: {
format: '${label} ရက်စွဲဖော်မတ်သည် မမှန်ကန်ပါ။',
parse: '${label} ကို ရက်စွဲအဖြစ် ပြောင်းလဲ၍မရပါ။',
invalid: '${label} သည် မမှန်ကန်သော ရက်စွဲတစ်ခုဖြစ်သည်။',
},
types: {
string: typeTemplate,
method: typeTemplate,
array: typeTemplate,
object: typeTemplate,
number: typeTemplate,
date: typeTemplate,
boolean: typeTemplate,
integer: typeTemplate,
float: typeTemplate,
regexp: typeTemplate,
email: typeTemplate,
url: typeTemplate,
hex: typeTemplate,
},
string: {
len: '${label} သည် ${len} စာလုံးဖြစ်ရမည်။',
min: '${label} သည် အနည်းဆုံး စာလုံး ${min} ရှိရမည်။',
max: '${label} သည် ${max} စာလုံးအထိ ရှိရပါမည်။',
range: '${label} သည် ${min}-${max} စာလုံးကြားရှိရမည်။',
},
number: {
len: '${label} သည် ${len} နှင့် ညီရမည်',
min: '${label} သည် အနည်းဆုံး ${min} ဖြစ်ရမည်',
max: '${label} သည် အများဆုံး ${max} ဖြစ်ရမည်',
range: '${label} သည် ${min}-${max} ကြားရှိရမည်',
},
array: {
len: '${len} ${label} ဖြစ်ရမည်',
min: 'အနည်းဆုံး ${min} ${label}',
max: 'အများဆုံး ${max} ${label}',
range: '${label} ၏ ပမာဏသည် ${min}-${max} အကြား ဖြစ်ရမည်',
},
pattern: {
mismatch: '${label} သည် ပုံစံ ${pattern} နှင့် မကိုက်ညီပါ',
},
},
},
Image: {
preview: 'စမ်းကြည့်ပါ။',
},
QRCode: {
expired: 'QR ကုဒ် သက်တမ်းကုန်သွားပါပြီ။',
refresh: 'ပြန်လည်စတင်ပါ။',
},
};
export default localeValues;

View File

@ -12,12 +12,32 @@ const localeValues: Locale = {
DatePicker,
TimePicker,
Calendar,
global: {
placeholder: 'Vui lòng chọn',
},
Table: {
filterTitle: 'Bộ lọc',
filterConfirm: 'Đồng ý',
filterReset: 'Bỏ lọc',
filterEmptyText: 'Không có bộ lọc',
filterCheckall: 'Chọn tất cả',
filterSearchPlaceholder: 'Tìm kiếm bộ lọc',
emptyText: 'Trống',
selectAll: 'Chọn tất cả',
selectInvert: 'Chọn ngược lại',
selectNone: 'Bỏ chọn tất cả',
selectionAll: 'Chọn tất cả',
sortTitle: 'Sắp xếp',
expand: 'Mở rộng dòng',
collapse: 'Thu gọn dòng',
triggerDesc: 'Nhấp để sắp xếp giảm dần',
triggerAsc: 'Nhấp để sắp xếp tăng dần',
cancelSort: 'Nhấp để hủy sắp xếp',
},
Tour: {
Next: 'Tiếp',
Previous: 'Trước',
Finish: 'Hoàn thành',
},
Modal: {
okText: 'Đồng ý',
@ -33,6 +53,34 @@ const localeValues: Locale = {
searchPlaceholder: 'Tìm ở đây',
itemUnit: 'mục',
itemsUnit: 'mục',
remove: 'Gỡ bỏ',
selectCurrent: 'Chọn trang hiện tại',
removeCurrent: 'Gỡ bỏ trang hiện tại',
selectAll: 'Chọn tất cả',
removeAll: 'Gỡ bỏ tất cả',
selectInvert: 'Đảo ngược trang hiện tại',
},
Upload: {
uploading: 'Đang tải lên...',
removeFile: 'Gỡ bỏ tập tin',
uploadError: 'Lỗi tải lên',
previewFile: 'Xem trước tập tin',
downloadFile: 'Tải tập tin',
},
Empty: {
description: 'Trống',
},
Icon: {
icon: 'icon',
},
Text: {
edit: 'Chỉnh sửa',
copy: 'Sao chép',
copied: 'Đã sao chép',
expand: 'Mở rộng',
},
PageHeader: {
back: 'Quay lại',
},
Form: {
optional: '(Tùy chọn)',
@ -84,15 +132,12 @@ const localeValues: Locale = {
},
},
},
Upload: {
uploading: 'Đang tải lên...',
removeFile: 'Gỡ bỏ tập tin',
uploadError: 'Lỗi tải lên',
previewFile: 'Xem trước tập tin',
downloadFile: 'Tải tập tin',
Image: {
preview: 'Xem trước',
},
Empty: {
description: 'Trống',
QRCode: {
expired: 'Mã QR hết hạn',
refresh: 'Làm mới',
},
};

View File

@ -5,7 +5,7 @@ import InfoCircleFilled from '@ant-design/icons/InfoCircleFilled';
import classNames from 'classnames';
import * as React from 'react';
import ConfigProvider from '../config-provider';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import ActionButton from '../_util/ActionButton';
import { getTransitionName } from '../_util/motion';
import warning from '../_util/warning';

View File

@ -7,7 +7,7 @@ import * as React from 'react';
import Button from '../button';
import { convertLegacyProps } from '../button/button';
import { ConfigContext } from '../config-provider';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import { ConfirmContent } from './ConfirmDialog';
import { getConfirmLocale } from './locale';
import type { ModalFuncProps, ModalProps } from './Modal';

View File

@ -70,6 +70,7 @@ Additionally, if you need show a simple confirmation dialog, you can use [`App.u
| zIndex | The `z-index` of the Modal | number | 1000 | |
| onCancel | Specify a function that will be called when a user clicks mask, close button on top right or Cancel button | function(e) | - | |
| onOk | Specify a function that will be called when a user clicks the OK button | function(e) | - | |
| afterOpenChange | Callback when the animation ends when Modal is turned on and off | (open: boolean) => void | - | 5.4.0 |
#### Note

View File

@ -71,6 +71,7 @@ demo:
| zIndex | 设置 Modal 的 `z-index` | number | 1000 | |
| onCancel | 点击遮罩层或右上角叉或取消按钮的回调 | function(e) | - | |
| onOk | 点击确定回调 | function(e) | - | |
| afterOpenChange | 打开和关闭 Modal 时动画结束后的回调 | (open: boolean) => void | - | 5.4.0 |
#### 注意

View File

@ -9,7 +9,7 @@ import enUS from 'rc-pagination/lib/locale/en_US';
import * as React from 'react';
import { ConfigContext } from '../config-provider';
import useBreakpoint from '../grid/hooks/useBreakpoint';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import { MiddleSelect, MiniSelect } from './Select';
import useStyle from './style';

View File

@ -6,7 +6,7 @@ import Button from '../button';
import { convertLegacyProps } from '../button/button';
import { ConfigContext } from '../config-provider';
import defaultLocale from '../locale/en_US';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import PopoverPurePanel from '../popover/PurePanel';
import ActionButton from '../_util/ActionButton';
import { getRenderPropValue } from '../_util/getRenderPropValue';

View File

@ -6,7 +6,7 @@ import warning from '../_util/warning';
import Button from '../button';
import type { ConfigConsumerProps } from '../config-provider';
import { ConfigContext } from '../config-provider';
import useLocale from '../locale/useLocale';
import { useLocale } from '../locale';
import Spin from '../spin';
import theme from '../theme';
import type { QRCodeProps, QRPropsCanvas } from './interface';

View File

@ -95,7 +95,6 @@ exports[`renders components/radio/demo/basic.tsx extend context correctly 1`] =
<input
class="ant-radio-input"
type="radio"
value=""
/>
<span
class="ant-radio-inner"
@ -119,7 +118,6 @@ Array [
class="ant-radio-input"
disabled=""
type="radio"
value=""
/>
<span
class="ant-radio-inner"
@ -140,7 +138,6 @@ Array [
class="ant-radio-input"
disabled=""
type="radio"
value=""
/>
<span
class="ant-radio-inner"

View File

@ -10,7 +10,6 @@ exports[`Radio Button rtl render component should be rendered correctly in RTL d
<input
class="ant-radio-button-input"
type="radio"
value=""
/>
<span
class="ant-radio-button-inner"
@ -29,7 +28,6 @@ exports[`Radio Button should render correctly 1`] = `
<input
class="ant-radio-button-input"
type="radio"
value=""
/>
<span
class="ant-radio-button-inner"

View File

@ -10,7 +10,6 @@ exports[`Radio rtl render component should be rendered correctly in RTL directio
<input
class="ant-radio-input"
type="radio"
value=""
/>
<span
class="ant-radio-inner"
@ -35,7 +34,6 @@ exports[`Radio rtl render component should be rendered correctly in RTL directio
<input
class="ant-radio-button-input"
type="radio"
value=""
/>
<span
class="ant-radio-button-inner"
@ -54,7 +52,6 @@ exports[`Radio should render correctly 1`] = `
<input
class="ant-radio-input"
type="radio"
value=""
/>
<span
class="ant-radio-inner"

View File

@ -1,4 +1,5 @@
import classNames from 'classnames';
import type { CheckboxRef } from 'rc-checkbox';
import RcCheckbox from 'rc-checkbox';
import { composeRef } from 'rc-util/lib/ref';
import * as React from 'react';
@ -11,12 +12,12 @@ import type { RadioChangeEvent, RadioProps } from './interface';
import useStyle from './style';
const InternalRadio: React.ForwardRefRenderFunction<HTMLElement, RadioProps> = (props, ref) => {
const InternalRadio: React.ForwardRefRenderFunction<CheckboxRef, RadioProps> = (props, ref) => {
const groupContext = React.useContext(RadioGroupContext);
const radioOptionTypeContext = React.useContext(RadioOptionTypeContext);
const { getPrefixCls, direction } = React.useContext(ConfigContext);
const innerRef = React.useRef<HTMLElement>();
const innerRef = React.useRef<CheckboxRef>(null);
const mergedRef = composeRef(ref, innerRef);
const { isFormItemInput } = React.useContext(FormItemInputContext);
@ -84,7 +85,7 @@ const InternalRadio: React.ForwardRefRenderFunction<HTMLElement, RadioProps> = (
);
};
const Radio = React.forwardRef<unknown, RadioProps>(InternalRadio);
const Radio = React.forwardRef<CheckboxRef, RadioProps>(InternalRadio);
if (process.env.NODE_ENV !== 'production') {
Radio.displayName = 'Radio';

View File

@ -1292,6 +1292,7 @@ exports[`renders components/segmented/demo/size-consistent.tsx extend context co
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -1292,6 +1292,7 @@ exports[`renders components/segmented/demo/size-consistent.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -23,6 +23,7 @@ exports[`renders components/select/demo/automatic-tokenization.tsx extend contex
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -428,6 +429,7 @@ exports[`renders components/select/demo/basic.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -731,6 +733,7 @@ exports[`renders components/select/demo/basic.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -852,6 +855,7 @@ exports[`renders components/select/demo/basic.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1007,6 +1011,7 @@ exports[`renders components/select/demo/bordered.tsx extend context correctly 1`
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1301,6 +1306,7 @@ exports[`renders components/select/demo/coordinate.tsx extend context correctly
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1447,6 +1453,7 @@ exports[`renders components/select/demo/coordinate.tsx extend context correctly
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1610,6 +1617,7 @@ exports[`renders components/select/demo/custom-dropdown-menu.tsx extend context
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1885,6 +1893,7 @@ exports[`renders components/select/demo/custom-tag-render.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2109,6 +2118,7 @@ exports[`renders components/select/demo/debug.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2351,6 +2361,7 @@ exports[`renders components/select/demo/debug.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2576,6 +2587,7 @@ exports[`renders components/select/demo/hide-selected.tsx extend context correct
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2736,6 +2748,7 @@ exports[`renders components/select/demo/label-in-value.tsx extend context correc
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -2978,6 +2991,7 @@ exports[`renders components/select/demo/multiple.tsx extend context correctly 1`
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -3945,6 +3959,7 @@ exports[`renders components/select/demo/optgroup.tsx extend context correctly 1`
aria-activedescendant="rc_select_TEST_OR_SSR_list_1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4131,6 +4146,7 @@ exports[`renders components/select/demo/option-label-center.tsx extend context c
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4356,6 +4372,7 @@ exports[`renders components/select/demo/option-label-prop.tsx extend context cor
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4695,6 +4712,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4875,6 +4893,7 @@ exports[`renders components/select/demo/responsive.tsx extend context correctly
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -5958,6 +5977,7 @@ exports[`renders components/select/demo/search.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6115,6 +6135,7 @@ exports[`renders components/select/demo/search-box.tsx extend context correctly
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6161,6 +6182,7 @@ exports[`renders components/select/demo/search-sort.tsx extend context correctly
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6377,6 +6399,7 @@ exports[`renders components/select/demo/select-users.tsx extend context correctl
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6532,6 +6555,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -7176,6 +7200,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -7716,6 +7741,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8173,6 +8199,7 @@ exports[`renders components/select/demo/status.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8293,6 +8320,7 @@ exports[`renders components/select/demo/status.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8422,6 +8450,7 @@ exports[`renders components/select/demo/suffix.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -8733,6 +8762,7 @@ exports[`renders components/select/demo/tags.tsx extend context correctly 1`] =
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -23,6 +23,7 @@ exports[`renders components/select/demo/automatic-tokenization.tsx correctly 1`]
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -95,6 +96,7 @@ exports[`renders components/select/demo/basic.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -227,6 +229,7 @@ exports[`renders components/select/demo/basic.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -292,6 +295,7 @@ exports[`renders components/select/demo/basic.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -460,6 +464,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -547,6 +552,7 @@ exports[`renders components/select/demo/bordered.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -687,6 +693,7 @@ exports[`renders components/select/demo/coordinate.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -752,6 +759,7 @@ exports[`renders components/select/demo/coordinate.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -817,6 +825,7 @@ exports[`renders components/select/demo/custom-dropdown-menu.tsx correctly 1`] =
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -953,6 +962,7 @@ exports[`renders components/select/demo/custom-tag-render.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1036,6 +1046,7 @@ exports[`renders components/select/demo/debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1146,6 +1157,7 @@ exports[`renders components/select/demo/debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1243,6 +1255,7 @@ exports[`renders components/select/demo/hide-selected.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1312,6 +1325,7 @@ exports[`renders components/select/demo/label-in-value.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1473,6 +1487,7 @@ exports[`renders components/select/demo/multiple.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1670,6 +1685,7 @@ exports[`renders components/select/demo/optgroup.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1741,6 +1757,7 @@ exports[`renders components/select/demo/option-label-center.tsx correctly 1`] =
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1881,6 +1898,7 @@ exports[`renders components/select/demo/option-label-prop.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2029,6 +2047,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2125,6 +2144,7 @@ exports[`renders components/select/demo/responsive.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2282,6 +2302,7 @@ exports[`renders components/select/demo/search.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2341,6 +2362,7 @@ exports[`renders components/select/demo/search-box.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2374,6 +2396,7 @@ exports[`renders components/select/demo/search-sort.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2441,6 +2464,7 @@ exports[`renders components/select/demo/select-users.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2583,6 +2607,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2738,6 +2763,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2893,6 +2919,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2965,6 +2992,7 @@ exports[`renders components/select/demo/status.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3026,6 +3054,7 @@ exports[`renders components/select/demo/status.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3096,6 +3125,7 @@ exports[`renders components/select/demo/suffix.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3236,6 +3266,7 @@ exports[`renders components/select/demo/tags.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

View File

@ -14,6 +14,7 @@ exports[`Select Deprecated should ignore mode="combobox" 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -74,6 +75,7 @@ exports[`Select Select Custom Icons should support customized icons 1`] = `
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -134,6 +136,7 @@ exports[`Select rtl render component should be rendered correctly in RTL directi
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -450,6 +450,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -677,6 +678,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -1033,6 +1035,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4261,6 +4264,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4401,6 +4405,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4546,6 +4551,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4714,6 +4720,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -4855,6 +4862,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
aria-activedescendant="rc_select_TEST_OR_SSR_list_-1"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -6371,6 +6379,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -7981,6 +7990,7 @@ exports[`renders components/space/demo/compact.tsx extend context correctly 1`]
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -9599,6 +9609,7 @@ exports[`renders components/space/demo/compact-debug.tsx extend context correctl
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -9748,6 +9759,7 @@ exports[`renders components/space/demo/compact-debug.tsx extend context correctl
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -10224,6 +10236,7 @@ exports[`renders components/space/demo/compact-debug.tsx extend context correctl
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -10684,6 +10697,7 @@ exports[`renders components/space/demo/compact-debug.tsx extend context correctl
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -12108,6 +12122,7 @@ exports[`renders components/space/demo/compact-debug.tsx extend context correctl
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -12396,6 +12411,7 @@ Array [
aria-activedescendant="rc_select_TEST_OR_SSR_list_0"
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"
@ -14066,6 +14082,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="rc_select_TEST_OR_SSR_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="rc_select_TEST_OR_SSR_list"
autocomplete="off"

View File

@ -353,6 +353,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -499,6 +500,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -760,6 +762,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1149,6 +1152,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1208,6 +1212,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1272,6 +1277,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1359,6 +1365,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1419,6 +1426,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1496,6 +1504,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -1643,6 +1652,7 @@ exports[`renders components/space/demo/compact.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2397,6 +2407,7 @@ exports[`renders components/space/demo/compact-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2465,6 +2476,7 @@ exports[`renders components/space/demo/compact-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -2826,6 +2838,7 @@ exports[`renders components/space/demo/compact-debug.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3095,6 +3108,7 @@ exports[`renders components/space/demo/compact-debug.tsx correctly 1`] = `
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3337,6 +3351,7 @@ exports[`renders components/space/demo/compact-debug.tsx correctly 1`] = `
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3536,6 +3551,7 @@ Array [
aria-activedescendant="undefined_list_0"
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"
@ -3758,6 +3774,7 @@ Array [
<input
aria-autocomplete="list"
aria-controls="undefined_list"
aria-expanded="false"
aria-haspopup="listbox"
aria-owns="undefined_list"
autocomplete="off"

Some files were not shown because too many files have changed in this diff Show More