@semcore/button 16.0.13-prerelease.9 → 16.1.0-prerelease.0
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 +3 -3
- package/lib/cjs/component/AbstractButton/AbstractButton.js +165 -100
- package/lib/cjs/component/AbstractButton/AbstractButton.js.map +1 -1
- package/lib/cjs/component/AbstractButton/AbstractButton.type.js.map +1 -1
- package/lib/cjs/component/AbstractButton/SpinButton.js +10 -9
- package/lib/cjs/component/AbstractButton/SpinButton.js.map +1 -1
- package/lib/cjs/component/Button/Button.js +63 -54
- package/lib/cjs/component/Button/Button.js.map +1 -1
- package/lib/cjs/component/Button/Button.type.js.map +1 -1
- package/lib/cjs/component/Button/button.shadow.css +79 -79
- package/lib/cjs/component/ButtonLink/ButtonLink.js +59 -51
- package/lib/cjs/component/ButtonLink/ButtonLink.js.map +1 -1
- package/lib/cjs/component/ButtonLink/buttonLink.shadow.css +13 -13
- package/lib/cjs/index.js +7 -7
- package/lib/cjs/index.js.map +1 -1
- package/lib/es6/component/AbstractButton/AbstractButton.js +164 -97
- package/lib/es6/component/AbstractButton/AbstractButton.js.map +1 -1
- package/lib/es6/component/AbstractButton/AbstractButton.type.js.map +1 -1
- package/lib/es6/component/AbstractButton/SpinButton.js +7 -6
- package/lib/es6/component/AbstractButton/SpinButton.js.map +1 -1
- package/lib/es6/component/Button/Button.js +56 -47
- package/lib/es6/component/Button/Button.js.map +1 -1
- package/lib/es6/component/Button/Button.type.js.map +1 -1
- package/lib/es6/component/Button/button.shadow.css +79 -79
- package/lib/es6/component/ButtonLink/ButtonLink.js +52 -44
- package/lib/es6/component/ButtonLink/ButtonLink.js.map +1 -1
- package/lib/es6/component/ButtonLink/buttonLink.shadow.css +13 -13
- package/lib/esm/component/AbstractButton/AbstractButton.mjs +136 -98
- package/lib/esm/component/AbstractButton/SpinButton.mjs +6 -6
- package/lib/esm/component/Button/Button.mjs +56 -47
- package/lib/esm/component/Button/button.shadow.css +79 -79
- package/lib/esm/component/ButtonLink/ButtonLink.mjs +50 -44
- package/lib/esm/component/ButtonLink/buttonLink.shadow.css +13 -13
- package/lib/types/component/AbstractButton/AbstractButton.d.ts +6 -5
- package/lib/types/component/AbstractButton/AbstractButton.type.d.ts +4 -2
- package/lib/types/component/Button/Button.type.d.ts +18 -2
- package/package.json +9 -6
- package/src/component/AbstractButton/AbstractButton.tsx +77 -58
- package/src/component/AbstractButton/AbstractButton.type.ts +4 -2
- package/src/component/Button/Button.tsx +1 -1
- package/src/component/Button/Button.type.ts +14 -1
- package/src/component/Button/button.shadow.css +79 -79
- package/src/component/ButtonLink/ButtonLink.tsx +1 -1
- package/src/component/ButtonLink/buttonLink.shadow.css +13 -13
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/button",
|
|
3
3
|
"description": "Semrush Button Component",
|
|
4
|
-
"version": "16.0
|
|
4
|
+
"version": "16.1.0-prerelease.0",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -14,10 +14,13 @@
|
|
|
14
14
|
"types": "./lib/types/index.d.ts"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@semcore/
|
|
17
|
+
"@semcore/flex-box": "16.1.0-prerelease.0",
|
|
18
|
+
"@semcore/neighbor-location": "16.1.0-prerelease.0",
|
|
19
|
+
"@semcore/spin": "16.1.0-prerelease.0",
|
|
20
|
+
"@semcore/tooltip": "16.1.0-prerelease.0"
|
|
18
21
|
},
|
|
19
22
|
"peerDependencies": {
|
|
20
|
-
"@semcore/base-components": "^16.
|
|
23
|
+
"@semcore/base-components": "^16.6.0-prerelease.0"
|
|
21
24
|
},
|
|
22
25
|
"repository": {
|
|
23
26
|
"type": "git",
|
|
@@ -25,10 +28,10 @@
|
|
|
25
28
|
"directory": "semcore/button"
|
|
26
29
|
},
|
|
27
30
|
"devDependencies": {
|
|
28
|
-
"@semcore/core": "16.5.1",
|
|
29
31
|
"@semcore/testing-utils": "1.0.0",
|
|
30
|
-
"@semcore/
|
|
31
|
-
"@semcore/
|
|
32
|
+
"@semcore/core": "16.6.0-prerelease.0",
|
|
33
|
+
"@semcore/icon": "16.8.0-prerelease.0",
|
|
34
|
+
"@semcore/base-components": "16.6.0-prerelease.0"
|
|
32
35
|
},
|
|
33
36
|
"scripts": {
|
|
34
37
|
"build": "pnpm semcore-builder && pnpm vite build"
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { NeighborLocation, Box, Hint } from '@semcore/base-components';
|
|
2
1
|
import { Component, CORE_INSTANCE, Root, sstyled } from '@semcore/core';
|
|
3
2
|
import addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';
|
|
4
3
|
import hasLabels from '@semcore/core/lib/utils/hasLabels';
|
|
5
4
|
import logger from '@semcore/core/lib/utils/logger';
|
|
5
|
+
import { Box } from '@semcore/flex-box';
|
|
6
|
+
import NeighborLocation from '@semcore/neighbor-location';
|
|
7
|
+
import { Hint } from '@semcore/tooltip';
|
|
6
8
|
import React from 'react';
|
|
7
9
|
|
|
8
10
|
import type { AbstractButtonProps } from './AbstractButton.type';
|
|
@@ -16,16 +18,12 @@ export const MAP_USE_DEFAULT_THEME: Record<string, string> = {
|
|
|
16
18
|
|
|
17
19
|
type Props = AbstractButtonProps<any, any, any>;
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
ariaLabelledByContent: null | string;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export abstract class AbstractButton extends Component<Props, [], never, {}, State> {
|
|
21
|
+
export abstract class AbstractButton extends Component<Props, {}, {}> {
|
|
24
22
|
static displayName = 'AbstractButton';
|
|
25
23
|
|
|
26
24
|
containerRef = React.createRef<HTMLButtonElement>();
|
|
27
25
|
|
|
28
|
-
state
|
|
26
|
+
state = {
|
|
29
27
|
ariaLabelledByContent: null,
|
|
30
28
|
};
|
|
31
29
|
|
|
@@ -72,6 +70,28 @@ export abstract class AbstractButton extends Component<Props, [], never, {}, Sta
|
|
|
72
70
|
}
|
|
73
71
|
}
|
|
74
72
|
|
|
73
|
+
renderButton({ buttonProps, children }: any) {
|
|
74
|
+
const { styles, theme } = this.asProps;
|
|
75
|
+
const SButton = Root;
|
|
76
|
+
|
|
77
|
+
return sstyled(styles)(
|
|
78
|
+
<SButton render={Box} invertOutline={theme === 'invert'} {...buttonProps}>
|
|
79
|
+
{children}
|
|
80
|
+
</SButton>,
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
renderButtonWithHint({ buttonProps, children, hintProps }: any) {
|
|
85
|
+
const { styles, theme } = this.asProps;
|
|
86
|
+
const SButton = Root;
|
|
87
|
+
|
|
88
|
+
return sstyled(styles)(
|
|
89
|
+
<SButton render={Hint} invertOutline={theme === 'invert'} {...buttonProps} {...hintProps} ignorePortalsStacking>
|
|
90
|
+
{children}
|
|
91
|
+
</SButton>,
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
|
|
75
95
|
render() {
|
|
76
96
|
const {
|
|
77
97
|
styles,
|
|
@@ -81,7 +101,7 @@ export abstract class AbstractButton extends Component<Props, [], never, {}, Sta
|
|
|
81
101
|
disabled = loading,
|
|
82
102
|
size,
|
|
83
103
|
neighborLocation,
|
|
84
|
-
children,
|
|
104
|
+
children: hasChildren,
|
|
85
105
|
title,
|
|
86
106
|
['aria-label']: ariaLabel,
|
|
87
107
|
Children,
|
|
@@ -89,7 +109,6 @@ export abstract class AbstractButton extends Component<Props, [], never, {}, Sta
|
|
|
89
109
|
addonRight: AddonRight,
|
|
90
110
|
hintPlacement,
|
|
91
111
|
} = this.asProps;
|
|
92
|
-
const SButton = Root;
|
|
93
112
|
// @ts-ignore
|
|
94
113
|
const Button = this[CORE_INSTANCE];
|
|
95
114
|
const useTheme = use && theme ? `${use}-${theme}` : false;
|
|
@@ -97,63 +116,63 @@ export abstract class AbstractButton extends Component<Props, [], never, {}, Sta
|
|
|
97
116
|
const SSpin = Box;
|
|
98
117
|
const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';
|
|
99
118
|
|
|
100
|
-
const
|
|
119
|
+
const buttonProps: Record<string, any> = {
|
|
120
|
+
'type': 'button',
|
|
121
|
+
'tag': 'button',
|
|
122
|
+
disabled,
|
|
123
|
+
'use:theme': useTheme,
|
|
124
|
+
'ref': this.containerRef,
|
|
125
|
+
'text-color': this.getTextColor(),
|
|
126
|
+
'aria-busy': loading,
|
|
127
|
+
'__excludeProps': ['title'],
|
|
128
|
+
'tabIndex': 0,
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
const hintProps = {
|
|
132
|
+
title: buttonAriaLabel,
|
|
133
|
+
timeout: [250, 50],
|
|
134
|
+
placement: hintPlacement,
|
|
135
|
+
theme: theme === 'invert' ? 'invert' : undefined,
|
|
136
|
+
__excludeProps: [],
|
|
137
|
+
};
|
|
101
138
|
|
|
102
139
|
return (
|
|
103
140
|
<NeighborLocation.Detect neighborLocation={neighborLocation}>
|
|
104
141
|
{(neighborLocation) => {
|
|
105
|
-
|
|
142
|
+
const children = sstyled(styles)(
|
|
106
143
|
<>
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
)
|
|
130
|
-
: null}
|
|
131
|
-
{addonTextChildren(Children, Button.Text, Button.Addon)}
|
|
132
|
-
{AddonRight
|
|
133
|
-
? (
|
|
134
|
-
<Button.Addon>
|
|
135
|
-
<AddonRight />
|
|
136
|
-
</Button.Addon>
|
|
137
|
-
)
|
|
138
|
-
: null}
|
|
139
|
-
</SInner>
|
|
140
|
-
{loading && (
|
|
141
|
-
<SSpin tag='span'>
|
|
142
|
-
<SpinButton centered size={size} theme={useTheme} />
|
|
143
|
-
</SSpin>
|
|
144
|
-
)}
|
|
145
|
-
</SButton>
|
|
146
|
-
{showHint && (
|
|
147
|
-
<Hint
|
|
148
|
-
triggerRef={this.containerRef}
|
|
149
|
-
timeout={[250, 50]}
|
|
150
|
-
placement={hintPlacement}
|
|
151
|
-
>
|
|
152
|
-
{buttonAriaLabel}
|
|
153
|
-
</Hint>
|
|
144
|
+
{/* @ts-ignore */}
|
|
145
|
+
<SInner tag='span' loading={loading} data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}>
|
|
146
|
+
{AddonLeft
|
|
147
|
+
? (
|
|
148
|
+
<Button.Addon>
|
|
149
|
+
<AddonLeft />
|
|
150
|
+
</Button.Addon>
|
|
151
|
+
)
|
|
152
|
+
: null}
|
|
153
|
+
{addonTextChildren(Children, Button.Text, Button.Addon)}
|
|
154
|
+
{AddonRight
|
|
155
|
+
? (
|
|
156
|
+
<Button.Addon>
|
|
157
|
+
<AddonRight />
|
|
158
|
+
</Button.Addon>
|
|
159
|
+
)
|
|
160
|
+
: null}
|
|
161
|
+
</SInner>
|
|
162
|
+
{loading && (
|
|
163
|
+
<SSpin tag='span'>
|
|
164
|
+
<SpinButton centered size={size} theme={useTheme} />
|
|
165
|
+
</SSpin>
|
|
154
166
|
)}
|
|
155
167
|
</>,
|
|
156
168
|
);
|
|
169
|
+
buttonProps.neighborLocation = neighborLocation;
|
|
170
|
+
|
|
171
|
+
if (hasChildren === undefined || title) {
|
|
172
|
+
return this.renderButtonWithHint({ buttonProps, hintProps, children });
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return this.renderButton({ buttonProps, children });
|
|
157
176
|
}}
|
|
158
177
|
</NeighborLocation.Detect>
|
|
159
178
|
);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';
|
|
2
1
|
import type { PropGetterFn } from '@semcore/core';
|
|
2
|
+
import type { BoxProps } from '@semcore/flex-box';
|
|
3
|
+
import type { NeighborItemProps } from '@semcore/neighbor-location';
|
|
4
|
+
import type { TooltipHintProps } from '@semcore/tooltip';
|
|
3
5
|
import type React from 'react';
|
|
4
6
|
|
|
5
7
|
export type AbstractButtonProps<S, U, T> = BoxProps &
|
|
@@ -18,7 +20,7 @@ export type AbstractButtonProps<S, U, T> = BoxProps &
|
|
|
18
20
|
* Placement for hint
|
|
19
21
|
* @default top
|
|
20
22
|
*/
|
|
21
|
-
hintPlacement?:
|
|
23
|
+
hintPlacement?: TooltipHintProps['placement'];
|
|
22
24
|
|
|
23
25
|
/** Button size. Defined in Button.type or ButtonLink.type */
|
|
24
26
|
size?: S;
|
|
@@ -18,15 +18,28 @@ export type ButtonSize = 'l' | 'm';
|
|
|
18
18
|
*/
|
|
19
19
|
type Use = 'primary' | 'secondary' | 'tertiary';
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated don't use it. use `danger` for incorrect or danger behavior and `brand` for the orange one.
|
|
23
|
+
*/
|
|
24
|
+
type DeprecatedTheme = 'warning';
|
|
25
|
+
|
|
21
26
|
/** Button theme */
|
|
22
27
|
type Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';
|
|
23
28
|
|
|
24
|
-
|
|
29
|
+
/** @deprecated */
|
|
30
|
+
export interface IButtonProps extends ButtonProps, UnknownProperties {}
|
|
31
|
+
export type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme | DeprecatedTheme>;
|
|
25
32
|
|
|
33
|
+
/** @deprecated */
|
|
34
|
+
export interface IButtonTextProps extends ButtonTextProps, UnknownProperties {}
|
|
26
35
|
export type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;
|
|
27
36
|
|
|
37
|
+
/** @deprecated */
|
|
38
|
+
export interface IButtonAddonProps extends ButtonAddonProps, UnknownProperties {}
|
|
28
39
|
export type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;
|
|
29
40
|
|
|
41
|
+
/** @deprecated */
|
|
42
|
+
export interface IButtonContext extends ButtonContext, UnknownProperties {}
|
|
30
43
|
export type ButtonContext = AbstractButtonContext;
|
|
31
44
|
|
|
32
45
|
export type ButtonChildren = {
|
|
@@ -20,7 +20,7 @@ SButton {
|
|
|
20
20
|
touch-action: manipulation;
|
|
21
21
|
-webkit-tap-highlight-color: transparent;
|
|
22
22
|
font-weight: var(--intergalactic-medium, 500);
|
|
23
|
-
color: var(--intergalactic-text-secondary,
|
|
23
|
+
color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
|
|
24
24
|
min-width: fit-content;
|
|
25
25
|
|
|
26
26
|
&::-moz-focus-inner {
|
|
@@ -35,7 +35,7 @@ SButton {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
SButton[disabled] {
|
|
38
|
-
opacity: var(--intergalactic-disabled-opacity, 0.
|
|
38
|
+
opacity: var(--intergalactic-disabled-opacity, 0.4);
|
|
39
39
|
cursor: default;
|
|
40
40
|
pointer-events: none;
|
|
41
41
|
box-shadow: none;
|
|
@@ -61,201 +61,201 @@ SButton[size='l'] {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
SButton[theme='primary-info'] {
|
|
64
|
-
color: var(--intergalactic-text-primary-invert,
|
|
65
|
-
background-color: var(--intergalactic-control-primary-info,
|
|
64
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
65
|
+
background-color: var(--intergalactic-control-primary-info, oklch(0.23 0.01 140));
|
|
66
66
|
|
|
67
67
|
&:hover {
|
|
68
|
-
color: var(--intergalactic-text-primary-invert,
|
|
69
|
-
background-color: var(--intergalactic-control-primary-info-hover,
|
|
68
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
69
|
+
background-color: var(--intergalactic-control-primary-info-hover, oklch(0.32 0.007 140));
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
&:active,
|
|
73
73
|
&[active] {
|
|
74
|
-
color: var(--intergalactic-text-primary-invert,
|
|
75
|
-
background-color: var(--intergalactic-control-primary-info-active,
|
|
74
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
75
|
+
background-color: var(--intergalactic-control-primary-info-active, oklch(0 0 140));
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
SButton[theme='primary-success'] {
|
|
80
|
-
color: var(--intergalactic-text-primary-invert,
|
|
81
|
-
background-color: var(--intergalactic-control-primary-success,
|
|
80
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
81
|
+
background-color: var(--intergalactic-control-primary-success, oklch(0.64 0.161 170));
|
|
82
82
|
|
|
83
83
|
&:hover {
|
|
84
|
-
color: var(--intergalactic-text-primary-invert,
|
|
85
|
-
background-color: var(--intergalactic-control-primary-success-hover,
|
|
84
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
85
|
+
background-color: var(--intergalactic-control-primary-success-hover, oklch(0.6 0.155 170));
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
&:active,
|
|
89
89
|
&[active] {
|
|
90
|
-
color: var(--intergalactic-text-primary-invert,
|
|
91
|
-
background-color: var(--intergalactic-control-primary-success-active,
|
|
90
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
91
|
+
background-color: var(--intergalactic-control-primary-success-active, oklch(0.58 0.151 170));
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
SButton[theme='primary-brand'] {
|
|
96
|
-
color: var(--intergalactic-text-primary-invert,
|
|
97
|
-
background-color: var(--intergalactic-control-primary-brand,
|
|
96
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
97
|
+
background-color: var(--intergalactic-control-primary-brand, oklch(0.64 0.223 299.3));
|
|
98
98
|
|
|
99
99
|
&:hover {
|
|
100
|
-
color: var(--intergalactic-text-primary-invert,
|
|
101
|
-
background-color: var(--intergalactic-control-primary-brand-hover,
|
|
100
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
101
|
+
background-color: var(--intergalactic-control-primary-brand-hover, oklch(0.6 0.244 297.8));
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
&:active,
|
|
105
105
|
&[active] {
|
|
106
|
-
color: var(--intergalactic-text-primary-invert,
|
|
107
|
-
background-color: var(--intergalactic-control-primary-brand-active,
|
|
106
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
107
|
+
background-color: var(--intergalactic-control-primary-brand-active, oklch(0.58 0.254 297.1));
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
SButton[theme='primary-warning'] {
|
|
112
|
-
color: var(--intergalactic-text-primary-invert,
|
|
113
|
-
background-color: var(--intergalactic-control-primary-brand,
|
|
112
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
113
|
+
background-color: var(--intergalactic-control-primary-brand, oklch(0.64 0.223 299.3));
|
|
114
114
|
|
|
115
115
|
&:hover {
|
|
116
|
-
color: var(--intergalactic-text-primary-invert,
|
|
117
|
-
background-color: var(--intergalactic-control-primary-brand-hover,
|
|
116
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
117
|
+
background-color: var(--intergalactic-control-primary-brand-hover, oklch(0.6 0.244 297.8));
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
&:active,
|
|
121
121
|
&[active] {
|
|
122
|
-
color: var(--intergalactic-text-primary-invert,
|
|
123
|
-
background-color: var(--intergalactic-control-primary-brand-active,
|
|
122
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
123
|
+
background-color: var(--intergalactic-control-primary-brand-active, oklch(0.58 0.254 297.1));
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
SButton[theme='primary-danger'] {
|
|
128
|
-
color: var(--intergalactic-text-primary-invert,
|
|
129
|
-
background-color: var(--intergalactic-control-primary-critical,
|
|
128
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
129
|
+
background-color: var(--intergalactic-control-primary-critical, oklch(0.64 0.226 24.5));
|
|
130
130
|
|
|
131
131
|
&:hover {
|
|
132
|
-
color: var(--intergalactic-text-primary-invert,
|
|
133
|
-
background-color: var(--intergalactic-control-primary-critical-hover,
|
|
132
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
133
|
+
background-color: var(--intergalactic-control-primary-critical-hover, oklch(0.6 0.219 25.5));
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
&:active,
|
|
137
137
|
&[active] {
|
|
138
|
-
color: var(--intergalactic-text-primary-invert,
|
|
139
|
-
background-color: var(--intergalactic-control-primary-critical-active,
|
|
138
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
139
|
+
background-color: var(--intergalactic-control-primary-critical-active, oklch(0.58 0.215 26));
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
SButton[theme='primary-invert'] {
|
|
144
|
-
color: var(--intergalactic-text-primary,
|
|
145
|
-
background-color: var(--intergalactic-control-primary-invert,
|
|
144
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
145
|
+
background-color: var(--intergalactic-control-primary-invert, oklch(1 0 0));
|
|
146
146
|
|
|
147
147
|
&:hover {
|
|
148
|
-
color: var(--intergalactic-text-primary,
|
|
149
|
-
background-color: var(--intergalactic-control-primary-invert-hover,
|
|
148
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
149
|
+
background-color: var(--intergalactic-control-primary-invert-hover, oklch(0.96 0.001 180));
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
&:active,
|
|
153
153
|
&[active] {
|
|
154
|
-
color: var(--intergalactic-text-primary,
|
|
155
|
-
background-color: var(--intergalactic-control-primary-invert-active,
|
|
154
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
155
|
+
background-color: var(--intergalactic-control-primary-invert-active, oklch(0.94 0.002 180));
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
SButton[theme='secondary-muted'] {
|
|
160
|
-
color: var(--intergalactic-text-secondary,
|
|
161
|
-
border-color: var(--intergalactic-border-primary,
|
|
162
|
-
background-color: var(--intergalactic-control-secondary-neutral,
|
|
160
|
+
color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
|
|
161
|
+
border-color: var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
|
|
162
|
+
background-color: var(--intergalactic-control-secondary-neutral, oklch(0.177 0.033 175.6 / 0.028));
|
|
163
163
|
|
|
164
164
|
&:hover {
|
|
165
165
|
background-color: var(--intergalactic-control-secondary-neutral-hover,
|
|
166
|
-
|
|
167
|
-
color: var(--intergalactic-text-primary,
|
|
166
|
+
oklch(0.176 0.033 175.6 / 0.056));
|
|
167
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
&:active,
|
|
171
171
|
&[active] {
|
|
172
172
|
background-color: var(--intergalactic-control-secondary-neutral-active,
|
|
173
|
-
|
|
174
|
-
color: var(--intergalactic-text-primary,
|
|
173
|
+
oklch(0.176 0.033 175.7 / 0.084));
|
|
174
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
SButton[theme='secondary-info'] {
|
|
179
|
-
background-color: var(--intergalactic-control-secondary-info,
|
|
180
|
-
color: var(--intergalactic-text-link,
|
|
181
|
-
border-color: var(--intergalactic-control-primary-info,
|
|
179
|
+
background-color: var(--intergalactic-control-secondary-info, oklch(0.527 0.264 262.9 / 0.039));
|
|
180
|
+
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
181
|
+
border-color: var(--intergalactic-control-primary-info, oklch(0.23 0.01 140));
|
|
182
182
|
|
|
183
183
|
&:hover {
|
|
184
|
-
color: var(--intergalactic-text-link,
|
|
185
|
-
background-color: var(--intergalactic-control-secondary-info-hover,
|
|
184
|
+
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
185
|
+
background-color: var(--intergalactic-control-secondary-info-hover, oklch(0.525 0.265 263 / 0.077));
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
&:active,
|
|
189
189
|
&[active] {
|
|
190
|
-
color: var(--intergalactic-text-link,
|
|
191
|
-
background-color: var(--intergalactic-control-secondary-info-active,
|
|
190
|
+
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
191
|
+
background-color: var(--intergalactic-control-secondary-info-active, oklch(0.524 0.266 263.1 / 0.116));
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
SButton[theme='secondary-invert'] {
|
|
196
|
-
color: var(--intergalactic-text-primary-invert,
|
|
197
|
-
border-color: var(--intergalactic-border-primary-invert,
|
|
198
|
-
background-color: var(--intergalactic-control-secondary-invert,
|
|
196
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
197
|
+
border-color: var(--intergalactic-border-primary-invert, oklch(0.995 0.008 147.4 / 0.391));
|
|
198
|
+
background-color: var(--intergalactic-control-secondary-invert, oklch(0.969 0.057 140 / 0.118));
|
|
199
199
|
|
|
200
200
|
&:hover {
|
|
201
|
-
color: var(--intergalactic-text-primary-invert,
|
|
202
|
-
background-color: var(--intergalactic-control-secondary-invert-hover,
|
|
201
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
202
|
+
background-color: var(--intergalactic-control-secondary-invert-hover, oklch(0.976 0.043 140 / 0.145));
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
&:active,
|
|
206
206
|
&[active] {
|
|
207
|
-
color: var(--intergalactic-text-primary-invert,
|
|
207
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
208
208
|
background-color: var(--intergalactic-control-secondary-invert-active,
|
|
209
|
-
|
|
209
|
+
oklch(0.983 0.03 140 / 0.183));
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
SButton[theme='tertiary-info'] {
|
|
214
|
-
color: var(--intergalactic-text-link,
|
|
215
|
-
background-color: var(--intergalactic-control-tertiary-info,
|
|
214
|
+
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
215
|
+
background-color: var(--intergalactic-control-tertiary-info, transparent);
|
|
216
216
|
|
|
217
217
|
&:hover {
|
|
218
|
-
color: var(--intergalactic-text-link,
|
|
219
|
-
background-color: var(--intergalactic-control-tertiary-info-hover,
|
|
218
|
+
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
219
|
+
background-color: var(--intergalactic-control-tertiary-info-hover, oklch(0.525 0.265 263 / 0.077));
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
&:active,
|
|
223
223
|
&[active] {
|
|
224
|
-
color: var(--intergalactic-text-link,
|
|
225
|
-
background-color: var(--intergalactic-control-tertiary-info-active,
|
|
224
|
+
color: var(--intergalactic-text-link, oklch(0.53 0.21 263));
|
|
225
|
+
background-color: var(--intergalactic-control-tertiary-info-active, oklch(0.524 0.266 263.1 / 0.116));
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
SButton[theme='tertiary-muted'] {
|
|
230
|
-
color: var(--intergalactic-text-secondary,
|
|
231
|
-
background-color: var(--intergalactic-control-tertiary-neutral,
|
|
230
|
+
color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
|
|
231
|
+
background-color: var(--intergalactic-control-tertiary-neutral, transparent);
|
|
232
232
|
|
|
233
233
|
&:hover {
|
|
234
|
-
background-color: var(--intergalactic-control-tertiary-neutral-hover,
|
|
235
|
-
color: var(--intergalactic-text-primary,
|
|
234
|
+
background-color: var(--intergalactic-control-tertiary-neutral-hover, oklch(0.176 0.033 175.6 / 0.056));
|
|
235
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
&:active,
|
|
239
239
|
&[active] {
|
|
240
240
|
background-color: var(--intergalactic-control-tertiary-neutral-active,
|
|
241
|
-
|
|
242
|
-
color: var(--intergalactic-text-primary,
|
|
241
|
+
oklch(0.176 0.033 175.7 / 0.084));
|
|
242
|
+
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
SButton[theme='tertiary-invert'] {
|
|
247
|
-
color: var(--intergalactic-text-primary-invert,
|
|
248
|
-
background-color: var(--intergalactic-control-tertiary-invert,
|
|
247
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
248
|
+
background-color: var(--intergalactic-control-tertiary-invert, transparent);
|
|
249
249
|
|
|
250
250
|
&:hover {
|
|
251
|
-
color: var(--intergalactic-text-primary-invert,
|
|
252
|
-
background-color: var(--intergalactic-control-tertiary-invert-hover,
|
|
251
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
252
|
+
background-color: var(--intergalactic-control-tertiary-invert-hover, oklch(0.976 0.043 140 / 0.145));
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
&:active,
|
|
256
256
|
&[active] {
|
|
257
|
-
color: var(--intergalactic-text-primary-invert,
|
|
258
|
-
background-color: var(--intergalactic-control-tertiary-invert-active,
|
|
257
|
+
color: var(--intergalactic-text-primary-invert, oklch(0.999 0.001 180 / 0.949));
|
|
258
|
+
background-color: var(--intergalactic-control-tertiary-invert-active, oklch(0.983 0.03 140 / 0.183));
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
261
|
|
|
@@ -282,12 +282,12 @@ SButton[neighborLocation='left'] {
|
|
|
282
282
|
position: relative;
|
|
283
283
|
|
|
284
284
|
&:after {
|
|
285
|
-
background-color: var(--intergalactic-border-primary-invert,
|
|
285
|
+
background-color: var(--intergalactic-border-primary-invert, oklch(0.995 0.008 147.4 / 0.391));
|
|
286
286
|
}
|
|
287
287
|
|
|
288
288
|
&[theme='secondary-muted'] {
|
|
289
289
|
&:after {
|
|
290
|
-
background-color: var(--intergalactic-border-primary,
|
|
290
|
+
background-color: var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
293
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Box } from '@semcore/base-components';
|
|
2
1
|
import { createComponent, sstyled, Root } from '@semcore/core';
|
|
3
2
|
import resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';
|
|
3
|
+
import { Box } from '@semcore/flex-box';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
|
|
6
6
|
import style from './buttonLink.shadow.css';
|