@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.
Files changed (38) hide show
  1. package/dist/cjs/sidemenu/consts.d.ts +2 -1
  2. package/dist/cjs/sidemenu/consts.d.ts.map +1 -1
  3. package/dist/cjs/sidemenu/consts.js +3 -2
  4. package/dist/cjs/sidemenu/consts.js.map +1 -1
  5. package/dist/cjs/sidemenu/sidemenu.d.ts.map +1 -1
  6. package/dist/cjs/sidemenu/sidemenu.js +4 -4
  7. package/dist/cjs/sidemenu/sidemenu.js.map +1 -1
  8. package/dist/cjs/sidemenu/sidemenu.types.d.ts +3 -1
  9. package/dist/cjs/sidemenu/sidemenu.types.d.ts.map +1 -1
  10. package/dist/cjs/sidemenu/sidemenuItem.d.ts.map +1 -1
  11. package/dist/cjs/sidemenu/sidemenuItem.js +6 -4
  12. package/dist/cjs/sidemenu/sidemenuItem.js.map +1 -1
  13. package/dist/cjs/sidemenu/sidemenuTop.d.ts.map +1 -1
  14. package/dist/cjs/sidemenu/sidemenuTop.js +1 -1
  15. package/dist/cjs/sidemenu/sidemenuTop.js.map +1 -1
  16. package/dist/esm/sidemenu/consts.d.ts +2 -1
  17. package/dist/esm/sidemenu/consts.d.ts.map +1 -1
  18. package/dist/esm/sidemenu/consts.js +2 -1
  19. package/dist/esm/sidemenu/consts.js.map +1 -1
  20. package/dist/esm/sidemenu/sidemenu.d.ts.map +1 -1
  21. package/dist/esm/sidemenu/sidemenu.js +5 -5
  22. package/dist/esm/sidemenu/sidemenu.js.map +1 -1
  23. package/dist/esm/sidemenu/sidemenu.types.d.ts +3 -1
  24. package/dist/esm/sidemenu/sidemenu.types.d.ts.map +1 -1
  25. package/dist/esm/sidemenu/sidemenuItem.d.ts.map +1 -1
  26. package/dist/esm/sidemenu/sidemenuItem.js +6 -4
  27. package/dist/esm/sidemenu/sidemenuItem.js.map +1 -1
  28. package/dist/esm/sidemenu/sidemenuTop.d.ts.map +1 -1
  29. package/dist/esm/sidemenu/sidemenuTop.js +1 -1
  30. package/dist/esm/sidemenu/sidemenuTop.js.map +1 -1
  31. package/dist/tsconfig.legacy.tsbuildinfo +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +1 -1
  34. package/src/sidemenu/consts.ts +3 -1
  35. package/src/sidemenu/sidemenu.tsx +12 -4
  36. package/src/sidemenu/sidemenu.types.ts +3 -1
  37. package/src/sidemenu/sidemenuItem.tsx +14 -9
  38. 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.28.1-beta.0",
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",
@@ -1 +1,3 @@
1
- export const expandedWidth = 64
1
+ export const collapsedWidth = 64
2
+
3
+ export const expandedWidth = 280
@@ -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 = 280,
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 : expandedWidth
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 flexDirection="column" flexGrow={1} overflowX="hidden" overflowY="auto" w="100%">
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: IconProp
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 React, { MouseEvent, useEffect } from 'react'
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 innerContent = (
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
- p: 0,
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, 0]} placement="right-start" trigger="mouseenter">
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
- {innerContent}
86
+ <InnerContent />
82
87
  </Box>
83
88
  </Popover.Trigger>
84
- <Popover.Content shadow="none">
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
- {innerContent}
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 && isExpandedHorizontally && rightSlot}
18
+ {!!rightSlot && rightSlot}
21
19
  </Box>
22
20
  )
23
21
  }