@veracity/vui 2.32.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.
- package/dist/cjs/calendar/calendar.styles.js +5 -5
- package/dist/cjs/calendar/calendar.styles.js.map +1 -1
- package/dist/cjs/calendar/components/calendarHeader.js +1 -1
- package/dist/cjs/calendar/components/calendarHeader.js.map +1 -1
- package/dist/cjs/calendar/components/dayPicker.d.ts.map +1 -1
- package/dist/cjs/calendar/components/dayPicker.js +6 -2
- package/dist/cjs/calendar/components/dayPicker.js.map +1 -1
- package/dist/cjs/calendar/components/monthPicker.d.ts.map +1 -1
- package/dist/cjs/calendar/components/monthPicker.js +1 -1
- package/dist/cjs/calendar/components/monthPicker.js.map +1 -1
- package/dist/cjs/calendar/components/timeUnitHeader.d.ts.map +1 -1
- package/dist/cjs/calendar/components/timeUnitHeader.js +1 -1
- package/dist/cjs/calendar/components/timeUnitHeader.js.map +1 -1
- package/dist/cjs/calendar/components/yearPicker.d.ts.map +1 -1
- package/dist/cjs/calendar/components/yearPicker.js +1 -1
- package/dist/cjs/calendar/components/yearPicker.js.map +1 -1
- package/dist/cjs/calendar/hooks/useCalendar.d.ts +1 -1
- package/dist/cjs/calendar/hooks/useCalendar.d.ts.map +1 -1
- package/dist/cjs/calendar/hooks/useCalendar.js +22 -16
- package/dist/cjs/calendar/hooks/useCalendar.js.map +1 -1
- package/dist/cjs/datePicker/datePicker.js +1 -1
- package/dist/cjs/datePicker/datePicker.js.map +1 -1
- package/dist/cjs/range/range.js +1 -1
- package/dist/cjs/range/range.js.map +1 -1
- package/dist/cjs/sidemenuV2/sidemenuV2.d.ts.map +1 -1
- package/dist/cjs/sidemenuV2/sidemenuV2.js +6 -2
- package/dist/cjs/sidemenuV2/sidemenuV2.js.map +1 -1
- package/dist/cjs/table/tableSortIcon.d.ts.map +1 -1
- package/dist/cjs/table/tableSortIcon.js +15 -16
- package/dist/cjs/table/tableSortIcon.js.map +1 -1
- package/dist/esm/calendar/calendar.styles.js +5 -5
- package/dist/esm/calendar/calendar.styles.js.map +1 -1
- package/dist/esm/calendar/components/calendarHeader.js +1 -1
- package/dist/esm/calendar/components/calendarHeader.js.map +1 -1
- package/dist/esm/calendar/components/dayPicker.d.ts.map +1 -1
- package/dist/esm/calendar/components/dayPicker.js +6 -2
- package/dist/esm/calendar/components/dayPicker.js.map +1 -1
- package/dist/esm/calendar/components/monthPicker.d.ts.map +1 -1
- package/dist/esm/calendar/components/monthPicker.js +1 -1
- package/dist/esm/calendar/components/monthPicker.js.map +1 -1
- package/dist/esm/calendar/components/timeUnitHeader.d.ts.map +1 -1
- package/dist/esm/calendar/components/timeUnitHeader.js +1 -1
- package/dist/esm/calendar/components/timeUnitHeader.js.map +1 -1
- package/dist/esm/calendar/components/yearPicker.d.ts.map +1 -1
- package/dist/esm/calendar/components/yearPicker.js +1 -1
- package/dist/esm/calendar/components/yearPicker.js.map +1 -1
- package/dist/esm/calendar/hooks/useCalendar.d.ts +1 -1
- package/dist/esm/calendar/hooks/useCalendar.d.ts.map +1 -1
- package/dist/esm/calendar/hooks/useCalendar.js +22 -16
- package/dist/esm/calendar/hooks/useCalendar.js.map +1 -1
- package/dist/esm/datePicker/datePicker.js +1 -1
- package/dist/esm/datePicker/datePicker.js.map +1 -1
- package/dist/esm/range/range.js +1 -1
- package/dist/esm/range/range.js.map +1 -1
- package/dist/esm/sidemenuV2/sidemenuV2.d.ts.map +1 -1
- package/dist/esm/sidemenuV2/sidemenuV2.js +6 -2
- package/dist/esm/sidemenuV2/sidemenuV2.js.map +1 -1
- package/dist/esm/table/tableSortIcon.d.ts.map +1 -1
- package/dist/esm/table/tableSortIcon.js +15 -8
- package/dist/esm/table/tableSortIcon.js.map +1 -1
- package/dist/tsconfig.legacy.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/calendar/calendar.styles.ts +5 -5
- package/src/calendar/components/calendarHeader.tsx +1 -1
- package/src/calendar/components/dayPicker.tsx +6 -2
- package/src/calendar/components/monthPicker.tsx +2 -0
- package/src/calendar/components/timeUnitHeader.tsx +33 -5
- package/src/calendar/components/yearPicker.tsx +2 -0
- package/src/calendar/hooks/useCalendar.ts +18 -21
- package/src/datePicker/datePicker.tsx +2 -2
- package/src/range/range.tsx +1 -1
- package/src/sidemenuV2/sidemenuV2.tsx +23 -2
- package/src/table/tableSortIcon.tsx +30 -16
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veracity/vui",
|
|
3
|
-
"version": "2.
|
|
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",
|
|
@@ -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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
${p => p.isSelected && isSelected}
|
|
57
|
+
${p => p.boundary && boundary}
|
|
58
|
+
${p => p.current && current}
|
|
59
59
|
|
|
60
|
-
|
|
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,
|
|
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"
|
|
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:
|
|
27
|
-
grid-
|
|
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"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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)
|
|
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
|
-
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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={
|
|
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"
|
|
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">
|
package/src/range/range.tsx
CHANGED
|
@@ -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
|
)
|
|
@@ -19,21 +19,42 @@ export { SidemenuStateProvider, useSidemenuContext }
|
|
|
19
19
|
export const SidemenuV2 = vui<'div', SidemenuV2Props>((props, ref) => {
|
|
20
20
|
const {
|
|
21
21
|
isExpandedInitial = true, // Uncontrolled: only affects initial state
|
|
22
|
+
onExpandedChange, // Extract this to prevent it from being passed to DOM
|
|
22
23
|
size,
|
|
23
24
|
variant = 'light',
|
|
25
|
+
children,
|
|
26
|
+
className,
|
|
27
|
+
items,
|
|
28
|
+
shouldExpand,
|
|
29
|
+
isSticky,
|
|
30
|
+
width,
|
|
31
|
+
top,
|
|
32
|
+
onNavigate,
|
|
33
|
+
...restProps // Only DOM-safe props remain
|
|
24
34
|
} = props
|
|
25
35
|
|
|
26
36
|
return (
|
|
27
37
|
<SidemenuStateProvider
|
|
28
38
|
isExpandedInitial={isExpandedInitial}
|
|
29
|
-
onExpandedChange={
|
|
39
|
+
onExpandedChange={onExpandedChange}
|
|
30
40
|
variant={variant}
|
|
31
41
|
size={size}
|
|
32
42
|
isDark={variant === 'dark'}
|
|
33
43
|
>
|
|
34
44
|
<SidemenuInner
|
|
35
45
|
ref={ref}
|
|
36
|
-
|
|
46
|
+
// Only pass DOM-safe props, not onExpandedChange
|
|
47
|
+
children={children}
|
|
48
|
+
className={className}
|
|
49
|
+
items={items}
|
|
50
|
+
shouldExpand={shouldExpand}
|
|
51
|
+
isSticky={isSticky}
|
|
52
|
+
size={size}
|
|
53
|
+
variant={variant}
|
|
54
|
+
width={width}
|
|
55
|
+
top={top}
|
|
56
|
+
onNavigate={onNavigate}
|
|
57
|
+
{...restProps} // Remaining DOM-safe props
|
|
37
58
|
/>
|
|
38
59
|
</SidemenuStateProvider>
|
|
39
60
|
)
|
|
@@ -1,27 +1,41 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Box from '../box'
|
|
2
|
+
import { vui } from '../core'
|
|
2
3
|
import { Icon } from '../icon'
|
|
3
4
|
import { cs } from '../utils'
|
|
4
|
-
import { useTableContext } from './context'
|
|
5
5
|
import type { TableSortIconProps } from './table.types'
|
|
6
6
|
|
|
7
7
|
/** Displays a sort icon with given direction based on sort order. */
|
|
8
8
|
export const TableSortIcon = vui<'svg', TableSortIconProps>((props, ref) => {
|
|
9
|
-
const { className, order
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
9
|
+
const { className, order } = props
|
|
10
|
+
const activeColor = 'seaBlue.main'
|
|
11
|
+
const inactiveColor = 'sandstone.85'
|
|
12
|
+
|
|
13
|
+
const icons = [
|
|
14
|
+
{
|
|
15
|
+
color: order === 'asc' ? activeColor : inactiveColor,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
color: order === 'desc' ? activeColor : inactiveColor,
|
|
19
|
+
},
|
|
20
|
+
]
|
|
13
21
|
|
|
14
22
|
return (
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
<Box ref={ref} column alignItems="center" justifyItems="center" ml="8px">
|
|
24
|
+
<Icon
|
|
25
|
+
className={cs('vui-tableSortIcon--top', className)}
|
|
26
|
+
name={'uiCaretUp'}
|
|
27
|
+
color={icons[0].color}
|
|
28
|
+
size="xs"
|
|
29
|
+
mb="-4px"
|
|
30
|
+
/>
|
|
31
|
+
<Icon
|
|
32
|
+
className={cs('vui-tableSortIcon--bottom', className)}
|
|
33
|
+
name={'uiCaretDown'}
|
|
34
|
+
color={icons[1].color}
|
|
35
|
+
size="xs"
|
|
36
|
+
mt="-4px"
|
|
37
|
+
/>
|
|
38
|
+
</Box>
|
|
25
39
|
)
|
|
26
40
|
})
|
|
27
41
|
|