@bitrise/bitkit 12.17.0 → 12.17.2

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.17.0",
4
+ "version": "12.17.2",
5
5
  "repository": "git@github.com:bitrise-io/bitkit.git",
6
6
  "main": "src/index.ts",
7
7
  "license": "UNLICENSED",
@@ -1,6 +1,6 @@
1
1
  import { Icon, IconProps, forwardRef } from '@chakra-ui/react';
2
2
 
3
- const Unlock = forwardRef<IconProps, 'svg'>((props, ref) => (
3
+ const LockOpen = forwardRef<IconProps, 'svg'>((props, ref) => (
4
4
  <Icon ref={ref} viewBox="0 0 16 20" {...props}>
5
5
  <path d="M7 15V12H9V15H7Z" fill="currentColor" />
6
6
  <path
@@ -12,4 +12,4 @@ const Unlock = forwardRef<IconProps, 'svg'>((props, ref) => (
12
12
  </Icon>
13
13
  ));
14
14
 
15
- export default Unlock;
15
+ export default LockOpen;
@@ -104,6 +104,7 @@ export { default as Laptop } from './Laptop';
104
104
  export { default as Lightbulb } from './Lightbulb';
105
105
  export { default as Link } from './Link';
106
106
  export { default as Lock } from './Lock';
107
+ export { default as LockOpen } from './LockOpen';
107
108
  export { default as Login } from './Login';
108
109
  export { default as Logout } from './Logout';
109
110
  export { default as Macos } from './Macos';
@@ -187,7 +188,6 @@ export { default as Trace } from './Trace';
187
188
  export { default as Trash } from './Trash';
188
189
  export { default as Trigger } from './Trigger';
189
190
  export { default as Twitter } from './Twitter';
190
- export { default as Unlock } from './Unlock';
191
191
  export { default as ValidateShield } from './ValidateShield';
192
192
  export { default as Video } from './Video';
193
193
  export { default as Warning } from './Warning';
@@ -1,6 +1,6 @@
1
1
  import { Icon, IconProps, forwardRef } from '@chakra-ui/react';
2
2
 
3
- const Unlock = forwardRef<IconProps, 'svg'>((props, ref) => (
3
+ const LockOpen = forwardRef<IconProps, 'svg'>((props, ref) => (
4
4
  <Icon ref={ref} viewBox="0 0 24 24" {...props}>
5
5
  <path d="M7 15V12H9V15H7Z" fill="currentColor" />
6
6
  <path
@@ -12,4 +12,4 @@ const Unlock = forwardRef<IconProps, 'svg'>((props, ref) => (
12
12
  </Icon>
13
13
  ));
14
14
 
15
- export default Unlock;
15
+ export default LockOpen;
@@ -104,6 +104,7 @@ export { default as Laptop } from './Laptop';
104
104
  export { default as Lightbulb } from './Lightbulb';
105
105
  export { default as Link } from './Link';
106
106
  export { default as Lock } from './Lock';
107
+ export { default as LockOpen } from './LockOpen';
107
108
  export { default as Login } from './Login';
108
109
  export { default as Logout } from './Logout';
109
110
  export { default as Macos } from './Macos';
@@ -187,7 +188,6 @@ export { default as Trace } from './Trace';
187
188
  export { default as Trash } from './Trash';
188
189
  export { default as Trigger } from './Trigger';
189
190
  export { default as Twitter } from './Twitter';
190
- export { default as Unlock } from './Unlock';
191
191
  export { default as ValidateShield } from './ValidateShield';
192
192
  export { default as Video } from './Video';
193
193
  export { default as Warning } from './Warning';
@@ -0,0 +1,6 @@
1
+ import { createContext } from '@chakra-ui/react-utils';
2
+
3
+ export interface PopoverContextType {
4
+ withArrow?: boolean;
5
+ }
6
+ export const [PopoverContext, usePopoverContext] = createContext<PopoverContextType>();
@@ -1,4 +1,7 @@
1
1
  import type { SystemStyleObject } from '@chakra-ui/theme-tools';
2
+ import { cssVar } from '@chakra-ui/theme-tools';
3
+
4
+ const $arrowBackground = cssVar('popper-arrow-bg');
2
5
 
3
6
  const PopoverTheme: SystemStyleObject = {
4
7
  baseStyle: {
@@ -6,6 +9,7 @@ const PopoverTheme: SystemStyleObject = {
6
9
  zIndex: 'popover',
7
10
  },
8
11
  content: {
12
+ [$arrowBackground.variable]: 'colors.neutral.100',
9
13
  backgroundColor: 'neutral.100',
10
14
  borderRadius: 8,
11
15
  boxShadow: 'large',
@@ -1,7 +1,31 @@
1
+ import { useMemo } from 'react';
1
2
  import { PopoverProps as ChakraPopoverProps, Popover as ChakraPopover } from '@chakra-ui/react';
3
+ import { PopoverContext, PopoverContextType } from './Popover.context';
2
4
 
3
- export type PopoverProps = ChakraPopoverProps;
5
+ export interface PopoverProps extends ChakraPopoverProps {
6
+ withArrow?: boolean;
7
+ }
4
8
 
5
- const Popover = (props: PopoverProps) => <ChakraPopover {...props} />;
9
+ const Popover = (props: PopoverProps) => {
10
+ const { withArrow, ...rest } = props;
11
+ const popoverProps = {
12
+ arrowPadding: 16,
13
+ arrowSize: 16,
14
+ gutter: withArrow ? 16 : 8,
15
+ ...rest,
16
+ };
17
+ const ctx = useMemo<PopoverContextType>(
18
+ () => ({
19
+ withArrow,
20
+ }),
21
+ [withArrow],
22
+ );
23
+
24
+ return (
25
+ <PopoverContext value={ctx}>
26
+ <ChakraPopover {...popoverProps} />
27
+ </PopoverContext>
28
+ );
29
+ };
6
30
 
7
31
  export default Popover;
@@ -1,20 +1,28 @@
1
- import { ReactNode, Fragment } from 'react';
1
+ import { Fragment } from 'react';
2
2
  import {
3
- PopoverContentProps as ChakraPopoverContentProps,
3
+ PopoverArrow,
4
+ PopoverBody,
5
+ PopoverBodyProps as ChakraPopoverBodyProps,
4
6
  PopoverContent as ChakraPopoverContent,
5
7
  Portal,
6
8
  } from '@chakra-ui/react';
9
+ import { usePopoverContext } from './Popover.context';
7
10
 
8
- export interface PopoverContentProps extends ChakraPopoverContentProps {
9
- children: ReactNode;
11
+ export interface PopoverContentProps extends ChakraPopoverBodyProps {
10
12
  withoutPortal?: boolean;
11
13
  }
12
14
 
13
- const PopoverContent = ({ withoutPortal, ...rest }: PopoverContentProps) => {
15
+ const PopoverContent = ({ children, withoutPortal, ...rest }: PopoverContentProps) => {
14
16
  const Wrapper = withoutPortal ? Fragment : Portal;
17
+
18
+ const { withArrow } = usePopoverContext();
19
+
15
20
  return (
16
21
  <Wrapper>
17
- <ChakraPopoverContent {...rest} />
22
+ <ChakraPopoverContent>
23
+ {withArrow && <PopoverArrow />}
24
+ <PopoverBody {...rest}>{children}</PopoverBody>
25
+ </ChakraPopoverContent>
18
26
  </Wrapper>
19
27
  );
20
28
  };
package/src/index.ts CHANGED
@@ -111,9 +111,6 @@ export { default as PopoverTrigger } from './Components/Popover/PopoverTrigger';
111
111
  export type { PopoverContentProps } from './Components/Popover/PopoverContent';
112
112
  export { default as PopoverContent } from './Components/Popover/PopoverContent';
113
113
 
114
- export type { PopoverArrowProps } from './Components/Popover/PopoverArrow';
115
- export { default as PopoverArrow } from './Components/Popover/PopoverArrow';
116
-
117
114
  export type { AvatarProps } from './Components/Avatar/Avatar';
118
115
  export { default as Avatar } from './Components/Avatar/Avatar';
119
116