@primer/components 0.0.0-2021813234123 → 0.0.0-202181584433
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 +5 -1
- package/dist/browser.esm.js +618 -618
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +255 -255
- package/dist/browser.umd.js.map +1 -1
- package/lib/Avatar.d.ts +4 -0
- package/lib/Overlay.d.ts +0 -1
- package/lib/Overlay.js +5 -10
- package/lib/SelectMenu/SelectMenu.d.ts +11 -327
- package/lib/SelectMenu/SelectMenuFilter.d.ts +1 -1
- package/lib/TextInput.d.ts +6 -6
- package/lib/TextInput.js +23 -19
- package/lib/hooks/useOverlay.d.ts +1 -2
- package/lib/hooks/useOverlay.js +6 -11
- package/lib/theme-preval.js +1705 -1957
- package/lib/utils/testing.d.ts +2431 -2929
- package/lib-esm/Avatar.d.ts +4 -0
- package/lib-esm/Overlay.d.ts +0 -1
- package/lib-esm/Overlay.js +5 -8
- package/lib-esm/SelectMenu/SelectMenu.d.ts +11 -327
- package/lib-esm/SelectMenu/SelectMenuFilter.d.ts +1 -1
- package/lib-esm/TextInput.d.ts +6 -6
- package/lib-esm/TextInput.js +24 -18
- package/lib-esm/hooks/useOverlay.d.ts +1 -2
- package/lib-esm/hooks/useOverlay.js +6 -11
- package/lib-esm/theme-preval.js +1705 -1957
- package/lib-esm/utils/testing.d.ts +2431 -2929
- package/package.json +4 -6
- package/lib/TextInputWithTokens.d.ts +0 -41
- package/lib/TextInputWithTokens.js +0 -396
- package/lib/Token/Token.d.ts +0 -7
- package/lib/Token/Token.js +0 -76
- package/lib/Token/TokenBase.d.ts +0 -16
- package/lib/Token/TokenBase.js +0 -84
- package/lib/Token/TokenLabel.d.ts +0 -8
- package/lib/Token/TokenLabel.js +0 -116
- package/lib/Token/TokenProfile.d.ts +0 -7
- package/lib/Token/TokenProfile.js +0 -45
- package/lib/Token/TokenTopic.d.ts +0 -4
- package/lib/Token/TokenTopic.js +0 -53
- package/lib/Token/_AddTokenButton.d.ts +0 -3
- package/lib/Token/_AddTokenButton.js +0 -42
- package/lib/Token/_RemoveTokenButton.d.ts +0 -3
- package/lib/Token/_RemoveTokenButton.js +0 -42
- package/lib/Token/_tokenButtonUtils.d.ts +0 -8
- package/lib/Token/_tokenButtonUtils.js +0 -42
- package/lib-esm/TextInputWithTokens.d.ts +0 -41
- package/lib-esm/TextInputWithTokens.js +0 -361
- package/lib-esm/Token/Token.d.ts +0 -7
- package/lib-esm/Token/Token.js +0 -60
- package/lib-esm/Token/TokenBase.d.ts +0 -16
- package/lib-esm/Token/TokenBase.js +0 -65
- package/lib-esm/Token/TokenLabel.d.ts +0 -8
- package/lib-esm/Token/TokenLabel.js +0 -104
- package/lib-esm/Token/TokenProfile.d.ts +0 -7
- package/lib-esm/Token/TokenProfile.js +0 -28
- package/lib-esm/Token/TokenTopic.d.ts +0 -4
- package/lib-esm/Token/TokenTopic.js +0 -41
- package/lib-esm/Token/_AddTokenButton.d.ts +0 -3
- package/lib-esm/Token/_AddTokenButton.js +0 -27
- package/lib-esm/Token/_RemoveTokenButton.d.ts +0 -3
- package/lib-esm/Token/_RemoveTokenButton.js +0 -27
- package/lib-esm/Token/_tokenButtonUtils.d.ts +0 -8
- package/lib-esm/Token/_tokenButtonUtils.js +0 -26
package/lib-esm/Token/Token.d.ts
DELETED
package/lib-esm/Token/Token.js
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import styled from 'styled-components';
|
3
|
-
import { get } from '../constants';
|
4
|
-
import TokenBase from './TokenBase';
|
5
|
-
import AddTokenButton from './_AddTokenButton';
|
6
|
-
import RemoveTokenButton from './_RemoveTokenButton';
|
7
|
-
const tokenBorderWidthPx = 1; //
|
8
|
-
// Very "plain" style - just a border
|
9
|
-
//
|
10
|
-
// const DefaultToken = styled(TokenBase)`
|
11
|
-
// background-color: ${props => props.isSelected ? get('colors.fade.fg10') : 'transparent'};
|
12
|
-
// border-width: ${tokenBorderWidthPx}px;
|
13
|
-
// border-style: solid;
|
14
|
-
// border-color: ${props => props.isSelected ? get('colors.border.tertiary') : get('colors.border.primary')};
|
15
|
-
// padding-right: ${props => props.handleRemove ? 0 : undefined};
|
16
|
-
// > ._TokenButton {
|
17
|
-
// transform: translate(${tokenBorderWidthPx}px, -${tokenBorderWidthPx}px);
|
18
|
-
// }
|
19
|
-
// `;
|
20
|
-
|
21
|
-
const DefaultToken = styled(TokenBase).withConfig({
|
22
|
-
displayName: "Token__DefaultToken",
|
23
|
-
componentId: "sc-1dg52pw-0"
|
24
|
-
})(["background-color:", ";border-color:", ";border-style:solid;border-width:", ";color:", ";padding-right:", ";&:hover{background-color:", ";}> ._TokenButton{color:", ";}"], get('colors.accent.subtle'), props => props.isSelected ? get('colors.accent.fg') : get('colors.accent.subtle'), props => props.isSelected ? '1px' : 0, get('colors.accent.fg'), props => props.handleRemove || props.handleAdd ? 0 : undefined, get('colors.accent.muted'), get('colors.accent.fg')); // TODO: make this text truncate
|
25
|
-
|
26
|
-
const TokenTextContainer = styled('span').withConfig({
|
27
|
-
displayName: "Token__TokenTextContainer",
|
28
|
-
componentId: "sc-1dg52pw-1"
|
29
|
-
})(["flex-grow:1;white-space:nowrap;"]);
|
30
|
-
const LeadingVisualContainer = styled('span').withConfig({
|
31
|
-
displayName: "Token__LeadingVisualContainer",
|
32
|
-
componentId: "sc-1dg52pw-2"
|
33
|
-
})(["flex-shrink:0;line-height:0;"]);
|
34
|
-
|
35
|
-
const Token = ({
|
36
|
-
leadingVisual: LeadingVisual,
|
37
|
-
...tokenBaseProps
|
38
|
-
}) => {
|
39
|
-
const {
|
40
|
-
handleRemove,
|
41
|
-
handleAdd,
|
42
|
-
text,
|
43
|
-
as,
|
44
|
-
variant
|
45
|
-
} = tokenBaseProps;
|
46
|
-
return /*#__PURE__*/React.createElement(DefaultToken, tokenBaseProps, LeadingVisual ? /*#__PURE__*/React.createElement(LeadingVisualContainer, null, /*#__PURE__*/React.createElement(LeadingVisual, null)) : null, /*#__PURE__*/React.createElement(TokenTextContainer, null, text), handleRemove ? /*#__PURE__*/React.createElement(RemoveTokenButton, {
|
47
|
-
parentTokenTag: as || 'span',
|
48
|
-
tabIndex: -1,
|
49
|
-
onClick: handleRemove,
|
50
|
-
variant: variant
|
51
|
-
}) : null, handleAdd ? /*#__PURE__*/React.createElement(AddTokenButton, {
|
52
|
-
parentTokenTag: as || 'span',
|
53
|
-
tabIndex: -1,
|
54
|
-
onClick: handleAdd,
|
55
|
-
variant: variant
|
56
|
-
}) : null);
|
57
|
-
};
|
58
|
-
|
59
|
-
Token.displayName = "Token";
|
60
|
-
export default Token;
|
@@ -1,16 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
export declare type TokenSizeKeys = 'sm' | 'md' | 'lg' | 'xl';
|
3
|
-
export declare const tokenSizes: Record<TokenSizeKeys, number>;
|
4
|
-
export declare const defaultTokenSize = "md";
|
5
|
-
export interface TokenBaseProps extends Omit<React.HTMLProps<HTMLSpanElement | HTMLButtonElement | HTMLAnchorElement>, 'size'> {
|
6
|
-
as?: 'button' | 'a' | 'span';
|
7
|
-
handleAdd?: () => void;
|
8
|
-
handleRemove?: () => void;
|
9
|
-
isSelected?: boolean;
|
10
|
-
tabIndex?: number;
|
11
|
-
text: string;
|
12
|
-
variant?: TokenSizeKeys;
|
13
|
-
}
|
14
|
-
export declare const tokenHeightPx = 32;
|
15
|
-
declare const TokenBase: import("styled-components").StyledComponent<"span", any, TokenBaseProps, never>;
|
16
|
-
export default TokenBase;
|
@@ -1,65 +0,0 @@
|
|
1
|
-
import styled, { css } from 'styled-components';
|
2
|
-
import { variant } from 'styled-system';
|
3
|
-
export const tokenSizes = {
|
4
|
-
sm: 16,
|
5
|
-
md: 20,
|
6
|
-
lg: 24,
|
7
|
-
xl: 32
|
8
|
-
};
|
9
|
-
export const defaultTokenSize = 'md';
|
10
|
-
export const tokenHeightPx = 32;
|
11
|
-
const variants = variant({
|
12
|
-
variants: {
|
13
|
-
sm: {
|
14
|
-
fontSize: 0,
|
15
|
-
gap: 1,
|
16
|
-
height: `${tokenSizes.sm}px`,
|
17
|
-
paddingLeft: 1,
|
18
|
-
paddingRight: 1
|
19
|
-
},
|
20
|
-
md: {
|
21
|
-
fontSize: 0,
|
22
|
-
gap: 1,
|
23
|
-
height: `${tokenSizes.md}px`,
|
24
|
-
paddingLeft: 2,
|
25
|
-
paddingRight: 2
|
26
|
-
},
|
27
|
-
lg: {
|
28
|
-
fontSize: 0,
|
29
|
-
gap: 2,
|
30
|
-
height: `${tokenSizes.lg}px`,
|
31
|
-
paddingLeft: 2,
|
32
|
-
paddingRight: 2
|
33
|
-
},
|
34
|
-
xl: {
|
35
|
-
fontSize: 1,
|
36
|
-
gap: 2,
|
37
|
-
height: `${tokenSizes.xl}px`,
|
38
|
-
paddingLeft: 3,
|
39
|
-
paddingRight: 3
|
40
|
-
}
|
41
|
-
}
|
42
|
-
}); // TODO: if we don't use the props, just style this with `styled` instead of passing `tokenBaseStyles` to `TokenBase`
|
43
|
-
|
44
|
-
const tokenBaseStyles = css(["align-items:center;border-radius:999px;display:inline-flex;white-space:nowrap;"]);
|
45
|
-
const TokenBase = styled.span.attrs(({
|
46
|
-
as,
|
47
|
-
tabIndex,
|
48
|
-
onClick,
|
49
|
-
onFocus,
|
50
|
-
onBlur
|
51
|
-
}) => ({// tabIndex:
|
52
|
-
// as === 'span' &&
|
53
|
-
// [undefined, -1].includes(tabIndex) &&
|
54
|
-
// (onClick || onFocus || onBlur)
|
55
|
-
// ? 0
|
56
|
-
// : tabIndex
|
57
|
-
})).withConfig({
|
58
|
-
displayName: "TokenBase",
|
59
|
-
componentId: "opajvp-0"
|
60
|
-
})(["", " ", ""], tokenBaseStyles, variants);
|
61
|
-
TokenBase.defaultProps = {
|
62
|
-
as: 'span',
|
63
|
-
variant: defaultTokenSize
|
64
|
-
};
|
65
|
-
export default TokenBase;
|
@@ -1,104 +0,0 @@
|
|
1
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
2
|
-
|
3
|
-
// TODO: handle other kinds of labels
|
4
|
-
// This component is only for labels that take a custom color (e.g.: Issue labels),
|
5
|
-
// but there are other kinds of labels in the Primer CSS docs:
|
6
|
-
// https://primer.style/css/Label
|
7
|
-
import React from 'react';
|
8
|
-
import styled from 'styled-components';
|
9
|
-
import TokenBase from './TokenBase';
|
10
|
-
import RemoveTokenButton from './_RemoveTokenButton';
|
11
|
-
import tinycolor from 'tinycolor2';
|
12
|
-
import { useTheme } from '../ThemeProvider';
|
13
|
-
const colorModeConfig = {
|
14
|
-
dark: {
|
15
|
-
bgOpacity: 0.18,
|
16
|
-
borderThreshold: 0,
|
17
|
-
borderOpacity: 0.3,
|
18
|
-
lightnessThreshold: 0.6
|
19
|
-
},
|
20
|
-
light: {
|
21
|
-
bgOpacity: 1,
|
22
|
-
borderThreshold: 0.96,
|
23
|
-
borderOpacity: 1,
|
24
|
-
lightnessThreshold: 0.453
|
25
|
-
}
|
26
|
-
};
|
27
|
-
const tokenBorderWidthPx = 1; // TODO: do a nicer `isSelected` style
|
28
|
-
|
29
|
-
const StyledTokenLabel = styled(TokenBase).withConfig({
|
30
|
-
displayName: "TokenLabel__StyledTokenLabel",
|
31
|
-
componentId: "sc-1bdmgzv-0"
|
32
|
-
})(["background-color:", ";border-width:", "px;border-style:solid;border-color:", ";box-shadow:", ";color:", ";overflow:hidden;padding-right:", ";position:relative;> ._TokenButton{color:currentColor;transform:translate(", "px,-", "px);}"], props => props.bgColor, tokenBorderWidthPx, props => props.borderColor, props => props.isSelected ? `0 0 0 2px ${props.bgColor}` : undefined, props => props.textColor, props => props.handleRemove ? 0 : undefined, tokenBorderWidthPx, tokenBorderWidthPx); // TODO: make this text truncate
|
33
|
-
|
34
|
-
const TokenTextContainer = styled('span').withConfig({
|
35
|
-
displayName: "TokenLabel__TokenTextContainer",
|
36
|
-
componentId: "sc-1bdmgzv-1"
|
37
|
-
})(["white-space:nowrap;z-index:1;"]);
|
38
|
-
|
39
|
-
const TokenLabel = ({
|
40
|
-
isOutlined,
|
41
|
-
fillColor,
|
42
|
-
isSelected,
|
43
|
-
...tokenBaseProps
|
44
|
-
}) => {
|
45
|
-
const {
|
46
|
-
handleRemove,
|
47
|
-
text,
|
48
|
-
as,
|
49
|
-
variant
|
50
|
-
} = tokenBaseProps;
|
51
|
-
const {
|
52
|
-
colorScheme
|
53
|
-
} = useTheme(); // const colorScheme = 'dark';
|
54
|
-
|
55
|
-
const {
|
56
|
-
bgOpacity,
|
57
|
-
borderOpacity,
|
58
|
-
borderThreshold,
|
59
|
-
lightnessThreshold
|
60
|
-
} = colorModeConfig[colorScheme || 'light'];
|
61
|
-
let bgColor = fillColor;
|
62
|
-
let borderColor = fillColor;
|
63
|
-
let textColor = '#FFF';
|
64
|
-
const perceivedLightness = tinycolor(fillColor).getLuminance();
|
65
|
-
const isFillColorLight = perceivedLightness >= lightnessThreshold;
|
66
|
-
|
67
|
-
if (colorScheme === 'dark') {
|
68
|
-
const lightenBy = (perceivedLightness - lightnessThreshold) * 100 * (isFillColorLight ? 1 : 0);
|
69
|
-
bgColor = isSelected ? tinycolor(fillColor).setAlpha(bgOpacity * 1.2).toRgbString() : tinycolor(fillColor).setAlpha(bgOpacity).toRgbString();
|
70
|
-
textColor = isSelected ? tinycolor(fillColor).lighten(lightenBy + 8).toString() : tinycolor(fillColor).lighten(lightenBy).toString();
|
71
|
-
borderColor = isSelected ? tinycolor(fillColor).lighten(lightenBy).toRgbString() : tinycolor(fillColor).lighten(lightenBy).setAlpha(borderOpacity).toRgbString();
|
72
|
-
} else {
|
73
|
-
const isFillColorDark = perceivedLightness < 0.1;
|
74
|
-
borderColor = perceivedLightness >= borderThreshold ? tinycolor(fillColor).darken(25).toString() : 'transparent';
|
75
|
-
|
76
|
-
if (isFillColorLight) {
|
77
|
-
textColor = '#000';
|
78
|
-
}
|
79
|
-
|
80
|
-
if (isSelected) {
|
81
|
-
bgColor = isFillColorDark ? tinycolor(fillColor).lighten(10).toString() : tinycolor(fillColor).darken(10).toString();
|
82
|
-
}
|
83
|
-
}
|
84
|
-
|
85
|
-
return /*#__PURE__*/React.createElement(StyledTokenLabel, _extends({
|
86
|
-
fillColor: fillColor,
|
87
|
-
bgColor: bgColor,
|
88
|
-
borderColor: borderColor,
|
89
|
-
textColor: textColor,
|
90
|
-
isSelected: isSelected
|
91
|
-
}, tokenBaseProps), /*#__PURE__*/React.createElement(TokenTextContainer, null, text), handleRemove ? /*#__PURE__*/React.createElement(RemoveTokenButton, {
|
92
|
-
parentTokenTag: as || 'span',
|
93
|
-
tabIndex: -1,
|
94
|
-
onClick: handleRemove,
|
95
|
-
variant: variant
|
96
|
-
}) : null);
|
97
|
-
};
|
98
|
-
|
99
|
-
TokenLabel.displayName = "TokenLabel";
|
100
|
-
TokenLabel.defaultProps = {
|
101
|
-
fillColor: '#999' // TODO: pick a real color
|
102
|
-
|
103
|
-
};
|
104
|
-
export default TokenLabel;
|
@@ -1,28 +0,0 @@
|
|
1
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
2
|
-
|
3
|
-
import React from 'react';
|
4
|
-
import styled from 'styled-components';
|
5
|
-
import { get } from '../constants';
|
6
|
-
import primitives from '@primer/primitives';
|
7
|
-
import { defaultTokenSize, tokenSizes } from './TokenBase';
|
8
|
-
import Token from './Token';
|
9
|
-
import { Avatar } from '..';
|
10
|
-
const StyledToken = styled(Token).withConfig({
|
11
|
-
displayName: "TokenProfile__StyledToken",
|
12
|
-
componentId: "sc-1vf9jhf-0"
|
13
|
-
})(["padding-left:", ";"], get('space.1')); // ${get('space.1')}
|
14
|
-
|
15
|
-
const TokenProfile = ({
|
16
|
-
avatarSrc,
|
17
|
-
variant,
|
18
|
-
...rest
|
19
|
-
}) => /*#__PURE__*/React.createElement(StyledToken, _extends({
|
20
|
-
leadingVisual: () => /*#__PURE__*/React.createElement(Avatar, {
|
21
|
-
src: avatarSrc,
|
22
|
-
size: tokenSizes[variant || defaultTokenSize] - parseInt(primitives.spacing.normal.spacer[1], 10) * 2
|
23
|
-
}),
|
24
|
-
variant: variant
|
25
|
-
}, rest));
|
26
|
-
|
27
|
-
TokenProfile.displayName = "TokenProfile";
|
28
|
-
export default TokenProfile;
|
@@ -1,41 +0,0 @@
|
|
1
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
2
|
-
|
3
|
-
// NOTE:
|
4
|
-
// I'm proposing we just get rid of this component, but I'm keeping it around just incase we
|
5
|
-
// find a reason to make Topic tokens different from the default Token component.
|
6
|
-
import React from 'react';
|
7
|
-
import styled from 'styled-components';
|
8
|
-
import { get } from '../constants';
|
9
|
-
import TokenBase from './TokenBase';
|
10
|
-
import RemoveTokenButton from './_RemoveTokenButton';
|
11
|
-
const DefaultToken = styled(TokenBase).withConfig({
|
12
|
-
displayName: "TokenTopic__DefaultToken",
|
13
|
-
componentId: "sc-17xtwrd-0"
|
14
|
-
})(["background-color:", ";border-color:", ";border-style:solid;border-width:", ";color:", ";padding-right:", ";&:hover{background-color:", ";}> ._TokenButton{color:", ";}"], get('colors.accent.subtle'), props => props.isSelected ? get('colors.accent.fg') : get('colors.accent.subtle'), props => props.isSelected ? '1px' : 0, get('colors.accent.fg'), props => props.handleRemove ? 0 : undefined, get('colors.accent.muted'), get('colors.accent.fg')); // TODO: make this text truncate
|
15
|
-
|
16
|
-
const TokenTextContainer = styled('span').withConfig({
|
17
|
-
displayName: "TokenTopic__TokenTextContainer",
|
18
|
-
componentId: "sc-17xtwrd-1"
|
19
|
-
})(["white-space:nowrap;"]);
|
20
|
-
|
21
|
-
const TokenTopic = ({
|
22
|
-
as,
|
23
|
-
handleRemove,
|
24
|
-
text,
|
25
|
-
variant,
|
26
|
-
...rest
|
27
|
-
}) => {
|
28
|
-
return /*#__PURE__*/React.createElement(DefaultToken, _extends({
|
29
|
-
as: as,
|
30
|
-
handleRemove: handleRemove,
|
31
|
-
text: text
|
32
|
-
}, rest), /*#__PURE__*/React.createElement(TokenTextContainer, null, text), handleRemove ? /*#__PURE__*/React.createElement(RemoveTokenButton, {
|
33
|
-
parentTokenTag: as || 'span',
|
34
|
-
tabIndex: -1,
|
35
|
-
onClick: handleRemove,
|
36
|
-
variant: variant
|
37
|
-
}) : null);
|
38
|
-
};
|
39
|
-
|
40
|
-
TokenTopic.displayName = "TokenTopic";
|
41
|
-
export default TokenTopic;
|
@@ -1,27 +0,0 @@
|
|
1
|
-
import { PlusIcon } from '@primer/octicons-react';
|
2
|
-
import styled from 'styled-components';
|
3
|
-
import { defaultTokenSize } from "./TokenBase";
|
4
|
-
import { tokenButtonStyles, variants, getTokenButtonIconSize } from './_tokenButtonUtils';
|
5
|
-
const AddTokenButton = styled.span.attrs(({
|
6
|
-
parentTokenTag,
|
7
|
-
variant,
|
8
|
-
...rest
|
9
|
-
}) => {
|
10
|
-
delete rest.children;
|
11
|
-
return {
|
12
|
-
as: parentTokenTag === 'span' ? 'button' : 'span',
|
13
|
-
tabIndex: -1,
|
14
|
-
className: '_TokenButton',
|
15
|
-
children: /*#__PURE__*/React.createElement(PlusIcon, {
|
16
|
-
size: getTokenButtonIconSize(variant)
|
17
|
-
}) // TODO: figure out how to set `size` using `fontSizes` from Primitives
|
18
|
-
|
19
|
-
};
|
20
|
-
}).withConfig({
|
21
|
-
displayName: "_AddTokenButton__AddTokenButton",
|
22
|
-
componentId: "elcc0o-0"
|
23
|
-
})(["", " ", ""], tokenButtonStyles, variants);
|
24
|
-
AddTokenButton.defaultProps = {
|
25
|
-
variant: defaultTokenSize
|
26
|
-
};
|
27
|
-
export default AddTokenButton;
|
@@ -1,27 +0,0 @@
|
|
1
|
-
import { XIcon } from '@primer/octicons-react';
|
2
|
-
import styled from 'styled-components';
|
3
|
-
import { defaultTokenSize } from "./TokenBase";
|
4
|
-
import { tokenButtonStyles, variants, getTokenButtonIconSize } from './_tokenButtonUtils';
|
5
|
-
const RemoveTokenButton = styled.span.attrs(({
|
6
|
-
parentTokenTag,
|
7
|
-
variant,
|
8
|
-
...rest
|
9
|
-
}) => {
|
10
|
-
delete rest.children;
|
11
|
-
return {
|
12
|
-
as: parentTokenTag === 'span' ? 'button' : 'span',
|
13
|
-
tabIndex: -1,
|
14
|
-
className: '_TokenButton',
|
15
|
-
children: /*#__PURE__*/React.createElement(XIcon, {
|
16
|
-
size: getTokenButtonIconSize(variant)
|
17
|
-
}) // TODO: figure out how to set `size` using `fontSizes` from Primitives
|
18
|
-
|
19
|
-
};
|
20
|
-
}).withConfig({
|
21
|
-
displayName: "_RemoveTokenButton__RemoveTokenButton",
|
22
|
-
componentId: "sc-14lvcw1-0"
|
23
|
-
})(["", " ", ""], tokenButtonStyles, variants);
|
24
|
-
RemoveTokenButton.defaultProps = {
|
25
|
-
variant: defaultTokenSize
|
26
|
-
};
|
27
|
-
export default RemoveTokenButton;
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import { TokenSizeKeys } from "./TokenBase";
|
2
|
-
export interface TokenButtonProps {
|
3
|
-
parentTokenTag: 'span' | 'button' | 'a';
|
4
|
-
variant?: TokenSizeKeys;
|
5
|
-
}
|
6
|
-
export declare const variants: (...args: any[]) => any;
|
7
|
-
export declare const tokenButtonStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<any>>;
|
8
|
-
export declare const getTokenButtonIconSize: (variant?: TokenSizeKeys | undefined) => number;
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import { css } from 'styled-components';
|
2
|
-
import { variant } from 'styled-system';
|
3
|
-
import { get } from '../constants';
|
4
|
-
import { tokenSizes, defaultTokenSize } from "./TokenBase";
|
5
|
-
export const variants = variant({
|
6
|
-
variants: {
|
7
|
-
sm: {
|
8
|
-
height: `${tokenSizes.sm}px`,
|
9
|
-
width: `${tokenSizes.sm}px`
|
10
|
-
},
|
11
|
-
md: {
|
12
|
-
height: `${tokenSizes.md}px`,
|
13
|
-
width: `${tokenSizes.md}px`
|
14
|
-
},
|
15
|
-
lg: {
|
16
|
-
height: `${tokenSizes.lg}px`,
|
17
|
-
width: `${tokenSizes.lg}px`
|
18
|
-
},
|
19
|
-
xl: {
|
20
|
-
height: `${tokenSizes.xl}px`,
|
21
|
-
width: `${tokenSizes.xl}px`
|
22
|
-
}
|
23
|
-
}
|
24
|
-
});
|
25
|
-
export const tokenButtonStyles = css(["background-color:transparent;font-family:inherit;cursor:pointer;user-select:none;appearance:none;text-decoration:none;padding:0;align-self:baseline;border:0;border-radius:999px;&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}"], get('colors.fade.fg10'), get('colors.fade.fg15'));
|
26
|
-
export const getTokenButtonIconSize = variant => tokenSizes[variant || defaultTokenSize] * 0.75;
|