@veracity/vui 2.31.0 → 2.33.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 (219) hide show
  1. package/dist/cjs/button/button.d.ts.map +1 -1
  2. package/dist/cjs/button/button.js +15 -0
  3. package/dist/cjs/button/button.js.map +1 -1
  4. package/dist/cjs/calendar/calendar.styles.js +5 -5
  5. package/dist/cjs/calendar/calendar.styles.js.map +1 -1
  6. package/dist/cjs/calendar/components/calendarHeader.js +1 -1
  7. package/dist/cjs/calendar/components/calendarHeader.js.map +1 -1
  8. package/dist/cjs/calendar/components/dayPicker.d.ts.map +1 -1
  9. package/dist/cjs/calendar/components/dayPicker.js +6 -2
  10. package/dist/cjs/calendar/components/dayPicker.js.map +1 -1
  11. package/dist/cjs/calendar/components/monthPicker.d.ts.map +1 -1
  12. package/dist/cjs/calendar/components/monthPicker.js +1 -1
  13. package/dist/cjs/calendar/components/monthPicker.js.map +1 -1
  14. package/dist/cjs/calendar/components/timeUnitHeader.d.ts.map +1 -1
  15. package/dist/cjs/calendar/components/timeUnitHeader.js +1 -1
  16. package/dist/cjs/calendar/components/timeUnitHeader.js.map +1 -1
  17. package/dist/cjs/calendar/components/yearPicker.d.ts.map +1 -1
  18. package/dist/cjs/calendar/components/yearPicker.js +1 -1
  19. package/dist/cjs/calendar/components/yearPicker.js.map +1 -1
  20. package/dist/cjs/calendar/hooks/useCalendar.d.ts +1 -1
  21. package/dist/cjs/calendar/hooks/useCalendar.d.ts.map +1 -1
  22. package/dist/cjs/calendar/hooks/useCalendar.js +22 -16
  23. package/dist/cjs/calendar/hooks/useCalendar.js.map +1 -1
  24. package/dist/cjs/datePicker/datePicker.js +1 -1
  25. package/dist/cjs/datePicker/datePicker.js.map +1 -1
  26. package/dist/cjs/footer/footer.d.ts.map +1 -1
  27. package/dist/cjs/footer/footer.js +1 -1
  28. package/dist/cjs/footer/footer.js.map +1 -1
  29. package/dist/cjs/header/loggedInHeader.js +1 -1
  30. package/dist/cjs/header/loggedInHeader.js.map +1 -1
  31. package/dist/cjs/header/loggedOutHeader.js +1 -1
  32. package/dist/cjs/header/loggedOutHeader.js.map +1 -1
  33. package/dist/cjs/icons/baseIcons/brand/brandXTwitter.d.ts +4 -0
  34. package/dist/cjs/icons/baseIcons/brand/brandXTwitter.d.ts.map +1 -0
  35. package/dist/cjs/icons/baseIcons/brand/brandXTwitter.js +7 -0
  36. package/dist/cjs/icons/baseIcons/brand/brandXTwitter.js.map +1 -0
  37. package/dist/cjs/icons/baseIcons/brand/brandXTwitterSolid.d.ts +4 -0
  38. package/dist/cjs/icons/baseIcons/brand/brandXTwitterSolid.d.ts.map +1 -0
  39. package/dist/cjs/icons/baseIcons/brand/brandXTwitterSolid.js +7 -0
  40. package/dist/cjs/icons/baseIcons/brand/brandXTwitterSolid.js.map +1 -0
  41. package/dist/cjs/icons/baseIcons/icons.d.ts +3 -2
  42. package/dist/cjs/icons/baseIcons/icons.d.ts.map +1 -1
  43. package/dist/cjs/icons/baseIcons/icons.js +12 -10
  44. package/dist/cjs/icons/baseIcons/icons.js.map +1 -1
  45. package/dist/cjs/icons/baseIcons/types.d.ts +2 -2
  46. package/dist/cjs/icons/baseIcons/types.d.ts.map +1 -1
  47. package/dist/cjs/icons/baseIcons/ui/uiShield.js +1 -1
  48. package/dist/cjs/icons/baseIcons/ui/uiShield.js.map +1 -1
  49. package/dist/cjs/icons/baseIcons/ui/uiShieldSolid.d.ts +4 -0
  50. package/dist/cjs/icons/baseIcons/ui/uiShieldSolid.d.ts.map +1 -0
  51. package/dist/cjs/icons/baseIcons/ui/uiShieldSolid.js +8 -0
  52. package/dist/cjs/icons/baseIcons/ui/uiShieldSolid.js.map +1 -0
  53. package/dist/cjs/input/consts.d.ts +3 -3
  54. package/dist/cjs/input/consts.js +5 -5
  55. package/dist/cjs/input/consts.js.map +1 -1
  56. package/dist/cjs/input/input.d.ts.map +1 -1
  57. package/dist/cjs/input/input.js +6 -0
  58. package/dist/cjs/input/input.js.map +1 -1
  59. package/dist/cjs/input/inputIcon.d.ts.map +1 -1
  60. package/dist/cjs/input/inputIcon.js +1 -3
  61. package/dist/cjs/input/inputIcon.js.map +1 -1
  62. package/dist/cjs/range/range.js +1 -1
  63. package/dist/cjs/range/range.js.map +1 -1
  64. package/dist/cjs/select/useSelect.js +1 -1
  65. package/dist/cjs/select/useSelect.js.map +1 -1
  66. package/dist/cjs/sidemenuV2/SidemenuItemContent.d.ts +14 -0
  67. package/dist/cjs/sidemenuV2/SidemenuItemContent.d.ts.map +1 -0
  68. package/dist/cjs/sidemenuV2/SidemenuItemContent.js +22 -0
  69. package/dist/cjs/sidemenuV2/SidemenuItemContent.js.map +1 -0
  70. package/dist/cjs/sidemenuV2/sidemenuItemV2.d.ts.map +1 -1
  71. package/dist/cjs/sidemenuV2/sidemenuItemV2.js +20 -16
  72. package/dist/cjs/sidemenuV2/sidemenuItemV2.js.map +1 -1
  73. package/dist/cjs/sidemenuV2/sidemenuTopV2.d.ts +8 -0
  74. package/dist/cjs/sidemenuV2/sidemenuTopV2.d.ts.map +1 -0
  75. package/dist/cjs/sidemenuV2/sidemenuTopV2.js +31 -0
  76. package/dist/cjs/sidemenuV2/sidemenuTopV2.js.map +1 -0
  77. package/dist/cjs/sidemenuV2/sidemenuV2.d.ts +2 -0
  78. package/dist/cjs/sidemenuV2/sidemenuV2.d.ts.map +1 -1
  79. package/dist/cjs/sidemenuV2/sidemenuV2.js +9 -3
  80. package/dist/cjs/sidemenuV2/sidemenuV2.js.map +1 -1
  81. package/dist/cjs/sidemenuV2/sidemenuV2.types.d.ts +8 -0
  82. package/dist/cjs/sidemenuV2/sidemenuV2.types.d.ts.map +1 -1
  83. package/dist/cjs/table/tableSortIcon.d.ts.map +1 -1
  84. package/dist/cjs/table/tableSortIcon.js +15 -16
  85. package/dist/cjs/table/tableSortIcon.js.map +1 -1
  86. package/dist/cjs/tooltip/tooltip.d.ts.map +1 -1
  87. package/dist/cjs/tooltip/tooltip.js +2 -2
  88. package/dist/cjs/tooltip/tooltip.js.map +1 -1
  89. package/dist/cjs/tooltip/tooltip.types.d.ts +1 -0
  90. package/dist/cjs/tooltip/tooltip.types.d.ts.map +1 -1
  91. package/dist/cjs/tooltip/tooltipContent.js +1 -1
  92. package/dist/cjs/tooltip/tooltipContent.js.map +1 -1
  93. package/dist/esm/button/button.d.ts.map +1 -1
  94. package/dist/esm/button/button.js +15 -0
  95. package/dist/esm/button/button.js.map +1 -1
  96. package/dist/esm/calendar/calendar.styles.js +5 -5
  97. package/dist/esm/calendar/calendar.styles.js.map +1 -1
  98. package/dist/esm/calendar/components/calendarHeader.js +1 -1
  99. package/dist/esm/calendar/components/calendarHeader.js.map +1 -1
  100. package/dist/esm/calendar/components/dayPicker.d.ts.map +1 -1
  101. package/dist/esm/calendar/components/dayPicker.js +6 -2
  102. package/dist/esm/calendar/components/dayPicker.js.map +1 -1
  103. package/dist/esm/calendar/components/monthPicker.d.ts.map +1 -1
  104. package/dist/esm/calendar/components/monthPicker.js +1 -1
  105. package/dist/esm/calendar/components/monthPicker.js.map +1 -1
  106. package/dist/esm/calendar/components/timeUnitHeader.d.ts.map +1 -1
  107. package/dist/esm/calendar/components/timeUnitHeader.js +1 -1
  108. package/dist/esm/calendar/components/timeUnitHeader.js.map +1 -1
  109. package/dist/esm/calendar/components/yearPicker.d.ts.map +1 -1
  110. package/dist/esm/calendar/components/yearPicker.js +1 -1
  111. package/dist/esm/calendar/components/yearPicker.js.map +1 -1
  112. package/dist/esm/calendar/hooks/useCalendar.d.ts +1 -1
  113. package/dist/esm/calendar/hooks/useCalendar.d.ts.map +1 -1
  114. package/dist/esm/calendar/hooks/useCalendar.js +22 -16
  115. package/dist/esm/calendar/hooks/useCalendar.js.map +1 -1
  116. package/dist/esm/datePicker/datePicker.js +1 -1
  117. package/dist/esm/datePicker/datePicker.js.map +1 -1
  118. package/dist/esm/footer/footer.d.ts.map +1 -1
  119. package/dist/esm/footer/footer.js +1 -1
  120. package/dist/esm/footer/footer.js.map +1 -1
  121. package/dist/esm/header/loggedInHeader.js +1 -1
  122. package/dist/esm/header/loggedInHeader.js.map +1 -1
  123. package/dist/esm/header/loggedOutHeader.js +1 -1
  124. package/dist/esm/header/loggedOutHeader.js.map +1 -1
  125. package/dist/esm/icons/baseIcons/brand/brandXTwitter.d.ts +4 -0
  126. package/dist/esm/icons/baseIcons/brand/brandXTwitter.d.ts.map +1 -0
  127. package/dist/esm/icons/baseIcons/brand/brandXTwitter.js +5 -0
  128. package/dist/esm/icons/baseIcons/brand/brandXTwitter.js.map +1 -0
  129. package/dist/esm/icons/baseIcons/brand/brandXTwitterSolid.d.ts +4 -0
  130. package/dist/esm/icons/baseIcons/brand/brandXTwitterSolid.d.ts.map +1 -0
  131. package/dist/esm/icons/baseIcons/brand/brandXTwitterSolid.js +5 -0
  132. package/dist/esm/icons/baseIcons/brand/brandXTwitterSolid.js.map +1 -0
  133. package/dist/esm/icons/baseIcons/icons.d.ts +3 -2
  134. package/dist/esm/icons/baseIcons/icons.d.ts.map +1 -1
  135. package/dist/esm/icons/baseIcons/icons.js +5 -4
  136. package/dist/esm/icons/baseIcons/icons.js.map +1 -1
  137. package/dist/esm/icons/baseIcons/types.d.ts +2 -2
  138. package/dist/esm/icons/baseIcons/types.d.ts.map +1 -1
  139. package/dist/esm/icons/baseIcons/ui/uiShield.js +1 -1
  140. package/dist/esm/icons/baseIcons/ui/uiShield.js.map +1 -1
  141. package/dist/esm/icons/baseIcons/ui/uiShieldSolid.d.ts +4 -0
  142. package/dist/esm/icons/baseIcons/ui/uiShieldSolid.d.ts.map +1 -0
  143. package/dist/esm/icons/baseIcons/ui/uiShieldSolid.js +6 -0
  144. package/dist/esm/icons/baseIcons/ui/uiShieldSolid.js.map +1 -0
  145. package/dist/esm/input/consts.d.ts +3 -3
  146. package/dist/esm/input/consts.js +5 -5
  147. package/dist/esm/input/consts.js.map +1 -1
  148. package/dist/esm/input/input.d.ts.map +1 -1
  149. package/dist/esm/input/input.js +6 -0
  150. package/dist/esm/input/input.js.map +1 -1
  151. package/dist/esm/input/inputIcon.d.ts.map +1 -1
  152. package/dist/esm/input/inputIcon.js +1 -3
  153. package/dist/esm/input/inputIcon.js.map +1 -1
  154. package/dist/esm/range/range.js +1 -1
  155. package/dist/esm/range/range.js.map +1 -1
  156. package/dist/esm/select/useSelect.js +1 -1
  157. package/dist/esm/select/useSelect.js.map +1 -1
  158. package/dist/esm/sidemenuV2/SidemenuItemContent.d.ts +14 -0
  159. package/dist/esm/sidemenuV2/SidemenuItemContent.d.ts.map +1 -0
  160. package/dist/esm/sidemenuV2/SidemenuItemContent.js +16 -0
  161. package/dist/esm/sidemenuV2/SidemenuItemContent.js.map +1 -0
  162. package/dist/esm/sidemenuV2/sidemenuItemV2.d.ts.map +1 -1
  163. package/dist/esm/sidemenuV2/sidemenuItemV2.js +22 -17
  164. package/dist/esm/sidemenuV2/sidemenuItemV2.js.map +1 -1
  165. package/dist/esm/sidemenuV2/sidemenuTopV2.d.ts +8 -0
  166. package/dist/esm/sidemenuV2/sidemenuTopV2.d.ts.map +1 -0
  167. package/dist/esm/sidemenuV2/sidemenuTopV2.js +16 -0
  168. package/dist/esm/sidemenuV2/sidemenuTopV2.js.map +1 -0
  169. package/dist/esm/sidemenuV2/sidemenuV2.d.ts +2 -0
  170. package/dist/esm/sidemenuV2/sidemenuV2.d.ts.map +1 -1
  171. package/dist/esm/sidemenuV2/sidemenuV2.js +9 -3
  172. package/dist/esm/sidemenuV2/sidemenuV2.js.map +1 -1
  173. package/dist/esm/sidemenuV2/sidemenuV2.types.d.ts +8 -0
  174. package/dist/esm/sidemenuV2/sidemenuV2.types.d.ts.map +1 -1
  175. package/dist/esm/table/tableSortIcon.d.ts.map +1 -1
  176. package/dist/esm/table/tableSortIcon.js +15 -8
  177. package/dist/esm/table/tableSortIcon.js.map +1 -1
  178. package/dist/esm/tooltip/tooltip.d.ts.map +1 -1
  179. package/dist/esm/tooltip/tooltip.js +2 -2
  180. package/dist/esm/tooltip/tooltip.js.map +1 -1
  181. package/dist/esm/tooltip/tooltip.types.d.ts +1 -0
  182. package/dist/esm/tooltip/tooltip.types.d.ts.map +1 -1
  183. package/dist/esm/tooltip/tooltipContent.js +1 -1
  184. package/dist/esm/tooltip/tooltipContent.js.map +1 -1
  185. package/dist/tsconfig.legacy.tsbuildinfo +1 -1
  186. package/dist/tsconfig.tsbuildinfo +1 -1
  187. package/package.json +2 -2
  188. package/src/button/button.tsx +15 -0
  189. package/src/calendar/calendar.styles.ts +5 -5
  190. package/src/calendar/components/calendarHeader.tsx +1 -1
  191. package/src/calendar/components/dayPicker.tsx +6 -2
  192. package/src/calendar/components/monthPicker.tsx +2 -0
  193. package/src/calendar/components/timeUnitHeader.tsx +33 -5
  194. package/src/calendar/components/yearPicker.tsx +2 -0
  195. package/src/calendar/hooks/useCalendar.ts +18 -21
  196. package/src/datePicker/datePicker.tsx +2 -2
  197. package/src/footer/footer.tsx +8 -2
  198. package/src/header/loggedInHeader.tsx +1 -1
  199. package/src/header/loggedOutHeader.tsx +1 -1
  200. package/src/icons/baseIcons/brand/brandXTwitter.ts +6 -0
  201. package/src/icons/baseIcons/brand/brandXTwitterSolid.ts +6 -0
  202. package/src/icons/baseIcons/icons.ts +5 -4
  203. package/src/icons/baseIcons/types.ts +6 -5
  204. package/src/icons/baseIcons/ui/uiShield.ts +1 -1
  205. package/src/icons/baseIcons/ui/uiShieldSolid.ts +7 -0
  206. package/src/input/consts.ts +5 -5
  207. package/src/input/input.tsx +6 -0
  208. package/src/input/inputIcon.tsx +1 -4
  209. package/src/range/range.tsx +1 -1
  210. package/src/select/useSelect.tsx +1 -1
  211. package/src/sidemenuV2/SidemenuItemContent.tsx +75 -0
  212. package/src/sidemenuV2/sidemenuItemV2.tsx +128 -134
  213. package/src/sidemenuV2/sidemenuTopV2.tsx +28 -0
  214. package/src/sidemenuV2/sidemenuV2.tsx +30 -4
  215. package/src/sidemenuV2/sidemenuV2.types.ts +9 -0
  216. package/src/table/tableSortIcon.tsx +30 -16
  217. package/src/tooltip/tooltip.tsx +2 -1
  218. package/src/tooltip/tooltip.types.ts +1 -0
  219. package/src/tooltip/tooltipContent.tsx +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veracity/vui",
