@xqmsg/ui-core 0.16.8 → 0.17.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/dist/0ec7ec81c9033f9a.svg +9 -0
- package/dist/35c8475f2bf403f9.svg +9 -0
- package/dist/components/icons/chevron/down/index.d.ts +8 -0
- package/dist/components/icons/chevron/right/index.d.ts +8 -0
- package/dist/components/icons/clock/index.d.ts +8 -0
- package/dist/components/icons/close/index.d.ts +9 -0
- package/dist/components/icons/dropdown/index.d.ts +8 -0
- package/dist/components/icons/error/index.d.ts +8 -0
- package/dist/components/icons/file/fill/index.d.ts +8 -0
- package/dist/components/icons/file/outline/index.d.ts +8 -0
- package/dist/components/icons/folder/add/fill/index.d.ts +8 -0
- package/dist/components/icons/folder/add/outline/index.d.ts +8 -0
- package/dist/components/icons/folder/fill/index.d.ts +8 -0
- package/dist/components/icons/folder/outline/index.d.ts +8 -0
- package/dist/components/icons/google/drive/index.d.ts +8 -0
- package/dist/components/icons/google/index.d.ts +8 -0
- package/dist/components/icons/group/index.d.ts +8 -0
- package/dist/components/icons/home/index.d.ts +8 -0
- package/dist/components/icons/image/index.d.ts +8 -0
- package/dist/components/icons/index.d.ts +28 -0
- package/dist/components/icons/link/index.d.ts +8 -0
- package/dist/components/icons/menu/index.d.ts +8 -0
- package/dist/components/icons/microsoft/index.d.ts +8 -0
- package/dist/components/icons/microsoft/onedrive/index.d.ts +8 -0
- package/dist/components/icons/neutral/index.d.ts +8 -0
- package/dist/components/icons/positive/index.d.ts +8 -0
- package/dist/components/icons/search/index.d.ts +8 -0
- package/dist/components/icons/settings/index.d.ts +8 -0
- package/dist/components/icons/table/fill/index.d.ts +8 -0
- package/dist/components/icons/table/outline/index.d.ts +8 -0
- package/dist/components/icons/trash/index.d.ts +8 -0
- package/dist/components/icons/warning/index.d.ts +8 -0
- package/dist/components/navigation/NavigationMenu.stories.d.ts +5 -0
- package/dist/components/navigation/components/header/index.d.ts +8 -0
- package/dist/components/navigation/components/items/index.d.ts +14 -0
- package/dist/components/navigation/index.d.ts +14 -0
- package/dist/index.d.ts +2 -0
- package/dist/ui-core.cjs.development.js +980 -89
- 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 +955 -92
- package/dist/ui-core.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/banner/index.tsx +9 -9
- package/src/components/button/google/index.tsx +7 -2
- package/src/components/button/microsoft/index.tsx +7 -2
- package/src/components/icons/chevron/down/chevron-down.svg +3 -0
- package/src/components/icons/chevron/down/index.tsx +14 -0
- package/src/components/icons/chevron/right/chevron-right.svg +3 -0
- package/src/components/icons/chevron/right/index.tsx +13 -0
- package/src/components/icons/clock/clock.svg +3 -0
- package/src/components/icons/clock/index.tsx +13 -0
- package/src/components/{input/components/token/assets/svg → icons/close}/close.svg +0 -0
- package/src/components/icons/close/index.tsx +14 -0
- package/src/components/{input/StackedSelect/assets/svg/subtract.svg → icons/dropdown/dropdown.svg} +0 -0
- package/src/components/icons/dropdown/index.tsx +13 -0
- package/src/components/{banner/assets/svg → icons/error}/error.svg +0 -0
- package/src/components/icons/error/index.tsx +13 -0
- package/src/components/icons/file/fill/file-fill.svg +4 -0
- package/src/components/icons/file/fill/index.tsx +13 -0
- package/src/components/icons/file/outline/file-outline.svg +3 -0
- package/src/components/icons/file/outline/index.tsx +13 -0
- package/src/components/icons/folder/add/fill/folder-add-fill.svg +3 -0
- package/src/components/icons/folder/add/fill/index.tsx +13 -0
- package/src/components/icons/folder/add/outline/folder-add-outline.svg +3 -0
- package/src/components/icons/folder/add/outline/index.tsx +15 -0
- package/src/components/icons/folder/fill/folder-fill.svg +4 -0
- package/src/components/icons/folder/fill/index.tsx +13 -0
- package/src/components/icons/folder/outline/folder-outline.svg +3 -0
- package/src/components/icons/folder/outline/index.tsx +13 -0
- package/src/components/icons/google/drive/google-drive.svg +9 -0
- package/src/components/icons/google/drive/index.tsx +13 -0
- package/src/components/{button/google/assets/GoogleLogo.svg → icons/google/google.svg} +0 -0
- package/src/components/icons/google/index.tsx +13 -0
- package/src/components/icons/group/group.svg +3 -0
- package/src/components/icons/group/index.tsx +13 -0
- package/src/components/icons/home/home.svg +3 -0
- package/src/components/icons/home/index.tsx +13 -0
- package/src/components/icons/image/image.svg +3 -0
- package/src/components/icons/image/index.tsx +13 -0
- package/src/components/icons/index.tsx +57 -0
- package/src/components/icons/link/index.tsx +13 -0
- package/src/components/icons/link/link.svg +4 -0
- package/src/components/icons/menu/index.tsx +13 -0
- package/src/components/icons/menu/menu.svg +3 -0
- package/src/components/icons/microsoft/index.tsx +13 -0
- package/src/components/{button/microsoft/assets/MicrosoftLogo.svg → icons/microsoft/microsoft.svg} +0 -0
- package/src/components/icons/microsoft/onedrive/index.tsx +15 -0
- package/src/components/icons/microsoft/onedrive/microsoft-onedrive.svg +9 -0
- package/src/components/icons/neutral/index.tsx +13 -0
- package/src/components/{banner/assets/svg → icons/neutral}/neutral.svg +0 -0
- package/src/components/icons/positive/index.tsx +13 -0
- package/src/components/{banner/assets/svg → icons/positive}/positive.svg +0 -0
- package/src/components/icons/search/index.tsx +13 -0
- package/src/components/icons/search/search.svg +3 -0
- package/src/components/icons/settings/index.tsx +14 -0
- package/src/components/icons/settings/settings.svg +6 -0
- package/src/components/icons/table/fill/index.tsx +13 -0
- package/src/components/icons/table/fill/table-fill.svg +3 -0
- package/src/components/icons/table/outline/index.tsx +13 -0
- package/src/components/icons/table/outline/table-outline.svg +3 -0
- package/src/components/icons/trash/index.tsx +13 -0
- package/src/components/icons/trash/trash.svg +3 -0
- package/src/components/icons/warning/index.tsx +13 -0
- package/src/components/{banner/assets/svg → icons/warning}/warning.svg +0 -0
- package/src/components/input/Input.stories.tsx +0 -1
- package/src/components/input/StackedMultiSelect/index.tsx +3 -3
- package/src/components/input/StackedSelect/index.tsx +3 -9
- package/src/components/input/components/token/index.tsx +2 -7
- package/src/components/navigation/NavigationMenu.stories.tsx +85 -0
- package/src/components/navigation/components/header/index.tsx +26 -0
- package/src/components/navigation/components/items/index.tsx +62 -0
- package/src/components/navigation/index.tsx +59 -0
- package/src/index.tsx +6 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Flex } from '@chakra-ui/react';
|
|
3
|
+
import colors from '../../../../theme/foundations/colors';
|
|
4
|
+
|
|
5
|
+
export interface NavigationMenuHeaderProps {
|
|
6
|
+
label: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A functional React component utilized to render the `NavigationMenuHeader` component
|
|
11
|
+
*/
|
|
12
|
+
export const NavigationMenuHeader: React.FC<NavigationMenuHeaderProps> = ({
|
|
13
|
+
label,
|
|
14
|
+
}) => {
|
|
15
|
+
return (
|
|
16
|
+
<Flex
|
|
17
|
+
alignItems="center"
|
|
18
|
+
height="26px"
|
|
19
|
+
width="204px"
|
|
20
|
+
fontSize="12px"
|
|
21
|
+
color={colors.label.secondary.light}
|
|
22
|
+
>
|
|
23
|
+
{label}
|
|
24
|
+
</Flex>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Box, Flex, Link } from '@chakra-ui/react';
|
|
3
|
+
import colors from 'src/theme/foundations/colors';
|
|
4
|
+
|
|
5
|
+
export interface NavigationMenuItemProps {
|
|
6
|
+
leftIcon: JSX.Element;
|
|
7
|
+
label: string;
|
|
8
|
+
href?: string;
|
|
9
|
+
isSelected: boolean;
|
|
10
|
+
onClick: () => void;
|
|
11
|
+
rightIcon?: JSX.Element;
|
|
12
|
+
isExternal?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* A functional React component utilized to render the `NavigationMenuItem` component
|
|
17
|
+
*/
|
|
18
|
+
export const NavigationMenuItem: React.FC<NavigationMenuItemProps> = ({
|
|
19
|
+
label,
|
|
20
|
+
leftIcon,
|
|
21
|
+
href,
|
|
22
|
+
rightIcon,
|
|
23
|
+
isExternal,
|
|
24
|
+
isSelected,
|
|
25
|
+
onClick,
|
|
26
|
+
}) => {
|
|
27
|
+
let additionalProps = {};
|
|
28
|
+
|
|
29
|
+
if (isExternal) {
|
|
30
|
+
additionalProps = {
|
|
31
|
+
...additionalProps,
|
|
32
|
+
referrerPolicy: 'no-referrer',
|
|
33
|
+
target: '_blank',
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<Link
|
|
39
|
+
href={href}
|
|
40
|
+
{...additionalProps}
|
|
41
|
+
onClick={onClick}
|
|
42
|
+
display="flex"
|
|
43
|
+
alignItems="center"
|
|
44
|
+
justifyContent="space-between"
|
|
45
|
+
py="5px"
|
|
46
|
+
px="4px"
|
|
47
|
+
height="26px"
|
|
48
|
+
width="204px"
|
|
49
|
+
color={colors.label.primary}
|
|
50
|
+
bg={isSelected ? colors.fill.light.tertiary : 'transparent'}
|
|
51
|
+
borderRadius="4px"
|
|
52
|
+
fontSize="13px"
|
|
53
|
+
textDecoration="none"
|
|
54
|
+
_hover={{ textDecoration: 'none' }}
|
|
55
|
+
>
|
|
56
|
+
<Flex alignItems="center">
|
|
57
|
+
<Box mr="4px">{leftIcon}</Box> {label}
|
|
58
|
+
</Flex>
|
|
59
|
+
{rightIcon}
|
|
60
|
+
</Link>
|
|
61
|
+
);
|
|
62
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React, { useMemo, useState } from 'react';
|
|
2
|
+
import { Box } from '@chakra-ui/react';
|
|
3
|
+
import { NavigationMenuHeader } from './components/header';
|
|
4
|
+
import {
|
|
5
|
+
NavigationMenuItem,
|
|
6
|
+
NavigationMenuItemProps,
|
|
7
|
+
} from './components/items';
|
|
8
|
+
|
|
9
|
+
export interface NavigationMenuProps {
|
|
10
|
+
groupedMenuItems: {
|
|
11
|
+
groupSortValue: number;
|
|
12
|
+
groupHeader?: string;
|
|
13
|
+
groupMenuItems: NavigationMenuItemProps[];
|
|
14
|
+
}[];
|
|
15
|
+
defaultSelectedMenuItem?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A functional React component utilized to render the `NavigationMenu` component
|
|
20
|
+
*/
|
|
21
|
+
export const NavigationMenu: React.FC<NavigationMenuProps> = ({
|
|
22
|
+
groupedMenuItems,
|
|
23
|
+
defaultSelectedMenuItem = '',
|
|
24
|
+
}) => {
|
|
25
|
+
const sortedGroupedMenuItems = useMemo(
|
|
26
|
+
() => groupedMenuItems?.sort((a, b) => a.groupSortValue - b.groupSortValue),
|
|
27
|
+
[groupedMenuItems]
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
const [selectedMenuItem, setSelectedMenuItem] = useState<string>(
|
|
31
|
+
defaultSelectedMenuItem
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<Box
|
|
36
|
+
bg="#7474800D"
|
|
37
|
+
py="32px"
|
|
38
|
+
px="8px"
|
|
39
|
+
height="100%"
|
|
40
|
+
overflowY="auto"
|
|
41
|
+
width="220px"
|
|
42
|
+
>
|
|
43
|
+
{sortedGroupedMenuItems?.map(menuItemGroup => (
|
|
44
|
+
<Box>
|
|
45
|
+
{menuItemGroup.groupHeader && (
|
|
46
|
+
<NavigationMenuHeader label={menuItemGroup.groupHeader} />
|
|
47
|
+
)}
|
|
48
|
+
{menuItemGroup.groupMenuItems.map(item => (
|
|
49
|
+
<NavigationMenuItem
|
|
50
|
+
{...item}
|
|
51
|
+
isSelected={selectedMenuItem === item.label}
|
|
52
|
+
onClick={() => setSelectedMenuItem(item.label)}
|
|
53
|
+
/>
|
|
54
|
+
))}
|
|
55
|
+
</Box>
|
|
56
|
+
))}
|
|
57
|
+
</Box>
|
|
58
|
+
);
|
|
59
|
+
};
|
package/src/index.tsx
CHANGED
|
@@ -24,6 +24,9 @@ export * from './components/form';
|
|
|
24
24
|
// Form Section
|
|
25
25
|
export * from './components/form/section';
|
|
26
26
|
|
|
27
|
+
// Icons
|
|
28
|
+
export * from './components/icons';
|
|
29
|
+
|
|
27
30
|
// Input
|
|
28
31
|
export * from './components/input';
|
|
29
32
|
|
|
@@ -33,6 +36,9 @@ export * from './components/layout';
|
|
|
33
36
|
// Loading
|
|
34
37
|
export * from './components/loading';
|
|
35
38
|
|
|
39
|
+
// Navigation Menu
|
|
40
|
+
export * from './components/navigation';
|
|
41
|
+
|
|
36
42
|
// Table
|
|
37
43
|
export * from './components/table';
|
|
38
44
|
|