@xqmsg/ui-core 0.23.1-rc.1 → 0.23.1-rc.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/CHANGELOG.md +456 -0
- package/LICENSE +20 -20
- package/README.md +40 -40
- package/dist/{89793640b494d7ea.svg → 78c9d6fd7766410f.svg} +9 -9
- package/dist/ui-core.cjs.development.js +1 -1
- package/dist/ui-core.cjs.development.js.map +1 -1
- package/dist/ui-core.cjs.production.min.js +1 -1
- package/dist/ui-core.cjs.production.min.js.map +1 -1
- package/dist/ui-core.esm.js +1 -1
- package/dist/ui-core.esm.js.map +1 -1
- package/package.json +118 -118
- package/src/components/banner/Banner.stories.tsx +100 -100
- package/src/components/banner/index.tsx +73 -73
- package/src/components/breadcrumbs/Breadcrumbs.stories.tsx +66 -66
- package/src/components/breadcrumbs/components/icon/index.tsx +38 -38
- package/src/components/breadcrumbs/components/label/index.tsx +20 -20
- package/src/components/breadcrumbs/index.tsx +48 -48
- package/src/components/button/Button.stories.tsx +140 -140
- package/src/components/button/google/GoogleButton.stories.tsx +23 -23
- package/src/components/button/google/index.tsx +29 -29
- package/src/components/button/index.tsx +51 -51
- package/src/components/button/microsoft/MicrosoftButton.stories.tsx +25 -25
- package/src/components/button/microsoft/index.tsx +29 -29
- package/src/components/button/spinner/SpinnerButton.stories.tsx +60 -60
- package/src/components/button/spinner/index.tsx +36 -36
- package/src/components/card/Card.stories.tsx +56 -56
- package/src/components/card/index.tsx +78 -78
- package/src/components/form/Form.stories.tsx +62 -62
- package/src/components/form/FormTypes.ts +20 -20
- package/src/components/form/hooks/useFormHandler.tsx +74 -74
- package/src/components/form/index.tsx +25 -25
- package/src/components/form/section/FormSection.stories.tsx +109 -109
- package/src/components/form/section/index.tsx +87 -87
- package/src/components/form/utils/formErrors.ts +34 -34
- package/src/components/icons/checkmark/checkmark.svg +3 -3
- package/src/components/icons/checkmark/index.tsx +13 -13
- package/src/components/icons/chevron/down/chevron-down.svg +3 -3
- package/src/components/icons/chevron/down/index.tsx +14 -14
- package/src/components/icons/chevron/right/chevron-right.svg +3 -3
- package/src/components/icons/chevron/right/index.tsx +13 -13
- package/src/components/icons/clock/clock.svg +3 -3
- package/src/components/icons/clock/index.tsx +13 -13
- package/src/components/icons/close/close.svg +3 -3
- package/src/components/icons/close/index.tsx +21 -21
- package/src/components/icons/dropdown/dropdown.svg +3 -3
- package/src/components/icons/dropdown/index.tsx +16 -16
- package/src/components/icons/error/error.svg +3 -3
- package/src/components/icons/error/index.tsx +13 -13
- package/src/components/icons/file/fill/file-fill.svg +4 -4
- package/src/components/icons/file/fill/index.tsx +13 -13
- package/src/components/icons/file/outline/file-outline.svg +3 -3
- package/src/components/icons/file/outline/index.tsx +13 -13
- package/src/components/icons/folder/add/fill/folder-add-fill.svg +3 -3
- package/src/components/icons/folder/add/fill/index.tsx +13 -13
- package/src/components/icons/folder/add/outline/folder-add-outline.svg +3 -3
- package/src/components/icons/folder/add/outline/index.tsx +15 -15
- package/src/components/icons/folder/fill/folder-fill-gradient.svg +33 -33
- package/src/components/icons/folder/fill/folder-fill.svg +4 -4
- package/src/components/icons/folder/fill/index.tsx +21 -21
- package/src/components/icons/folder/outline/folder-outline.svg +3 -3
- package/src/components/icons/folder/outline/index.tsx +13 -13
- package/src/components/icons/gear/GearIcon.tsx +36 -36
- package/src/components/icons/google/drive/index.tsx +13 -13
- package/src/components/icons/google/google.svg +13 -13
- package/src/components/icons/google/index.tsx +13 -13
- package/src/components/icons/group/group.svg +3 -3
- package/src/components/icons/group/index.tsx +13 -13
- package/src/components/icons/home/home.svg +3 -3
- package/src/components/icons/home/index.tsx +13 -13
- package/src/components/icons/image/image.svg +3 -3
- package/src/components/icons/image/index.tsx +13 -13
- package/src/components/icons/index.tsx +101 -101
- package/src/components/icons/link/index.tsx +13 -13
- package/src/components/icons/link/link.svg +4 -4
- package/src/components/icons/menu/index.tsx +13 -13
- package/src/components/icons/menu/menu.svg +3 -3
- package/src/components/icons/microsoft/index.tsx +13 -13
- package/src/components/icons/microsoft/microsoft.svg +9 -9
- package/src/components/icons/microsoft/onedrive/index.tsx +16 -16
- package/src/components/icons/neutral/index.tsx +14 -14
- package/src/components/icons/neutral/neutral.svg +3 -3
- package/src/components/icons/page/index.tsx +13 -13
- package/src/components/icons/page/page.svg +3 -3
- package/src/components/icons/positive/index.tsx +13 -13
- package/src/components/icons/positive/positive.svg +3 -3
- package/src/components/icons/question/index.tsx +13 -13
- package/src/components/icons/question/question.svg +3 -3
- package/src/components/icons/search/index.tsx +13 -13
- package/src/components/icons/search/search.svg +3 -3
- package/src/components/icons/services/index.tsx +13 -13
- package/src/components/icons/services/services.svg +3 -3
- package/src/components/icons/settings/index.tsx +14 -14
- package/src/components/icons/settings/settings.svg +6 -6
- package/src/components/icons/table/fill/index.tsx +13 -13
- package/src/components/icons/table/fill/table-fill.svg +3 -3
- package/src/components/icons/table/outline/index.tsx +13 -13
- package/src/components/icons/table/outline/table-outline.svg +3 -3
- package/src/components/icons/task/index.tsx +10 -10
- package/src/components/icons/task/task.svg +11 -11
- package/src/components/icons/trash/index.tsx +13 -13
- package/src/components/icons/trash/trash.svg +3 -3
- package/src/components/icons/vault/index.tsx +14 -14
- package/src/components/icons/video/index.tsx +13 -13
- package/src/components/icons/video/video.svg +3 -3
- package/src/components/icons/warning/index.tsx +13 -13
- package/src/components/icons/warning/warning.svg +3 -3
- package/src/components/icons/workspace/index.tsx +14 -14
- package/src/components/input/Input.stories.tsx +287 -287
- package/src/components/input/InputTypes.ts +77 -77
- package/src/components/input/StackedCheckbox/StackedCheckbox.tsx +44 -44
- package/src/components/input/StackedInput/StackedInput.tsx +60 -60
- package/src/components/input/StackedMultiSelect/index.tsx +349 -349
- package/src/components/input/StackedPilledInput/index.tsx +386 -386
- package/src/components/input/StackedRadio/StackedRadioGroup.tsx +38 -38
- package/src/components/input/StackedSelect/index.tsx +232 -232
- package/src/components/input/StackedSwitch/index.tsx +33 -33
- package/src/components/input/StackedTextarea/StackedTextarea.tsx +55 -55
- package/src/components/input/components/dropdown/index.tsx +111 -111
- package/src/components/input/components/label/index.tsx +35 -35
- package/src/components/input/components/token/Token.stories.tsx +25 -25
- package/src/components/input/components/token/index.tsx +45 -45
- package/src/components/input/index.tsx +298 -298
- package/src/components/layout/BorderedBox/index.tsx +30 -30
- package/src/components/layout/Layout.stories.tsx +40 -40
- package/src/components/layout/index.tsx +100 -100
- package/src/components/link/Link.stories.tsx +23 -23
- package/src/components/link/index.tsx +34 -34
- package/src/components/loading/LoadingIndicator.stories.tsx +45 -45
- package/src/components/loading/index.tsx +45 -45
- package/src/components/modal/Modal.stories.tsx +36 -36
- package/src/components/modal/components/action/index.tsx +37 -37
- package/src/components/modal/index.tsx +41 -41
- package/src/components/navigation/NavigationMenu.stories.tsx +85 -85
- package/src/components/navigation/components/header/index.tsx +27 -27
- package/src/components/navigation/components/items/index.tsx +76 -76
- package/src/components/navigation/index.tsx +87 -87
- package/src/components/select/index.tsx +140 -140
- package/src/components/table/Table.stories.tsx +63 -63
- package/src/components/table/TableTypes.ts +15 -15
- package/src/components/table/components/loading/index.tsx +45 -45
- package/src/components/table/components/text/index.tsx +23 -23
- package/src/components/table/empty/index.tsx +47 -47
- package/src/components/table/index.tsx +84 -84
- package/src/components/table/utils/generateTableColumns.ts +9 -9
- package/src/components/tabs/TabsWrapper.stories.tsx +85 -85
- package/src/components/tabs/index.tsx +39 -39
- package/src/components/text/Text.stories.tsx +59 -59
- package/src/components/text/index.tsx +16 -16
- package/src/components/toast/Toast.stories.tsx +52 -52
- package/src/components/toast/index.tsx +78 -78
- package/src/components/toolbar/Toolbar.stories.tsx +59 -59
- package/src/components/toolbar/components/actions/add/index.tsx +18 -18
- package/src/components/toolbar/components/actions/search/index.tsx +38 -38
- package/src/components/toolbar/components/actions/sort/index.tsx +49 -49
- package/src/components/toolbar/components/breadcrumbs/index.tsx +63 -63
- package/src/components/toolbar/components/breadcrumbs/item/index.tsx +72 -72
- package/src/components/toolbar/components/dropdown/index.tsx +107 -107
- package/src/components/toolbar/components/navigation/components/button/left/index.tsx +28 -28
- package/src/components/toolbar/components/navigation/components/button/left/left-arrow.svg +3 -3
- package/src/components/toolbar/components/navigation/components/button/right/index.tsx +27 -27
- package/src/components/toolbar/components/navigation/components/button/right/right-arrow.svg +3 -3
- package/src/components/toolbar/components/navigation/index.tsx +36 -36
- package/src/components/toolbar/index.tsx +55 -55
- package/src/hooks/useDeepEffect.tsx +22 -22
- package/src/hooks/useDidMountEffect.tsx +13 -13
- package/src/hooks/useOnOutsideClick.tsx +31 -31
- package/src/hooks/useToast.tsx +16 -16
- package/src/index.tsx +78 -78
- package/src/theme/components/alert.ts +60 -60
- package/src/theme/components/badge.ts +59 -59
- package/src/theme/components/button.ts +163 -163
- package/src/theme/components/checkbox.ts +28 -28
- package/src/theme/components/code.ts +16 -16
- package/src/theme/components/form-error.ts +31 -31
- package/src/theme/components/form-label.ts +17 -17
- package/src/theme/components/form.ts +29 -29
- package/src/theme/components/input.ts +65 -65
- package/src/theme/components/link.ts +118 -118
- package/src/theme/components/modal.ts +45 -45
- package/src/theme/components/select.ts +36 -36
- package/src/theme/components/switch.ts +89 -89
- package/src/theme/components/table.ts +42 -42
- package/src/theme/components/tabs.ts +255 -255
- package/src/theme/components/text.ts +93 -93
- package/src/theme/components/textarea.ts +42 -42
- package/src/theme/customXQChakraTheme.ts +54 -54
- package/src/theme/foundations/breakpoints.ts +18 -18
- package/src/theme/foundations/colors.ts +165 -165
- package/src/theme/foundations/shadows.ts +23 -23
- package/src/theme/foundations/typography.ts +62 -62
- package/src/theme/provider/index.tsx +21 -21
- package/src/theme/styles.ts +19 -19
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Box } from '@chakra-ui/react';
|
|
3
|
-
import { ReactComponent as RightArrow } from './right-arrow.svg';
|
|
4
|
-
|
|
5
|
-
export interface RightArrowButtonProps {
|
|
6
|
-
onClick: () => void;
|
|
7
|
-
disabled: boolean;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* A functional React component utilized to render the `RightArrowButton` component
|
|
12
|
-
*/
|
|
13
|
-
export const RightArrowButton: React.FC<RightArrowButtonProps> = ({
|
|
14
|
-
onClick,
|
|
15
|
-
disabled,
|
|
16
|
-
}) => {
|
|
17
|
-
return (
|
|
18
|
-
<Box
|
|
19
|
-
onClick={() => {
|
|
20
|
-
if (!disabled) return onClick();
|
|
21
|
-
}}
|
|
22
|
-
cursor={disabled ? 'not-allowed' : 'pointer'}
|
|
23
|
-
>
|
|
24
|
-
<RightArrow stroke={disabled ? '#3C3C43' : 'black'} />
|
|
25
|
-
</Box>
|
|
26
|
-
);
|
|
27
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Box } from '@chakra-ui/react';
|
|
3
|
+
import { ReactComponent as RightArrow } from './right-arrow.svg';
|
|
4
|
+
|
|
5
|
+
export interface RightArrowButtonProps {
|
|
6
|
+
onClick: () => void;
|
|
7
|
+
disabled: boolean;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A functional React component utilized to render the `RightArrowButton` component
|
|
12
|
+
*/
|
|
13
|
+
export const RightArrowButton: React.FC<RightArrowButtonProps> = ({
|
|
14
|
+
onClick,
|
|
15
|
+
disabled,
|
|
16
|
+
}) => {
|
|
17
|
+
return (
|
|
18
|
+
<Box
|
|
19
|
+
onClick={() => {
|
|
20
|
+
if (!disabled) return onClick();
|
|
21
|
+
}}
|
|
22
|
+
cursor={disabled ? 'not-allowed' : 'pointer'}
|
|
23
|
+
>
|
|
24
|
+
<RightArrow stroke={disabled ? '#3C3C43' : 'black'} />
|
|
25
|
+
</Box>
|
|
26
|
+
);
|
|
27
|
+
};
|
package/src/components/toolbar/components/navigation/components/button/right/right-arrow.svg
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<svg width="8" height="14" viewBox="0 0 8 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<path d="M0.875 0.75L7.125 7L0.874999 13.25" stroke="current" stroke-opacity="0.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
-
</svg>
|
|
1
|
+
<svg width="8" height="14" viewBox="0 0 8 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M0.875 0.75L7.125 7L0.874999 13.25" stroke="current" stroke-opacity="0.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
3
|
+
</svg>
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Box, Flex } from '@chakra-ui/react';
|
|
3
|
-
import { LeftArrowButton } from './components/button/left';
|
|
4
|
-
import { RightArrowButton } from './components/button/right';
|
|
5
|
-
|
|
6
|
-
export interface NavigationButtonsProps {
|
|
7
|
-
onBackClick?: () => void;
|
|
8
|
-
onForwardClick?: () => void;
|
|
9
|
-
backButtonDisabled?: boolean;
|
|
10
|
-
forwardButtonDisabled?: boolean;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* A functional React component utilized to render the `NavigationButtons` component
|
|
15
|
-
*/
|
|
16
|
-
export const NavigationButtons: React.FC<NavigationButtonsProps> = ({
|
|
17
|
-
onBackClick,
|
|
18
|
-
onForwardClick,
|
|
19
|
-
backButtonDisabled,
|
|
20
|
-
forwardButtonDisabled,
|
|
21
|
-
}) => {
|
|
22
|
-
return (
|
|
23
|
-
<Flex width="fit-content" alignItems="center" mr="24px">
|
|
24
|
-
<Box transform="scaleX(-1)" mr="16px">
|
|
25
|
-
<LeftArrowButton
|
|
26
|
-
onClick={() => onBackClick && onBackClick()}
|
|
27
|
-
disabled={backButtonDisabled || false}
|
|
28
|
-
/>
|
|
29
|
-
</Box>
|
|
30
|
-
<RightArrowButton
|
|
31
|
-
onClick={() => onForwardClick && onForwardClick()}
|
|
32
|
-
disabled={forwardButtonDisabled || false}
|
|
33
|
-
/>
|
|
34
|
-
</Flex>
|
|
35
|
-
);
|
|
36
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Box, Flex } from '@chakra-ui/react';
|
|
3
|
+
import { LeftArrowButton } from './components/button/left';
|
|
4
|
+
import { RightArrowButton } from './components/button/right';
|
|
5
|
+
|
|
6
|
+
export interface NavigationButtonsProps {
|
|
7
|
+
onBackClick?: () => void;
|
|
8
|
+
onForwardClick?: () => void;
|
|
9
|
+
backButtonDisabled?: boolean;
|
|
10
|
+
forwardButtonDisabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A functional React component utilized to render the `NavigationButtons` component
|
|
15
|
+
*/
|
|
16
|
+
export const NavigationButtons: React.FC<NavigationButtonsProps> = ({
|
|
17
|
+
onBackClick,
|
|
18
|
+
onForwardClick,
|
|
19
|
+
backButtonDisabled,
|
|
20
|
+
forwardButtonDisabled,
|
|
21
|
+
}) => {
|
|
22
|
+
return (
|
|
23
|
+
<Flex width="fit-content" alignItems="center" mr="24px">
|
|
24
|
+
<Box transform="scaleX(-1)" mr="16px">
|
|
25
|
+
<LeftArrowButton
|
|
26
|
+
onClick={() => onBackClick && onBackClick()}
|
|
27
|
+
disabled={backButtonDisabled || false}
|
|
28
|
+
/>
|
|
29
|
+
</Box>
|
|
30
|
+
<RightArrowButton
|
|
31
|
+
onClick={() => onForwardClick && onForwardClick()}
|
|
32
|
+
disabled={forwardButtonDisabled || false}
|
|
33
|
+
/>
|
|
34
|
+
</Flex>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import { Flex } from '@chakra-ui/react';
|
|
3
|
-
import { ToolbarBreadcrumbs } from './components/breadcrumbs';
|
|
4
|
-
import { NavigationButtons } from './components/navigation';
|
|
5
|
-
|
|
6
|
-
export type ToolbarLabelAndHandler = { label: string; handler: () => void };
|
|
7
|
-
|
|
8
|
-
export interface ToolbarProps extends PropsWithChildren {
|
|
9
|
-
pageList: ToolbarLabelAndHandler[];
|
|
10
|
-
currentPage: string;
|
|
11
|
-
onBackClick?: () => void;
|
|
12
|
-
onForwardClick?: () => void;
|
|
13
|
-
backButtonDisabled?: boolean;
|
|
14
|
-
forwardButtonDisabled?: boolean;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* A functional React component utilized to render the `Toolbar` component
|
|
19
|
-
*/
|
|
20
|
-
export const Toolbar: React.FC<ToolbarProps> = ({
|
|
21
|
-
children,
|
|
22
|
-
pageList,
|
|
23
|
-
forwardButtonDisabled,
|
|
24
|
-
backButtonDisabled,
|
|
25
|
-
currentPage,
|
|
26
|
-
onBackClick,
|
|
27
|
-
onForwardClick,
|
|
28
|
-
}) => {
|
|
29
|
-
const hasNav = !!onBackClick && !!onForwardClick;
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<Flex flexDirection="column" borderBottom="0.5px solid #3C3C432E">
|
|
33
|
-
<Flex
|
|
34
|
-
height="52px"
|
|
35
|
-
px="32px"
|
|
36
|
-
alignItems="center"
|
|
37
|
-
justifyContent="space-between"
|
|
38
|
-
background="white"
|
|
39
|
-
>
|
|
40
|
-
<Flex>
|
|
41
|
-
{hasNav && (
|
|
42
|
-
<NavigationButtons
|
|
43
|
-
onBackClick={onBackClick}
|
|
44
|
-
onForwardClick={onForwardClick}
|
|
45
|
-
backButtonDisabled={backButtonDisabled}
|
|
46
|
-
forwardButtonDisabled={forwardButtonDisabled}
|
|
47
|
-
/>
|
|
48
|
-
)}
|
|
49
|
-
<ToolbarBreadcrumbs pageList={pageList} currentPage={currentPage} />
|
|
50
|
-
</Flex>
|
|
51
|
-
<Flex alignItems="center">{children} </Flex>
|
|
52
|
-
</Flex>
|
|
53
|
-
</Flex>
|
|
54
|
-
);
|
|
55
|
-
};
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import { Flex } from '@chakra-ui/react';
|
|
3
|
+
import { ToolbarBreadcrumbs } from './components/breadcrumbs';
|
|
4
|
+
import { NavigationButtons } from './components/navigation';
|
|
5
|
+
|
|
6
|
+
export type ToolbarLabelAndHandler = { label: string; handler: () => void };
|
|
7
|
+
|
|
8
|
+
export interface ToolbarProps extends PropsWithChildren {
|
|
9
|
+
pageList: ToolbarLabelAndHandler[];
|
|
10
|
+
currentPage: string;
|
|
11
|
+
onBackClick?: () => void;
|
|
12
|
+
onForwardClick?: () => void;
|
|
13
|
+
backButtonDisabled?: boolean;
|
|
14
|
+
forwardButtonDisabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* A functional React component utilized to render the `Toolbar` component
|
|
19
|
+
*/
|
|
20
|
+
export const Toolbar: React.FC<ToolbarProps> = ({
|
|
21
|
+
children,
|
|
22
|
+
pageList,
|
|
23
|
+
forwardButtonDisabled,
|
|
24
|
+
backButtonDisabled,
|
|
25
|
+
currentPage,
|
|
26
|
+
onBackClick,
|
|
27
|
+
onForwardClick,
|
|
28
|
+
}) => {
|
|
29
|
+
const hasNav = !!onBackClick && !!onForwardClick;
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<Flex flexDirection="column" borderBottom="0.5px solid #3C3C432E">
|
|
33
|
+
<Flex
|
|
34
|
+
height="52px"
|
|
35
|
+
px="32px"
|
|
36
|
+
alignItems="center"
|
|
37
|
+
justifyContent="space-between"
|
|
38
|
+
background="white"
|
|
39
|
+
>
|
|
40
|
+
<Flex>
|
|
41
|
+
{hasNav && (
|
|
42
|
+
<NavigationButtons
|
|
43
|
+
onBackClick={onBackClick}
|
|
44
|
+
onForwardClick={onForwardClick}
|
|
45
|
+
backButtonDisabled={backButtonDisabled}
|
|
46
|
+
forwardButtonDisabled={forwardButtonDisabled}
|
|
47
|
+
/>
|
|
48
|
+
)}
|
|
49
|
+
<ToolbarBreadcrumbs pageList={pageList} currentPage={currentPage} />
|
|
50
|
+
</Flex>
|
|
51
|
+
<Flex alignItems="center">{children} </Flex>
|
|
52
|
+
</Flex>
|
|
53
|
+
</Flex>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { DependencyList, EffectCallback, useEffect, useRef } from 'react';
|
|
2
|
-
import isEqual from 'lodash/isEqual';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Same as useEffect but does a deep comparison
|
|
6
|
-
*/
|
|
7
|
-
export default function useDeepEffect(
|
|
8
|
-
func: EffectCallback,
|
|
9
|
-
dependencies: DependencyList
|
|
10
|
-
) {
|
|
11
|
-
const dependenciesRef = useRef(dependencies);
|
|
12
|
-
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
if (!isEqual(dependenciesRef.current, dependencies)) {
|
|
15
|
-
// Execute the function
|
|
16
|
-
func();
|
|
17
|
-
|
|
18
|
-
// Update the dependencies
|
|
19
|
-
dependenciesRef.current = dependencies;
|
|
20
|
-
}
|
|
21
|
-
}, [func, dependencies]);
|
|
22
|
-
}
|
|
1
|
+
import { DependencyList, EffectCallback, useEffect, useRef } from 'react';
|
|
2
|
+
import isEqual from 'lodash/isEqual';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Same as useEffect but does a deep comparison
|
|
6
|
+
*/
|
|
7
|
+
export default function useDeepEffect(
|
|
8
|
+
func: EffectCallback,
|
|
9
|
+
dependencies: DependencyList
|
|
10
|
+
) {
|
|
11
|
+
const dependenciesRef = useRef(dependencies);
|
|
12
|
+
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (!isEqual(dependenciesRef.current, dependencies)) {
|
|
15
|
+
// Execute the function
|
|
16
|
+
func();
|
|
17
|
+
|
|
18
|
+
// Update the dependencies
|
|
19
|
+
dependenciesRef.current = dependencies;
|
|
20
|
+
}
|
|
21
|
+
}, [func, dependencies]);
|
|
22
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { useEffect, useRef } from 'react';
|
|
2
|
-
|
|
3
|
-
const useDidMountEffect = (func: () => void, deps: unknown[]) => {
|
|
4
|
-
const didMount = useRef(false);
|
|
5
|
-
|
|
6
|
-
useEffect(() => {
|
|
7
|
-
if (didMount.current) func();
|
|
8
|
-
else didMount.current = true;
|
|
9
|
-
// eslint-disable-next-line
|
|
10
|
-
}, deps);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export default useDidMountEffect;
|
|
1
|
+
import { useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
const useDidMountEffect = (func: () => void, deps: unknown[]) => {
|
|
4
|
+
const didMount = useRef(false);
|
|
5
|
+
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (didMount.current) func();
|
|
8
|
+
else didMount.current = true;
|
|
9
|
+
// eslint-disable-next-line
|
|
10
|
+
}, deps);
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default useDidMountEffect;
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { RefObject, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
export function useOnClickOutside(ref: RefObject<any>, handler: () => void) {
|
|
4
|
-
useEffect(
|
|
5
|
-
() => {
|
|
6
|
-
const listener: EventListener = event => {
|
|
7
|
-
// Do nothing if clicking ref's element or descendent elements
|
|
8
|
-
if (!ref.current || ref.current.contains(event.target)) {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
handler();
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
document.addEventListener('mousedown', listener);
|
|
16
|
-
document.addEventListener('touchstart', listener);
|
|
17
|
-
|
|
18
|
-
return () => {
|
|
19
|
-
document.removeEventListener('mousedown', listener);
|
|
20
|
-
document.removeEventListener('touchstart', listener);
|
|
21
|
-
};
|
|
22
|
-
},
|
|
23
|
-
// Add ref and handler to effect dependencies
|
|
24
|
-
// It's worth noting that because passed in handler is a new ...
|
|
25
|
-
// ... function on every render that will cause this effect ...
|
|
26
|
-
// ... callback/cleanup to run every render. It's not a big deal ...
|
|
27
|
-
// ... but to optimize you can wrap handler in useCallback before ...
|
|
28
|
-
// ... passing it into this hook.
|
|
29
|
-
[ref, handler]
|
|
30
|
-
);
|
|
31
|
-
}
|
|
1
|
+
import { RefObject, useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
export function useOnClickOutside(ref: RefObject<any>, handler: () => void) {
|
|
4
|
+
useEffect(
|
|
5
|
+
() => {
|
|
6
|
+
const listener: EventListener = event => {
|
|
7
|
+
// Do nothing if clicking ref's element or descendent elements
|
|
8
|
+
if (!ref.current || ref.current.contains(event.target)) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
handler();
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
document.addEventListener('mousedown', listener);
|
|
16
|
+
document.addEventListener('touchstart', listener);
|
|
17
|
+
|
|
18
|
+
return () => {
|
|
19
|
+
document.removeEventListener('mousedown', listener);
|
|
20
|
+
document.removeEventListener('touchstart', listener);
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
// Add ref and handler to effect dependencies
|
|
24
|
+
// It's worth noting that because passed in handler is a new ...
|
|
25
|
+
// ... function on every render that will cause this effect ...
|
|
26
|
+
// ... callback/cleanup to run every render. It's not a big deal ...
|
|
27
|
+
// ... but to optimize you can wrap handler in useCallback before ...
|
|
28
|
+
// ... passing it into this hook.
|
|
29
|
+
[ref, handler]
|
|
30
|
+
);
|
|
31
|
+
}
|
package/src/hooks/useToast.tsx
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { ToastPosition, useToast as useChakraToast } from '@chakra-ui/react';
|
|
2
|
-
import React, { useCallback } from 'react';
|
|
3
|
-
import { Toast, ToastProps } from '../components/toast';
|
|
4
|
-
|
|
5
|
-
export const useToast = () => {
|
|
6
|
-
const toast = useChakraToast();
|
|
7
|
-
|
|
8
|
-
return useCallback(
|
|
9
|
-
(props: ToastProps & { position: ToastPosition }) =>
|
|
10
|
-
toast({
|
|
11
|
-
position: props.position,
|
|
12
|
-
render: () => <Toast {...props} />,
|
|
13
|
-
}),
|
|
14
|
-
[toast]
|
|
15
|
-
);
|
|
16
|
-
};
|
|
1
|
+
import { ToastPosition, useToast as useChakraToast } from '@chakra-ui/react';
|
|
2
|
+
import React, { useCallback } from 'react';
|
|
3
|
+
import { Toast, ToastProps } from '../components/toast';
|
|
4
|
+
|
|
5
|
+
export const useToast = () => {
|
|
6
|
+
const toast = useChakraToast();
|
|
7
|
+
|
|
8
|
+
return useCallback(
|
|
9
|
+
(props: ToastProps & { position: ToastPosition }) =>
|
|
10
|
+
toast({
|
|
11
|
+
position: props.position,
|
|
12
|
+
render: () => <Toast {...props} />,
|
|
13
|
+
}),
|
|
14
|
+
[toast]
|
|
15
|
+
);
|
|
16
|
+
};
|
package/src/index.tsx
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
// Components
|
|
2
|
-
// Action Row
|
|
3
|
-
export * from './components/modal/components/action';
|
|
4
|
-
|
|
5
|
-
// Banner
|
|
6
|
-
export * from './components/banner';
|
|
7
|
-
|
|
8
|
-
// Breadcrumbs
|
|
9
|
-
export * from './components/breadcrumbs';
|
|
10
|
-
|
|
11
|
-
// Button
|
|
12
|
-
export * from './components/button';
|
|
13
|
-
|
|
14
|
-
// Card
|
|
15
|
-
export * from './components/card';
|
|
16
|
-
|
|
17
|
-
// Google Button
|
|
18
|
-
export * from './components/button/google';
|
|
19
|
-
|
|
20
|
-
// Microsoft Button
|
|
21
|
-
export * from './components/button/microsoft';
|
|
22
|
-
|
|
23
|
-
// Loading Spinner
|
|
24
|
-
export * from './components/button/spinner';
|
|
25
|
-
|
|
26
|
-
// Form
|
|
27
|
-
export * from './components/form';
|
|
28
|
-
|
|
29
|
-
// Form Section
|
|
30
|
-
export * from './components/form/section';
|
|
31
|
-
|
|
32
|
-
// Icons
|
|
33
|
-
export * from './components/icons';
|
|
34
|
-
|
|
35
|
-
// Input
|
|
36
|
-
export * from './components/input';
|
|
37
|
-
|
|
38
|
-
// Select
|
|
39
|
-
export { SelectNative } from './components/select';
|
|
40
|
-
|
|
41
|
-
// Layout
|
|
42
|
-
export * from './components/layout';
|
|
43
|
-
|
|
44
|
-
// Link
|
|
45
|
-
export { Link } from './components/link';
|
|
46
|
-
|
|
47
|
-
// Loading
|
|
48
|
-
export * from './components/loading';
|
|
49
|
-
|
|
50
|
-
// Modal
|
|
51
|
-
export * from './components/modal';
|
|
52
|
-
|
|
53
|
-
// Navigation Menu
|
|
54
|
-
export * from './components/navigation';
|
|
55
|
-
|
|
56
|
-
// Table
|
|
57
|
-
export * from './components/table';
|
|
58
|
-
|
|
59
|
-
// Table Nav
|
|
60
|
-
export * from './components/tabs';
|
|
61
|
-
|
|
62
|
-
// Text
|
|
63
|
-
export * from './components/text';
|
|
64
|
-
|
|
65
|
-
// Theme Provider
|
|
66
|
-
export * from './theme/provider';
|
|
67
|
-
|
|
68
|
-
// Toolbar
|
|
69
|
-
export * from './components/toolbar';
|
|
70
|
-
|
|
71
|
-
// Hooks
|
|
72
|
-
export * from './hooks/useToast';
|
|
73
|
-
|
|
74
|
-
//Utils
|
|
75
|
-
export * from './components/form/utils/formErrors';
|
|
76
|
-
|
|
77
|
-
// Colors
|
|
78
|
-
export * from './theme/foundations/colors';
|
|
1
|
+
// Components
|
|
2
|
+
// Action Row
|
|
3
|
+
export * from './components/modal/components/action';
|
|
4
|
+
|
|
5
|
+
// Banner
|
|
6
|
+
export * from './components/banner';
|
|
7
|
+
|
|
8
|
+
// Breadcrumbs
|
|
9
|
+
export * from './components/breadcrumbs';
|
|
10
|
+
|
|
11
|
+
// Button
|
|
12
|
+
export * from './components/button';
|
|
13
|
+
|
|
14
|
+
// Card
|
|
15
|
+
export * from './components/card';
|
|
16
|
+
|
|
17
|
+
// Google Button
|
|
18
|
+
export * from './components/button/google';
|
|
19
|
+
|
|
20
|
+
// Microsoft Button
|
|
21
|
+
export * from './components/button/microsoft';
|
|
22
|
+
|
|
23
|
+
// Loading Spinner
|
|
24
|
+
export * from './components/button/spinner';
|
|
25
|
+
|
|
26
|
+
// Form
|
|
27
|
+
export * from './components/form';
|
|
28
|
+
|
|
29
|
+
// Form Section
|
|
30
|
+
export * from './components/form/section';
|
|
31
|
+
|
|
32
|
+
// Icons
|
|
33
|
+
export * from './components/icons';
|
|
34
|
+
|
|
35
|
+
// Input
|
|
36
|
+
export * from './components/input';
|
|
37
|
+
|
|
38
|
+
// Select
|
|
39
|
+
export { SelectNative } from './components/select';
|
|
40
|
+
|
|
41
|
+
// Layout
|
|
42
|
+
export * from './components/layout';
|
|
43
|
+
|
|
44
|
+
// Link
|
|
45
|
+
export { Link } from './components/link';
|
|
46
|
+
|
|
47
|
+
// Loading
|
|
48
|
+
export * from './components/loading';
|
|
49
|
+
|
|
50
|
+
// Modal
|
|
51
|
+
export * from './components/modal';
|
|
52
|
+
|
|
53
|
+
// Navigation Menu
|
|
54
|
+
export * from './components/navigation';
|
|
55
|
+
|
|
56
|
+
// Table
|
|
57
|
+
export * from './components/table';
|
|
58
|
+
|
|
59
|
+
// Table Nav
|
|
60
|
+
export * from './components/tabs';
|
|
61
|
+
|
|
62
|
+
// Text
|
|
63
|
+
export * from './components/text';
|
|
64
|
+
|
|
65
|
+
// Theme Provider
|
|
66
|
+
export * from './theme/provider';
|
|
67
|
+
|
|
68
|
+
// Toolbar
|
|
69
|
+
export * from './components/toolbar';
|
|
70
|
+
|
|
71
|
+
// Hooks
|
|
72
|
+
export * from './hooks/useToast';
|
|
73
|
+
|
|
74
|
+
//Utils
|
|
75
|
+
export * from './components/form/utils/formErrors';
|
|
76
|
+
|
|
77
|
+
// Colors
|
|
78
|
+
export * from './theme/foundations/colors';
|