@douyinfe/semi-ui 2.19.0-alpha.5 → 2.19.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/buttonGroup.tsx +4 -38
- package/dist/css/semi.css +24 -123
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +25 -67
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/lib/cjs/button/buttonGroup.d.ts +0 -1
- package/lib/cjs/button/buttonGroup.js +3 -56
- package/lib/cjs/radio/radio.js +21 -13
- package/lib/cjs/radio/radioGroup.js +1 -1
- package/lib/es/button/buttonGroup.d.ts +0 -1
- package/lib/es/button/buttonGroup.js +3 -53
- package/lib/es/radio/radio.js +21 -13
- package/lib/es/radio/radioGroup.js +1 -1
- package/package.json +7 -7
- package/radio/_story/radio.stories.js +5 -5
- package/radio/radio.tsx +20 -19
- package/radio/radioGroup.tsx +1 -1
package/button/buttonGroup.tsx
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import React, { isValidElement, cloneElement
|
|
1
|
+
import React, { isValidElement, cloneElement } from 'react';
|
|
2
2
|
import BaseComponent, { BaseProps } from '../_base/baseComponent';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import { cssClasses, strings } from '@douyinfe/semi-foundation/button/constants';
|
|
6
|
-
import {
|
|
7
|
-
import { Type, Size, ButtonProps } from './Button';
|
|
6
|
+
import { Type, Size } from './Button';
|
|
8
7
|
|
|
9
8
|
import '@douyinfe/semi-foundation/button/button.scss';
|
|
10
9
|
|
|
@@ -40,41 +39,9 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
|
|
|
40
39
|
size: 'default',
|
|
41
40
|
};
|
|
42
41
|
|
|
43
|
-
getInnerWithLine(inner) {
|
|
44
|
-
const innerWithLine: ReactNode[] = [];
|
|
45
|
-
let lineCls = `${prefixCls}-group-line`;
|
|
46
|
-
if (inner.length > 1) {
|
|
47
|
-
inner.slice(0, -1).forEach(item => {
|
|
48
|
-
const isButtonType = [get(item, 'type.displayName'), get(item, 'type.name')].includes('Button');
|
|
49
|
-
const buttonProps = get(item, 'props') as ButtonProps;
|
|
50
|
-
if (buttonProps) {
|
|
51
|
-
const { type, theme, disabled } = buttonProps;
|
|
52
|
-
lineCls = classNames(
|
|
53
|
-
`${prefixCls}-group-line`,
|
|
54
|
-
`${prefixCls}-group-line-${theme ?? 'light'}`,
|
|
55
|
-
`${prefixCls}-group-line-${type ?? 'primary'}`,
|
|
56
|
-
{
|
|
57
|
-
[`${prefixCls}-group-line-disabled`]: disabled,
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
if (isButtonType) {
|
|
62
|
-
innerWithLine.push(item, <span className={lineCls} />);
|
|
63
|
-
} else {
|
|
64
|
-
innerWithLine.push(item);
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
innerWithLine.push(inner.slice(-1));
|
|
68
|
-
return innerWithLine;
|
|
69
|
-
} else {
|
|
70
|
-
return inner;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
42
|
render() {
|
|
75
43
|
const { children, disabled, size, type, className, 'aria-label': ariaLabel, ...rest } = this.props;
|
|
76
|
-
let inner
|
|
77
|
-
let innerWithLine: ReactNode[] = [];
|
|
44
|
+
let inner;
|
|
78
45
|
const cls = classNames(`${prefixCls}-group`, className);
|
|
79
46
|
|
|
80
47
|
if (children) {
|
|
@@ -83,8 +50,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
|
|
|
83
50
|
? cloneElement(itm, { disabled, size, type, ...itm.props, ...rest, key: index })
|
|
84
51
|
: itm
|
|
85
52
|
));
|
|
86
|
-
innerWithLine = this.getInnerWithLine(inner);
|
|
87
53
|
}
|
|
88
|
-
return <div className={cls} role="group" aria-label={ariaLabel}>{
|
|
54
|
+
return <div className={cls} role="group" aria-label={ariaLabel}>{inner}</div>;
|
|
89
55
|
}
|
|
90
56
|
}
|
package/dist/css/semi.css
CHANGED
|
@@ -1778,10 +1778,6 @@ body {
|
|
|
1778
1778
|
.semi-button-block {
|
|
1779
1779
|
width: 100%;
|
|
1780
1780
|
}
|
|
1781
|
-
.semi-button-group {
|
|
1782
|
-
display: flex;
|
|
1783
|
-
flex-wrap: wrap;
|
|
1784
|
-
}
|
|
1785
1781
|
.semi-button-group > .semi-button {
|
|
1786
1782
|
margin: 0;
|
|
1787
1783
|
padding-left: 0;
|
|
@@ -1820,46 +1816,13 @@ body {
|
|
|
1820
1816
|
border-top-left-radius: var(--semi-border-radius-small);
|
|
1821
1817
|
border-bottom-left-radius: var(--semi-border-radius-small);
|
|
1822
1818
|
}
|
|
1819
|
+
.semi-button-group > .semi-button:not(:last-child) .semi-button-content {
|
|
1820
|
+
border-right: 1px var(--semi-color-border) solid;
|
|
1821
|
+
}
|
|
1823
1822
|
.semi-button-group > .semi-button:last-child {
|
|
1824
1823
|
border-top-right-radius: var(--semi-border-radius-small);
|
|
1825
1824
|
border-bottom-right-radius: var(--semi-border-radius-small);
|
|
1826
1825
|
}
|
|
1827
|
-
.semi-button-group-line {
|
|
1828
|
-
display: inline-flex;
|
|
1829
|
-
align-items: center;
|
|
1830
|
-
background-color: var(--semi-color-border);
|
|
1831
|
-
}
|
|
1832
|
-
.semi-button-group-line-primary {
|
|
1833
|
-
background-color: var(--semi-color-primary);
|
|
1834
|
-
}
|
|
1835
|
-
.semi-button-group-line-secondary {
|
|
1836
|
-
background-color: var(--semi-color-secondary);
|
|
1837
|
-
}
|
|
1838
|
-
.semi-button-group-line-tertiary {
|
|
1839
|
-
background-color: var(--semi-color-tertiary);
|
|
1840
|
-
}
|
|
1841
|
-
.semi-button-group-line-warning {
|
|
1842
|
-
background-color: var(--semi-color-warning);
|
|
1843
|
-
}
|
|
1844
|
-
.semi-button-group-line-danger {
|
|
1845
|
-
background-color: var(--semi-color-danger);
|
|
1846
|
-
}
|
|
1847
|
-
.semi-button-group-line-disabled {
|
|
1848
|
-
background-color: var(--semi-color-disabled-bg);
|
|
1849
|
-
}
|
|
1850
|
-
.semi-button-group-line-light {
|
|
1851
|
-
background-color: var(--semi-color-fill-0);
|
|
1852
|
-
}
|
|
1853
|
-
.semi-button-group-line-borderless {
|
|
1854
|
-
background-color: transparent;
|
|
1855
|
-
}
|
|
1856
|
-
.semi-button-group-line::before {
|
|
1857
|
-
display: block;
|
|
1858
|
-
content: "";
|
|
1859
|
-
width: 1px;
|
|
1860
|
-
height: 20px;
|
|
1861
|
-
background-color: var(--semi-color-border);
|
|
1862
|
-
}
|
|
1863
1826
|
|
|
1864
1827
|
.semi-rtl .semi-button,
|
|
1865
1828
|
.semi-portal-rtl .semi-button {
|
|
@@ -14664,9 +14627,8 @@ body {
|
|
|
14664
14627
|
font-size: 14px;
|
|
14665
14628
|
line-height: 20px;
|
|
14666
14629
|
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
14667
|
-
position: relative;
|
|
14668
14630
|
display: inline-flex;
|
|
14669
|
-
|
|
14631
|
+
column-gap: 8px;
|
|
14670
14632
|
transition: background-color var(--semi-transition_duration-faster) var(--semi-transition_function-easeIn) var(--semi-transition_delay-fastest), border var(--semi-transition_duration-faster) var(--semi-transition_function-easeIn) var(--semi-transition_delay-fastest);
|
|
14671
14633
|
min-height: 20px;
|
|
14672
14634
|
min-width: 16px;
|
|
@@ -14715,6 +14677,7 @@ body {
|
|
|
14715
14677
|
border-radius: var(--semi-border-radius-small);
|
|
14716
14678
|
}
|
|
14717
14679
|
.semi-radio-buttonRadioGroup {
|
|
14680
|
+
position: relative;
|
|
14718
14681
|
padding: 4px;
|
|
14719
14682
|
border-radius: var(--semi-border-radius-small);
|
|
14720
14683
|
line-height: 16px;
|
|
@@ -14739,8 +14702,6 @@ body {
|
|
|
14739
14702
|
transition: background-color var(--semi-transition_duration-faster) var(--semi-transition_function-easeIn) var(--semi-transition_delay-fastest), border var(--semi-transition_duration-faster) var(--semi-transition_function-easeIn) var(--semi-transition_delay-fastest);
|
|
14740
14703
|
}
|
|
14741
14704
|
.semi-radio-cardRadioGroup .semi-radio-inner {
|
|
14742
|
-
position: relative;
|
|
14743
|
-
margin-right: 8px;
|
|
14744
14705
|
flex-shrink: 0;
|
|
14745
14706
|
}
|
|
14746
14707
|
.semi-radio-cardRadioGroup .semi-radio-inner-display {
|
|
@@ -14751,8 +14712,6 @@ body {
|
|
|
14751
14712
|
font-size: 14px;
|
|
14752
14713
|
line-height: 20px;
|
|
14753
14714
|
color: var(--semi-color-text-0);
|
|
14754
|
-
margin-left: 0;
|
|
14755
|
-
padding-left: 0;
|
|
14756
14715
|
}
|
|
14757
14716
|
.semi-radio-cardRadioGroup .semi-radio-extra {
|
|
14758
14717
|
font-weight: normal;
|
|
@@ -14809,19 +14768,18 @@ body {
|
|
|
14809
14768
|
border-color: var(--semi-color-primary-disabled);
|
|
14810
14769
|
}
|
|
14811
14770
|
.semi-radio-inner {
|
|
14812
|
-
|
|
14813
|
-
|
|
14814
|
-
|
|
14815
|
-
left: 0;
|
|
14771
|
+
display: inline-flex;
|
|
14772
|
+
margin-top: 2px;
|
|
14773
|
+
position: relative;
|
|
14816
14774
|
width: 16px;
|
|
14817
14775
|
height: 16px;
|
|
14818
14776
|
vertical-align: sub;
|
|
14819
14777
|
user-select: none;
|
|
14820
14778
|
}
|
|
14821
14779
|
.semi-radio-inner-display {
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
|
|
14780
|
+
display: inline-flex;
|
|
14781
|
+
align-items: center;
|
|
14782
|
+
justify-content: center;
|
|
14825
14783
|
box-sizing: border-box;
|
|
14826
14784
|
width: 16px;
|
|
14827
14785
|
height: 16px;
|
|
@@ -14831,11 +14789,14 @@ body {
|
|
|
14831
14789
|
transition: background-color var(--semi-transition_duration-faster) var(--semi-transition_function-easeIn) var(--semi-transition_delay-fastest), border var(--semi-transition_duration-faster) var(--semi-transition_function-easeIn) var(--semi-transition_delay-fastest);
|
|
14832
14790
|
}
|
|
14833
14791
|
.semi-radio-inner-display .semi-icon {
|
|
14834
|
-
position: absolute;
|
|
14835
14792
|
width: 100%;
|
|
14836
14793
|
height: 100%;
|
|
14837
14794
|
font-size: 14px;
|
|
14838
14795
|
}
|
|
14796
|
+
.semi-radio-content {
|
|
14797
|
+
display: flex;
|
|
14798
|
+
flex-direction: column;
|
|
14799
|
+
}
|
|
14839
14800
|
.semi-radio:hover .semi-radio-inner-display {
|
|
14840
14801
|
background: var(--semi-color-fill-0);
|
|
14841
14802
|
}
|
|
@@ -14844,14 +14805,11 @@ body {
|
|
|
14844
14805
|
}
|
|
14845
14806
|
.semi-radio-addon {
|
|
14846
14807
|
user-select: none;
|
|
14847
|
-
padding-left: 8px;
|
|
14848
|
-
margin-left: 16px;
|
|
14849
14808
|
color: var(--semi-color-text-0);
|
|
14850
14809
|
display: inline-flex;
|
|
14851
14810
|
align-items: center;
|
|
14852
14811
|
}
|
|
14853
14812
|
.semi-radio-addon-buttonRadio {
|
|
14854
|
-
margin-left: 0;
|
|
14855
14813
|
text-align: center;
|
|
14856
14814
|
border-radius: var(--semi-border-radius-small);
|
|
14857
14815
|
font-weight: 600;
|
|
@@ -14935,11 +14893,7 @@ body {
|
|
|
14935
14893
|
color: var(--semi-color-disabled-text);
|
|
14936
14894
|
}
|
|
14937
14895
|
.semi-radio-extra {
|
|
14938
|
-
flex-grow: 1;
|
|
14939
|
-
flex-basis: 100%;
|
|
14940
|
-
flex-shrink: 0;
|
|
14941
14896
|
color: var(--semi-color-text-2);
|
|
14942
|
-
padding-left: 24px;
|
|
14943
14897
|
box-sizing: border-box;
|
|
14944
14898
|
}
|
|
14945
14899
|
.semi-radio-focus {
|
|
@@ -14954,25 +14908,21 @@ body {
|
|
|
14954
14908
|
line-height: 20px;
|
|
14955
14909
|
font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
14956
14910
|
}
|
|
14957
|
-
.semi-radioGroup-vertical
|
|
14958
|
-
|
|
14911
|
+
.semi-radioGroup-vertical {
|
|
14912
|
+
display: flex;
|
|
14913
|
+
flex-direction: column;
|
|
14914
|
+
row-gap: 12px;
|
|
14959
14915
|
}
|
|
14960
14916
|
.semi-radioGroup-vertical-default .semi-radio {
|
|
14961
|
-
display:
|
|
14962
|
-
margin-bottom: 12px;
|
|
14917
|
+
display: flex;
|
|
14963
14918
|
}
|
|
14964
14919
|
.semi-radioGroup-vertical-card .semi-radio {
|
|
14965
14920
|
display: flex;
|
|
14966
|
-
margin-bottom: 16px;
|
|
14967
|
-
}
|
|
14968
|
-
.semi-radioGroup-horizontal .semi-radio {
|
|
14969
|
-
margin-right: 16px;
|
|
14970
|
-
}
|
|
14971
|
-
.semi-radioGroup-horizontal .semi-radio:last-of-type {
|
|
14972
|
-
margin-right: 0;
|
|
14973
14921
|
}
|
|
14974
|
-
.semi-radioGroup-horizontal
|
|
14975
|
-
display: inline-
|
|
14922
|
+
.semi-radioGroup-horizontal {
|
|
14923
|
+
display: inline-flex;
|
|
14924
|
+
flex-wrap: wrap;
|
|
14925
|
+
gap: 16px;
|
|
14976
14926
|
}
|
|
14977
14927
|
.semi-radioGroup-buttonRadio {
|
|
14978
14928
|
display: inline-block;
|
|
@@ -14996,59 +14946,10 @@ body {
|
|
|
14996
14946
|
.semi-portal-rtl .semi-radio-buttonRadioGroup:not(:last-child) {
|
|
14997
14947
|
padding-left: 0;
|
|
14998
14948
|
}
|
|
14999
|
-
.semi-rtl .semi-radio-inner,
|
|
15000
|
-
.semi-portal-rtl .semi-radio-inner {
|
|
15001
|
-
left: auto;
|
|
15002
|
-
right: 0;
|
|
15003
|
-
}
|
|
15004
|
-
.semi-rtl .semi-radio-inner-display,
|
|
15005
|
-
.semi-portal-rtl .semi-radio-inner-display {
|
|
15006
|
-
left: auto;
|
|
15007
|
-
right: 0;
|
|
15008
|
-
}
|
|
15009
|
-
.semi-rtl .semi-radio-addon,
|
|
15010
|
-
.semi-portal-rtl .semi-radio-addon {
|
|
15011
|
-
padding-left: 0;
|
|
15012
|
-
margin-left: 0;
|
|
15013
|
-
padding-right: 8px;
|
|
15014
|
-
margin-right: 16px;
|
|
15015
|
-
}
|
|
15016
|
-
.semi-rtl .semi-radio-addon-buttonRadio,
|
|
15017
|
-
.semi-portal-rtl .semi-radio-addon-buttonRadio {
|
|
15018
|
-
margin-right: 0;
|
|
15019
|
-
}
|
|
15020
|
-
.semi-rtl .semi-radio-extra,
|
|
15021
|
-
.semi-portal-rtl .semi-radio-extra {
|
|
15022
|
-
padding-left: 0;
|
|
15023
|
-
padding-right: 24px;
|
|
15024
|
-
}
|
|
15025
|
-
.semi-rtl-isCardRadioGroup .semi-radio-inner,
|
|
15026
|
-
.semi-portal-rtl-isCardRadioGroup .semi-radio-inner {
|
|
15027
|
-
margin-right: 0;
|
|
15028
|
-
margin-left: 8px;
|
|
15029
|
-
}
|
|
15030
|
-
.semi-rtl-isCardRadioGroup .semi-radio-addon,
|
|
15031
|
-
.semi-portal-rtl-isCardRadioGroup .semi-radio-addon {
|
|
15032
|
-
margin-right: 0;
|
|
15033
|
-
padding-right: 0;
|
|
15034
|
-
}
|
|
15035
|
-
.semi-rtl-isCardRadioGroup .semi-radio-extra,
|
|
15036
|
-
.semi-portal-rtl-isCardRadioGroup .semi-radio-extra {
|
|
15037
|
-
padding-right: 0;
|
|
15038
|
-
}
|
|
15039
14949
|
.semi-rtl .semi-radioGroup,
|
|
15040
14950
|
.semi-portal-rtl .semi-radioGroup {
|
|
15041
14951
|
direction: rtl;
|
|
15042
14952
|
}
|
|
15043
|
-
.semi-rtl .semi-radioGroup-horizontal .semi-radio,
|
|
15044
|
-
.semi-portal-rtl .semi-radioGroup-horizontal .semi-radio {
|
|
15045
|
-
margin-right: 0;
|
|
15046
|
-
margin-left: 16px;
|
|
15047
|
-
}
|
|
15048
|
-
.semi-rtl .semi-radioGroup-horizontal .semi-radio:last-of-type,
|
|
15049
|
-
.semi-portal-rtl .semi-radioGroup-horizontal .semi-radio:last-of-type {
|
|
15050
|
-
margin-left: 0;
|
|
15051
|
-
}
|
|
15052
14953
|
|
|
15053
14954
|
.semi-rating {
|
|
15054
14955
|
display: inline-block;
|