3
- "version": "2.31.0",
3
+ "version": "2.33.0",
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",
@@ -54,4 +54,4 @@
54
54
  "dist",
55
55
  "src"
56
56
  ]
57
- }
57
+ }
@@ -54,6 +54,21 @@ export const ButtonBase = styled.buttonBox<ButtonProps>`
54
54
  color: #91ffba;
55
55
  border-color-left: #91ffba;
56
56
  }
57
+ &.vui-button-variant-menuDark.vui-button-variant-menuDark:focus,
58
+ &.vui-button-variant-menuDark.vui-button-variant-menuDark:focus-visible,
59
+ &.vui-button-variant-menuLight.vui-button-variant-menuLight:focus,
60
+ &.vui-button-variant-menuLight.vui-button-variant-menuLight:focus-visible {
61
+ box-shadow: none;
62
+ outline: none;
63
+ border-bottom: 0 solid transparent;
64
+ }
65
+ &.vui-button-variant-menuDark.vui-button-variant-menuDark.focusAsBorder:focus,
66
+ &.vui-button-variant-menuDark.vui-button-variant-menuDark.focusAsBorder:focus-visible,
67
+ &.vui-button-variant-menuLight.vui-button-variant-menuLight.focusAsBorder:focus,
68
+ &.vui-button-variant-menuLight.vui-button-variant-menuLight.focusAsBorder:focus-visible {
69
+ transition: border-bottom 0s linear;
70
+ border-bottom: 3px solid #d3eef8;
71
+ }
57
72
  `
