@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.
Files changed (89) hide show
  1. package/dist/ar-AE.main.js.map +1 -1
  2. package/dist/ar-AE.module.js.map +1 -1
  3. package/dist/bg-BG.main.js.map +1 -1
  4. package/dist/bg-BG.module.js.map +1 -1
  5. package/dist/cs-CZ.main.js.map +1 -1
  6. package/dist/cs-CZ.module.js.map +1 -1
  7. package/dist/da-DK.main.js.map +1 -1
  8. package/dist/da-DK.module.js.map +1 -1
  9. package/dist/de-DE.main.js.map +1 -1
  10. package/dist/de-DE.module.js.map +1 -1
  11. package/dist/el-GR.main.js.map +1 -1
  12. package/dist/el-GR.module.js.map +1 -1
  13. package/dist/en-US.main.js.map +1 -1
  14. package/dist/en-US.module.js.map +1 -1
  15. package/dist/es-ES.main.js.map +1 -1
  16. package/dist/es-ES.module.js.map +1 -1
  17. package/dist/et-EE.main.js.map +1 -1
  18. package/dist/et-EE.module.js.map +1 -1
  19. package/dist/fi-FI.main.js.map +1 -1
  20. package/dist/fi-FI.module.js.map +1 -1
  21. package/dist/fr-FR.main.js.map +1 -1
  22. package/dist/fr-FR.module.js.map +1 -1
  23. package/dist/he-IL.main.js.map +1 -1
  24. package/dist/he-IL.module.js.map +1 -1
  25. package/dist/hr-HR.main.js.map +1 -1
  26. package/dist/hr-HR.module.js.map +1 -1
  27. package/dist/hu-HU.main.js.map +1 -1
  28. package/dist/hu-HU.module.js.map +1 -1
  29. package/dist/it-IT.main.js.map +1 -1
  30. package/dist/it-IT.module.js.map +1 -1
  31. package/dist/ja-JP.main.js.map +1 -1
  32. package/dist/ja-JP.module.js.map +1 -1
  33. package/dist/ko-KR.main.js.map +1 -1
  34. package/dist/ko-KR.module.js.map +1 -1
  35. package/dist/lt-LT.main.js.map +1 -1
  36. package/dist/lt-LT.module.js.map +1 -1
  37. package/dist/lv-LV.main.js.map +1 -1
  38. package/dist/lv-LV.module.js.map +1 -1
  39. package/dist/nb-NO.main.js.map +1 -1
  40. package/dist/nb-NO.module.js.map +1 -1
  41. package/dist/nl-NL.main.js.map +1 -1
  42. package/dist/nl-NL.module.js.map +1 -1
  43. package/dist/pl-PL.main.js.map +1 -1
  44. package/dist/pl-PL.module.js.map +1 -1
  45. package/dist/pt-BR.main.js.map +1 -1
  46. package/dist/pt-BR.module.js.map +1 -1
  47. package/dist/pt-PT.main.js.map +1 -1
  48. package/dist/pt-PT.module.js.map +1 -1
  49. package/dist/ro-RO.main.js.map +1 -1
  50. package/dist/ro-RO.module.js.map +1 -1
  51. package/dist/ru-RU.main.js.map +1 -1
  52. package/dist/ru-RU.module.js.map +1 -1
  53. package/dist/sk-SK.main.js.map +1 -1
  54. package/dist/sk-SK.module.js.map +1 -1
  55. package/dist/sl-SI.main.js.map +1 -1
  56. package/dist/sl-SI.module.js.map +1 -1
  57. package/dist/sr-SP.main.js.map +1 -1
  58. package/dist/sr-SP.module.js.map +1 -1
  59. package/dist/sv-SE.main.js.map +1 -1
  60. package/dist/sv-SE.module.js.map +1 -1
  61. package/dist/tr-TR.main.js.map +1 -1
  62. package/dist/tr-TR.module.js.map +1 -1
  63. package/dist/types.d.ts +4 -0
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/uk-UA.main.js.map +1 -1
  66. package/dist/uk-UA.module.js.map +1 -1
  67. package/dist/useCalendarCell.main.js +11 -11
  68. package/dist/useCalendarCell.main.js.map +1 -1
  69. package/dist/useCalendarCell.mjs +11 -11
  70. package/dist/useCalendarCell.module.js +11 -11
  71. package/dist/useCalendarCell.module.js.map +1 -1
  72. package/dist/useCalendarGrid.main.js +6 -5
  73. package/dist/useCalendarGrid.main.js.map +1 -1
  74. package/dist/useCalendarGrid.mjs +6 -5
  75. package/dist/useCalendarGrid.module.js +6 -5
  76. package/dist/useCalendarGrid.module.js.map +1 -1
  77. package/dist/utils.main.js +2 -1
  78. package/dist/utils.main.js.map +1 -1
  79. package/dist/utils.mjs +2 -1
  80. package/dist/utils.module.js +2 -1
  81. package/dist/utils.module.js.map +1 -1
  82. package/dist/zh-CN.main.js.map +1 -1
  83. package/dist/zh-CN.module.js.map +1 -1
  84. package/dist/zh-TW.main.js.map +1 -1
  85. package/dist/zh-TW.module.js.map +1 -1
  86. package/package.json +13 -13
  87. package/src/useCalendarCell.ts +13 -13
  88. package/src/useCalendarGrid.ts +12 -7
  89. package/src/utils.ts +5 -5
@@ -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 || null,
152
- 'aria-disabled': state.isDisabled || null,
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: string,
23
- ariaLabelledBy: string,
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({