@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.
Files changed (115) hide show
  1. package/dist/0ec7ec81c9033f9a.svg +9 -0
  2. package/dist/35c8475f2bf403f9.svg +9 -0
  3. package/dist/components/icons/chevron/down/index.d.ts +8 -0
  4. package/dist/components/icons/chevron/right/index.d.ts +8 -0
  5. package/dist/components/icons/clock/index.d.ts +8 -0
  6. package/dist/components/icons/close/index.d.ts +9 -0
  7. package/dist/components/icons/dropdown/index.d.ts +8 -0
  8. package/dist/components/icons/error/index.d.ts +8 -0
  9. package/dist/components/icons/file/fill/index.d.ts +8 -0
  10. package/dist/components/icons/file/outline/index.d.ts +8 -0
  11. package/dist/components/icons/folder/add/fill/index.d.ts +8 -0
  12. package/dist/components/icons/folder/add/outline/index.d.ts +8 -0
  13. package/dist/components/icons/folder/fill/index.d.ts +8 -0
  14. package/dist/components/icons/folder/outline/index.d.ts +8 -0
  15. package/dist/components/icons/google/drive/index.d.ts +8 -0
  16. package/dist/components/icons/google/index.d.ts +8 -0
  17. package/dist/components/icons/group/index.d.ts +8 -0
  18. package/dist/components/icons/home/index.d.ts +8 -0
  19. package/dist/components/icons/image/index.d.ts +8 -0
  20. package/dist/components/icons/index.d.ts +28 -0
  21. package/dist/components/icons/link/index.d.ts +8 -0
  22. package/dist/components/icons/menu/index.d.ts +8 -0
  23. package/dist/components/icons/microsoft/index.d.ts +8 -0
  24. package/dist/components/icons/microsoft/onedrive/index.d.ts +8 -0
  25. package/dist/components/icons/neutral/index.d.ts +8 -0
  26. package/dist/components/icons/positive/index.d.ts +8 -0
  27. package/dist/components/icons/search/index.d.ts +8 -0
  28. package/dist/components/icons/settings/index.d.ts +8 -0
  29. package/dist/components/icons/table/fill/index.d.ts +8 -0
  30. package/dist/components/icons/table/outline/index.d.ts +8 -0
  31. package/dist/components/icons/trash/index.d.ts +8 -0
  32. package/dist/components/icons/warning/index.d.ts +8 -0
  33. package/dist/components/navigation/NavigationMenu.stories.d.ts +5 -0
  34. package/dist/components/navigation/components/header/index.d.ts +8 -0
  35. package/dist/components/navigation/components/items/index.d.ts +14 -0
  36. package/dist/components/navigation/index.d.ts +14 -0
  37. package/dist/index.d.ts +2 -0
  38. package/dist/ui-core.cjs.development.js +980 -89
  39. package/dist/ui-core.cjs.development.js.map +1 -1
  40. package/dist/ui-core.cjs.production.min.js +1 -1
  41. package/dist/ui-core.cjs.production.min.js.map +1 -1
  42. package/dist/ui-core.esm.js +955 -92
  43. package/dist/ui-core.esm.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/components/banner/index.tsx +9 -9
  46. package/src/components/button/google/index.tsx +7 -2
  47. package/src/components/button/microsoft/index.tsx +7 -2
  48. package/src/components/icons/chevron/down/chevron-down.svg +3 -0
  49. package/src/components/icons/chevron/down/index.tsx +14 -0
  50. package/src/components/icons/chevron/right/chevron-right.svg +3 -0
  51. package/src/components/icons/chevron/right/index.tsx +13 -0
  52. package/src/components/icons/clock/clock.svg +3 -0
  53. package/src/components/icons/clock/index.tsx +13 -0
  54. package/src/components/{input/components/token/assets/svg → icons/close}/close.svg +0 -0
  55. package/src/components/icons/close/index.tsx +14 -0
  56. package/src/components/{input/StackedSelect/assets/svg/subtract.svg → icons/dropdown/dropdown.svg} +0 -0
  57. package/src/components/icons/dropdown/index.tsx +13 -0
  58. package/src/components/{banner/assets/svg → icons/error}/error.svg +0 -0
  59. package/src/components/icons/error/index.tsx +13 -0
  60. package/src/components/icons/file/fill/file-fill.svg +4 -0
  61. package/src/components/icons/file/fill/index.tsx +13 -0
  62. package/src/components/icons/file/outline/file-outline.svg +3 -0
  63. package/src/components/icons/file/outline/index.tsx +13 -0
  64. package/src/components/icons/folder/add/fill/folder-add-fill.svg +3 -0
  65. package/src/components/icons/folder/add/fill/index.tsx +13 -0
  66. package/src/components/icons/folder/add/outline/folder-add-outline.svg +3 -0
  67. package/src/components/icons/folder/add/outline/index.tsx +15 -0
  68. package/src/components/icons/folder/fill/folder-fill.svg +4 -0
  69. package/src/components/icons/folder/fill/index.tsx +13 -0
  70. package/src/components/icons/folder/outline/folder-outline.svg +3 -0
  71. package/src/components/icons/folder/outline/index.tsx +13 -0
  72. package/src/components/icons/google/drive/google-drive.svg +9 -0
  73. package/src/components/icons/google/drive/index.tsx +13 -0
  74. package/src/components/{button/google/assets/GoogleLogo.svg → icons/google/google.svg} +0 -0
  75. package/src/components/icons/google/index.tsx +13 -0
  76. package/src/components/icons/group/group.svg +3 -0
  77. package/src/components/icons/group/index.tsx +13 -0
  78. package/src/components/icons/home/home.svg +3 -0
  79. package/src/components/icons/home/index.tsx +13 -0
  80. package/src/components/icons/image/image.svg +3 -0
  81. package/src/components/icons/image/index.tsx +13 -0
  82. package/src/components/icons/index.tsx +57 -0
  83. package/src/components/icons/link/index.tsx +13 -0
  84. package/src/components/icons/link/link.svg +4 -0
  85. package/src/components/icons/menu/index.tsx +13 -0
  86. package/src/components/icons/menu/menu.svg +3 -0
  87. package/src/components/icons/microsoft/index.tsx +13 -0
  88. package/src/components/{button/microsoft/assets/MicrosoftLogo.svg → icons/microsoft/microsoft.svg} +0 -0
  89. package/src/components/icons/microsoft/onedrive/index.tsx +15 -0
  90. package/src/components/icons/microsoft/onedrive/microsoft-onedrive.svg +9 -0
  91. package/src/components/icons/neutral/index.tsx +13 -0
  92. package/src/components/{banner/assets/svg → icons/neutral}/neutral.svg +0 -0
  93. package/src/components/icons/positive/index.tsx +13 -0
  94. package/src/components/{banner/assets/svg → icons/positive}/positive.svg +0 -0
  95. package/src/components/icons/search/index.tsx +13 -0
  96. package/src/components/icons/search/search.svg +3 -0
  97. package/src/components/icons/settings/index.tsx +14 -0
  98. package/src/components/icons/settings/settings.svg +6 -0
  99. package/src/components/icons/table/fill/index.tsx +13 -0
  100. package/src/components/icons/table/fill/table-fill.svg +3 -0
  101. package/src/components/icons/table/outline/index.tsx +13 -0
  102. package/src/components/icons/table/outline/table-outline.svg +3 -0
  103. package/src/components/icons/trash/index.tsx +13 -0
  104. package/src/components/icons/trash/trash.svg +3 -0
  105. package/src/components/icons/warning/index.tsx +13 -0
  106. package/src/components/{banner/assets/svg → icons/warning}/warning.svg +0 -0
  107. package/src/components/input/Input.stories.tsx +0 -1
  108. package/src/components/input/StackedMultiSelect/index.tsx +3 -3
  109. package/src/components/input/StackedSelect/index.tsx +3 -9
  110. package/src/components/input/components/token/index.tsx +2 -7
  111. package/src/components/navigation/NavigationMenu.stories.tsx +85 -0
  112. package/src/components/navigation/components/header/index.tsx +26 -0
  113. package/src/components/navigation/components/items/index.tsx +62 -0
  114. package/src/components/navigation/index.tsx +59 -0
  115. 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