@react-aria/calendar 3.5.13 → 3.7.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/ar-AE.main.js.map +1 -1
- package/dist/ar-AE.module.js.map +1 -1
- package/dist/bg-BG.main.js.map +1 -1
- package/dist/bg-BG.module.js.map +1 -1
- package/dist/cs-CZ.main.js.map +1 -1
- package/dist/cs-CZ.module.js.map +1 -1
- package/dist/da-DK.main.js.map +1 -1
- package/dist/da-DK.module.js.map +1 -1
- package/dist/de-DE.main.js.map +1 -1
- package/dist/de-DE.module.js.map +1 -1
- package/dist/el-GR.main.js.map +1 -1
- package/dist/el-GR.module.js.map +1 -1
- package/dist/en-US.main.js.map +1 -1
- package/dist/en-US.module.js.map +1 -1
- package/dist/es-ES.main.js.map +1 -1
- package/dist/es-ES.module.js.map +1 -1
- package/dist/et-EE.main.js.map +1 -1
- package/dist/et-EE.module.js.map +1 -1
- package/dist/fi-FI.main.js.map +1 -1
- package/dist/fi-FI.module.js.map +1 -1
- package/dist/fr-FR.main.js.map +1 -1
- package/dist/fr-FR.module.js.map +1 -1
- package/dist/he-IL.main.js.map +1 -1
- package/dist/he-IL.module.js.map +1 -1
- package/dist/hr-HR.main.js.map +1 -1
- package/dist/hr-HR.module.js.map +1 -1
- package/dist/hu-HU.main.js.map +1 -1
- package/dist/hu-HU.module.js.map +1 -1
- package/dist/it-IT.main.js.map +1 -1
- package/dist/it-IT.module.js.map +1 -1
- package/dist/ja-JP.main.js.map +1 -1
- package/dist/ja-JP.module.js.map +1 -1
- package/dist/ko-KR.main.js.map +1 -1
- package/dist/ko-KR.module.js.map +1 -1
- package/dist/lt-LT.main.js.map +1 -1
- package/dist/lt-LT.module.js.map +1 -1
- package/dist/lv-LV.main.js.map +1 -1
- package/dist/lv-LV.module.js.map +1 -1
- package/dist/nb-NO.main.js.map +1 -1
- package/dist/nb-NO.module.js.map +1 -1
- package/dist/nl-NL.main.js.map +1 -1
- package/dist/nl-NL.module.js.map +1 -1
- package/dist/pl-PL.main.js.map +1 -1
- package/dist/pl-PL.module.js.map +1 -1
- package/dist/pt-BR.main.js.map +1 -1
- package/dist/pt-BR.module.js.map +1 -1
- package/dist/pt-PT.main.js.map +1 -1
- package/dist/pt-PT.module.js.map +1 -1
- package/dist/ro-RO.main.js.map +1 -1
- package/dist/ro-RO.module.js.map +1 -1
- package/dist/ru-RU.main.js.map +1 -1
- package/dist/ru-RU.module.js.map +1 -1
- package/dist/sk-SK.main.js.map +1 -1
- package/dist/sk-SK.module.js.map +1 -1
- package/dist/sl-SI.main.js.map +1 -1
- package/dist/sl-SI.module.js.map +1 -1
- package/dist/sr-SP.main.js.map +1 -1
- package/dist/sr-SP.module.js.map +1 -1
- package/dist/sv-SE.main.js.map +1 -1
- package/dist/sv-SE.module.js.map +1 -1
- package/dist/tr-TR.main.js.map +1 -1
- package/dist/tr-TR.module.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/uk-UA.main.js.map +1 -1
- package/dist/uk-UA.module.js.map +1 -1
- package/dist/useCalendarCell.main.js +11 -11
- package/dist/useCalendarCell.main.js.map +1 -1
- package/dist/useCalendarCell.mjs +11 -11
- package/dist/useCalendarCell.module.js +11 -11
- package/dist/useCalendarCell.module.js.map +1 -1
- package/dist/useCalendarGrid.main.js +6 -5
- package/dist/useCalendarGrid.main.js.map +1 -1
- package/dist/useCalendarGrid.mjs +6 -5
- package/dist/useCalendarGrid.module.js +6 -5
- package/dist/useCalendarGrid.module.js.map +1 -1
- package/dist/utils.main.js +2 -1
- package/dist/utils.main.js.map +1 -1
- package/dist/utils.mjs +2 -1
- package/dist/utils.module.js +2 -1
- package/dist/utils.module.js.map +1 -1
- package/dist/zh-CN.main.js.map +1 -1
- package/dist/zh-CN.module.js.map +1 -1
- package/dist/zh-TW.main.js.map +1 -1
- package/dist/zh-TW.module.js.map +1 -1
- package/package.json +13 -13
- package/src/useCalendarCell.ts +13 -13
- package/src/useCalendarGrid.ts +12 -7
- package/src/utils.ts +5 -5
package/src/useCalendarGrid.ts
CHANGED
|
@@ -36,7 +36,11 @@ export interface AriaCalendarGridProps {
|
|
|
36
36
|
* e.g. single letter, abbreviation, or full day name.
|
|
37
37
|
* @default "narrow"
|
|
38
38
|
*/
|
|
39
|
-
weekdayStyle?: 'narrow' | 'short' | 'long'
|
|
39
|
+
weekdayStyle?: 'narrow' | 'short' | 'long',
|
|
40
|
+
/**
|
|
41
|
+
* The day that starts the week.
|
|
42
|
+
*/
|
|
43
|
+
firstDayOfWeek?: 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
export interface CalendarGridAria {
|
|
@@ -56,7 +60,8 @@ export interface CalendarGridAria {
|
|
|
56
60
|
export function useCalendarGrid(props: AriaCalendarGridProps, state: CalendarState | RangeCalendarState): CalendarGridAria {
|
|
57
61
|
let {
|
|
58
62
|
startDate = state.visibleRange.start,
|
|
59
|
-
endDate = state.visibleRange.end
|
|
63
|
+
endDate = state.visibleRange.end,
|
|
64
|
+
firstDayOfWeek
|
|
60
65
|
} = props;
|
|
61
66
|
|
|
62
67
|
let {direction} = useLocale();
|
|
@@ -128,7 +133,7 @@ export function useCalendarGrid(props: AriaCalendarGridProps, state: CalendarSta
|
|
|
128
133
|
|
|
129
134
|
let visibleRangeDescription = useVisibleRangeDescription(startDate, endDate, state.timeZone, true);
|
|
130
135
|
|
|
131
|
-
let {ariaLabel, ariaLabelledBy} = hookData.get(state)
|
|
136
|
+
let {ariaLabel, ariaLabelledBy} = hookData.get(state)!;
|
|
132
137
|
let labelProps = useLabels({
|
|
133
138
|
'aria-label': [ariaLabel, visibleRangeDescription].filter(Boolean).join(', '),
|
|
134
139
|
'aria-labelledby': ariaLabelledBy
|
|
@@ -137,19 +142,19 @@ export function useCalendarGrid(props: AriaCalendarGridProps, state: CalendarSta
|
|
|
137
142
|
let dayFormatter = useDateFormatter({weekday: props.weekdayStyle || 'narrow', timeZone: state.timeZone});
|
|
138
143
|
let {locale} = useLocale();
|
|
139
144
|
let weekDays = useMemo(() => {
|
|
140
|
-
let weekStart = startOfWeek(today(state.timeZone), locale);
|
|
145
|
+
let weekStart = startOfWeek(today(state.timeZone), locale, firstDayOfWeek);
|
|
141
146
|
return [...new Array(7).keys()].map((index) => {
|
|
142
147
|
let date = weekStart.add({days: index});
|
|
143
148
|
let dateDay = date.toDate(state.timeZone);
|
|
144
149
|
return dayFormatter.format(dateDay);
|
|
145
150
|
});
|
|
146
|
-
}, [locale, state.timeZone, dayFormatter]);
|
|
151
|
+
}, [locale, state.timeZone, dayFormatter, firstDayOfWeek]);
|
|
147
152
|
|
|
148
153
|
return {
|
|
149
154
|
gridProps: mergeProps(labelProps, {
|
|
150
155
|
role: 'grid',
|
|
151
|
-
'aria-readonly': state.isReadOnly ||
|
|
152
|
-
'aria-disabled': state.isDisabled ||
|
|
156
|
+
'aria-readonly': state.isReadOnly || undefined,
|
|
157
|
+
'aria-disabled': state.isDisabled || undefined,
|
|
153
158
|
'aria-multiselectable': ('highlightedRange' in state) || undefined,
|
|
154
159
|
onKeyDown,
|
|
155
160
|
onFocus: () => state.setFocused(true),
|
package/src/utils.ts
CHANGED
|
@@ -19,26 +19,26 @@ import {useDateFormatter, useLocalizedStringFormatter} from '@react-aria/i18n';
|
|
|
19
19
|
import {useMemo} from 'react';
|
|
20
20
|
|
|
21
21
|
interface HookData {
|
|
22
|
-
ariaLabel
|
|
23
|
-
ariaLabelledBy
|
|
22
|
+
ariaLabel?: string,
|
|
23
|
+
ariaLabelledBy?: string,
|
|
24
24
|
errorMessageId: string,
|
|
25
25
|
selectedDateDescription: string
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
export const hookData = new WeakMap<CalendarState | RangeCalendarState, HookData>();
|
|
29
29
|
|
|
30
|
-
export function getEraFormat(date: CalendarDate): 'short' | undefined {
|
|
30
|
+
export function getEraFormat(date: CalendarDate | undefined): 'short' | undefined {
|
|
31
31
|
return date?.calendar.identifier === 'gregory' && date.era === 'BC' ? 'short' : undefined;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
export function useSelectedDateDescription(state: CalendarState | RangeCalendarState) {
|
|
35
35
|
let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-aria/calendar');
|
|
36
36
|
|
|
37
|
-
let start: CalendarDate, end: CalendarDate;
|
|
37
|
+
let start: CalendarDate | undefined, end: CalendarDate | undefined;
|
|
38
38
|
if ('highlightedRange' in state) {
|
|
39
39
|
({start, end} = state.highlightedRange || {});
|
|
40
40
|
} else {
|
|
41
|
-
start = end = state.value;
|
|
41
|
+
start = end = state.value ?? undefined;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
let dateFormatter = useDateFormatter({
|