@bitrise/bitkit 12.118.1-alpha.0 → 12.119.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bitrise/bitkit",
3
3
  "description": "Bitrise React component library",
4
- "version": "12.118.1-alpha.0",
4
+ "version": "12.119.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+ssh://git@github.com/bitrise-io/bitkit.git"
@@ -42,7 +42,7 @@
42
42
  "luxon": "^3.4.4",
43
43
  "react": "^18.2.0",
44
44
  "react-dom": "^18.2.0",
45
- "react-focus-lock": "^2.11.1",
45
+ "react-focus-lock": "^2.10.1",
46
46
  "react-imask": "^7.4.0",
47
47
  "react-markdown": "^9.0.1"
48
48
  },
@@ -58,34 +58,34 @@
58
58
  "@bitrise/eslint-plugin": "^2.5.0",
59
59
  "@chakra-ui/cli": "^2.4.1",
60
60
  "@google-cloud/storage": "^7.7.0",
61
- "@storybook/addon-actions": "^7.6.17",
62
- "@storybook/addon-essentials": "^7.6.17",
63
- "@storybook/addon-interactions": "^7.6.17",
64
- "@storybook/addon-links": "^7.6.17",
65
- "@storybook/addons": "^7.6.17",
66
- "@storybook/blocks": "^7.6.17",
67
- "@storybook/react": "^7.6.17",
68
- "@storybook/react-webpack5": "^7.6.17",
69
- "@storybook/theming": "^7.6.17",
61
+ "@storybook/addon-actions": "^7.6.15",
62
+ "@storybook/addon-essentials": "^7.6.15",
63
+ "@storybook/addon-interactions": "^7.6.15",
64
+ "@storybook/addon-links": "^7.6.15",
65
+ "@storybook/addons": "^7.6.15",
66
+ "@storybook/blocks": "^7.6.15",
67
+ "@storybook/react": "^7.6.15",
68
+ "@storybook/react-webpack5": "^7.6.15",
69
+ "@storybook/theming": "^7.6.15",
70
70
  "@testing-library/dom": "^9.3.4",
71
71
  "@testing-library/jest-dom": "^6.4.2",
72
72
  "@testing-library/react": "^14.2.1",
73
73
  "@testing-library/user-event": "^14.5.2",
74
74
  "@types/jest": "^29.5.12",
75
75
  "@types/luxon": "^3.4.2",
76
- "@types/react": "^18.2.57",
76
+ "@types/react": "^18.2.55",
77
77
  "@types/react-dom": "^18.2.19",
78
78
  "@typescript-eslint/eslint-plugin": "^6.21.0",
79
79
  "@typescript-eslint/parser": "^6.21.0",
80
80
  "axios": "^1.6.7",
81
81
  "eslint": "^8.56.0",
82
82
  "eslint-plugin-import": "^2.29.1",
83
- "eslint-plugin-jest": "^27.9.0",
83
+ "eslint-plugin-jest": "^27.8.0",
84
84
  "eslint-plugin-jsx-a11y": "^6.8.0",
85
85
  "eslint-plugin-prettier": "^5.1.3",
86
86
  "eslint-plugin-react": "^7.33.2",
87
87
  "eslint-plugin-react-hooks": "^4.6.0",
88
- "eslint-plugin-storybook": "^0.8.0",
88
+ "eslint-plugin-storybook": "^0.6.15",
89
89
  "eslint-plugin-testing-library": "^6.2.0",
90
90
  "glob": "^10.3.10",
91
91
  "jest": "^29.7.0",
@@ -93,8 +93,8 @@
93
93
  "jsdom": "^24.0.0",
94
94
  "prettier": "^3.2.5",
95
95
  "react-hook-form": "^7.50.1",
96
- "release-it": "^17.1.1",
97
- "storybook": "^7.6.17",
96
+ "release-it": "^17.0.5",
97
+ "storybook": "^7.6.15",
98
98
  "ts-jest": "^29.1.2",
