@bitrise/bitkit 12.16.0 → 12.17.1

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.16.0",
4
+ "version": "12.17.1",
5
5
  "repository": "git@github.com:bitrise-io/bitkit.git",
6
6
  "main": "src/index.ts",
7
7
  "license": "UNLICENSED",
@@ -0,0 +1,15 @@
1
+ import { Icon, IconProps, forwardRef } from '@chakra-ui/react';
2
+
3
+ const Unlock = forwardRef<IconProps, 'svg'>((props, ref) => (
4
+ <Icon ref={ref} viewBox="0 0 16 20" {...props}>
5
+ <path d="M7 15V12H9V15H7Z" fill="currentColor" />
6
+ <path
7
+ fillRule="evenodd"
8
+ clipRule="evenodd"
9
+ d="M11 7V5C11 3.34315 9.65685 2 8 2C6.34315 2 5 3.34315 5 5H3C3 2.23858 5.23858 0 8 0C10.7614 0 13 2.23858 13 5V7H14C15.1046 7 16 7.89543 16 9V18C16 19.1046 15.1046 20 14 20H2C0.895431 20 0 19.1046 0 18V9C0 7.89543 0.895431 7 2 7H11ZM2 9V18H14V9H2Z"
10
+ fill="currentColor"
11
+ />
12
+ </Icon>
13
+ ));
14
+
15
+ export default Unlock;
@@ -187,6 +187,7 @@ export { default as Trace } from './Trace';
187
187
  export { default as Trash } from './Trash';
188
188
  export { default as Trigger } from './Trigger';
189
189
  export { default as Twitter } from './Twitter';
190
+ export { default as Unlock } from './Unlock';
190
191
  export { default as ValidateShield } from './ValidateShield';
191
192
  export { default as Video } from './Video';
192
193
  export { default as Warning } from './Warning';
@@ -0,0 +1,15 @@
1
+ import { Icon, IconProps, forwardRef } from '@chakra-ui/react';
2
+
3
+ const Unlock = forwardRef<IconProps, 'svg'>((props, ref) => (
4
+ <Icon ref={ref} viewBox="0 0 24 24" {...props}>
5
+ <path d="M7 15V12H9V15H7Z" fill="currentColor" />
6
+ <path
7
+ fillRule="evenodd"
8
+ clipRule="evenodd"
9
+ d="M11 7V5C11 3.34315 9.65685 2 8 2C6.34315 2 5 3.34315 5 5H3C3 2.23858 5.23858 0 8 0C10.7614 0 13 2.23858 13 5V7H14C15.1046 7 16 7.89543 16 9V18C16 19.1046 15.1046 20 14 20H2C0.895431 20 0 19.1046 0 18V9C0 7.89543 0.895431 7 2 7H11ZM2 9V18H14V9H2Z"
10
+ fill="currentColor"
11
+ />
12
+ </Icon>
13
+ ));
14
+
15
+ export default Unlock;
@@ -187,6 +187,7 @@ export { default as Trace } from './Trace';
187
187
  export { default as Trash } from './Trash';
188
188
  export { default as Trigger } from './Trigger';
189
189
  export { default as Twitter } from './Twitter';
190
+ export { default as Unlock } from './Unlock';
190
191
  export { default as ValidateShield } from './ValidateShield';
191
192
  export { default as Video } from './Video';
192
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