58
73
 
59
74
  const useButtonStyles = (mergedProps: any, variant: any) => {
@@ -53,11 +53,11 @@ export const CalendarItem = styled(Link)<ItemProps>`
53
53
  ${p => p.isHidden && isHidden}
54
54
  ${p => p.isToday && isToday}
55
55
  ${p => p.isDisabled && isDisabled}
56
- ${p => p.isSelected && isSelected}
57
- ${p => p.boundary && boundary}
58
- ${p => p.current && current}
56
+ ${p => p.isSelected && isSelected}
57
+ ${p => p.boundary && boundary}
58
+ ${p => p.current && current}
59
59
 
60
- &:hover {
60
+ &:hover {
61
61
  color: inherit;
62
62
  text-decoration: none;
63
63
 
@@ -70,7 +70,7 @@ export const CalendarItemsContainer = styled(Box)`
70
70
  column-gap: 0;
71
71
  display: grid;
72
72
  grid-template-columns: repeat(3, 1fr);
73
- grid-template-rows: repeat(4, 62px);
73
+ grid-template-rows: repeat(4, 48px);
74
74
  justify-items: center;
75
75
  row-gap: 0;
76
76
  `
@@ -32,7 +32,7 @@ export const CalendarHeader: FC<Props> = ({
32
32
  <Box className="vui-calendar-header-left">
33
33
  <TimeUnitHeader onSetTimeUnitMode={onSetTimeUnitMode} timeUnitMode={timeUnitMode} viewMonth={viewMonth} />
34
34
  </Box>
35
- <Box className="vui-calendar-header-right" flex="1" justify="flex-end">
35
+ <Box className="vui-calendar-header-right" flex="1" justifyContent="right">
36
36
  <IconButton
37
37
  aria-label="previous"
38
38
  className="icon"
@@ -20,11 +20,15 @@ const DayItem = styled(CalendarItem)<ItemProps>`
20
20
  color: ${th.color('seaBlue.main')};
21
21
  display: inline-flex;
22
22
  align-items: center;
23
+
24
+ & > .vui-t {
25
+ margin-bottom: -3px;
26
+ }
23
27
  `
24
28
 
25
29
  const DaysContainer = styled(CalendarItemsContainer)`
26
- grid-template-columns: repeat(7, 1fr);
27
- grid- template-rows: auto;
30
+ grid-template-columns: repeat(7, 1fr);
31
+ grid-template-rows: auto;
28
32
  `
29
33
 
30
34
  export const DayPicker = ({ calendar, onSelectDay }: DayPickerProps) => (
@@ -16,6 +16,8 @@ export const MonthPicker = ({ calendar, onSelectMonth }: MonthPickerProps) => (
16
16
  key={item.date.getTime()}
17
17
  onClick={(!item.isDisabled && onSelectMonth && onSelectMonth(item.date)) || undefined}
18
18
  {...item}
19
+ alignContent="center"
20
+ textAlign="center"
19
21
  >
20
22
  {monthsShort[item.date.getUTCMonth()]}
21
23
  </MonthItem>
@@ -21,24 +21,52 @@ type TimeUnitHeaderProps = {
21
21
  */
22
22
  export const TimeUnitHeader: FC<TimeUnitHeaderProps> = ({ onSetTimeUnitMode, timeUnitMode, viewMonth }) => {
23
23
  return (
24
- <Box center className={cs('vui-time-unit-header')} cursor="pointer" flex="1" justify="start">
24
+ <Box center className={cs('vui-time-unit-header')} cursor="pointer" flex="1" justifyItems="flex-start" gap="2px">
25
25
  {isDay(timeUnitMode) && (
26
26
  <>
27
- <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('month')} variant="tertiaryDark">
27
+ <Button
28
+ fontSize={fontSize}
29
+ h={h}
30
+ onClick={() => onSetTimeUnitMode('month')}
31
+ variant="tertiaryDark"
32
+ px="6px"
33
+ minW="auto"
34
+ >
28
35
  {months[viewMonth.getUTCMonth()]}
29
36
  </Button>
30
- <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('year')} variant="tertiaryDark">
37
+ <Button
38
+ fontSize={fontSize}
39
+ h={h}
40
+ onClick={() => onSetTimeUnitMode('year')}
41
+ variant="tertiaryDark"
42
+ px="6px"
43
+ minW="auto"
44
+ >
31
45
  {viewMonth.getUTCFullYear()}
32
46
  </Button>
33
47
  </>
34
48
  )}
35
49
  {isMonth(timeUnitMode) && (
36
- <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('year')} variant="tertiaryDark">
50
+ <Button
51
+ fontSize={fontSize}
52
+ h={h}
53
+ onClick={() => onSetTimeUnitMode('year')}
54
+ variant="tertiaryDark"
55
+ px="6px"
56
+ minW="auto"
57
+ >
37
58
  {viewMonth.getUTCFullYear()}
38
59
  </Button>
39
60
  )}
40
61
  {isYear(timeUnitMode) && (
41
- <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('day')} variant="tertiaryDark">
62
+ <Button
63
+ fontSize={fontSize}
64
+ h={h}
65
+ onClick={() => onSetTimeUnitMode('day')}
66
+ variant="tertiaryDark"
67
+ px="6px"
68
+ minW="auto"
69
+ >
42
70
  Year
43
71
  </Button>
44
72
  )}
@@ -14,6 +14,8 @@ export const YearPicker = ({ calendar, onSelectYear }: YearPickerProps) => (
14
14
  key={item.date.getTime()}
15
15
  onClick={(!item.isDisabled && onSelectYear?.(item.date)) || undefined}
16
16
  {...item}
17
+ alignContent="center"
18
+ textAlign="center"
17
19
  >
18
20
  {item.date.getUTCFullYear()}
19
21
  </YearItem>
@@ -18,7 +18,7 @@ export const useCalendar = ({
18
18
  mode = 'exact',
19
19
  timeUnitMode,
20
20
  viewDate,
21
- fixedNumberOfWeeks,
21
+ // fixedNumberOfWeeks,
22
22
  }: MonthProps) => {
23
23
  const boundariesProcessed = useBoundaries({ boundaries })
24
24
  const selectedProcessed = useSelectedDate({ selectedDates, mode })
@@ -37,7 +37,7 @@ export const useCalendar = ({
37
37
 
38
38
  if (isDay(timeUnitMode)) {
39
39
  firstDay = generateDateByUTCValue(viewDateYear, viewDateMonth, 1)
40
- lastDay = generateDateByUTCValue(viewDateYear, viewDateMonth + 1, 0) // lastDay
40
+ lastDay = generateDateByUTCValue(viewDateYear, viewDateMonth + 1, 0)
41
41
 
42
42
  nextFirstDay = generateDateByUTCValue(viewDateYear, viewDateMonth + 1, 1)
43
43
  prevLastDay = generateDateByUTCValue(viewDateYear, viewDateMonth, 0)
@@ -46,29 +46,27 @@ export const useCalendar = ({
46
46
  const weekdayLast = lastDay.getUTCDay()
47
47
 
48
48
  // Monday preceding the month (or first day of the month if it's on a Monday)
49
- calendarFirstDay =
50
- weekdayFirst === 0
51
- ? new Date(Date.UTC(viewDateYear, viewDateMonth, 2 - 7))
52
- : new Date(Date.UTC(viewDateYear, viewDateMonth, 2 - weekdayFirst))
49
+ calendarFirstDay = new Date(Date.UTC(viewDateYear, viewDateMonth, 2 - weekdayFirst))
50
+ if (weekdayFirst === 0) calendarFirstDay = new Date(Date.UTC(viewDateYear, viewDateMonth, 2 - 7))
53
51
 
54
52
  // Sunday after the month (or last day of the month if it's on a Sunday)
55
- calendarLastDay =
56
- weekdayLast === 0
57
- ? new Date(Date.UTC(viewDateYear, viewDateMonth + 1, 0))
58
- : new Date(Date.UTC(viewDateYear, viewDateMonth + 1, 8 - weekdayLast))
53
+ calendarLastDay = new Date(Date.UTC(viewDateYear, viewDateMonth + 1, 8 - weekdayLast))
54
+ if (weekdayLast === 0) calendarLastDay = new Date(Date.UTC(viewDateYear, viewDateMonth + 1, 1))
55
+ else if (weekdayLast === 1) calendarLastDay = new Date(Date.UTC(viewDateYear, viewDateMonth + 1, 0))
59
56
 
60
57
  // If calendar must contain constant number of weeks (6 weeks)
61
58
  // Missing weeks will be added to the end of the month
62
- const numberOfWeeks = Math.round((+calendarLastDay - +calendarFirstDay) / (7 * 24 * 60 * 60 * 1000))
63
- if (fixedNumberOfWeeks) {
64
- for (let week = numberOfWeeks; week < 6; week++) {
65
- calendarLastDay = generateDateByUTCValue(
66
- calendarLastDay.getUTCFullYear(),
67
- calendarLastDay.getUTCMonth(),
68
- calendarLastDay.getUTCDate() + 7,
69
- )
70
- }
71
- }
59
+ // const numberOfWeeks = Math.round((+calendarLastDay - +calendarFirstDay) / (7 * 24 * 60 * 60 * 1000))
60
+
61
+ // if (fixedNumberOfWeeks) {
62
+ // for (let week = numberOfWeeks; week < 6; week++) {
63
+ // calendarLastDay = generateDateByUTCValue(
64
+ // calendarLastDay.getUTCFullYear(),
65
+ // calendarLastDay.getUTCMonth(),
66
+ // calendarLastDay.getUTCDate() + 7,
67
+ // )
68
+ // }
69
+ // }
72
70
  } else if (isMonth(timeUnitMode)) {
73
71
  calendarFirstDay = firstDay = generateDateByUTCValue(viewDateYear, 0, 1)
74
72
  calendarLastDay = lastDay = generateDateByUTCValue(viewDateYear, 11, 31)
@@ -90,7 +88,6 @@ export const useCalendar = ({
90
88
  }
91
89
 
92
90
  const items: TimeItem[] = []
93
-
94
91
  // Loops between first and last date
95
92
  let dateItem = calendarFirstDay
96
93
  do {
@@ -135,14 +135,14 @@ export const DatePicker = vui<'span', DatePickerProps>((props, ref) => {
135
135
  boundaries={boundaries ?? { startDate: undefined, endDate: undefined }}
136
136
  fixedNumberOfWeeks
137
137
  fontWeight={500}
138
- minH={310}
138
+ minH={200}
139
139
  mode="exact"
140
140
  onSelectDates={range => selectDate(range)}
141
141
  selectedDates={{ startDate: selectedDate, endDate: undefined }}
142
142
  w="100%"
143
143
  />
144
144
  </Box>
145
- <Box overflow="unset" pt={0.5}>
145
+ <Box overflow="unset">
146
146
  <Box alignItems="center" flex={1} ml="auto" pb={2} px={2}>
147
147
  {isClearButtonVisible && (
148
148
  <LineButton flex={1} onClick={onClear} size="md">
@@ -94,7 +94,7 @@ export const Footer = vui<'div', FooterProps>((props, ref) => {
94
94
  {applicationLinks?.map((link, index) => (
95
95
  <Box flex={{ xs: '0 0 100%', sm: '0 0 auto' }} key={index}>
96
96
  {link.items && (
97
- <Menu isLazy={false} offset={[-16, 9]} placement="top-start" size="lg" {...rest}>
97
+ <Menu isLazy={false} offset={[-16, 9]} placement="top-start" size="sm" {...rest}>
98
98
  <Menu.Button
99
99
  as={Link}
100
100
  className="vui-footerLink-trigger"
@@ -157,7 +157,13 @@ export const Footer = vui<'div', FooterProps>((props, ref) => {
157
157
  aria-label={link.text}
158
158
  fontWeight="demi"
159
159
  href={link.url}
160
- iconLeft={<Link.Icon name={`brandCircle${link.text}`} radius="50%" size="xs" />}
160
+ iconLeft={
161
+ <Link.Icon
162
+ name={`${link.text === 'Twitter' ? 'brandX' + link.text + 'Solid' : 'brandCircle' + link.text}`}
163
+ radius="50%"
164
+ size="xs"
165
+ />
166
+ }
161
167
  isExternal
162
168
  key={index}
163
169
  mr={1}
@@ -58,7 +58,7 @@ export const LoggedInHeader = vui<'div', LoggedInHeaderProps>((props, ref) => {
58
58
  <RenderOnScreen minWidth="sm">
59
59
  <Header.Divider mr={2} />
60
60
  </RenderOnScreen>
61
- <Header.ApplicationName color={localTextColor} title={applicationName} url={applicationUrl || '/'} />
61
+ <Header.ApplicationName color={localTextColor} title={applicationName} url={applicationUrl} />
62
62
  </>
63
63
  )}
64
64
  {!isApplication && <RenderOnScreen minWidth="lg">{children}</RenderOnScreen>}
@@ -44,7 +44,7 @@ export const LoggedOutHeader = vui<'div', LoggedOutHeaderProps>((props, ref) =>
44
44
  <RenderOnScreen minWidth="sm">
45
45
  <Header.Divider mr={2} />
46
46
  </RenderOnScreen>
47
- <Header.ApplicationName color={localTextColor} title={applicationName} url={applicationUrl || '/'} />
47
+ <Header.ApplicationName color={localTextColor} title={applicationName} url={applicationUrl} />
48
48
  </>
49
49
  )}
50
50
 
@@ -0,0 +1,6 @@
1
+ import type { IconDefinition } from '../../types'
2
+
3
+ export default {
4
+ details: [32, 32, [], '', 'M24.0495 4H28.3451L18.9631 14.5889L30 29H21.3603L14.5884 20.262L6.8492 29H2.54759L12.5806 17.6719L2 4H10.8588L16.9735 11.9868L24.0495 4ZM22.5406 26.4639H24.9196L9.5628 6.40385H7.00739L22.5406 26.4639Z'],
5
+ name: 'brandXTwitter'
6
+ } as IconDefinition
@@ -0,0 +1,6 @@
1
+ import type { IconDefinition } from '../../types'
2
+
3
+ export default {
4
+ details: [32, 32, [], '', 'M4.57143 0C2.05 0 0 2.05 0 4.57143V27.4286C0 29.95 2.05 32 4.57143 32H27.4286C29.95 32 32 29.95 32 27.4286V4.57143C32 2.05 29.95 0 27.4286 0H4.57143ZM25.7929 6L18.3786 14.4714L27.1 26H20.2714L14.9286 19.0071L8.80714 26H5.41429L13.3429 16.9357L4.97857 6H11.9786L16.8143 12.3929L22.4 6H25.7929ZM23.0929 23.9714L10.9571 7.92143H8.93571L21.2071 23.9714H23.0929Z'],
5
+ name: 'brandXTwitterSolid'
6
+ } as IconDefinition
@@ -1,7 +1,7 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
2
  // Run the icon transformation script to update.
3
3
 
4
- // BRAND icons (31)
4
+ // BRAND icons (33)
5
5
  export { default as brandApplePay } from './brand/brandApplePay'
6
6
  export { default as brandBellship } from './brand/brandBellship'
7
7
  export { default as brandCcAmazonPay } from './brand/brandCcAmazonPay'
@@ -13,7 +13,6 @@ export { default as brandCcPaypal } from './brand/brandCcPaypal'
13
13
  export { default as brandCcVisa } from './brand/brandCcVisa'
14
14
  export { default as brandCircleFB } from './brand/brandCircleFB'
15
15
  export { default as brandCircleLinkedIn } from './brand/brandCircleLinkedIn'
16
- export { default as brandCircleTwitter } from './brand/brandCircleTwitter'
17
16
  export { default as brandCircleYoutube } from './brand/brandCircleYoutube'
18
17
  export { default as brandDNV } from './brand/brandDNV'
19
18
  export { default as brandDhl } from './brand/brandDhl'
@@ -29,9 +28,10 @@ export { default as brandMedium } from './brand/brandMedium'
29
28
  export { default as brandOsi } from './brand/brandOsi'
30
29
  export { default as brandPowerBi } from './brand/brandPowerBi'
31
30
  export { default as brandSlack } from './brand/brandSlack'
32
- export { default as brandTwitter } from './brand/brandTwitter'
33
31
  export { default as brandUps } from './brand/brandUps'
34
32
  export { default as brandVeracity } from './brand/brandVeracity'
33
+ export { default as brandXTwitter } from './brand/brandXTwitter'
34
+ export { default as brandXTwitterSolid } from './brand/brandXTwitterSolid'
35
35
  export { default as brandYoutube } from './brand/brandYoutube'
36
36
  // CONC icons (63)
37
37
  export { default as conAPI } from './conc/conAPI'
@@ -97,7 +97,7 @@ export { default as conUploadFile2 } from './conc/conUploadFile2'
97
97
  export { default as conVeracityAdapter } from './conc/conVeracityAdapter'
98
98
  export { default as conVesselConnect } from './conc/conVesselConnect'
99
99
  export { default as conWindmill } from './conc/conWindmill'
100
- // UI icons (373)
100
+ // UI icons (374)
101
101
  export { default as uiAddressBook } from './ui/uiAddressBook'
102
102
  export { default as uiAddressCard } from './ui/uiAddressCard'
103
103
  export { default as uiAlignCenter } from './ui/uiAlignCenter'
@@ -390,6 +390,7 @@ export { default as uiShieldAlt } from './ui/uiShieldAlt'
390
390
  export { default as uiShieldCheck } from './ui/uiShieldCheck'
391
391
  export { default as uiShieldHalf } from './ui/uiShieldHalf'
392
392
  export { default as uiShieldKeyhole } from './ui/uiShieldKeyhole'
393
+ export { default as uiShieldSolid } from './ui/uiShieldSolid'
393
394
  export { default as uiShip } from './ui/uiShip'
394
395
  export { default as uiShips } from './ui/uiShips'
395
396
  export { default as uiShoppingBasket } from './ui/uiShoppingBasket'
@@ -1,7 +1,7 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
2
  // Run the icon transformation script to update.
3
3
 
4
- // BRAND icons (31)
4
+ // BRAND icons (33)
5
5
  export type BrandIcons =
6
6
  | 'brandApplePay'
7
7
  | 'brandBellship'
@@ -14,7 +14,6 @@ export type BrandIcons =
14
14
  | 'brandCcVisa'
15
15
  | 'brandCircleFB'
16
16
  | 'brandCircleLinkedIn'
17
- | 'brandCircleTwitter'
18
17
  | 'brandCircleYoutube'
19
18
  | 'brandDNV'
20
19
  | 'brandDhl'
@@ -30,9 +29,10 @@ export type BrandIcons =
30
29
  | 'brandOsi'
31
30
  | 'brandPowerBi'
32
31
  | 'brandSlack'
33
- | 'brandTwitter'
34
32
  | 'brandUps'
35
33
  | 'brandVeracity'
34
+ | 'brandXTwitter'
35
+ | 'brandXTwitterSolid'
36
36
  | 'brandYoutube'
37
37
  // CONC icons (63)
38
38
  export type ConcIcons =
@@ -99,7 +99,7 @@ export type ConcIcons =
99
99
  | 'conVeracityAdapter'
100
100
  | 'conVesselConnect'
101
101
  | 'conWindmill'
102
- // UI icons (373)
102
+ // UI icons (374)
103
103
  export type UiIcons =
104
104
  | 'uiAddressBook'
105
105
  | 'uiAddressCard'
@@ -282,9 +282,9 @@ export type UiIcons =
282
282
  | 'uiFilePlus'
283
283
  | 'uiFilePowerpoint'
284
284
  | 'uiFileSignature'
285
+ | 'uiFileSolid'
285
286
  | 'uiFileSpreadsheet'
286
287
  | 'uiFileStandard'
287
- | 'uiFileSolid'
288
288
  | 'uiFileVideo'
289
289
  | 'uiFileWord'
290
290
  | 'uiFilter'
@@ -393,6 +393,7 @@ export type UiIcons =
393
393
  | 'uiShieldCheck'
394
394
  | 'uiShieldHalf'
395
395
  | 'uiShieldKeyhole'
396
+ | 'uiShieldSolid'
396
397
  | 'uiShip'
397
398
  | 'uiShips'
398
399
  | 'uiShoppingBasket'
@@ -1,7 +1,7 @@
1
1
  import type { IconDefinition } from '../../types'
2
2
 
3
3
  export default {
4
- details: [32, 32, [], '', 'M29.125 5.25C29.7083 5.45833 30.1667 5.8125 30.5 6.3125C30.8333 6.8125 31 7.375 31 8C31 10.625 30.6875 13.1458 30.0625 15.5625C29.4375 17.9375 28.6458 20 27.6875 21.75C26.7292 23.4583 25.6042 25.0208 24.3125 26.4375C23.0625 27.8125 21.8333 28.9167 20.625 29.75C19.4583 30.625 18.2917 31.2917 17.125 31.75C16.375 32.0833 15.625 32.0833 14.875 31.75C13.125 31.0417 11.4375 29.9792 9.8125 28.5625C8.22917 27.1875 6.77083 25.5208 5.4375 23.5625C4.10417 21.5625 3.02083 19.2083 2.1875 16.5C1.39583 13.7917 1 10.9583 1 8C1 7.75 1.02083 7.52083 1.0625 7.3125C1.14583 7.0625 1.22917 6.83333 1.3125 6.625C1.4375 6.41667 1.5625 6.22917 1.6875 6.0625C1.85417 5.89583 2.02083 5.75 2.1875 5.625C2.39583 5.45833 2.625 5.33333 2.875 5.25L14.875 0.25C15.2083 0.0833333 15.5833 0 16 0C16.4167 0 16.7917 0.0833333 17.125 0.25L29.125 5.25Z'],
4
+ details: [512, 512, [], '', 'M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM262.2 478.8c-3.9 1.6-8.3 1.6-12.3 0C152 440 48 304 48 128c0-6.5 3.9-12.3 9.8-14.8l192-80c3.8-1.6 8.3-1.7 12.3 0l192 80c6 2.5 9.8 8.3 9.8 14.8.1 176-103.9 312-201.7 350.8z'],
5
5
  name: 'uiShield',
6
6
  oldName: 'fasShield'
7
7
  } as IconDefinition
@@ -0,0 +1,7 @@
1
+ import type { IconDefinition } from '../../types'
2
+
3
+ export default {
4
+ details: [32, 32, [], '', 'M29.125 5.25C29.7083 5.45833 30.1667 5.8125 30.5 6.3125C30.8333 6.8125 31 7.375 31 8C31 10.625 30.6875 13.1458 30.0625 15.5625C29.4375 17.9375 28.6458 20 27.6875 21.75C26.7292 23.4583 25.6042 25.0208 24.3125 26.4375C23.0625 27.8125 21.8333 28.9167 20.625 29.75C19.4583 30.625 18.2917 31.2917 17.125 31.75C16.375 32.0833 15.625 32.0833 14.875 31.75C13.125 31.0417 11.4375 29.9792 9.8125 28.5625C8.22917 27.1875 6.77083 25.5208 5.4375 23.5625C4.10417 21.5625 3.02083 19.2083 2.1875 16.5C1.39583 13.7917 1 10.9583 1 8C1 7.75 1.02083 7.52083 1.0625 7.3125C1.14583 7.0625 1.22917 6.83333 1.3125 6.625C1.4375 6.41667 1.5625 6.22917 1.6875 6.0625C1.85417 5.89583 2.02083 5.75 2.1875 5.625C2.39583 5.45833 2.625 5.33333 2.875 5.25L14.875 0.25C15.2083 0.0833333 15.5833 0 16 0C16.4167 0 16.7917 0.0833333 17.125 0.25L29.125 5.25Z'],
5
+ name: 'uiShieldSolid',
6
+ oldName: 'fasShield'
7
+ } as IconDefinition
@@ -14,9 +14,9 @@ export const inputColors = {
14
14
  } as const
15
15
 
16
16
  export const stateIcons = {
17
- error: 'falExclamationTriangle',
18
- loading: 'fadSpinnerThird',
19
- success: 'falCheck',
17
+ error: 'uiExclamationTriangle',
18
+ loading: 'uiSpinnerThird',
19
+ success: 'uiCheck',
20
20
  } as const
21
21
 
22
22
  export const inputStateMapping: InputStateMapping = {
@@ -24,7 +24,7 @@ export const inputStateMapping: InputStateMapping = {
24
24
  variant: 'red',
25
25
  iconProps: {
26
26
  color: inputColors.error,
27
- icon: stateIcons.error,
27
+ name: stateIcons.error,
28
28
  },
29
29
  },
30
30
  loading: {
@@ -39,7 +39,7 @@ export const inputStateMapping: InputStateMapping = {
39
39
  variant: 'green',
40
40
  iconProps: {
41
41
  color: inputColors.success,
42
- icon: stateIcons.success,
42
+ name: stateIcons.success,
43
43
  },
44
44
  },
45
45
  }
@@ -43,6 +43,12 @@ export const InputBase = styled.divBox`
43
43
  cursor: not-allowed;
44
44
  background-color: sandstone.79;
45
45
  border-color: sandstone.79;
46
+ & > .vui-icon {
47
+ color: sandstone.50;
48
+ }
49
+ & > .vui-icon > path {
50
+ fill: sandstone.50;
51
+ }
46
52
  }