99
99
  "typescript": "^5.3.3"
100
100
  },
@@ -1,100 +1,150 @@
1
- /* eslint-disable sort/object-properties */
2
- import { defineStyle, defineStyleConfig, SystemStyleInterpolation } from '@chakra-ui/styled-system';
3
- import { rem } from '../../utils/utils';
4
- import { ButtonProps } from './Button';
5
-
6
- const baseStyle = defineStyle({
7
- borderRadius: '4',
8
- });
9
-
10
- const sizes = {
11
- lg: defineStyle((props) => {
12
- return {
13
- paddingBlock: rem(11),
14
- paddingInlineEnd: props.rightIcon ? rem(11) : rem(15),
15
- paddingInlineStart: props.leftIcon ? rem(11) : rem(15),
16
- textStyle: 'comp/button/lg',
17
- minWidth: 48,
18
- minHeight: 48,
19
- };
20
- }),
21
- md: defineStyle((props) => {
22
- return {
23
- paddingBlock: rem(9),
24
- paddingInlineEnd: props.rightIcon ? rem(11) : rem(15),
25
- paddingInlineStart: props.leftIcon ? rem(11) : rem(15),
26
- textStyle: 'comp/button/md',
27
- minWidth: 40,
28
- minHeight: 40,
29
- };
30
- }),
31
- sm: defineStyle((props) => {
32
- return {
33
- paddingBlock: rem(5),
34
- paddingInlineEnd: props.rightIcon ? rem(7) : rem(11),
35
- paddingInlineStart: props.leftIcon ? rem(7) : rem(11),
36
- textStyle: 'comp/button/sm',
37
- minWidth: 32,
38
- minHeight: 32,
39
- };
40
- }),
1
+ export const disabledStates = {
2
+ primary: {
3
+ _disabled: {
4
+ bgGradient: 'linear(to-b, neutral.80, neutral.70)',
5
+ borderColor: 'neutral.70',
6
+ },
7
+ },
8
+ secondary: {
9
+ _disabled: {
10
+ bgGradient: 'linear(to-b, neutral.100, neutral.93)',
11
+ borderColor: 'neutral.90',
12
+ color: 'neutral.70',
13
+ },
14
+ },
15
+ tertiary: {
16
+ _disabled: {
17
+ background: 'transparent',
18
+ borderColor: 'transparent',
19
+ color: 'neutral.70',
20
+ },
21
+ },
41
22
  };
42
23
 
43
- const variants = (
44
- [
45
- 'primary',
46
- 'secondary',
47
- 'tertiary',
48
- 'danger-primary',
49
- 'danger-secondary',
50
- 'danger-tertiary',
51
- ] as ButtonProps['variant'][]
52
- ).reduce(
53
- (obj, variant) => {
54
- let borderColor = variant?.includes('secondary') ? `button/${variant}/border` : `button/${variant}/bg`;
55
- let disabledBorderColor = variant?.includes('secondary')
56
- ? `button/${variant}/border-disabled`
57
- : `button/${variant}/bg-disabled`;
58
- if (variant?.includes('tertiary')) {
59
- borderColor = 'transparent';
60
- disabledBorderColor = 'transparent';
61
- }
62
- obj[variant as NonNullable<ButtonProps['variant']>] = defineStyle({
24
+ const ButtonTheme = {
25
+ baseStyle: {
26
+ _disabled: {
27
+ cursor: 'not-allowed',
28
+ },
29
+ _hover: {
30
+ _disabled: {
31
+ bg: 'initial',
32
+ },
33
+ },
34
+ border: '0.0625rem solid',
35
+ borderRadius: '4',
36
+ },
37
+ sizes: {
38
+ medium: {
39
+ fontSize: '3',
40
+ height: '48',
41
+ minWidth: '48',
42
+ paddingX: '16',
43
+ },
44
+ small: {
45
+ fontSize: '2',
46
+ height: '32',
47
+ minWidth: '32',
48
+ paddingX: '12',
49
+ },
50
+ },
51
+ variants: {
52
+ primary: {
53
+ _active: {
54
+ bgGradient: 'linear(to-b, purple.10, purple.10)',
55
+ ...disabledStates.primary,
56
+ },
63
57
  _hover: {
64
- backgroundColor: `button/${variant}/bg-hover`,
65
- borderColor: variant?.includes('secondary') ? `button/${variant}/border-hover` : `button/${variant}/bg-hover`,
66
- color: `button/${variant}/fg-hover`,
58
+ bgGradient: 'linear(to-b, purple.30, purple.10)',
59
+ ...disabledStates.primary,
67
60
  },
61
+ bgGradient: 'linear(to-b, purple.40, purple.20)',
62
+ borderColor: 'purple.40',
63
+ color: 'neutral.95',
64
+ fontWeight: 'bold',
65
+ ...disabledStates.primary,
66
+ },
67
+ 'primary--danger': {
68
68
  _active: {
69
- backgroundColor: `button/${variant}/bg-active`,
70
- borderColor: variant?.includes('secondary') ? `button/${variant}/border-active` : `button/${variant}/bg-active`,
71
- color: `button/${variant}/fg-active`,
69
+ bgGradient: 'linear(to-b, red.20, red.20)',
70
+ borderColor: 'red.20',
71
+ ...disabledStates.primary,
72
72
  },
73
- _disabled: {
74
- backgroundColor: `button/${variant}/bg-disabled`,
75
- borderColor: disabledBorderColor,
76
- color: `button/${variant}/fg-disabled`,
77
- cursor: 'not-allowed',
73
+ _hover: {
74
+ bgGradient: 'linear(to-b, red.40, red.20)',
75
+ borderColor: 'red.40',
76
+ ...disabledStates.primary,
78
77
  },
79
- backgroundColor: `button/${variant}/bg`,
80
- borderColor,
81
- borderStyle: 'solid',
82
- borderWidth: rem(1),
83
- color: `button/${variant}/fg`,
84
- });
85
- return obj;
86
- },
87
- {} as Record<NonNullable<ButtonProps['variant']>, SystemStyleInterpolation>,
88
- );
89
-
90
- const buttonTheme = defineStyleConfig({
91
- baseStyle,
92
- defaultProps: {
93
- size: 'lg',
94
- variant: 'primary',
78
+ bgGradient: 'linear(to-b, red.50, red.30)',
79
+ borderColor: 'red.50',
80
+ color: 'neutral.95',
81
+ fontWeight: 'bold',
82
+ ...disabledStates.primary,
83
+ },
84
+ secondary: {
85
+ _active: {
86
+ bgGradient: 'linear(to-b, neutral.90, neutral.90)',
87
+ borderColor: 'neutral.80',
88
+ ...disabledStates.secondary,
89
+ },
90
+ _hover: {
91
+ bgGradient: 'linear(to-b, neutral.93, neutral.93)',
92
+ ...disabledStates.secondary,
93
+ },
94
+ bgGradient: 'linear(to-b, neutral.100, neutral.93)',
95
+ borderColor: 'neutral.90',
96
+ color: 'purple.10',
97
+ ...disabledStates.secondary,
98
+ },
99
+ 'secondary--danger': {
100
+ _active: {
101
+ bgGradient: 'linear(to-b, red.90, red.90)',
102
+ borderColor: 'red.70',
103
+ ...disabledStates.secondary,
104
+ },
105
+ _hover: {
106
+ bgGradient: 'linear(to-b, red.93, red.93)',
107
+ borderColor: 'red.70',
108
+ ...disabledStates.secondary,
109
+ },
110
+ bgGradient: 'linear(to-b, neutral.100, neutral.93)',
111
+ borderColor: 'neutral.90',
112
+ color: 'red.50',
113
+ ...disabledStates.secondary,
114
+ },
115
+ tertiary: {
116
+ _active: {
117
+ background: 'neutral.90',
118
+ borderColor: 'neutral.90',
119
+ ...disabledStates.tertiary,
120
+ },
121
+ _hover: {
122
+ background: 'neutral.95',
123
+ borderColor: 'neutral.95',
124
+ ...disabledStates.tertiary,
125
+ },
126
+ background: 'transparent',
127
+ borderColor: 'transparent',
128
+ color: 'purple.50',
129
+ ...disabledStates.tertiary,
130
+ },
131
+ 'tertiary--danger': {
132
+ _active: {
133
+ background: 'red.90',
134
+ borderColor: 'red.90',
135
+ ...disabledStates.tertiary,
136
+ },
137
+ _hover: {
138
+ background: 'red.93',
139
+ borderColor: 'red.93',
140
+ ...disabledStates.tertiary,
141
+ },
142
+ background: 'transparent',
143
+ borderColor: 'transparent',
144
+ color: 'red.50',
145
+ ...disabledStates.tertiary,
146
+ },
95
147
  },
96
- sizes,
97
- variants,
98
- });
148
+ };
99
149
 
100
- export default buttonTheme;
150
+ export default ButtonTheme;
@@ -3,39 +3,43 @@ import Icon, { TypeIconName } from '../Icon/Icon';
3
3
 
4
4
  export interface ButtonProps extends ChakraButtonProps {
5
5
  as?: 'a' | 'button';
6
- disabled?: never;
7
6
  isDanger?: boolean;
8
7
  leftIconName?: TypeIconName;
9
8
  rightIconName?: TypeIconName;
10
- size?: 'sm' | 'md' | 'lg';
11
- variant?: 'primary' | 'secondary' | 'tertiary' | 'danger-primary' | 'danger-secondary' | 'danger-tertiary';
9
+ size?: 'small' | 'medium';
10
+ variant?: 'primary' | 'secondary' | 'tertiary';
11
+ disabled?: never;
12
12
  }
13
13
 
14
14
  /**
15
15
  * The Button component is used to trigger an action or event, such as submitting a form, opening a dialog, canceling an action, or performing a delete operation.
16
16
  */
17
17
  const Button = forwardRef<ButtonProps, 'button'>((props, ref) => {
18
- const { as, isDanger, isDisabled, leftIconName, rightIconName, size = 'lg', variant, ...rest } = props;
18
+ const { as, isDanger, isDisabled, leftIconName, rightIconName, size = 'medium', variant, ...rest } = props;
19
19
  const properties: ChakraButtonProps = {
20
20
  as: isDisabled ? 'button' : as,
21
21
  isDisabled,
22
22
  size,
23
- variant: isDanger ? `danger-${variant}` : variant,
23
+ variant: isDanger ? `${variant}--danger` : variant,
24
24
  ...rest,
25
25
  };
26
- const iconSize = size === 'lg' ? '24' : '16';
26
+ const iconSize = size === 'medium' ? '24' : '16';
27
27
  if (leftIconName) {
28
28
  properties.leftIcon = <Icon name={leftIconName} size={iconSize} />;
29
29
  }
30
30
  if (rightIconName) {
31
31
  properties.rightIcon = <Icon name={rightIconName} size={iconSize} />;
32
32
  }
33
+ if ((properties.leftIcon || properties.rightIcon) && !properties.iconSpacing) {
34
+ properties.iconSpacing = size === 'medium' ? '0.625rem' : '0.375rem';
35
+ }
36
+
33
37
  return <ChakraButton {...properties} ref={ref} />;
34
38
  });
35
39
 
36
40
  Button.defaultProps = {
37
41
  as: 'button',
38
- size: 'lg',
42
+ size: 'medium',
39
43
  variant: 'primary',
40
44
  } as ButtonProps;
41
45
 
@@ -24,7 +24,7 @@ const CodeBlock = ({ children, isCopiable, ...props }: CodeBlockProps) => {
24
24
  aria-label="Copy to clipboard"
25
25
  iconName="Duplicate"
26
26
  onClick={onCopy}
27
- size="sm"
27
+ size="small"
28
28
  sx={style.copyIcon}
29
29
  variant="secondary"
30
30
  />
@@ -38,7 +38,7 @@ const DatePickerFooter = ({
38
38
  gridColumn="1"
39
39
  gridRow={styleGrid('2', '1')}
40
40
  onClick={() => onClear()}
41
- size="sm"
41
+ size="small"
42
42
  variant="tertiary"
43
43
  width="fit-content"
44
44
  >
@@ -68,11 +68,11 @@ const DatePickerFooter = ({
68
68
  )}
69
69
  </Text>
70
70
  <ButtonGroup gridColumn={styleGrid('2 / 4', '3')} gridRow={styleGrid('2', '1')} justifyContent="end">
71
- <Button onClick={onClose} size="sm" variant="secondary">
71
+ <Button onClick={onClose} size="small" variant="secondary">
72
72
  Cancel
73
73
  </Button>
74
74
 
75
- <Button onClick={onApply} size="sm">
75
+ <Button onClick={onApply} size="small">
76
76
  Apply
77
77
  </Button>
78
78
  </ButtonGroup>
@@ -23,7 +23,7 @@ export const DatePickerHeaderPrevious = ({ label }: { label: string }) => {
23
23
  iconName="ChevronLeft"
24
24
  isTooltipDisabled
25
25
  onClick={onPrevious}
26
- size="sm"
26
+ size="small"
27
27
  variant="tertiary"
28
28
  visibility={controls === 'right' ? 'hidden' : undefined}
29
29
  />
@@ -39,7 +39,7 @@ export const DatePickerHeaderNext = ({ label }: { label: string }) => {
39
39
  iconName="ChevronRight"
40
40
  isTooltipDisabled
41
41
  onClick={onNext}
42
- size="sm"
42
+ size="small"
43
43
  variant="tertiary"
44
44
  visibility={controls === 'left' ? 'hidden' : undefined}
45
45
  />
@@ -59,7 +59,7 @@ const DatePickerMonth = ({ controls, onMonthClick, onViewDateChange, viewDate }:
59
59
  flexShrink={0}
60
60
  onClick={onMonthClick}
61
61
  rightIconName="ChevronDown"
62
- size="sm"
62
+ size="small"
63
63
  variant="tertiary"
64
64
  >
65
65
  {viewDate.monthLong}
@@ -1,5 +1,6 @@
1
1
  import { createMultiStyleConfigHelpers, SystemStyleObject } from '@chakra-ui/styled-system';
2
2
  import { rem } from '../../utils/utils';
3
+ import { disabledStates } from '../Button/Button.theme';
3
4
 
4
5
  export const parts = [
5
6
  'container',
@@ -22,8 +23,6 @@ export type FilterStyle = Record<(typeof parts)[number], SystemStyleObject>;
22
23
 
23
24
  const { defineMultiStyleConfig } = createMultiStyleConfigHelpers(parts);
24
25
 
25
- const disabledState = { background: 'transparent', borderColor: 'transparent', color: 'neutral.70' };
26
-
27
26
  const FilterTheme = defineMultiStyleConfig({
28
27
  baseStyle: {
29
28
  container: {
@@ -117,9 +116,9 @@ const FilterTheme = defineMultiStyleConfig({
117
116
  },
118
117
  _disabled: {
119
118
  cursor: 'not-allowed',
120
- ...disabledState,
121
- _active: disabledState,
122
- _hover: disabledState,
119
+ ...disabledStates.tertiary,
120
+ _active: disabledStates.tertiary,
121
+ _hover: disabledStates.tertiary,
123
122
  },
124
123
  _hover: {
125
124
  background: 'neutral.93',
@@ -140,9 +139,9 @@ const FilterTheme = defineMultiStyleConfig({
140
139
  },
141
140
  _disabled: {
142
141
  cursor: 'not-allowed',
143
- ...disabledState,
144
- _active: disabledState,
145
- _hover: disabledState,
142
+ ...disabledStates.tertiary,
143
+ _active: disabledStates.tertiary,
144
+ _hover: disabledStates.tertiary,
146
145
  },
147
146
  _hover: {
148
147
  background: 'neutral.93',
@@ -163,7 +163,7 @@ const Filter = (props: FilterProps) => {
163
163
  leftIconName="CloseSmall"
164
164
  minWidth="7.5rem"
165
165
  onClick={onClearFilters}
166
- size="sm"
166
+ size="small"
167
167
  variant="tertiary"
168
168
  >
169
169
  Clear filters
@@ -57,7 +57,7 @@ const FilterAdd = (props: FilterAddProps) => {
57
57
  isLoading={isLoading}
58
58
  leftIconName="PlusOpen"
59
59
  position={isOpen ? 'relative' : undefined}
60
- size="sm"
60
+ size="small"
61
61
  variant="tertiary"
62
62
  zIndex={isOpen ? 'dialog' : undefined}
63
63
  >
@@ -170,14 +170,14 @@ const FilterForm = (props: FilterFormProps) => {
170
170
  )}
171
171
  <ButtonGroup spacing="12" sx={filterStyle.formButtonGroup}>
172
172
  {isEditMode && (
173
- <Button marginInlineEnd="auto" onClick={onClearClick} size="sm" variant="tertiary">
173
+ <Button marginInlineEnd="auto" onClick={onClearClick} size="small" variant="tertiary">
174
174
  Clear
175
175
  </Button>
176
176
  )}
177
- <Button onClick={onCancelClick} size="sm" type="reset" variant="secondary">
177
+ <Button onClick={onCancelClick} size="small" type="reset" variant="secondary">
178
178
  Cancel
179
179
  </Button>
180
- <Button isDisabled={isDisabled} size="sm" type="submit">
180
+ <Button isDisabled={isDisabled} size="small" type="submit">
181
181
  {(selected.length === 0 || selected[0] === '') && isEditMode ? 'Remove' : 'Apply'}
182
182
  </Button>
183
183
  </ButtonGroup>
@@ -79,7 +79,7 @@ const FilterItem = (props: FilterItemProps) => {
79
79
  iconName="CloseSmall"
80
80
  isDisabled={isLoading}
81
81
  onClick={() => onFilterClear(category)}
82
- size="sm"
82
+ size="small"
83
83
  sx={filterStyle.tagClear}
84
84
  tooltipProps={{ shouldWrapChildren: false }}
85
85
  variant="tertiary"
@@ -56,7 +56,7 @@ const FilterSearch = (props: FilterSearchProps) => {
56
56
  <Input {...inputProps} />
57
57
  {!!searchValue && (
58
58
  <InputRightElement>
59
- <IconButton aria-label="Clear" iconName="CloseSmall" onClick={onClearClick} size="sm" variant="tertiary" />
59
+ <IconButton aria-label="Clear" iconName="CloseSmall" onClick={onClearClick} size="small" variant="tertiary" />
60
60
  </InputRightElement>
61
61
  )}
62
62
  </InputGroup>
@@ -104,7 +104,7 @@ const FileInput = forwardRef<FileInputProps, 'div'>((props, ref) => {
104
104
  </Text>
105
105
  <Text as="span">{selectedFileNames[0]}</Text>
106
106
  </Box>
107
- <Button flexShrink={0} leftIconName="MinusRemove" onClick={onRemoveClick} size="sm" variant="secondary">
107
+ <Button flexShrink={0} leftIconName="MinusRemove" onClick={onRemoveClick} size="small" variant="secondary">
108
108
  Remove
109
109
  </Button>
110
110
  </>
@@ -4,16 +4,15 @@ import Tooltip, { TooltipProps } from '../Tooltip/Tooltip';
4
4
 
5
5
  export interface IconButtonProps extends ChakraIconButtonProps {
6
6
  as?: 'a' | 'button';
7
- disabled?: never;
8
7
  iconName: TypeIconName;
9
8
  isDanger?: boolean;
10
9
  iconSize?: IconProps['size'];
11
10
  isTooltipDisabled?: boolean;
12
11
  label?: string;
13
- size?: 'sm' | 'md' | 'lg';
12
+ size?: 'small' | 'medium';
14
13
  tooltipCloseDelay?: number;
15
14
  tooltipProps?: Omit<TooltipProps, 'children'>;
16
- variant?: 'primary' | 'secondary' | 'tertiary' | 'danger-primary' | 'danger-secondary' | 'danger-tertiary';
15
+ variant?: 'primary' | 'secondary' | 'tertiary';
17
16
  }
18
17
 
19
18
  /**
@@ -36,10 +35,10 @@ const IconButton = forwardRef<IconButtonProps, 'button'>((props, ref) => {
36
35
  } = props;
37
36
  const properties: ChakraIconButtonProps = {
38
37
  as: isDisabled ? 'button' : as,
39
- icon: <Icon name={iconName} size={iconSize || (size === 'lg' ? '24' : '16')} />,
38
+ icon: <Icon name={iconName} size={iconSize || (size === 'small' ? '16' : '24')} />,
40
39
  isDisabled,
41
40
  size,
42
- variant: isDanger ? `danger-${variant}` : variant,
41
+ variant: isDanger ? `${variant}--danger` : variant,
43
42
  ...rest,
44
43
  };
45
44
  return (
@@ -57,7 +56,7 @@ const IconButton = forwardRef<IconButtonProps, 'button'>((props, ref) => {
57
56
 
58
57
  IconButton.defaultProps = {
59
58
  as: 'button',
60
- size: 'lg',
59
+ size: 'medium',
61
60
  tooltipCloseDelay: 0,
62
61
  variant: 'primary',
63
62
  } as IconButtonProps;
@@ -0,0 +1,24 @@
1
+ import { forwardRef, Icon, IconProps } from '@chakra-ui/react';
2
+
3
+ const OutsideContributor = forwardRef<IconProps, 'svg'>((props, ref) => (
4
+ <Icon ref={ref} viewBox="0 0 16 16" {...props}>
5
+ <path
6
+ clipRule="evenodd"
7
+ d="M4.5 1C3.67157 1 3 1.67157 3 2.5V4C3 4.82843 3.67157 5.5 4.5 5.5H5.5C6.32843 5.5 7 4.82843 7 4V2.5C7 1.67157 6.32843 1 5.5 1H4.5ZM5.5 2.5H4.5V4H5.5V2.5Z"
8
+ fill="currentColor"
9
+ fillRule="evenodd"
10
+ />
11
+ <path
12
+ clipRule="evenodd"
13
+ d="M11 15.5C13.4853 15.5 15.5 13.4853 15.5 11C15.5 8.51472 13.4853 6.5 11 6.5C8.51472 6.5 6.5 8.51472 6.5 11C6.5 13.4853 8.51472 15.5 11 15.5ZM9 10H11.293L8.64648 12.6465L9.35359 13.3536L12 10.7072V13H13V9H9V10Z"
14
+ fill="currentColor"
15
+ fillRule="evenodd"
16
+ />
17
+ <path
18
+ d="M2.25 6.75H7.50869C6.99989 7.16846 6.56756 7.6765 6.2358 8.25H2.5V11H1V8C1 7.30964 1.55964 6.75 2.25 6.75Z"
19
+ fill="currentColor"
20
+ />
21
+ </Icon>
22
+ ));
23
+
24
+ export default OutsideContributor;
@@ -233,3 +233,4 @@ export { default as Wow } from './Wow';
233
233
  export { default as WrappedLines } from './WrappedLines';
234
234
  export { default as Xamarin } from './Xamarin';
235
235
  export { default as XTwitter } from './XTwitter';
236
+ export { default as OutsideContributor } from './OutsideContributor';
@@ -0,0 +1,24 @@
1
+ import { forwardRef, Icon, IconProps } from '@chakra-ui/react';
2
+
3
+ const OutsideContributor = forwardRef<IconProps, 'svg'>((props, ref) => (
4
+ <Icon ref={ref} viewBox="0 0 24 24" {...props}>
5
+ <path
6
+ clipRule="evenodd"
7
+ d="M7.5 2C6.39543 2 5.5 2.89543 5.5 4V7C5.5 8.10457 6.39543 9 7.5 9H9.5C10.6046 9 11.5 8.10457 11.5 7V4C11.5 2.89543 10.6046 2 9.5 2H7.5ZM9.5 4H7.5V7H9.5V4Z"
8
+ fill="currentColor"
9
+ fillRule="evenodd"
10
+ />
11
+ <path
12
+ clipRule="evenodd"
13
+ d="M17.5 23C20.5376 23 23 20.5376 23 17.5C23 14.4624 20.5376 12 17.5 12C14.4624 12 12 14.4624 12 17.5C12 20.5376 14.4624 23 17.5 23ZM15.5 16H18.293L14.6465 19.6465L15.3536 20.3536L19 16.7072V19.5H20V15H15.5V16Z"
14
+ fill="currentColor"
15
+ fillRule="evenodd"
16
+ />
17
+ <path
18
+ d="M2 13C2 11.8954 2.89543 11 4 11H13C13.6154 11 14.1659 11.278 14.5328 11.7152C13.8884 12.0464 13.3065 12.4822 12.8096 13H4V17H2V13Z"
19
+ fill="currentColor"
20
+ />
21
+ </Icon>
22
+ ));
23
+
24
+ export default OutsideContributor;
@@ -233,3 +233,4 @@ export { default as Wow } from './Wow';
233
233
  export { default as WrappedLines } from './WrappedLines';
234
234
  export { default as Xamarin } from './Xamarin';
235
235
  export { default as XTwitter } from './XTwitter';
236
+ export { default as OutsideContributor } from './OutsideContributor';
@@ -55,7 +55,7 @@ const Note = ({ children, startingHeight, status }: NoteProps) => {
55
55
  </Box>
56
56
  {!!startingHeight && (
57
57
  <Box __css={buttonContainer}>
58
- <Button leftIconName="ChevronDown" onClick={() => setExpanded(!isExpanded)} size="sm" variant="secondary">
58
+ <Button leftIconName="ChevronDown" onClick={() => setExpanded(!isExpanded)} size="small" variant="secondary">
59
59
  {isExpanded ? 'Show less' : 'Show more'}
60
60
  </Button>
61
61
  </Box>
@@ -12,7 +12,7 @@ export interface OverflowMenuProps extends MenuProps {
12
12
  withPortal?: boolean;
13
13
  }
14
14
 
15
- const OverflowMenu = ({ buttonSize = 'sm', children, triggerLabel, withPortal }: OverflowMenuProps) => {
15
+ const OverflowMenu = ({ buttonSize = 'small', children, triggerLabel, withPortal }: OverflowMenuProps) => {
16
16
  const Wrapper = withPortal ? Portal : Fragment;
17
17
  return (
18
18
  <Menu isLazy>
@@ -17,7 +17,7 @@ const TableIconButton = forwardRef<TableIconButtonProps, 'button'>((props, ref)
17
17
  color={isDanger ? undefined : 'pal.purple.10'}
18
18
  iconSize="24"
19
19
  isDanger={isDanger}
20
- size="sm"
20
+ size="small"
21
21
  variant="tertiary"
22
22
  {...props}
23
23
  />