@snack-uikit/fields 0.8.3-preview-85c5f47b.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 +655 -0
- package/LICENSE +201 -0
- package/README.md +329 -0
- package/dist/components/FieldDate/FieldDate.d.ts +29 -0
- package/dist/components/FieldDate/FieldDate.js +152 -0
- package/dist/components/FieldDate/constants.d.ts +10 -0
- package/dist/components/FieldDate/constants.js +28 -0
- package/dist/components/FieldDate/hooks/index.d.ts +1 -0
- package/dist/components/FieldDate/hooks/index.js +1 -0
- package/dist/components/FieldDate/hooks/useDateField.d.ts +20 -0
- package/dist/components/FieldDate/hooks/useDateField.js +180 -0
- package/dist/components/FieldDate/hooks/useDateFieldHelpers.d.ts +10 -0
- package/dist/components/FieldDate/hooks/useDateFieldHelpers.js +66 -0
- package/dist/components/FieldDate/hooks/useFocusHandlers.d.ts +15 -0
- package/dist/components/FieldDate/hooks/useFocusHandlers.js +33 -0
- package/dist/components/FieldDate/hooks/useHandlers.d.ts +6 -0
- package/dist/components/FieldDate/hooks/useHandlers.js +9 -0
- package/dist/components/FieldDate/index.d.ts +1 -0
- package/dist/components/FieldDate/index.js +1 -0
- package/dist/components/FieldDate/styles.module.css +44 -0
- package/dist/components/FieldDate/types.d.ts +6 -0
- package/dist/components/FieldDate/types.js +1 -0
- package/dist/components/FieldDate/utils.d.ts +5 -0
- package/dist/components/FieldDate/utils.js +39 -0
- package/dist/components/FieldDecorator/FieldDecorator.d.ts +20 -0
- package/dist/components/FieldDecorator/FieldDecorator.js +26 -0
- package/dist/components/FieldDecorator/Footer.d.ts +24 -0
- package/dist/components/FieldDecorator/Footer.js +39 -0
- package/dist/components/FieldDecorator/Header.d.ts +20 -0
- package/dist/components/FieldDecorator/Header.js +8 -0
- package/dist/components/FieldDecorator/index.d.ts +1 -0
- package/dist/components/FieldDecorator/index.js +1 -0
- package/dist/components/FieldDecorator/styles.module.css +177 -0
- package/dist/components/FieldSecure/FieldSecure.d.ts +29 -0
- package/dist/components/FieldSecure/FieldSecure.js +55 -0
- package/dist/components/FieldSecure/index.d.ts +1 -0
- package/dist/components/FieldSecure/index.js +1 -0
- package/dist/components/FieldSelect/FieldSelect.d.ts +16 -0
- package/dist/components/FieldSelect/FieldSelect.js +34 -0
- package/dist/components/FieldSelect/FieldSelectBase.d.ts +30 -0
- package/dist/components/FieldSelect/FieldSelectBase.js +51 -0
- package/dist/components/FieldSelect/FieldSelectMulti.d.ts +36 -0
- package/dist/components/FieldSelect/FieldSelectMulti.js +89 -0
- package/dist/components/FieldSelect/FieldSelectSingle.d.ts +35 -0
- package/dist/components/FieldSelect/FieldSelectSingle.js +76 -0
- package/dist/components/FieldSelect/constants.d.ts +3 -0
- package/dist/components/FieldSelect/constants.js +2 -0
- package/dist/components/FieldSelect/helpers/getArrowIcon.d.ts +8 -0
- package/dist/components/FieldSelect/helpers/getArrowIcon.js +5 -0
- package/dist/components/FieldSelect/helpers/getDisplayedValue.d.ts +9 -0
- package/dist/components/FieldSelect/helpers/getDisplayedValue.js +12 -0
- package/dist/components/FieldSelect/helpers/index.d.ts +2 -0
- package/dist/components/FieldSelect/helpers/index.js +2 -0
- package/dist/components/FieldSelect/hooks/index.d.ts +3 -0
- package/dist/components/FieldSelect/hooks/index.js +3 -0
- package/dist/components/FieldSelect/hooks/useFilteredOptions.d.ts +7 -0
- package/dist/components/FieldSelect/hooks/useFilteredOptions.js +6 -0
- package/dist/components/FieldSelect/hooks/useList.d.ts +36 -0
- package/dist/components/FieldSelect/hooks/useList.js +52 -0
- package/dist/components/FieldSelect/hooks/useListNavigation.d.ts +26 -0
- package/dist/components/FieldSelect/hooks/useListNavigation.js +48 -0
- package/dist/components/FieldSelect/index.d.ts +1 -0
- package/dist/components/FieldSelect/index.js +1 -0
- package/dist/components/FieldSelect/styles.module.css +74 -0
- package/dist/components/FieldSelect/types.d.ts +53 -0
- package/dist/components/FieldSelect/types.js +5 -0
- package/dist/components/FieldText/FieldText.d.ts +25 -0
- package/dist/components/FieldText/FieldText.js +52 -0
- package/dist/components/FieldText/index.d.ts +1 -0
- package/dist/components/FieldText/index.js +1 -0
- package/dist/components/FieldTextArea/FieldTextArea.d.ts +30 -0
- package/dist/components/FieldTextArea/FieldTextArea.js +54 -0
- package/dist/components/FieldTextArea/index.d.ts +1 -0
- package/dist/components/FieldTextArea/index.js +1 -0
- package/dist/components/FieldTextArea/styles.module.css +48 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.js +6 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.js +12 -0
- package/dist/helperComponents/ButtonCopyValue/ButtonCopyValue.d.ts +11 -0
- package/dist/helperComponents/ButtonCopyValue/ButtonCopyValue.js +24 -0
- package/dist/helperComponents/ButtonCopyValue/helpers.d.ts +7 -0
- package/dist/helperComponents/ButtonCopyValue/helpers.js +14 -0
- package/dist/helperComponents/ButtonCopyValue/index.d.ts +1 -0
- package/dist/helperComponents/ButtonCopyValue/index.js +1 -0
- package/dist/helperComponents/ButtonCopyValue/styles.module.css +47 -0
- package/dist/helperComponents/ButtonHideValue/ButtonHideValue.d.ts +12 -0
- package/dist/helperComponents/ButtonHideValue/ButtonHideValue.js +15 -0
- package/dist/helperComponents/ButtonHideValue/index.d.ts +1 -0
- package/dist/helperComponents/ButtonHideValue/index.js +1 -0
- package/dist/helperComponents/ButtonHideValue/styles.module.css +47 -0
- package/dist/helperComponents/FieldContainerPrivate/FieldContainerPrivate.d.ts +21 -0
- package/dist/helperComponents/FieldContainerPrivate/FieldContainerPrivate.js +27 -0
- package/dist/helperComponents/FieldContainerPrivate/index.d.ts +1 -0
- package/dist/helperComponents/FieldContainerPrivate/index.js +1 -0
- package/dist/helperComponents/FieldContainerPrivate/styles.module.css +197 -0
- package/dist/helperComponents/TextArea/TextArea.d.ts +32 -0
- package/dist/helperComponents/TextArea/TextArea.js +27 -0
- package/dist/helperComponents/TextArea/index.d.ts +1 -0
- package/dist/helperComponents/TextArea/index.js +1 -0
- package/dist/helperComponents/TextArea/styles.module.css +32 -0
- package/dist/helperComponents/index.d.ts +4 -0
- package/dist/helperComponents/index.js +4 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/useCopyButton.d.ts +10 -0
- package/dist/hooks/useCopyButton.js +12 -0
- package/dist/hooks/useHideButton.d.ts +12 -0
- package/dist/hooks/useHideButton.js +20 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/styles.module.css +0 -0
- package/package.json +53 -0
- package/src/components/FieldDate/FieldDate.tsx +339 -0
- package/src/components/FieldDate/constants.ts +33 -0
- package/src/components/FieldDate/hooks/index.ts +1 -0
- package/src/components/FieldDate/hooks/useDateField.ts +227 -0
- package/src/components/FieldDate/hooks/useDateFieldHelpers.ts +96 -0
- package/src/components/FieldDate/hooks/useFocusHandlers.ts +46 -0
- package/src/components/FieldDate/hooks/useHandlers.ts +15 -0
- package/src/components/FieldDate/index.ts +1 -0
- package/src/components/FieldDate/styles.module.scss +58 -0
- package/src/components/FieldDate/types.ts +6 -0
- package/src/components/FieldDate/utils.ts +44 -0
- package/src/components/FieldDecorator/FieldDecorator.tsx +69 -0
- package/src/components/FieldDecorator/Footer.tsx +105 -0
- package/src/components/FieldDecorator/Header.tsx +52 -0
- package/src/components/FieldDecorator/index.ts +1 -0
- package/src/components/FieldDecorator/styles.module.scss +176 -0
- package/src/components/FieldSecure/FieldSecure.tsx +170 -0
- package/src/components/FieldSecure/index.ts +1 -0
- package/src/components/FieldSelect/FieldSelect.tsx +41 -0
- package/src/components/FieldSelect/FieldSelectBase.tsx +221 -0
- package/src/components/FieldSelect/FieldSelectMulti.tsx +161 -0
- package/src/components/FieldSelect/FieldSelectSingle.tsx +131 -0
- package/src/components/FieldSelect/constants.ts +4 -0
- package/src/components/FieldSelect/helpers/getArrowIcon.ts +6 -0
- package/src/components/FieldSelect/helpers/getDisplayedValue.ts +24 -0
- package/src/components/FieldSelect/helpers/index.ts +2 -0
- package/src/components/FieldSelect/hooks/index.ts +3 -0
- package/src/components/FieldSelect/hooks/useFilteredOptions.ts +23 -0
- package/src/components/FieldSelect/hooks/useList.ts +85 -0
- package/src/components/FieldSelect/hooks/useListNavigation.ts +81 -0
- package/src/components/FieldSelect/index.ts +1 -0
- package/src/components/FieldSelect/styles.module.scss +87 -0
- package/src/components/FieldSelect/types.ts +78 -0
- package/src/components/FieldText/FieldText.tsx +154 -0
- package/src/components/FieldText/index.ts +1 -0
- package/src/components/FieldTextArea/FieldTextArea.tsx +171 -0
- package/src/components/FieldTextArea/index.ts +1 -0
- package/src/components/FieldTextArea/styles.module.scss +41 -0
- package/src/components/index.ts +6 -0
- package/src/constants.ts +11 -0
- package/src/helperComponents/ButtonCopyValue/ButtonCopyValue.tsx +55 -0
- package/src/helperComponents/ButtonCopyValue/helpers.tsx +19 -0
- package/src/helperComponents/ButtonCopyValue/index.ts +1 -0
- package/src/helperComponents/ButtonCopyValue/styles.module.scss +5 -0
- package/src/helperComponents/ButtonHideValue/ButtonHideValue.tsx +55 -0
- package/src/helperComponents/ButtonHideValue/index.ts +1 -0
- package/src/helperComponents/ButtonHideValue/styles.module.scss +5 -0
- package/src/helperComponents/FieldContainerPrivate/FieldContainerPrivate.tsx +78 -0
- package/src/helperComponents/FieldContainerPrivate/index.ts +1 -0
- package/src/helperComponents/FieldContainerPrivate/styles.module.scss +162 -0
- package/src/helperComponents/TextArea/TextArea.tsx +102 -0
- package/src/helperComponents/TextArea/index.ts +1 -0
- package/src/helperComponents/TextArea/styles.module.scss +35 -0
- package/src/helperComponents/index.ts +4 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useCopyButton.tsx +24 -0
- package/src/hooks/useHideButton.tsx +50 -0
- package/src/index.ts +1 -0
- package/src/styles.module.scss +55 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import cn from 'classnames';
|
|
2
|
+
import {
|
|
3
|
+
ChangeEvent,
|
|
4
|
+
ChangeEventHandler,
|
|
5
|
+
FocusEventHandler,
|
|
6
|
+
forwardRef,
|
|
7
|
+
KeyboardEventHandler,
|
|
8
|
+
MouseEventHandler,
|
|
9
|
+
RefAttributes,
|
|
10
|
+
useLayoutEffect,
|
|
11
|
+
useState,
|
|
12
|
+
} from 'react';
|
|
13
|
+
import TextareaAutosize from 'react-textarea-autosize';
|
|
14
|
+
|
|
15
|
+
import { extractSupportProps, WithSupportProps } from '@snack-uikit/utils';
|
|
16
|
+
|
|
17
|
+
import styles from './styles.module.scss';
|
|
18
|
+
|
|
19
|
+
export type TextAreaProps = RefAttributes<HTMLTextAreaElement> &
|
|
20
|
+
WithSupportProps<{
|
|
21
|
+
/** HTML-аттрибут name */
|
|
22
|
+
name?: string;
|
|
23
|
+
/** HTML-аттрибут value */
|
|
24
|
+
value: string;
|
|
25
|
+
/** Колбек смены значения */
|
|
26
|
+
onChange?(value: string, e: ChangeEvent<HTMLTextAreaElement>): void;
|
|
27
|
+
/** HTML-аттрибут id */
|
|
28
|
+
id?: string;
|
|
29
|
+
className?: string;
|
|
30
|
+
/** Плейсхолдер */
|
|
31
|
+
placeholder?: string;
|
|
32
|
+
/** Является ли поле доступным только на чтение */
|
|
33
|
+
readonly?: boolean;
|
|
34
|
+
/** Является ли поле деактивированным */
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
/** Включен ли автокомплит */
|
|
37
|
+
autoComplete?: boolean;
|
|
38
|
+
/** Максимальное кол-во символов */
|
|
39
|
+
maxLength?: number;
|
|
40
|
+
/** Колбек получения фокуса */
|
|
41
|
+
onFocus?: FocusEventHandler<HTMLTextAreaElement>;
|
|
42
|
+
/** Колбек потери фокуса */
|
|
43
|
+
onBlur?: FocusEventHandler<HTMLTextAreaElement>;
|
|
44
|
+
/** Колбек нажатия клавиши клавиатуры */
|
|
45
|
+
onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;
|
|
46
|
+
/** HTML-аттрибут tab-index */
|
|
47
|
+
tabIndex?: number;
|
|
48
|
+
}>;
|
|
49
|
+
|
|
50
|
+
export const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(
|
|
51
|
+
(
|
|
52
|
+
{
|
|
53
|
+
name,
|
|
54
|
+
value = '',
|
|
55
|
+
onChange,
|
|
56
|
+
placeholder,
|
|
57
|
+
id,
|
|
58
|
+
className,
|
|
59
|
+
disabled = false,
|
|
60
|
+
readonly = false,
|
|
61
|
+
autoComplete = false,
|
|
62
|
+
maxLength,
|
|
63
|
+
onFocus,
|
|
64
|
+
onBlur,
|
|
65
|
+
onKeyDown,
|
|
66
|
+
tabIndex,
|
|
67
|
+
...rest
|
|
68
|
+
},
|
|
69
|
+
ref,
|
|
70
|
+
) => {
|
|
71
|
+
// fix of height on the initial render
|
|
72
|
+
// see https://github.com/Andarist/react-textarea-autosize/issues/337#issuecomment-1024980737
|
|
73
|
+
const [, setIsRerendered] = useState(false);
|
|
74
|
+
useLayoutEffect(() => setIsRerendered(true), []);
|
|
75
|
+
|
|
76
|
+
const onChangeHandler: ChangeEventHandler<HTMLTextAreaElement> = e => onChange?.(e.target.value, e);
|
|
77
|
+
const stopPropagation: MouseEventHandler<HTMLTextAreaElement> = e => e.stopPropagation();
|
|
78
|
+
|
|
79
|
+
return (
|
|
80
|
+
<TextareaAutosize
|
|
81
|
+
id={id}
|
|
82
|
+
name={name}
|
|
83
|
+
value={value}
|
|
84
|
+
ref={ref}
|
|
85
|
+
className={cn(className, styles.textarea)}
|
|
86
|
+
autoComplete={autoComplete ? 'on' : 'off'}
|
|
87
|
+
placeholder={placeholder}
|
|
88
|
+
disabled={disabled}
|
|
89
|
+
readOnly={readonly}
|
|
90
|
+
maxLength={maxLength}
|
|
91
|
+
onChange={onChangeHandler}
|
|
92
|
+
onClick={stopPropagation}
|
|
93
|
+
onFocus={onFocus}
|
|
94
|
+
onBlur={onBlur}
|
|
95
|
+
onKeyDown={onKeyDown}
|
|
96
|
+
tabIndex={tabIndex}
|
|
97
|
+
minRows={3}
|
|
98
|
+
{...extractSupportProps(rest)}
|
|
99
|
+
/>
|
|
100
|
+
);
|
|
101
|
+
},
|
|
102
|
+
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TextArea';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
@import '@snack-uikit/figma-tokens/build/scss/components/styles-tokens-element';
|
|
2
|
+
|
|
3
|
+
.textarea {
|
|
4
|
+
resize: none;
|
|
5
|
+
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
width: 100%;
|
|
8
|
+
max-width: 100%;
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 0;
|
|
11
|
+
|
|
12
|
+
color: simple-var($sys-neutral-text-main);
|
|
13
|
+
|
|
14
|
+
background-color: transparent;
|
|
15
|
+
border: none;
|
|
16
|
+
border-radius: 0;
|
|
17
|
+
outline: 0;
|
|
18
|
+
|
|
19
|
+
&::placeholder {
|
|
20
|
+
color: simple-var($sys-neutral-text-disabled);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&::-webkit-scrollbar {
|
|
24
|
+
width: 0;
|
|
25
|
+
max-width: 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&:read-only {
|
|
29
|
+
color: simple-var($sys-neutral-text-support);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&[disabled] {
|
|
33
|
+
color: simple-var($sys-neutral-text-disabled);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { RefObject, useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
import { BUTTON_SIZE_MAP, ButtonProps, Size } from '@snack-uikit/input-private';
|
|
4
|
+
|
|
5
|
+
import { ButtonCopyValue } from '../helperComponents';
|
|
6
|
+
|
|
7
|
+
type UseCopyButtonProps = {
|
|
8
|
+
copyButtonRef: RefObject<HTMLButtonElement>;
|
|
9
|
+
showCopyButton: boolean;
|
|
10
|
+
valueToCopy: string;
|
|
11
|
+
size: Size;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export function useCopyButton({ copyButtonRef, showCopyButton, size, valueToCopy }: UseCopyButtonProps): ButtonProps {
|
|
15
|
+
return useMemo(
|
|
16
|
+
() => ({
|
|
17
|
+
id: 'copy',
|
|
18
|
+
ref: copyButtonRef,
|
|
19
|
+
show: showCopyButton,
|
|
20
|
+
render: props => <ButtonCopyValue {...props} size={BUTTON_SIZE_MAP[size]} valueToCopy={valueToCopy} />,
|
|
21
|
+
}),
|
|
22
|
+
[copyButtonRef, showCopyButton, size, valueToCopy],
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { MouseEventHandler, RefObject, useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
import { BUTTON_SIZE_MAP, ButtonProps, Size } from '@snack-uikit/input-private';
|
|
4
|
+
import { useEventHandler } from '@snack-uikit/utils';
|
|
5
|
+
|
|
6
|
+
import { ButtonHideValue } from '../helperComponents';
|
|
7
|
+
|
|
8
|
+
type UseHideButtonProps = {
|
|
9
|
+
hideButtonRef: RefObject<HTMLButtonElement>;
|
|
10
|
+
showHideButton: boolean;
|
|
11
|
+
toggleHidden: MouseEventHandler<HTMLButtonElement>;
|
|
12
|
+
size: Size;
|
|
13
|
+
disabled: boolean;
|
|
14
|
+
hidden: boolean;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export function useHideButton({
|
|
18
|
+
hideButtonRef,
|
|
19
|
+
showHideButton,
|
|
20
|
+
size,
|
|
21
|
+
toggleHidden,
|
|
22
|
+
hidden,
|
|
23
|
+
disabled,
|
|
24
|
+
}: UseHideButtonProps): ButtonProps {
|
|
25
|
+
const toggleHiddenEventHandler = useEventHandler(toggleHidden);
|
|
26
|
+
|
|
27
|
+
return useMemo(
|
|
28
|
+
() => ({
|
|
29
|
+
id: 'hide',
|
|
30
|
+
ref: hideButtonRef,
|
|
31
|
+
show: showHideButton,
|
|
32
|
+
render: props => {
|
|
33
|
+
const handleClick: MouseEventHandler<HTMLButtonElement> = event => {
|
|
34
|
+
props.onClick(event);
|
|
35
|
+
toggleHiddenEventHandler(event);
|
|
36
|
+
};
|
|
37
|
+
return (
|
|
38
|
+
<ButtonHideValue
|
|
39
|
+
{...props}
|
|
40
|
+
size={BUTTON_SIZE_MAP[size]}
|
|
41
|
+
onClick={handleClick}
|
|
42
|
+
hidden={hidden}
|
|
43
|
+
disabled={disabled}
|
|
44
|
+
/>
|
|
45
|
+
);
|
|
46
|
+
},
|
|
47
|
+
}),
|
|
48
|
+
[disabled, hidden, hideButtonRef, showHideButton, size, toggleHiddenEventHandler],
|
|
49
|
+
);
|
|
50
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
@import "@snack-uikit/figma-tokens/build/scss/components/styles-tokens-element";
|
|
2
|
+
@import "@snack-uikit/figma-tokens/build/scss/components/styles-tokens-fields";
|
|
3
|
+
|
|
4
|
+
$sizes: 's', 'm';
|
|
5
|
+
$icon-sizes: (
|
|
6
|
+
's': $icon-xs,
|
|
7
|
+
'm': $icon-s
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
@mixin button-styles {
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
justify-content: center;
|
|
14
|
+
|
|
15
|
+
margin: 0;
|
|
16
|
+
padding: 0;
|
|
17
|
+
|
|
18
|
+
color: $sys-neutral-text-light;
|
|
19
|
+
|
|
20
|
+
background-color: transparent;
|
|
21
|
+
border: none;
|
|
22
|
+
|
|
23
|
+
@each $size in $sizes {
|
|
24
|
+
&[data-size='#{$size}'] {
|
|
25
|
+
@include composite-var($fields, 'buttons', $size);
|
|
26
|
+
|
|
27
|
+
svg {
|
|
28
|
+
width: simple-var($icon-sizes, $size) !important; /* stylelint-disable-line declaration-no-important */
|
|
29
|
+
height: simple-var($icon-sizes, $size) !important; /* stylelint-disable-line declaration-no-important */
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&:hover {
|
|
35
|
+
cursor: pointer;
|
|
36
|
+
color: $sys-neutral-text-support;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&:focus-visible {
|
|
40
|
+
@include outline-var($container-focused-s);
|
|
41
|
+
|
|
42
|
+
color: $sys-neutral-text-support;
|
|
43
|
+
outline-color: $sys-available-complementary;
|
|
44
|
+
outline-offset: $spacing-state-focus-offset;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&:active {
|
|
48
|
+
color: $sys-neutral-text-main;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&[data-disabled] {
|
|
52
|
+
cursor: not-allowed;
|
|
53
|
+
color: $sys-neutral-text-disabled;
|
|
54
|
+
}
|
|
55
|
+
}
|