47
53
  `
48
54
 
@@ -2,7 +2,6 @@ import { useStyleConfig, vui } from '../core'
2
2
  import type { IconProps } from '../icon'
3
3
  import Icon from '../icon'
4
4
  import { cs } from '../utils'
5
- import { inputColors } from './consts'
6
5
  import { useInputContext } from './context'
7
6
 
8
7
  /** Displays an icon within the Input. */
@@ -12,9 +11,7 @@ export const InputIcon = vui<'svg', IconProps>((props, ref) => {
12
11
  const mergedProps = { ...inputProps, ...props }
13
12
  const styles = useStyleConfig('Input', mergedProps)
14
13
 
15
- const color = !mergedProps.disabled ? inputColors.icons : inputColors.placeholder
16
-
17
- return <Icon className={cs('vui-inputIcon', className)} color={color} ref={ref} {...styles.icon} {...rest} />
14
+ return <Icon className={cs('vui-inputIcon', className)} ref={ref} {...styles.icon} {...rest} />
18
15
  })
19
16
 
20
17
  InputIcon.displayName = 'InputIcon'
@@ -67,7 +67,7 @@ export const Range = vui<'div', RangeProps>((props, ref) => {
67
67
  return showValue ? (
68
68
  content
69
69
  ) : (
70
- <Tooltip disabled={disabled} text={formatter(state.valueNow)} visible={showTooltip}>
70
+ <Tooltip key={state.index} disabled={disabled} text={formatter(state.valueNow)} visible={showTooltip}>
71
71
  {content}
72
72
  </Tooltip>
73
73
  )
@@ -36,7 +36,7 @@ export default function useSelect(props: UseSelectProps) {
36
36
  if (option.text && option.value) dynamicOptions.push(option)
37
37
  })
38
38
 
39
- /** Sends a change event to the external consumer, but internall keeps the actual value as primitive or array. */
39
+ /** Sends a change event to the external consumer, but internal keeps the actual value as primitive or array. */
40
40
  const onChange = useCallbackRef((e: ChangeEvent) => {
41
41
  onChangeProp?.(e)
42
42
 
@@ -0,0 +1,75 @@
1
+ import { memo } from 'react'
2
+
3
+ import Badge from '../badge'
4
+ import type { BadgeProps } from '../badge/badge.types'
5
+ import Box from '../box'
6
+ import type { IconProp } from '../icon'
7
+ import Icon from '../icon'
8
+ import T from '../t'
9
+
10
+ export interface SidemenuItemContentProps {
11
+ icon?: IconProp
12
+ iconSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
13
+ title?: string
14
+ isMenuExpanded?: boolean
15
+ isInPopover?: boolean
16
+ badge?: Pick<BadgeProps, 'text' | 'variant'>
17
+ badgeLinkUrl?: string
18
+ }
19
+
20
+ const SidemenuItemContent = memo<SidemenuItemContentProps>(
21
+ ({ icon, iconSize = 'sm', title, isMenuExpanded, isInPopover, badge, badgeLinkUrl }) => {
22
+ const iconBaseMarginLeft = 13 / 8
23
+ const iconMarginRight = isMenuExpanded ? 10 / 8 : 20 / 8
24
+
25
+ if (isInPopover)
26
+ return (
27
+ <>
28
+ <T isTruncated size="sm" display="inline-block" fontWeight="500" ml={iconBaseMarginLeft}>
29
+ {title}
30
+ </T>
31
+ {badge && typeof badge === 'object' && typeof badge.text === 'string' && badge.text.trim() !== '' && (
32
+ <Badge
33
+ {...badge}
34
+ data-link={btoa(badgeLinkUrl ?? '#')}
35
+ variant={badge.variant ?? 'subtleGreen'}
36
+ size="sm"
37
+ minW="32px"
38
+ fontSize="12px"
39
+ lineHeight="16px"
40
+ ml="10px"
41
+ mr="10px"
42
+ />
43
+ )}
44
+ </>
45
+ )
46
+
47
+ return (
48
+ <>
49
+ <Box ml={iconBaseMarginLeft} mr={iconMarginRight} w="20px" transition="margin 0.2s ease-in-out">
50
+ {icon && <Icon name={icon} size={iconSize} />}
51
+ </Box>
52
+ <T isTruncated size="sm" display="inline-block">
53
+ {title}
54
+ </T>
55
+ {badge && typeof badge === 'object' && typeof badge.text === 'string' && badge.text.trim() !== '' && (
56
+ <Badge
57
+ {...badge}
58
+ data-link={btoa(badgeLinkUrl ?? '#')}
59
+ variant={badge.variant ?? 'subtleGreen'}
60
+ size="sm"
61
+ minW="32px"
62
+ fontSize="12px"
63
+ lineHeight="16px"
64
+ ml="10px"
65
+ mr="10px"
66
+ />
67
+ )}
68
+ </>
69
+ )
70
+ },
71
+ )
72
+
73
+ SidemenuItemContent.displayName = 'SidemenuItemContent'
74
+
75
+ export default SidemenuItemContent