@veracity/vui 2.28.1-beta.0 → 2.29.0-beta.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/dist/cjs/sidemenu/consts.d.ts +2 -1
- package/dist/cjs/sidemenu/consts.d.ts.map +1 -1
- package/dist/cjs/sidemenu/consts.js +3 -2
- package/dist/cjs/sidemenu/consts.js.map +1 -1
- package/dist/cjs/sidemenu/sidemenu.d.ts.map +1 -1
- package/dist/cjs/sidemenu/sidemenu.js +4 -4
- package/dist/cjs/sidemenu/sidemenu.js.map +1 -1
- package/dist/cjs/sidemenu/sidemenu.types.d.ts +3 -1
- package/dist/cjs/sidemenu/sidemenu.types.d.ts.map +1 -1
- package/dist/cjs/sidemenu/sidemenuItem.d.ts.map +1 -1
- package/dist/cjs/sidemenu/sidemenuItem.js +6 -4
- package/dist/cjs/sidemenu/sidemenuItem.js.map +1 -1
- package/dist/cjs/sidemenu/sidemenuTop.d.ts.map +1 -1
- package/dist/cjs/sidemenu/sidemenuTop.js +1 -1
- package/dist/cjs/sidemenu/sidemenuTop.js.map +1 -1
- package/dist/esm/sidemenu/consts.d.ts +2 -1
- package/dist/esm/sidemenu/consts.d.ts.map +1 -1
- package/dist/esm/sidemenu/consts.js +2 -1
- package/dist/esm/sidemenu/consts.js.map +1 -1
- package/dist/esm/sidemenu/sidemenu.d.ts.map +1 -1
- package/dist/esm/sidemenu/sidemenu.js +5 -5
- package/dist/esm/sidemenu/sidemenu.js.map +1 -1
- package/dist/esm/sidemenu/sidemenu.types.d.ts +3 -1
- package/dist/esm/sidemenu/sidemenu.types.d.ts.map +1 -1
- package/dist/esm/sidemenu/sidemenuItem.d.ts.map +1 -1
- package/dist/esm/sidemenu/sidemenuItem.js +6 -4
- package/dist/esm/sidemenu/sidemenuItem.js.map +1 -1
- package/dist/esm/sidemenu/sidemenuTop.d.ts.map +1 -1
- package/dist/esm/sidemenu/sidemenuTop.js +1 -1
- package/dist/esm/sidemenu/sidemenuTop.js.map +1 -1
- package/dist/tsconfig.legacy.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/sidemenu/consts.ts +3 -1
- package/src/sidemenu/sidemenu.tsx +12 -4
- package/src/sidemenu/sidemenu.types.ts +3 -1
- package/src/sidemenu/sidemenuItem.tsx +14 -9
- package/src/sidemenu/sidemenuTop.tsx +1 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veracity/vui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.29.0-beta.1",
|
|
4
4
|
"description": "Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
package/src/sidemenu/consts.ts
CHANGED
|
@@ -5,7 +5,7 @@ import Button from '../button'
|
|
|
5
5
|
import { useStyleConfig, vui, VuiComponent } from '../core'
|
|
6
6
|
import Icon from '../icon'
|
|
7
7
|
import { cs, filterUndefined, isActivePath } from '../utils'
|
|
8
|
-
import { expandedWidth } from './consts'
|
|
8
|
+
import { collapsedWidth, expandedWidth } from './consts'
|
|
9
9
|
import { SidemenuProvider } from './context'
|
|
10
10
|
import { SidemenuItemProps, SidemenuProps } from './sidemenu.types'
|
|
11
11
|
import SidemenuItem from './sidemenuItem'
|
|
@@ -21,7 +21,7 @@ export const Sidemenu = vui<'div', SidemenuProps>((props, ref) => {
|
|
|
21
21
|
isSticky = false,
|
|
22
22
|
size,
|
|
23
23
|
variant,
|
|
24
|
-
width =
|
|
24
|
+
width = expandedWidth,
|
|
25
25
|
onNavigate,
|
|
26
26
|
...rest
|
|
27
27
|
} = props
|
|
@@ -42,7 +42,7 @@ export const Sidemenu = vui<'div', SidemenuProps>((props, ref) => {
|
|
|
42
42
|
|
|
43
43
|
const onToggle = () => setIsExpandedHorizontally(!isExpandedHorizontally)
|
|
44
44
|
|
|
45
|
-
const w = isExpandedHorizontally ? width :
|
|
45
|
+
const w = isExpandedHorizontally ? width : collapsedWidth
|
|
46
46
|
const icon = `falArrow${isExpandedHorizontally ? 'Left' : 'Right'}`
|
|
47
47
|
const justifyContent = isExpandedHorizontally ? 'flex-end' : 'center'
|
|
48
48
|
|
|
@@ -67,11 +67,19 @@ export const Sidemenu = vui<'div', SidemenuProps>((props, ref) => {
|
|
|
67
67
|
{...styles.container}
|
|
68
68
|
{...rest}
|
|
69
69
|
>
|
|
70
|
-
<Box
|
|
70
|
+
<Box
|
|
71
|
+
flexDirection="column"
|
|
72
|
+
flexGrow={1}
|
|
73
|
+
justifyContent="flex-start"
|
|
74
|
+
overflowX="hidden"
|
|
75
|
+
overflowY="auto"
|
|
76
|
+
w={expandedWidth - 14}
|
|
77
|
+
>
|
|
71
78
|
{items
|
|
72
79
|
? items?.map?.((item: SidemenuItemProps, key: number) => (
|
|
73
80
|
<SidemenuItem
|
|
74
81
|
isActive={isActivePath(item?.path)}
|
|
82
|
+
isTitleVisible={isExpandedHorizontally}
|
|
75
83
|
key={key}
|
|
76
84
|
{...item}
|
|
77
85
|
onClick={() => onItemClick(item)}
|
|
@@ -26,13 +26,15 @@ export type SidemenuItemProps = BoxProps & {
|
|
|
26
26
|
/** Children */
|
|
27
27
|
children?: ReactNode
|
|
28
28
|
/** Custom class name */
|
|
29
|
-
icon
|
|
29
|
+
icon?: IconProp
|
|
30
30
|
/** Icon size @default md */
|
|
31
31
|
iconSize?: 'md' | 'sm'
|
|
32
32
|
/** Whether the item is active */
|
|
33
33
|
isActive?: boolean
|
|
34
34
|
/** Whether the item is expanded vertically */
|
|
35
35
|
isExpanded?: boolean
|
|
36
|
+
/** Whether the title is visible, should be hidden if the parent is collapsed @default true*/
|
|
37
|
+
isTitleVisible?: boolean
|
|
36
38
|
/** On click callback */
|
|
37
39
|
onClick?: () => void
|
|
38
40
|
/** On collapse callback @default true */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { MouseEvent, useEffect } from 'react'
|
|
2
2
|
|
|
3
3
|
import Box from '../box'
|
|
4
4
|
import Button from '../button'
|
|
@@ -7,6 +7,7 @@ import Icon from '../icon'
|
|
|
7
7
|
import { Popover } from '../popover'
|
|
8
8
|
import T from '../t'
|
|
9
9
|
import { cs } from '../utils'
|
|
10
|
+
import { collapsedWidth, expandedWidth } from './consts'
|
|
10
11
|
import { SidemenuItemProps } from './sidemenu.types'
|
|
11
12
|
import useSidemenuItem from './useSidemenuItem'
|
|
12
13
|
|
|
@@ -19,6 +20,9 @@ export const SidemenuItem = vui<'button', SidemenuItemProps>((props, ref) => {
|
|
|
19
20
|
iconSize = 'md',
|
|
20
21
|
isActive,
|
|
21
22
|
isExpanded = true,
|
|
23
|
+
isTitleVisible = true,
|
|
24
|
+
pl = 0,
|
|
25
|
+
py = 0,
|
|
22
26
|
onClick,
|
|
23
27
|
onCollapse,
|
|
24
28
|
onExpand,
|
|
@@ -36,10 +40,10 @@ export const SidemenuItem = vui<'button', SidemenuItemProps>((props, ref) => {
|
|
|
36
40
|
|
|
37
41
|
const hasChildrenExpanded = !!children && isExpandedHorizontally
|
|
38
42
|
|
|
39
|
-
const
|
|
43
|
+
const InnerContent = () => (
|
|
40
44
|
<Box centerV px={2} py={1} w="100%" whiteSpace="pre">
|
|
41
|
-
<Icon ml={iconSize === 'sm' ? '4px' : 0} name={icon} size={iconSize} />
|
|
42
|
-
<T isTruncated ml={2}>
|
|
45
|
+
{icon && <Icon ml={iconSize === 'sm' ? '4px' : 0} name={icon} size={iconSize} />}
|
|
46
|
+
<T isTruncated ml={icon ? 2 : 0} visibility={isTitleVisible ? 'visible' : 'hidden'}>
|
|
43
47
|
{title}
|
|
44
48
|
</T>
|
|
45
49
|
</Box>
|
|
@@ -62,7 +66,8 @@ export const SidemenuItem = vui<'button', SidemenuItemProps>((props, ref) => {
|
|
|
62
66
|
h: 'auto',
|
|
63
67
|
justifyContent: 'space-between',
|
|
64
68
|
onClick: () => onClick?.(),
|
|
65
|
-
|
|
69
|
+
pl,
|
|
70
|
+
py,
|
|
66
71
|
size: 'md',
|
|
67
72
|
variant: isDark ? 'tertiaryLight' : 'tertiaryDark',
|
|
68
73
|
w: '100%',
|
|
@@ -75,13 +80,13 @@ export const SidemenuItem = vui<'button', SidemenuItemProps>((props, ref) => {
|
|
|
75
80
|
return (
|
|
76
81
|
<Box flexDirection="column" ref={ref} w="100%">
|
|
77
82
|
{!hasChildrenExpanded && children ? (
|
|
78
|
-
<Popover offset={[0,
|
|
83
|
+
<Popover offset={[0, -expandedWidth + collapsedWidth + 9]} placement="right-start" trigger="mouseenter">
|
|
79
84
|
<Popover.Trigger as={Box} className={cs('vui-sidemenu-item-popover', className)}>
|
|
80
85
|
<Box {...buttonStyles} borderLeft={`3px solid ${isDark ? 'digiGreen.main' : 'seaBlue.main'}`}>
|
|
81
|
-
|
|
86
|
+
<InnerContent />
|
|
82
87
|
</Box>
|
|
83
88
|
</Popover.Trigger>
|
|
84
|
-
<Popover.Content
|
|
89
|
+
<Popover.Content elevation="none">
|
|
85
90
|
<Box flexDirection="column" justifyContent="start" w="100%">
|
|
86
91
|
{children}
|
|
87
92
|
</Box>
|
|
@@ -89,7 +94,7 @@ export const SidemenuItem = vui<'button', SidemenuItemProps>((props, ref) => {
|
|
|
89
94
|
</Popover>
|
|
90
95
|
) : (
|
|
91
96
|
<Button className={cs('vui-sidemenu-item', className)} {...buttonStyles}>
|
|
92
|
-
|
|
97
|
+
<InnerContent />
|
|
93
98
|
{hasChildrenExpanded && (
|
|
94
99
|
<Button
|
|
95
100
|
aria-label={isExpandedVertically ? 'Collapse' : 'Expand'}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
1
|
import { Box } from '../box'
|
|
4
2
|
import { omitThemingProps, useStyleConfig } from '../core'
|
|
5
3
|
import { cs } from '../utils'
|
|
@@ -17,7 +15,7 @@ export const SidemenuTop = (props: SidemenuTopProps) => {
|
|
|
17
15
|
return (
|
|
18
16
|
<Box className={cs('vui-sidemenu-top', className)} mb={1} w="100%" {...styles.sidemenuTop} {...rest}>
|
|
19
17
|
{!!leftSlot && leftSlot}
|
|
20
|
-
{!!rightSlot &&
|
|
18
|
+
{!!rightSlot && rightSlot}
|
|
21
19
|
</Box>
|
|
22
20
|
)
|
|
23
21
|
}
|