@cyber-harbour/ui 1.0.60 → 1.0.62
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/dist/index.d.mts +517 -46
- package/dist/index.d.ts +517 -46
- package/dist/index.js +244 -237
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +245 -238
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/Core/Alert/Alert.tsx +11 -5
- package/src/Core/Box/Box.tsx +19 -17
- package/src/Core/Button/Button.tsx +59 -55
- package/src/Core/Checkbox/Checkbox.tsx +6 -7
- package/src/Core/ContentLoader/ContentLoader.tsx +13 -0
- package/src/Core/ContentLoader/index.ts +1 -0
- package/src/Core/Drawer/Drawer.tsx +29 -14
- package/src/Core/Flex/FlexContainer.tsx +47 -45
- package/src/Core/Flex/FlexItem.tsx +19 -26
- package/src/Core/IconComponents/FlashIcon.tsx +16 -0
- package/src/Core/IconComponents/UserInCircle.tsx +24 -0
- package/src/Core/IconComponents/index.ts +2 -0
- package/src/Core/Label/Label.tsx +31 -30
- package/src/Core/Line/Line.tsx +5 -5
- package/src/Core/LinerProgress/LinerProgress.tsx +14 -20
- package/src/Core/Switch/Switch.tsx +4 -4
- package/src/Core/Tag/Tag.tsx +40 -39
- package/src/Core/Tooltip/Tooltip.tsx +45 -41
- package/src/Core/Typography/Typography.tsx +31 -33
- package/src/Core/index.ts +1 -0
- package/src/FullscreenCard/FullscreenCard.tsx +21 -26
- package/src/Layouts/Container/Container.tsx +13 -7
- package/src/Theme/Breakpoint.tsx +50 -0
- package/src/Theme/ThemeProvider.tsx +5 -2
- package/src/Theme/{componentFabric.ts → componentFabric.tsx} +90 -36
- package/src/Theme/index.ts +1 -0
package/package.json
CHANGED
package/src/Core/Alert/Alert.tsx
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
FabricComponent,
|
|
5
|
+
StyledFabricComponent,
|
|
6
|
+
createComponent,
|
|
7
|
+
createStyledComponent,
|
|
8
|
+
generatePropertySpaceStyle,
|
|
9
|
+
} from '../../Theme';
|
|
4
10
|
import { AlertIcon } from '../IconComponents';
|
|
5
11
|
|
|
6
12
|
type AlertProps = FabricComponent<{
|
|
@@ -9,7 +15,7 @@ type AlertProps = FabricComponent<{
|
|
|
9
15
|
}> &
|
|
10
16
|
Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;
|
|
11
17
|
|
|
12
|
-
export const Alert = ({ title, note, ...props }
|
|
18
|
+
export const Alert = createComponent<AlertProps>(({ title, note, ...props }) => {
|
|
13
19
|
return (
|
|
14
20
|
<StyledContainer {...props}>
|
|
15
21
|
<IconWrapper>
|
|
@@ -21,7 +27,7 @@ export const Alert = ({ title, note, ...props }: AlertProps) => {
|
|
|
21
27
|
</div>
|
|
22
28
|
</StyledContainer>
|
|
23
29
|
);
|
|
24
|
-
};
|
|
30
|
+
});
|
|
25
31
|
|
|
26
32
|
const IconWrapper = styled.div(
|
|
27
33
|
({ theme: { alert } }) => `
|
|
@@ -60,8 +66,8 @@ const Note = styled.p(
|
|
|
60
66
|
`
|
|
61
67
|
);
|
|
62
68
|
|
|
63
|
-
const StyledContainer =
|
|
64
|
-
styled.div<
|
|
69
|
+
const StyledContainer = createStyledComponent(
|
|
70
|
+
styled.div<StyledFabricComponent>(
|
|
65
71
|
({ theme, py = theme.alert.paddingBlock, pl = theme.alert.paddingLeft, pr = theme.alert.paddingRight }) => {
|
|
66
72
|
return `
|
|
67
73
|
display: flex;
|
package/src/Core/Box/Box.tsx
CHANGED
|
@@ -1,33 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ColorVariant,
|
|
3
3
|
createComponent,
|
|
4
|
+
createStyledComponent,
|
|
4
5
|
FabricComponent,
|
|
5
6
|
generatePropertySpaceStyle,
|
|
6
7
|
resolveThemeColor,
|
|
8
|
+
StyledFabricComponent,
|
|
7
9
|
} from '../../Theme';
|
|
8
10
|
import { styled } from 'styled-components';
|
|
9
11
|
|
|
10
|
-
type BoxProps =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>
|
|
17
|
-
>;
|
|
12
|
+
type BoxProps = {
|
|
13
|
+
children?: any;
|
|
14
|
+
element?: 'div' | 'section';
|
|
15
|
+
hasBorder?: boolean;
|
|
16
|
+
color?: ColorVariant | string;
|
|
17
|
+
} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
18
18
|
|
|
19
|
-
export const Box = (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
export const Box = createComponent<BoxProps>(
|
|
20
|
+
({ children, element = 'div', hasBorder = true, color, ...props }): any => {
|
|
21
|
+
return (
|
|
22
|
+
<StyledBox as={element} $hasBorder={hasBorder} $color={color} {...props}>
|
|
23
|
+
{children}
|
|
24
|
+
</StyledBox>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
);
|
|
26
28
|
|
|
27
29
|
type StyledProps = { $hasBorder: boolean; $color?: string };
|
|
28
30
|
|
|
29
|
-
const StyledBox =
|
|
30
|
-
styled('div')<
|
|
31
|
+
const StyledBox = createStyledComponent(
|
|
32
|
+
styled('div')<StyledFabricComponent<StyledProps>>(
|
|
31
33
|
({ theme, $hasBorder, $color, px = theme.box.padding, py = theme.box.padding }) => `
|
|
32
34
|
${generatePropertySpaceStyle(theme, 'padding-inline', px)}
|
|
33
35
|
${generatePropertySpaceStyle(theme, 'padding-block', py)}
|
|
@@ -8,11 +8,12 @@ import {
|
|
|
8
8
|
getButtonSizeStyles,
|
|
9
9
|
ButtonElementStyle,
|
|
10
10
|
createComponent,
|
|
11
|
-
FabricComponent,
|
|
12
11
|
generatePropertySpaceStyle,
|
|
12
|
+
createStyledComponent,
|
|
13
|
+
StyledFabricComponent,
|
|
13
14
|
} from '../../Theme';
|
|
14
15
|
|
|
15
|
-
type BaseButtonProps =
|
|
16
|
+
type BaseButtonProps = {
|
|
16
17
|
children?: any;
|
|
17
18
|
variant?: ButtonVariant;
|
|
18
19
|
color?: ButtonColor;
|
|
@@ -23,11 +24,10 @@ type BaseButtonProps = FabricComponent<{
|
|
|
23
24
|
icon?: any;
|
|
24
25
|
iconPosition?: 'left' | 'right';
|
|
25
26
|
iconVariant?: 'filled' | 'empty';
|
|
26
|
-
}
|
|
27
|
-
|
|
27
|
+
};
|
|
28
28
|
export type ButtonProps = (
|
|
29
|
-
| Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'>
|
|
30
|
-
| Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>
|
|
29
|
+
| Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children' | 'media'>
|
|
30
|
+
| Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'media'>
|
|
31
31
|
) &
|
|
32
32
|
BaseButtonProps;
|
|
33
33
|
|
|
@@ -70,21 +70,22 @@ type StyledButtonProps = {
|
|
|
70
70
|
$iconVariant: 'filled' | 'empty';
|
|
71
71
|
};
|
|
72
72
|
|
|
73
|
-
const
|
|
74
|
-
(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
73
|
+
const StyledButton = createStyledComponent(
|
|
74
|
+
styled.button<StyledFabricComponent<StyledButtonProps>>(
|
|
75
|
+
({
|
|
76
|
+
$variant,
|
|
77
|
+
$color,
|
|
78
|
+
$size,
|
|
79
|
+
$disabled,
|
|
80
|
+
$fullWidth,
|
|
81
|
+
$iconPosition,
|
|
82
|
+
$iconVariant,
|
|
83
|
+
theme,
|
|
84
|
+
px = $variant !== 'empty' ? theme.button.sizes[$size].paddingInline : 0,
|
|
85
|
+
py = $variant !== 'empty' ? theme.button.sizes[$size].paddingBlock : 0,
|
|
86
|
+
}) => {
|
|
87
|
+
const sizes = getButtonSizeStyles(theme, $size);
|
|
88
|
+
return `
|
|
88
89
|
${getCss(getButtonStyles(theme, $variant, $color, 'default'))}
|
|
89
90
|
font-size: ${sizes.fontSize};
|
|
90
91
|
gap: ${sizes.gap};
|
|
@@ -155,39 +156,42 @@ const Btn = styled.button<FabricComponent<StyledButtonProps>>(
|
|
|
155
156
|
: ``
|
|
156
157
|
}
|
|
157
158
|
`;
|
|
159
|
+
}
|
|
160
|
+
)
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
export const Button = createComponent<ButtonProps>(
|
|
164
|
+
({
|
|
165
|
+
children,
|
|
166
|
+
variant = 'fill',
|
|
167
|
+
color = 'primary',
|
|
168
|
+
size = 'medium',
|
|
169
|
+
disabled = false,
|
|
170
|
+
fullWidth = false,
|
|
171
|
+
className,
|
|
172
|
+
icon,
|
|
173
|
+
iconPosition = 'left',
|
|
174
|
+
iconVariant = 'empty',
|
|
175
|
+
...props
|
|
176
|
+
}) => {
|
|
177
|
+
return (
|
|
178
|
+
// @ts-ignore
|
|
179
|
+
<StyledButton
|
|
180
|
+
as={'href' in props ? 'a' : 'button'}
|
|
181
|
+
$variant={variant}
|
|
182
|
+
$color={color}
|
|
183
|
+
$size={size}
|
|
184
|
+
$disabled={disabled}
|
|
185
|
+
$fullWidth={fullWidth}
|
|
186
|
+
$iconPosition={iconPosition}
|
|
187
|
+
$iconVariant={iconVariant}
|
|
188
|
+
disabled={disabled}
|
|
189
|
+
className={className}
|
|
190
|
+
{...props}
|
|
191
|
+
>
|
|
192
|
+
{!!icon && <StyledIconWrapper>{icon}</StyledIconWrapper>}
|
|
193
|
+
{!!children && <ButtonTextContainer>{children}</ButtonTextContainer>}
|
|
194
|
+
</StyledButton>
|
|
195
|
+
);
|
|
158
196
|
}
|
|
159
197
|
);
|
|
160
|
-
const StyledButton = createComponent(Btn);
|
|
161
|
-
|
|
162
|
-
export const Button = ({
|
|
163
|
-
children,
|
|
164
|
-
variant = 'fill',
|
|
165
|
-
color = 'primary',
|
|
166
|
-
size = 'medium',
|
|
167
|
-
disabled = false,
|
|
168
|
-
fullWidth = false,
|
|
169
|
-
className,
|
|
170
|
-
icon,
|
|
171
|
-
iconPosition = 'left',
|
|
172
|
-
iconVariant = 'empty',
|
|
173
|
-
...props
|
|
174
|
-
}: ButtonProps) => {
|
|
175
|
-
return (
|
|
176
|
-
<StyledButton
|
|
177
|
-
as={'href' in props ? 'a' : 'button'}
|
|
178
|
-
$variant={variant}
|
|
179
|
-
$color={color}
|
|
180
|
-
$size={size}
|
|
181
|
-
$disabled={disabled}
|
|
182
|
-
$fullWidth={fullWidth}
|
|
183
|
-
$iconPosition={iconPosition}
|
|
184
|
-
$iconVariant={iconVariant}
|
|
185
|
-
disabled={disabled}
|
|
186
|
-
className={className}
|
|
187
|
-
{...props}
|
|
188
|
-
>
|
|
189
|
-
{!!icon && <StyledIconWrapper>{icon}</StyledIconWrapper>}
|
|
190
|
-
{!!children && <ButtonTextContainer>{children}</ButtonTextContainer>}
|
|
191
|
-
</StyledButton>
|
|
192
|
-
);
|
|
193
|
-
};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
|
-
import {
|
|
3
|
+
import { createComponent, createStyledComponent, destructSpaceProps, pxToRem } from '../../Theme';
|
|
4
4
|
|
|
5
|
-
type CheckboxProps =
|
|
5
|
+
type CheckboxProps = {
|
|
6
6
|
label?: any;
|
|
7
|
-
}
|
|
8
|
-
Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'>;
|
|
7
|
+
} & Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'>;
|
|
9
8
|
|
|
10
|
-
export const Checkbox = ({ label, className, disabled, ...props }
|
|
9
|
+
export const Checkbox = createComponent<CheckboxProps>(({ label, className, disabled, ...props }) => {
|
|
11
10
|
const spaceProps = destructSpaceProps(props);
|
|
12
11
|
return (
|
|
13
12
|
<StyledCheckbox className={className} $disabled={disabled} {...spaceProps}>
|
|
@@ -16,7 +15,7 @@ export const Checkbox = ({ label, className, disabled, ...props }: CheckboxProps
|
|
|
16
15
|
{!!label && <LabelText>{label}</LabelText>}
|
|
17
16
|
</StyledCheckbox>
|
|
18
17
|
);
|
|
19
|
-
};
|
|
18
|
+
});
|
|
20
19
|
|
|
21
20
|
const CustomCheckbox = styled.div(
|
|
22
21
|
({ theme }) => `
|
|
@@ -48,7 +47,7 @@ const HiddenInput = styled.input`
|
|
|
48
47
|
position: absolute;
|
|
49
48
|
`;
|
|
50
49
|
|
|
51
|
-
const StyledCheckbox =
|
|
50
|
+
const StyledCheckbox = createStyledComponent(
|
|
52
51
|
styled.label<{ $disabled?: boolean }>(({ theme, $disabled }) => {
|
|
53
52
|
return `
|
|
54
53
|
position: relative;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import ReactContentLoader, { IContentLoaderProps } from 'react-content-loader';
|
|
2
|
+
import { useTheme } from 'styled-components';
|
|
3
|
+
|
|
4
|
+
export interface ContentLoaderProps extends Omit<IContentLoaderProps, 'backgroundColor' | 'foregroundColor'> {
|
|
5
|
+
children?: any;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const ContentLoader = (props: ContentLoaderProps) => {
|
|
9
|
+
const {
|
|
10
|
+
contentLoader: { foreground, background },
|
|
11
|
+
} = useTheme();
|
|
12
|
+
return <ReactContentLoader {...props} backgroundColor={background} foregroundColor={foreground} />;
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ContentLoader';
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { createPortal } from 'react-dom';
|
|
2
2
|
import { styled } from 'styled-components';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
createComponent,
|
|
5
|
+
createStyledComponent,
|
|
6
|
+
FabricComponent,
|
|
7
|
+
generatePropertySpaceStyle,
|
|
8
|
+
propToRem,
|
|
9
|
+
pxToRem,
|
|
10
|
+
StyledFabricComponent,
|
|
11
|
+
} from '../../Theme';
|
|
4
12
|
import { useBodyScrollLock } from '../../utils';
|
|
5
13
|
import { useEffect, useRef } from 'react';
|
|
6
14
|
|
|
@@ -12,12 +20,12 @@ type DrawerProps = {
|
|
|
12
20
|
width?: string | number;
|
|
13
21
|
};
|
|
14
22
|
|
|
15
|
-
export const Drawer = (props
|
|
23
|
+
export const Drawer = createComponent<DrawerProps>((props) => {
|
|
16
24
|
useBodyScrollLock(props.isOpen);
|
|
17
25
|
|
|
18
26
|
if (!props.isOpen) return null;
|
|
19
27
|
return createPortal(<DrawerWithOutclick {...props} />, document.body);
|
|
20
|
-
};
|
|
28
|
+
});
|
|
21
29
|
|
|
22
30
|
const DrawerWithOutclick = ({ onClose, children, width, header }: DrawerProps) => {
|
|
23
31
|
const drawerRef = useRef<HTMLDivElement>(null);
|
|
@@ -45,8 +53,8 @@ type DrawerHeaderProps = FabricComponent<{
|
|
|
45
53
|
children?: any;
|
|
46
54
|
}>;
|
|
47
55
|
|
|
48
|
-
export const DrawerHeader: any =
|
|
49
|
-
styled.div
|
|
56
|
+
export const DrawerHeader: any = createStyledComponent<DrawerHeaderProps>(
|
|
57
|
+
styled.div(
|
|
50
58
|
({ theme, p = theme.drawer.padding }) => `
|
|
51
59
|
grid-area: drawer-header;
|
|
52
60
|
${generatePropertySpaceStyle(theme, 'padding', p)};
|
|
@@ -57,26 +65,33 @@ export const DrawerHeader: any = createComponent<DrawerHeaderProps>(
|
|
|
57
65
|
}
|
|
58
66
|
);
|
|
59
67
|
|
|
60
|
-
type DrawerBodyProps =
|
|
68
|
+
type DrawerBodyProps = StyledFabricComponent<{
|
|
61
69
|
children?: any;
|
|
62
70
|
}>;
|
|
63
71
|
|
|
64
|
-
export const DrawerBody: any = createComponent(
|
|
65
|
-
|
|
66
|
-
(
|
|
72
|
+
export const DrawerBody: any = createComponent<DrawerBodyProps>(
|
|
73
|
+
createStyledComponent<DrawerBodyProps>(
|
|
74
|
+
styled.div(
|
|
75
|
+
({ theme, px = theme.drawer.padding, pb = theme.drawer.padding }) => `
|
|
67
76
|
grid-area: drawer-body;
|
|
68
77
|
max-height: 100%;
|
|
69
78
|
overflow-y: auto;
|
|
70
79
|
${generatePropertySpaceStyle(theme, 'padding-inline', px)};
|
|
71
80
|
${generatePropertySpaceStyle(theme, 'padding-bottom', pb)};
|
|
72
81
|
`
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
82
|
+
),
|
|
83
|
+
{
|
|
84
|
+
ignoreStyles: ['padding', 'padding-bottom'],
|
|
85
|
+
}
|
|
86
|
+
)
|
|
77
87
|
);
|
|
78
88
|
|
|
79
|
-
|
|
89
|
+
type StyledDrawerProps = {
|
|
90
|
+
$header?: number;
|
|
91
|
+
$width?: string | number;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const StyledDrawer = styled.div<StyledDrawerProps>(
|
|
80
95
|
({ theme, $header, $width }) => `
|
|
81
96
|
position: fixed;
|
|
82
97
|
display: grid;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties, forwardRef } from 'react';
|
|
2
|
-
import { createComponent, FabricComponent } from '../../Theme';
|
|
2
|
+
import { createComponent, createStyledComponent, FabricComponent, StyledFabricComponent } from '../../Theme';
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
|
|
5
5
|
export type FlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';
|
|
@@ -23,46 +23,50 @@ export interface FlexContainerProps extends FabricComponent<Omit<React.HTMLAttri
|
|
|
23
23
|
as?: any; // TODO: fix type to styled component or intrinsic element
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export const FlexContainer
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
26
|
+
export const FlexContainer = createComponent<FlexContainerProps, HTMLDivElement>(
|
|
27
|
+
forwardRef<HTMLDivElement, FlexContainerProps>(
|
|
28
|
+
(
|
|
29
|
+
{
|
|
30
|
+
children,
|
|
31
|
+
direction = 'row',
|
|
32
|
+
wrap = 'nowrap',
|
|
33
|
+
justify = 'flex-start',
|
|
34
|
+
align = 'stretch',
|
|
35
|
+
alignContent,
|
|
36
|
+
gap,
|
|
37
|
+
rowGap,
|
|
38
|
+
columnGap,
|
|
39
|
+
className,
|
|
40
|
+
style,
|
|
41
|
+
as = 'div',
|
|
42
|
+
...props
|
|
43
|
+
},
|
|
44
|
+
ref
|
|
45
|
+
) => {
|
|
46
|
+
return (
|
|
47
|
+
<StyledContainer
|
|
48
|
+
as={as}
|
|
49
|
+
$direction={direction}
|
|
50
|
+
$wrap={wrap}
|
|
51
|
+
$justify={justify}
|
|
52
|
+
$align={align}
|
|
53
|
+
$alignContent={alignContent}
|
|
54
|
+
$gap={gap}
|
|
55
|
+
$rowGap={rowGap}
|
|
56
|
+
$columnGap={columnGap}
|
|
57
|
+
className={className}
|
|
58
|
+
style={style}
|
|
59
|
+
ref={ref}
|
|
60
|
+
{...props}
|
|
61
|
+
>
|
|
62
|
+
{children}
|
|
63
|
+
</StyledContainer>
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
);
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
type StyledFlexContainerProps = StyledFabricComponent<{
|
|
66
70
|
$direction: FlexDirection;
|
|
67
71
|
$wrap: FlexWrap;
|
|
68
72
|
$justify: FlexJustify;
|
|
@@ -71,9 +75,9 @@ interface StyledFlexContainerProps {
|
|
|
71
75
|
$gap?: FlexGap;
|
|
72
76
|
$rowGap?: FlexGap;
|
|
73
77
|
$columnGap?: FlexGap;
|
|
74
|
-
}
|
|
78
|
+
}>;
|
|
75
79
|
|
|
76
|
-
const StyledContainer = styled.div
|
|
80
|
+
const StyledContainer = createStyledComponent<StyledFlexContainerProps>(styled.div`
|
|
77
81
|
${({ $direction, $wrap, $justify, $align, $alignContent, $gap, $rowGap, $columnGap }) => `
|
|
78
82
|
display: flex;
|
|
79
83
|
width: 100%;
|
|
@@ -87,6 +91,4 @@ const StyledContainer = styled.div<StyledFlexContainerProps>`
|
|
|
87
91
|
${$rowGap !== undefined ? `row-gap: ${typeof $rowGap === 'number' ? `${$rowGap}px` : $rowGap};` : ''}
|
|
88
92
|
${$columnGap !== undefined ? `column-gap: ${typeof $columnGap === 'number' ? `${$columnGap}px` : $columnGap};` : ''}
|
|
89
93
|
`}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const StyledFlexContainer = createComponent(StyledContainer);
|
|
94
|
+
`);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
2
|
import { styled } from 'styled-components';
|
|
3
|
+
import { createComponent } from '../../Theme';
|
|
3
4
|
|
|
4
5
|
export type FlexItemGrow = number;
|
|
5
6
|
export type FlexItemShrink = number;
|
|
@@ -18,32 +19,24 @@ export interface FlexItemProps {
|
|
|
18
19
|
as?: any; //TODO: fix type to styled component or intrinsic element
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
export const FlexItem = (
|
|
22
|
-
children,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
$order={order}
|
|
40
|
-
className={className}
|
|
41
|
-
style={style}
|
|
42
|
-
>
|
|
43
|
-
{children}
|
|
44
|
-
</StyledFlexItem>
|
|
45
|
-
);
|
|
46
|
-
};
|
|
22
|
+
export const FlexItem = createComponent<FlexItemProps>(
|
|
23
|
+
({ children, grow, shrink, basis, align, order, className, style, as = 'div' }) => {
|
|
24
|
+
return (
|
|
25
|
+
<StyledFlexItem
|
|
26
|
+
as={as}
|
|
27
|
+
$grow={grow}
|
|
28
|
+
$shrink={shrink}
|
|
29
|
+
$basis={basis}
|
|
30
|
+
$align={align}
|
|
31
|
+
$order={order}
|
|
32
|
+
className={className}
|
|
33
|
+
style={style}
|
|
34
|
+
>
|
|
35
|
+
{children}
|
|
36
|
+
</StyledFlexItem>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
);
|
|
47
40
|
|
|
48
41
|
interface StyledFlexItemProps {
|
|
49
42
|
$grow?: FlexItemGrow;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
|
|
3
|
+
interface FlashIconProps extends SVGProps<SVGSVGElement> {
|
|
4
|
+
fill?: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const FlashIcon = ({ fill = 'currentColor', ...props }: FlashIconProps) => {
|
|
8
|
+
return (
|
|
9
|
+
<svg viewBox="0 0 12 16" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
10
|
+
<path
|
|
11
|
+
d="M 7.6660156,0.65234375 C 7.4133949,0.5557327 7.1358962,0.60336238 6.9023437,0.72070312 6.6687913,0.83804387 6.4563704,1.0238164 6.2421875,1.2714844 a 0.40004001,0.40004001 0 0 0 -0.00195,0 L 1.0390625,7.2910156 a 0.40004001,0.40004001 0 0 0 -0.00195,0.00195 C 0.66831145,7.7258208 0.48003352,8.2197174 0.67773437,8.6640625 0.87543523,9.1084076 1.3750452,9.296875 1.9394531,9.296875 h 1.7246094 v 4.638672 c 0,0.329424 0.040225,0.610814 0.1386719,0.853516 0.098447,0.242701 0.2727646,0.461984 0.5253906,0.558593 0.252626,0.09661 0.5301197,0.04899 0.7636719,-0.06836 0.2335521,-0.117352 0.4479278,-0.303095 0.6621093,-0.550781 L 10.955078,8.7109375 v -0.00195 C 11.327713,8.2797425 11.519652,7.7831519 11.322266,7.3378906 11.124617,6.8920374 10.622895,6.703125 10.054688,6.703125 H 8.3320313 V 2.0644531 c 0,-0.3294234 -0.040224,-0.6108149 -0.1386719,-0.8535156 C 8.0949118,0.96823685 7.9186363,0.7489548 7.6660156,0.65234375 Z M 7.3808594,1.4003906 c -9.672e-4,-3.699e-4 0.027688,0.00625 0.070312,0.1113281 0.042624,0.1050814 0.080078,0.2942094 0.080078,0.5527344 v 5.0390625 a 0.40004001,0.40004001 0 0 0 0.4003906,0.4003906 h 2.1230474 c 0.400591,0 0.518333,0.1158494 0.537109,0.1582032 0.01878,0.042354 0.02525,0.218143 -0.240234,0.5234375 a 0.40004001,0.40004001 0 0 0 -0.002,0 L 5.1484375,14.205078 c -0.167163,0.193313 -0.3178234,0.310037 -0.4160156,0.359375 -0.098192,0.04934 -0.1201131,0.03478 -0.1191407,0.03516 9.725e-4,3.72e-4 -0.027688,-0.0062 -0.070312,-0.111328 -0.042625,-0.105082 -0.080078,-0.294209 -0.080078,-0.552734 V 8.8964844 A 0.40004001,0.40004001 0 0 0 4.0625,8.4960938 H 1.9394531 c -0.3975381,0 -0.5125133,-0.1141382 -0.53125,-0.15625 C 1.3894664,8.2977319 1.3831449,8.1196241 1.6464844,7.8105469 L 6.8457031,1.7949219 C 7.0128648,1.6016263 7.1635269,1.4848801 7.2617187,1.4355469 7.3599106,1.3862136 7.3818266,1.4007605 7.3808594,1.4003906 Z"
|
|
12
|
+
fill={fill}
|
|
13
|
+
/>
|
|
14
|
+
</svg>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
|
|
3
|
+
interface UserInCircleIconProps extends SVGProps<SVGSVGElement> {
|
|
4
|
+
fill?: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const UserInCircleIcon = ({ fill = 'currentColor', ...props }: UserInCircleIconProps) => {
|
|
8
|
+
return (
|
|
9
|
+
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
10
|
+
<path
|
|
11
|
+
d="M8.08031 9.02292C8.06698 9.02292 8.04698 9.02292 8.03365 9.02292C8.01365 9.02292 7.98698 9.02292 7.96698 9.02292C6.45365 8.97625 5.32031 7.79625 5.32031 6.34292C5.32031 4.86292 6.52698 3.65625 8.00698 3.65625C9.48698 3.65625 10.6936 4.86292 10.6936 6.34292C10.687 7.80292 9.54698 8.97625 8.10031 9.02292C8.08698 9.02292 8.08698 9.02292 8.08031 9.02292ZM8.00031 4.64958C7.06698 4.64958 6.31365 5.40958 6.31365 6.33625C6.31365 7.24958 7.02698 7.98958 7.93365 8.02292C7.95365 8.01625 8.02031 8.01625 8.08698 8.02292C8.98031 7.97625 9.68031 7.24292 9.68698 6.33625C9.68698 5.40958 8.93365 4.64958 8.00031 4.64958Z"
|
|
12
|
+
fill={fill}
|
|
13
|
+
/>
|
|
14
|
+
<path
|
|
15
|
+
d="M7.99924 15.1669C6.20591 15.1669 4.49257 14.5002 3.16591 13.2869C3.04591 13.1802 2.99257 13.0202 3.00591 12.8669C3.09257 12.0735 3.58591 11.3335 4.40591 10.7869C6.39257 9.46687 9.61257 9.46687 11.5926 10.7869C12.4126 11.3402 12.9059 12.0735 12.9926 12.8669C13.0126 13.0269 12.9526 13.1802 12.8326 13.2869C11.5059 14.5002 9.79257 15.1669 7.99924 15.1669ZM4.05257 12.7335C5.15924 13.6602 6.55257 14.1669 7.99924 14.1669C9.44591 14.1669 10.8392 13.6602 11.9459 12.7335C11.8259 12.3269 11.5059 11.9335 11.0326 11.6135C9.39257 10.5202 6.61257 10.5202 4.95924 11.6135C4.48591 11.9335 4.17257 12.3269 4.05257 12.7335Z"
|
|
16
|
+
fill={fill}
|
|
17
|
+
/>
|
|
18
|
+
<path
|
|
19
|
+
d="M8.00065 15.1654C4.04732 15.1654 0.833984 11.952 0.833984 7.9987C0.833984 4.04536 4.04732 0.832031 8.00065 0.832031C11.954 0.832031 15.1673 4.04536 15.1673 7.9987C15.1673 11.952 11.954 15.1654 8.00065 15.1654ZM8.00065 1.83203C4.60065 1.83203 1.83398 4.5987 1.83398 7.9987C1.83398 11.3987 4.60065 14.1654 8.00065 14.1654C11.4007 14.1654 14.1673 11.3987 14.1673 7.9987C14.1673 4.5987 11.4007 1.83203 8.00065 1.83203Z"
|
|
20
|
+
fill={fill}
|
|
21
|
+
/>
|
|
22
|
+
</svg>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
@@ -59,3 +59,5 @@ export { RelationPointsIcon } from './RelationPointsIcon';
|
|
|
59
59
|
export { PassportIcon } from './PassportIcon';
|
|
60
60
|
export { PointIcon } from './PointIcon';
|
|
61
61
|
export { PencilIcon } from './PencilIcon';
|
|
62
|
+
export { UserInCircleIcon } from './UserInCircle';
|
|
63
|
+
export { FlashIcon } from './FlashIcon';
|