@semcore/base-trigger 3.0.6 → 3.0.9
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/CHANGELOG.md +18 -0
- package/README.md +67 -0
- package/lib/cjs/BaseTrigger.js +20 -20
- package/lib/cjs/BaseTrigger.js.map +1 -1
- package/lib/cjs/ButtonTrigger.js +4 -4
- package/lib/cjs/FilterTrigger.js +16 -16
- package/lib/cjs/LinkTrigger.js +15 -15
- package/lib/cjs/LinkTrigger.js.map +1 -1
- package/lib/es6/BaseTrigger.js +20 -20
- package/lib/es6/BaseTrigger.js.map +1 -1
- package/lib/es6/ButtonTrigger.js +4 -4
- package/lib/es6/FilterTrigger.js +16 -16
- package/lib/es6/LinkTrigger.js +15 -15
- package/lib/es6/LinkTrigger.js.map +1 -1
- package/package.json +2 -2
- package/src/BaseTrigger.jsx +0 -69
- package/src/ButtonTrigger.jsx +0 -41
- package/src/FilterTrigger.jsx +0 -79
- package/src/LinkTrigger.jsx +0 -69
- package/src/index.d.ts +0 -82
- package/src/index.js +0 -4
- package/src/style/base-trigger.shadow.css +0 -181
- package/src/style/button-trigger.shadow.css +0 -10
- package/src/style/filter-trigger.shadow.css +0 -82
- package/src/style/link-trigger.shadow.css +0 -100
package/src/BaseTrigger.jsx
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import createComponent, { Component, Root, sstyled } from '@semcore/core';
|
|
3
|
-
import { Box } from '@semcore/flex-box';
|
|
4
|
-
import { neighborLocationEnhance } from '@semcore/neighbor-location';
|
|
5
|
-
import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
|
|
6
|
-
import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
|
|
7
|
-
import logger from '@semcore/utils/lib/logger';
|
|
8
|
-
|
|
9
|
-
import style from './style/base-trigger.shadow.css';
|
|
10
|
-
|
|
11
|
-
class RootBaseTrigger extends Component {
|
|
12
|
-
static displayName = 'BaseTrigger';
|
|
13
|
-
static style = style;
|
|
14
|
-
static defaultProps = {
|
|
15
|
-
size: 'm',
|
|
16
|
-
};
|
|
17
|
-
static enhance = [keyboardFocusEnhance(), neighborLocationEnhance()];
|
|
18
|
-
|
|
19
|
-
getTextProps() {
|
|
20
|
-
const { placeholder, empty } = this.asProps;
|
|
21
|
-
return {
|
|
22
|
-
placeholder,
|
|
23
|
-
empty,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
render() {
|
|
28
|
-
const SBaseTrigger = Root;
|
|
29
|
-
const SInner = 'div';
|
|
30
|
-
const { Children, styles, theme } = this.asProps;
|
|
31
|
-
|
|
32
|
-
logger.warn(
|
|
33
|
-
theme !== undefined,
|
|
34
|
-
"The 'theme' property is deprecated, use 'state'",
|
|
35
|
-
this.asProps['data-ui-name'] || BaseTrigger.displayName,
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
// TODO: add aria
|
|
39
|
-
return sstyled(styles)(
|
|
40
|
-
<SBaseTrigger render={Box} state={theme}>
|
|
41
|
-
<SInner>{addonTextChildren(Children, BaseTrigger.Text, BaseTrigger.Addon)}</SInner>
|
|
42
|
-
</SBaseTrigger>,
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function Text(props) {
|
|
48
|
-
const SText = Root;
|
|
49
|
-
const { children, styles, empty, placeholder } = props;
|
|
50
|
-
|
|
51
|
-
return sstyled(styles)(
|
|
52
|
-
/* что бы не ломать обратную совместимость пришлось юзать use */
|
|
53
|
-
<SText render={Box} use:placeholder={empty}>
|
|
54
|
-
{empty ? placeholder : children}
|
|
55
|
-
</SText>,
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function Addon(props) {
|
|
60
|
-
const SAddon = Root;
|
|
61
|
-
return sstyled(props.styles)(<SAddon render={Box} />);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const BaseTrigger = createComponent(RootBaseTrigger, {
|
|
65
|
-
Text,
|
|
66
|
-
Addon,
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
export default BaseTrigger;
|
package/src/ButtonTrigger.jsx
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import createComponent, { Component, Root, sstyled } from '@semcore/core';
|
|
3
|
-
import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
|
|
4
|
-
import ChevronDown from '@semcore/icon/ChevronDown/m';
|
|
5
|
-
import BaseTrigger from './BaseTrigger';
|
|
6
|
-
import Spin from '@semcore/spin';
|
|
7
|
-
|
|
8
|
-
import style from './style/button-trigger.shadow.css';
|
|
9
|
-
|
|
10
|
-
class RootButtonTrigger extends Component {
|
|
11
|
-
static displayName = 'ButtonTrigger';
|
|
12
|
-
static style = style;
|
|
13
|
-
|
|
14
|
-
render() {
|
|
15
|
-
const SButtonAddon = ButtonTrigger.Addon;
|
|
16
|
-
const SButtonTriggerSpin = Spin;
|
|
17
|
-
const { Children, styles, loading } = this.asProps;
|
|
18
|
-
|
|
19
|
-
return sstyled(styles)(
|
|
20
|
-
<Root render={BaseTrigger}>
|
|
21
|
-
{addonTextChildren(Children, ButtonTrigger.Text, ButtonTrigger.Addon)}
|
|
22
|
-
<SButtonAddon>
|
|
23
|
-
{loading ? <SButtonTriggerSpin size="xs" theme={false} /> : <ChevronDown />}
|
|
24
|
-
</SButtonAddon>
|
|
25
|
-
</Root>,
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const ButtonTrigger = createComponent(
|
|
31
|
-
RootButtonTrigger,
|
|
32
|
-
{
|
|
33
|
-
Text: BaseTrigger.Text,
|
|
34
|
-
Addon: BaseTrigger.Addon,
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
parent: BaseTrigger,
|
|
38
|
-
},
|
|
39
|
-
);
|
|
40
|
-
|
|
41
|
-
export default ButtonTrigger;
|
package/src/FilterTrigger.jsx
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import createComponent, { Component, Root, sstyled } from '@semcore/core';
|
|
3
|
-
import BaseTrigger from './BaseTrigger';
|
|
4
|
-
import { Box } from '@semcore/flex-box';
|
|
5
|
-
import NeighborLocation from '@semcore/neighbor-location';
|
|
6
|
-
import Dot from '@semcore/dot';
|
|
7
|
-
import Close from '@semcore/icon/Close/m';
|
|
8
|
-
import ChevronDown from '@semcore/icon/ChevronDown/m';
|
|
9
|
-
import { callAllEventHandlers } from '@semcore/utils/lib/assignProps';
|
|
10
|
-
import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
|
|
11
|
-
|
|
12
|
-
import style from './style/filter-trigger.shadow.css';
|
|
13
|
-
|
|
14
|
-
class RootFilterTrigger extends Component {
|
|
15
|
-
static displayName = 'FilterTrigger';
|
|
16
|
-
static style = style;
|
|
17
|
-
|
|
18
|
-
handleStopPropagation = (e) => e.stopPropagation();
|
|
19
|
-
|
|
20
|
-
render() {
|
|
21
|
-
const SWrapper = Root;
|
|
22
|
-
const SFilterTrigger = BaseTrigger;
|
|
23
|
-
const { Children, styles, empty, onClear, size, placeholder, active, disabled } = this.asProps;
|
|
24
|
-
|
|
25
|
-
return sstyled(styles)(
|
|
26
|
-
<SWrapper render={Box}>
|
|
27
|
-
<NeighborLocation>
|
|
28
|
-
<SFilterTrigger
|
|
29
|
-
w="100%"
|
|
30
|
-
size={size}
|
|
31
|
-
placeholder={placeholder}
|
|
32
|
-
empty={empty}
|
|
33
|
-
selected={!empty}
|
|
34
|
-
active={active}
|
|
35
|
-
disabled={disabled}
|
|
36
|
-
>
|
|
37
|
-
{addonTextChildren(Children, FilterTrigger.Text, [
|
|
38
|
-
FilterTrigger.Addon,
|
|
39
|
-
FilterTrigger.Counter,
|
|
40
|
-
])}
|
|
41
|
-
{empty && <FilterTrigger.Addon tag={ChevronDown} />}
|
|
42
|
-
</SFilterTrigger>
|
|
43
|
-
{!empty && (
|
|
44
|
-
<SFilterTrigger
|
|
45
|
-
tag="button"
|
|
46
|
-
size={size}
|
|
47
|
-
empty={empty}
|
|
48
|
-
selected
|
|
49
|
-
onClick={callAllEventHandlers(onClear, this.handleStopPropagation)}
|
|
50
|
-
onKeyDown={this.handleStopPropagation}
|
|
51
|
-
disabled={disabled}
|
|
52
|
-
>
|
|
53
|
-
<FilterTrigger.Addon tag={Close} />
|
|
54
|
-
</SFilterTrigger>
|
|
55
|
-
)}
|
|
56
|
-
</NeighborLocation>
|
|
57
|
-
</SWrapper>,
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function Counter(props) {
|
|
63
|
-
const SCounter = Root;
|
|
64
|
-
return sstyled(props.styles)(<SCounter render={BaseTrigger.Addon} tag={Dot} />);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const FilterTrigger = createComponent(
|
|
68
|
-
RootFilterTrigger,
|
|
69
|
-
{
|
|
70
|
-
Text: BaseTrigger.Text,
|
|
71
|
-
Addon: BaseTrigger.Addon,
|
|
72
|
-
Counter,
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
parent: BaseTrigger,
|
|
76
|
-
},
|
|
77
|
-
);
|
|
78
|
-
|
|
79
|
-
export default FilterTrigger;
|
package/src/LinkTrigger.jsx
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import createComponent, { Component, Root, sstyled } from '@semcore/core';
|
|
3
|
-
import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
|
|
4
|
-
import ChevronDown from '@semcore/icon/ChevronDown/m';
|
|
5
|
-
import Spin from '@semcore/spin';
|
|
6
|
-
import { Box } from '@semcore/flex-box';
|
|
7
|
-
import resolveColor, { shade } from '@semcore/utils/lib/color';
|
|
8
|
-
import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
|
|
9
|
-
|
|
10
|
-
import style from './style/link-trigger.shadow.css';
|
|
11
|
-
|
|
12
|
-
class RootLinkTrigger extends Component {
|
|
13
|
-
static displayName = 'LinkTrigger';
|
|
14
|
-
static style = style;
|
|
15
|
-
static defaultProps = {
|
|
16
|
-
size: 'm',
|
|
17
|
-
};
|
|
18
|
-
static enhance = [keyboardFocusEnhance()];
|
|
19
|
-
|
|
20
|
-
getTextProps() {
|
|
21
|
-
const { placeholder, empty } = this.asProps;
|
|
22
|
-
return {
|
|
23
|
-
placeholder,
|
|
24
|
-
empty,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
render() {
|
|
29
|
-
const SLinkTrigger = Root;
|
|
30
|
-
const SLinkAddon = LinkTrigger.Addon;
|
|
31
|
-
const { Children, loading, styles, color: providedColor } = this.asProps;
|
|
32
|
-
|
|
33
|
-
const color = resolveColor(providedColor);
|
|
34
|
-
const colorHover = shade(color, -0.12);
|
|
35
|
-
|
|
36
|
-
return sstyled(styles)(
|
|
37
|
-
<SLinkTrigger render={Box} use:color={color} use:color-hover={colorHover}>
|
|
38
|
-
{addonTextChildren(Children, LinkTrigger.Text, LinkTrigger.Addon)}
|
|
39
|
-
<SLinkAddon>
|
|
40
|
-
{loading ? <Spin size="xs" theme="currentColor" /> : <ChevronDown />}
|
|
41
|
-
</SLinkAddon>
|
|
42
|
-
</SLinkTrigger>,
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function Text(props) {
|
|
48
|
-
const SText = Root;
|
|
49
|
-
const { children, styles, empty, placeholder } = props;
|
|
50
|
-
|
|
51
|
-
return sstyled(styles)(
|
|
52
|
-
/* что бы не ломать обратную совместимость пришлось юзать use */
|
|
53
|
-
<SText render={Box} use:placeholder={empty}>
|
|
54
|
-
{empty ? placeholder : children}
|
|
55
|
-
</SText>,
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function Addon(props) {
|
|
60
|
-
const SAddon = Root;
|
|
61
|
-
return sstyled(props.styles)(<SAddon render={Box} />);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const LinkTrigger = createComponent(RootLinkTrigger, {
|
|
65
|
-
Text,
|
|
66
|
-
Addon,
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
export default LinkTrigger;
|
package/src/index.d.ts
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import React, { ComponentProps } from 'react';
|
|
2
|
-
import { CProps, ReturnEl } from '@semcore/core';
|
|
3
|
-
import { Box, IBoxProps } from '@semcore/flex-box';
|
|
4
|
-
import Dot from '@semcore/dot';
|
|
5
|
-
import { INeighborItemProps } from '@semcore/neighbor-location';
|
|
6
|
-
import { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
|
|
7
|
-
|
|
8
|
-
export interface IBaseTriggerProps extends IBoxProps, INeighborItemProps, IKeyboardFocusProps {
|
|
9
|
-
/**
|
|
10
|
-
* Trigger size
|
|
11
|
-
* @default m
|
|
12
|
-
*/
|
|
13
|
-
size?: 'm' | 'l';
|
|
14
|
-
/**
|
|
15
|
-
* Trigger state
|
|
16
|
-
*/
|
|
17
|
-
state?: 'normal' | 'valid' | 'invalid';
|
|
18
|
-
/**
|
|
19
|
-
* Sets active state to trigger
|
|
20
|
-
*/
|
|
21
|
-
active?: boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Responsible for placeholder displaying
|
|
24
|
-
*/
|
|
25
|
-
empty?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Placeholder text
|
|
28
|
-
*/
|
|
29
|
-
placeholder?: React.ReactNode;
|
|
30
|
-
/**
|
|
31
|
-
* Sets disabled state to trigger
|
|
32
|
-
*/
|
|
33
|
-
disabled?: boolean;
|
|
34
|
-
/** Trigger theme
|
|
35
|
-
* @deprecated
|
|
36
|
-
* @use IBaseTriggerProps.state
|
|
37
|
-
* */
|
|
38
|
-
theme?: 'normal' | 'valid' | 'invalid' | false;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface IButtonTriggerProps extends Omit<IBaseTriggerProps, 'theme'> {
|
|
42
|
-
/** Sets the loading state */
|
|
43
|
-
loading?: boolean;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface ILinkTriggerProps extends Omit<IBaseTriggerProps, 'theme'> {
|
|
47
|
-
/** Sets the loading state */
|
|
48
|
-
loading?: boolean;
|
|
49
|
-
/** Text color */
|
|
50
|
-
color?: string;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export interface IFilterTriggerProps extends IBaseTriggerProps {
|
|
54
|
-
/** Click on the filter cleaning cross */
|
|
55
|
-
onClear?: (event: React.SyntheticEvent) => void;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
declare const BaseTrigger: (<T>(props: CProps<IBaseTriggerProps & T>) => ReturnEl) & {
|
|
59
|
-
Text: typeof Box;
|
|
60
|
-
Addon: typeof Box;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
declare const ButtonTrigger: (<T>(props: CProps<IButtonTriggerProps & T>) => ReturnEl) & {
|
|
64
|
-
Text: typeof BaseTrigger.Text;
|
|
65
|
-
Addon: typeof BaseTrigger.Addon;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
declare const LinkTrigger: (<T>(props: CProps<ILinkTriggerProps & T>) => ReturnEl) & {
|
|
69
|
-
Text: typeof BaseTrigger.Text;
|
|
70
|
-
Addon: typeof BaseTrigger.Addon;
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
declare const FilterTrigger: (<T>(props: CProps<ILinkTriggerProps & T>) => ReturnEl) & {
|
|
74
|
-
Text: typeof BaseTrigger.Text;
|
|
75
|
-
Addon: typeof BaseTrigger.Addon;
|
|
76
|
-
Counter: <T>(
|
|
77
|
-
props: ComponentProps<typeof BaseTrigger.Addon> & ComponentProps<typeof Dot> & T,
|
|
78
|
-
) => ReturnEl;
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export default BaseTrigger;
|
|
82
|
-
export { ButtonTrigger, LinkTrigger, FilterTrigger };
|
package/src/index.js
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
@import '@semcore/utils/style/var.css';
|
|
2
|
-
|
|
3
|
-
SBaseTrigger {
|
|
4
|
-
display: inline-block;
|
|
5
|
-
align-items: center;
|
|
6
|
-
justify-content: center;
|
|
7
|
-
line-height: normal;
|
|
8
|
-
position: relative;
|
|
9
|
-
touch-action: manipulation;
|
|
10
|
-
white-space: nowrap;
|
|
11
|
-
user-select: none;
|
|
12
|
-
box-sizing: border-box;
|
|
13
|
-
padding: 0;
|
|
14
|
-
margin: 0;
|
|
15
|
-
box-shadow: none;
|
|
16
|
-
outline: none;
|
|
17
|
-
text-decoration: none;
|
|
18
|
-
-webkit-tap-highlight-color: transparent;
|
|
19
|
-
overflow: visible;
|
|
20
|
-
outline: 0;
|
|
21
|
-
text-align: center;
|
|
22
|
-
vertical-align: middle;
|
|
23
|
-
font-family: Inter, sans-serif;
|
|
24
|
-
cursor: pointer;
|
|
25
|
-
|
|
26
|
-
background: #ffffff;
|
|
27
|
-
|
|
28
|
-
font-weight: 400;
|
|
29
|
-
border: 1px solid var(--gray-200);
|
|
30
|
-
color: var(--gray-800);
|
|
31
|
-
|
|
32
|
-
&::-moz-focus-inner {
|
|
33
|
-
border: none;
|
|
34
|
-
padding: 0;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
&:active,
|
|
38
|
-
&:hover,
|
|
39
|
-
&:focus {
|
|
40
|
-
outline: 0;
|
|
41
|
-
text-decoration: none;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
&[keyboardFocused] {
|
|
45
|
-
border: 1px solid var(--blue-400);
|
|
46
|
-
box-shadow: var(--keyboard-focus);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
&:hover {
|
|
50
|
-
background-color: color-mod(var(--gray-400) a(20%));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
&:active,
|
|
54
|
-
&[active] {
|
|
55
|
-
background-color: color-mod(var(--gray-400) a(30%));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
SBaseTrigger[disabled] {
|
|
60
|
-
opacity: var(--disabled-opacity);
|
|
61
|
-
cursor: default;
|
|
62
|
-
pointer-events: none; /* Disable link interactions */
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
SBaseTrigger[keyboardFocused] {
|
|
66
|
-
z-index: 1;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
SInner {
|
|
70
|
-
display: inline-flex;
|
|
71
|
-
align-items: center;
|
|
72
|
-
justify-content: center;
|
|
73
|
-
height: 100%;
|
|
74
|
-
width: 100%;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
SText {
|
|
78
|
-
display: inline;
|
|
79
|
-
padding: 1px 0;
|
|
80
|
-
overflow: hidden;
|
|
81
|
-
white-space: nowrap;
|
|
82
|
-
text-overflow: ellipsis;
|
|
83
|
-
line-height: var(--lh-200);
|
|
84
|
-
flex-grow: 1;
|
|
85
|
-
text-align: left;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
SAddon {
|
|
89
|
-
display: inline-flex;
|
|
90
|
-
align-items: center;
|
|
91
|
-
justify-content: center;
|
|
92
|
-
flex-shrink: 0;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
SBaseAddon {
|
|
96
|
-
width: 12px;
|
|
97
|
-
height: 12px;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
SBaseTrigger[size='m'] {
|
|
101
|
-
min-width: 26px;
|
|
102
|
-
height: 28px;
|
|
103
|
-
border-radius: var(--rounded-m);
|
|
104
|
-
padding: 0 8px;
|
|
105
|
-
font-size: var(--fs-200);
|
|
106
|
-
|
|
107
|
-
& SAddon {
|
|
108
|
-
&:not(:only-child):first-child {
|
|
109
|
-
margin-right: 8px;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
&:not(:only-child):last-child {
|
|
113
|
-
margin-left: 8px;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
&:only-child {
|
|
117
|
-
margin-left: -4px;
|
|
118
|
-
margin-right: -4px;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
SBaseTrigger[size='l'] {
|
|
124
|
-
min-width: 32px;
|
|
125
|
-
height: 40px;
|
|
126
|
-
border-radius: var(--rounded-m);
|
|
127
|
-
padding: 0 12px;
|
|
128
|
-
font-size: var(--fs-300);
|
|
129
|
-
|
|
130
|
-
& SAddon {
|
|
131
|
-
&:not(:only-child):first-child {
|
|
132
|
-
margin-right: 8px;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
&:not(:only-child):last-child {
|
|
136
|
-
margin-left: 8px;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
&:only-child {
|
|
140
|
-
margin-left: -4px;
|
|
141
|
-
margin-right: -4px;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
SBaseTrigger[neighborLocation='right'] {
|
|
147
|
-
border-top-right-radius: 0;
|
|
148
|
-
border-bottom-right-radius: 0;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
SBaseTrigger[neighborLocation='both'] {
|
|
152
|
-
border-radius: 0;
|
|
153
|
-
margin-left: -1px;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
SBaseTrigger[neighborLocation='left'] {
|
|
157
|
-
border-top-left-radius: 0;
|
|
158
|
-
border-bottom-left-radius: 0;
|
|
159
|
-
margin-left: -1px;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
SText[placeholder] {
|
|
163
|
-
color: var(--gray-300);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
SBaseTrigger[state='normal'] {
|
|
167
|
-
border-color: var(--gray-200);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
SBaseTrigger[state='valid'] {
|
|
171
|
-
border-color: var(--green-200);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
SBaseTrigger[state='invalid'] {
|
|
175
|
-
border-color: var(--red-200);
|
|
176
|
-
|
|
177
|
-
&[keyboardFocused] {
|
|
178
|
-
border-color: var(--orange-400);
|
|
179
|
-
box-shadow: 0 0 0 3px color-mod(var(--orange-400) a(30%));
|
|
180
|
-
}
|
|
181
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
@import '@semcore/utils/style/var.css';
|
|
2
|
-
|
|
3
|
-
SButtonTrigger {
|
|
4
|
-
border: 1px solid var(--gray-200);
|
|
5
|
-
background: #ffffff;
|
|
6
|
-
color: var(--gray-800);
|
|
7
|
-
|
|
8
|
-
&::-moz-focus-inner {
|
|
9
|
-
border: none;
|
|
10
|
-
padding: 0;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
&:active,
|
|
14
|
-
&:hover,
|
|
15
|
-
&:focus {
|
|
16
|
-
outline: 0;
|
|
17
|
-
text-decoration: none;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
&:active,
|
|
21
|
-
&:hover,
|
|
22
|
-
&[active] {
|
|
23
|
-
background-color: color-mod(var(--gray-400) a(20%));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
SButtonTrigger[size='m'] {
|
|
28
|
-
min-width: 26px;
|
|
29
|
-
height: 28px;
|
|
30
|
-
border-radius: var(--rounded-m);
|
|
31
|
-
font-size: var(--fs-200);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
SButtonTrigger[size='l'] {
|
|
35
|
-
min-width: 32px;
|
|
36
|
-
height: 40px;
|
|
37
|
-
border-radius: var(--rounded-m);
|
|
38
|
-
font-size: var(--fs-300);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
SText[placeholder] {
|
|
42
|
-
color: var(--gray-300);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
SButtonTrigger[state='normal'] {
|
|
46
|
-
border-color: var(--gray-200);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
SButtonTrigger[state='valid'] {
|
|
50
|
-
border-color: var(--green-200);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
SButtonTrigger[state='invalid'] {
|
|
54
|
-
border-color: var(--red-200);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
SFilterTrigger[selected] {
|
|
58
|
-
border-color: var(--blue-400);
|
|
59
|
-
background-color: color-mod(var(--blue-400) a(20%));
|
|
60
|
-
color: var(--gray-800);
|
|
61
|
-
|
|
62
|
-
&[active],
|
|
63
|
-
&:hover {
|
|
64
|
-
background: color-mod(var(--blue-400) a(30%));
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
SWrapper {
|
|
69
|
-
display: inline-flex;
|
|
70
|
-
|
|
71
|
-
&:focus {
|
|
72
|
-
outline: none;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
SWrapper[keyboardFocused] {
|
|
77
|
-
box-shadow: var(--keyboard-focus);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
SCounter {
|
|
81
|
-
background-color: var(--blue-400);
|
|
82
|
-
}
|