@fluentui/react-calendar-compat 0.0.0-nightly-20231023-0416.1 → 0.0.2

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 (228) hide show
  1. package/CHANGELOG.json +9 -51
  2. package/CHANGELOG.md +7 -14
  3. package/dist/index.d.ts +1376 -0
  4. package/lib/Calendar.js +1 -0
  5. package/lib/Calendar.js.map +1 -0
  6. package/lib/CalendarDay.js +1 -0
  7. package/lib/CalendarDay.js.map +1 -0
  8. package/lib/CalendarDayGrid.js +1 -0
  9. package/lib/CalendarDayGrid.js.map +1 -0
  10. package/lib/CalendarMonth.js +1 -0
  11. package/lib/CalendarMonth.js.map +1 -0
  12. package/lib/CalendarPicker.js +1 -0
  13. package/lib/CalendarPicker.js.map +1 -0
  14. package/lib/CalendarYear.js +1 -0
  15. package/lib/CalendarYear.js.map +1 -0
  16. package/lib/components/Calendar/Calendar.js +302 -0
  17. package/lib/components/Calendar/Calendar.js.map +1 -0
  18. package/lib/components/Calendar/Calendar.types.js +10 -0
  19. package/lib/components/Calendar/Calendar.types.js.map +1 -0
  20. package/lib/components/Calendar/defaults.js +2 -0
  21. package/lib/components/Calendar/defaults.js.map +1 -0
  22. package/lib/components/Calendar/index.js +4 -0
  23. package/lib/components/Calendar/index.js.map +1 -0
  24. package/lib/components/Calendar/useCalendarStyles.styles.js +167 -0
  25. package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -0
  26. package/lib/components/CalendarDay/CalendarDay.js +111 -0
  27. package/lib/components/CalendarDay/CalendarDay.js.map +1 -0
  28. package/lib/components/CalendarDay/CalendarDay.types.js +1 -0
  29. package/lib/components/CalendarDay/CalendarDay.types.js.map +1 -0
  30. package/lib/components/CalendarDay/index.js +3 -0
  31. package/lib/components/CalendarDay/index.js.map +1 -0
  32. package/lib/components/CalendarDay/useCalendarDayStyles.styles.js +180 -0
  33. package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
  34. package/lib/components/CalendarDayGrid/CalendarDayGrid.js +168 -0
  35. package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -0
  36. package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js +1 -0
  37. package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -0
  38. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +164 -0
  39. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
  40. package/lib/components/CalendarDayGrid/CalendarGridRow.js +26 -0
  41. package/lib/components/CalendarDayGrid/CalendarGridRow.js.map +1 -0
  42. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js +36 -0
  43. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -0
  44. package/lib/components/CalendarDayGrid/index.js +4 -0
  45. package/lib/components/CalendarDayGrid/index.js.map +1 -0
  46. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +437 -0
  47. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -0
  48. package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js +98 -0
  49. package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -0
  50. package/lib/components/CalendarDayGrid/useWeeks.js +45 -0
  51. package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -0
  52. package/lib/components/CalendarMonth/CalendarMonth.js +263 -0
  53. package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -0
  54. package/lib/components/CalendarMonth/CalendarMonth.types.js +1 -0
  55. package/lib/components/CalendarMonth/CalendarMonth.types.js.map +1 -0
  56. package/lib/components/CalendarMonth/index.js +3 -0
  57. package/lib/components/CalendarMonth/index.js.map +1 -0
  58. package/lib/components/CalendarMonth/useCalendarMonthStyles.js +8 -0
  59. package/lib/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -0
  60. package/lib/components/CalendarPicker/CalendarPicker.types.js +1 -0
  61. package/lib/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
  62. package/lib/components/CalendarPicker/index.js +2 -0
  63. package/lib/components/CalendarPicker/index.js.map +1 -0
  64. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js +371 -0
  65. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -0
  66. package/lib/components/CalendarYear/CalendarYear.js +298 -0
  67. package/lib/components/CalendarYear/CalendarYear.js.map +1 -0
  68. package/lib/components/CalendarYear/CalendarYear.types.js +1 -0
  69. package/lib/components/CalendarYear/CalendarYear.types.js.map +1 -0
  70. package/lib/components/CalendarYear/index.js +3 -0
  71. package/lib/components/CalendarYear/index.js.map +1 -0
  72. package/lib/components/CalendarYear/useCalendarYearStyles.styles.js +10 -0
  73. package/lib/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -0
  74. package/lib/index.js +7 -0
  75. package/lib/index.js.map +1 -0
  76. package/lib/utils/animations.js +97 -0
  77. package/lib/utils/animations.js.map +1 -0
  78. package/lib/utils/constants.js +62 -0
  79. package/lib/utils/constants.js.map +1 -0
  80. package/lib/utils/dateFormatting/dateFormatting.defaults.js +95 -0
  81. package/lib/utils/dateFormatting/dateFormatting.defaults.js.map +1 -0
  82. package/lib/utils/dateFormatting/dateFormatting.types.js +1 -0
  83. package/lib/utils/dateFormatting/dateFormatting.types.js.map +1 -0
  84. package/lib/utils/dateFormatting/index.js +2 -0
  85. package/lib/utils/dateFormatting/index.js.map +1 -0
  86. package/lib/utils/dateGrid/dateGrid.types.js +1 -0
  87. package/lib/utils/dateGrid/dateGrid.types.js.map +1 -0
  88. package/lib/utils/dateGrid/findAvailableDate.js +22 -0
  89. package/lib/utils/dateGrid/findAvailableDate.js.map +1 -0
  90. package/lib/utils/dateGrid/getBoundedDateRange.js +18 -0
  91. package/lib/utils/dateGrid/getBoundedDateRange.js.map +1 -0
  92. package/lib/utils/dateGrid/getDateRangeTypeToUse.js +16 -0
  93. package/lib/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -0
  94. package/lib/utils/dateGrid/getDayGrid.js +71 -0
  95. package/lib/utils/dateGrid/getDayGrid.js.map +1 -0
  96. package/lib/utils/dateGrid/index.js +5 -0
  97. package/lib/utils/dateGrid/index.js.map +1 -0
  98. package/lib/utils/dateGrid/isAfterMaxDate.js +9 -0
  99. package/lib/utils/dateGrid/isAfterMaxDate.js.map +1 -0
  100. package/lib/utils/dateGrid/isBeforeMinDate.js +9 -0
  101. package/lib/utils/dateGrid/isBeforeMinDate.js.map +1 -0
  102. package/lib/utils/dateGrid/isContiguous.js +18 -0
  103. package/lib/utils/dateGrid/isContiguous.js.map +1 -0
  104. package/lib/utils/dateGrid/isRestrictedDate.js +15 -0
  105. package/lib/utils/dateGrid/isRestrictedDate.js.map +1 -0
  106. package/lib/utils/dateMath/dateMath.js +339 -0
  107. package/lib/utils/dateMath/dateMath.js.map +1 -0
  108. package/lib/utils/dateMath/index.js +1 -0
  109. package/lib/utils/dateMath/index.js.map +1 -0
  110. package/lib/utils/dom.js +8 -0
  111. package/lib/utils/dom.js.map +1 -0
  112. package/lib/utils/focus.js +26 -0
  113. package/lib/utils/focus.js.map +1 -0
  114. package/lib/utils/index.js +7 -0
  115. package/lib/utils/index.js.map +1 -0
  116. package/lib-commonjs/Calendar.js +6 -0
  117. package/lib-commonjs/Calendar.js.map +1 -0
  118. package/lib-commonjs/CalendarDay.js +6 -0
  119. package/lib-commonjs/CalendarDay.js.map +1 -0
  120. package/lib-commonjs/CalendarDayGrid.js +6 -0
  121. package/lib-commonjs/CalendarDayGrid.js.map +1 -0
  122. package/lib-commonjs/CalendarMonth.js +6 -0
  123. package/lib-commonjs/CalendarMonth.js.map +1 -0
  124. package/lib-commonjs/CalendarPicker.js +6 -0
  125. package/lib-commonjs/CalendarPicker.js.map +1 -0
  126. package/lib-commonjs/CalendarYear.js +6 -0
  127. package/lib-commonjs/CalendarYear.js.map +1 -0
  128. package/lib-commonjs/components/Calendar/Calendar.js +311 -0
  129. package/lib-commonjs/components/Calendar/Calendar.js.map +1 -0
  130. package/lib-commonjs/components/Calendar/Calendar.types.js +21 -0
  131. package/lib-commonjs/components/Calendar/Calendar.types.js.map +1 -0
  132. package/lib-commonjs/components/Calendar/defaults.js +12 -0
  133. package/lib-commonjs/components/Calendar/defaults.js.map +1 -0
  134. package/lib-commonjs/components/Calendar/index.js +15 -0
  135. package/lib-commonjs/components/Calendar/index.js.map +1 -0
  136. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +339 -0
  137. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -0
  138. package/lib-commonjs/components/CalendarDay/CalendarDay.js +120 -0
  139. package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -0
  140. package/lib-commonjs/components/CalendarDay/CalendarDay.types.js +6 -0
  141. package/lib-commonjs/components/CalendarDay/CalendarDay.types.js.map +1 -0
  142. package/lib-commonjs/components/CalendarDay/index.js +8 -0
  143. package/lib-commonjs/components/CalendarDay/index.js.map +1 -0
  144. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +357 -0
  145. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
  146. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +179 -0
  147. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -0
  148. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js +6 -0
  149. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -0
  150. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +173 -0
  151. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
  152. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +35 -0
  153. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js.map +1 -0
  154. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js +45 -0
  155. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -0
  156. package/lib-commonjs/components/CalendarDayGrid/index.js +22 -0
  157. package/lib-commonjs/components/CalendarDayGrid/index.js.map +1 -0
  158. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +890 -0
  159. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -0
  160. package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js +105 -0
  161. package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -0
  162. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +54 -0
  163. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -0
  164. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +272 -0
  165. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -0
  166. package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js +6 -0
  167. package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js.map +1 -0
  168. package/lib-commonjs/components/CalendarMonth/index.js +8 -0
  169. package/lib-commonjs/components/CalendarMonth/index.js.map +1 -0
  170. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js +14 -0
  171. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -0
  172. package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js +4 -0
  173. package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
  174. package/lib-commonjs/components/CalendarPicker/index.js +7 -0
  175. package/lib-commonjs/components/CalendarPicker/index.js.map +1 -0
  176. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +742 -0
  177. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -0
  178. package/lib-commonjs/components/CalendarYear/CalendarYear.js +307 -0
  179. package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -0
  180. package/lib-commonjs/components/CalendarYear/CalendarYear.types.js +6 -0
  181. package/lib-commonjs/components/CalendarYear/CalendarYear.types.js.map +1 -0
  182. package/lib-commonjs/components/CalendarYear/index.js +8 -0
  183. package/lib-commonjs/components/CalendarYear/index.js.map +1 -0
  184. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +14 -0
  185. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -0
  186. package/lib-commonjs/index.js +154 -0
  187. package/lib-commonjs/index.js.map +1 -0
  188. package/lib-commonjs/utils/animations.js +154 -0
  189. package/lib-commonjs/utils/animations.js.map +1 -0
  190. package/lib-commonjs/utils/constants.js +92 -0
  191. package/lib-commonjs/utils/constants.js.map +1 -0
  192. package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js +116 -0
  193. package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js.map +1 -0
  194. package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js +4 -0
  195. package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js.map +1 -0
  196. package/lib-commonjs/utils/dateFormatting/index.js +7 -0
  197. package/lib-commonjs/utils/dateFormatting/index.js.map +1 -0
  198. package/lib-commonjs/utils/dateGrid/dateGrid.types.js +4 -0
  199. package/lib-commonjs/utils/dateGrid/dateGrid.types.js.map +1 -0
  200. package/lib-commonjs/utils/dateGrid/findAvailableDate.js +29 -0
  201. package/lib-commonjs/utils/dateGrid/findAvailableDate.js.map +1 -0
  202. package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js +23 -0
  203. package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js.map +1 -0
  204. package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js +20 -0
  205. package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -0
  206. package/lib-commonjs/utils/dateGrid/getDayGrid.js +76 -0
  207. package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -0
  208. package/lib-commonjs/utils/dateGrid/index.js +10 -0
  209. package/lib-commonjs/utils/dateGrid/index.js.map +1 -0
  210. package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js +15 -0
  211. package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js.map +1 -0
  212. package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js +15 -0
  213. package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js.map +1 -0
  214. package/lib-commonjs/utils/dateGrid/isContiguous.js +28 -0
  215. package/lib-commonjs/utils/dateGrid/isContiguous.js.map +1 -0
  216. package/lib-commonjs/utils/dateGrid/isRestrictedDate.js +21 -0
  217. package/lib-commonjs/utils/dateGrid/isRestrictedDate.js.map +1 -0
  218. package/lib-commonjs/utils/dateMath/dateMath.js +308 -0
  219. package/lib-commonjs/utils/dateMath/dateMath.js.map +1 -0
  220. package/lib-commonjs/utils/dateMath/index.js +6 -0
  221. package/lib-commonjs/utils/dateMath/index.js.map +1 -0
  222. package/lib-commonjs/utils/dom.js +18 -0
  223. package/lib-commonjs/utils/dom.js.map +1 -0
  224. package/lib-commonjs/utils/focus.js +31 -0
  225. package/lib-commonjs/utils/focus.js.map +1 -0
  226. package/lib-commonjs/utils/index.js +12 -0
  227. package/lib-commonjs/utils/index.js.map +1 -0
  228. package/package.json +15 -10
@@ -0,0 +1 @@
1
+ export * from './components/Calendar/index';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Calendar.ts"],"sourcesContent":["export * from './components/Calendar/index';\n"],"names":[],"mappings":"AAAA,cAAc,8BAA8B"}
@@ -0,0 +1 @@
1
+ export * from './components/CalendarDay/index';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CalendarDay.ts"],"sourcesContent":["export * from './components/CalendarDay/index';\n"],"names":[],"mappings":"AAAA,cAAc,iCAAiC"}
@@ -0,0 +1 @@
1
+ export * from './components/CalendarDayGrid/index';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CalendarDayGrid.ts"],"sourcesContent":["export * from './components/CalendarDayGrid/index';\n"],"names":[],"mappings":"AAAA,cAAc,qCAAqC"}
@@ -0,0 +1 @@
1
+ export * from './components/CalendarMonth/index';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CalendarMonth.ts"],"sourcesContent":["export * from './components/CalendarMonth/index';\n"],"names":[],"mappings":"AAAA,cAAc,mCAAmC"}
@@ -0,0 +1 @@
1
+ export * from './components/CalendarPicker/index';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CalendarPicker.ts"],"sourcesContent":["export * from './components/CalendarPicker/index';\n"],"names":[],"mappings":"AAAA,cAAc,oCAAoC"}
@@ -0,0 +1 @@
1
+ export * from './components/CalendarYear/index';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CalendarYear.ts"],"sourcesContent":["export * from './components/CalendarYear/index';\n"],"names":[],"mappings":"AAAA,cAAc,kCAAkC"}
@@ -0,0 +1,302 @@
1
+ import * as React from 'react';
2
+ import { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';
3
+ import { useControllableState } from '@fluentui/react-utilities';
4
+ import { addMonths, addYears, DateRangeType, DayOfWeek, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, FirstWeekOfYear, focusAsync, getWindow } from '../../utils';
5
+ import { CalendarDay } from '../CalendarDay/CalendarDay';
6
+ import { CalendarMonth } from '../CalendarMonth/CalendarMonth';
7
+ import { useCalendarStyles_unstable } from './useCalendarStyles.styles';
8
+ const MIN_SIZE_FORCE_OVERLAY = 440;
9
+ const defaultWorkWeekDays = [
10
+ DayOfWeek.Monday,
11
+ DayOfWeek.Tuesday,
12
+ DayOfWeek.Wednesday,
13
+ DayOfWeek.Thursday,
14
+ DayOfWeek.Friday
15
+ ];
16
+ function useDateState({ value, today = new Date(), onSelectDate }) {
17
+ /** The currently selected date in the calendar */ const [selectedDate, setSelectedDate] = useControllableState({
18
+ defaultState: today,
19
+ initialState: today,
20
+ state: value
21
+ });
22
+ /** The currently focused date in the day picker, but not necessarily selected */ const [navigatedDay = today, setNavigatedDay] = React.useState(value);
23
+ /** The currently focused date in the month picker, but not necessarily selected */ const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);
24
+ /** If using a controlled value, when that value changes, navigate to that date */ const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);
25
+ if (value && lastSelectedDate.valueOf() !== value.valueOf()) {
26
+ setNavigatedDay(value);
27
+ setNavigatedMonth(value);
28
+ setLastSelectedDate(value);
29
+ }
30
+ const navigateMonth = (date)=>{
31
+ setNavigatedMonth(date);
32
+ };
33
+ const navigateDay = (date)=>{
34
+ setNavigatedMonth(date);
35
+ setNavigatedDay(date);
36
+ };
37
+ const onDateSelected = (date, selectedDateRangeArray)=>{
38
+ setNavigatedMonth(date);
39
+ setNavigatedDay(date);
40
+ setSelectedDate(date);
41
+ onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);
42
+ };
43
+ return [
44
+ selectedDate,
45
+ navigatedDay,
46
+ navigatedMonth,
47
+ onDateSelected,
48
+ navigateDay,
49
+ navigateMonth
50
+ ];
51
+ }
52
+ function useVisibilityState({ isDayPickerVisible: isDayPickerVisibleProp, isMonthPickerVisible: isMonthPickerVisibleProp, showMonthPickerAsOverlay }) {
53
+ /** State used to show/hide month picker */ const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({
54
+ defaultState: false,
55
+ initialState: true,
56
+ state: getShowMonthPickerAsOverlay({
57
+ isDayPickerVisible: isDayPickerVisibleProp,
58
+ showMonthPickerAsOverlay
59
+ }) ? undefined : isMonthPickerVisibleProp
60
+ });
61
+ /** State used to show/hide day picker */ const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({
62
+ defaultState: true,
63
+ initialState: true,
64
+ state: getShowMonthPickerAsOverlay({
65
+ isDayPickerVisible: isDayPickerVisibleProp,
66
+ showMonthPickerAsOverlay
67
+ }) ? undefined : isDayPickerVisibleProp
68
+ });
69
+ const toggleDayMonthPickerVisibility = ()=>{
70
+ setIsMonthPickerVisible(!isMonthPickerVisible);
71
+ setIsDayPickerVisible(!isDayPickerVisible);
72
+ };
73
+ return [
74
+ isMonthPickerVisible,
75
+ isDayPickerVisible,
76
+ toggleDayMonthPickerVisibility
77
+ ];
78
+ }
79
+ function useFocusLogic({ componentRef }, isDayPickerVisible, isMonthPickerVisible) {
80
+ const dayPicker = React.useRef(null);
81
+ const monthPicker = React.useRef(null);
82
+ const focusOnUpdate = React.useRef(false);
83
+ const focus = React.useCallback(()=>{
84
+ if (isDayPickerVisible && dayPicker.current) {
85
+ focusAsync(dayPicker.current);
86
+ } else if (isMonthPickerVisible && monthPicker.current) {
87
+ focusAsync(monthPicker.current);
88
+ }
89
+ }, [
90
+ isDayPickerVisible,
91
+ isMonthPickerVisible
92
+ ]);
93
+ React.useImperativeHandle(componentRef, ()=>({
94
+ focus
95
+ }), [
96
+ focus
97
+ ]);
98
+ React.useEffect(()=>{
99
+ if (focusOnUpdate.current) {
100
+ focus();
101
+ focusOnUpdate.current = false;
102
+ }
103
+ });
104
+ const focusOnNextUpdate = ()=>{
105
+ focusOnUpdate.current = true;
106
+ };
107
+ return [
108
+ dayPicker,
109
+ monthPicker,
110
+ focusOnNextUpdate
111
+ ];
112
+ }
113
+ /**
114
+ * @internal
115
+ */ export const Calendar = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
116
+ const { allFocusable = false, calendarDayProps, calendarMonthProps, className, componentRef, dateRangeType = DateRangeType.Day, dateTimeFormatter = DEFAULT_DATE_FORMATTING, firstDayOfWeek = DayOfWeek.Sunday, firstWeekOfYear = FirstWeekOfYear.FirstDay, highlightCurrentMonth = false, highlightSelectedMonth = false, id, isDayPickerVisible: isDayPickerVisibleProp = true, isMonthPickerVisible: isMonthPickerVisibleProp = true, maxDate, minDate, onDismiss, onSelectDate, restrictedDates, showCloseButton = false, showGoToToday = true, showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false, showSixWeeksByDefault = false, showWeekNumbers = false, strings = DEFAULT_CALENDAR_STRINGS, today = new Date(), value, workWeekDays = defaultWorkWeekDays } = props;
117
+ const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({
118
+ onSelectDate,
119
+ value,
120
+ today
121
+ });
122
+ const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({
123
+ isDayPickerVisible: isDayPickerVisibleProp,
124
+ isMonthPickerVisible: isMonthPickerVisibleProp,
125
+ showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
126
+ });
127
+ const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({
128
+ componentRef
129
+ }, isDayPickerVisible, isMonthPickerVisible);
130
+ const renderGoToTodayButton = ()=>{
131
+ let goTodayEnabled = showGoToToday;
132
+ if (goTodayEnabled && today) {
133
+ goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();
134
+ }
135
+ return showGoToToday && /*#__PURE__*/ React.createElement("button", {
136
+ className: classes.goTodayButton,
137
+ onClick: onGotoToday,
138
+ onKeyDown: onButtonKeyDown(onGotoToday),
139
+ type: "button",
140
+ disabled: !goTodayEnabled
141
+ }, strings.goToToday);
142
+ };
143
+ const onNavigateDayDate = (date, focusOnNavigatedDay)=>{
144
+ navigateDay(date);
145
+ if (focusOnNavigatedDay) {
146
+ focusOnNextUpdate();
147
+ }
148
+ };
149
+ const onNavigateMonthDate = (date, focusOnNavigatedDay)=>{
150
+ if (focusOnNavigatedDay) {
151
+ focusOnNextUpdate();
152
+ }
153
+ if (!focusOnNavigatedDay) {
154
+ navigateMonth(date);
155
+ return;
156
+ }
157
+ if (monthPickerOnly) {
158
+ onDateSelected(date);
159
+ }
160
+ navigateDay(date);
161
+ };
162
+ const onHeaderSelect = getShowMonthPickerAsOverlay({
163
+ isDayPickerVisible: isDayPickerVisibleProp,
164
+ showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
165
+ }) ? ()=>{
166
+ toggleDayMonthPickerVisibility();
167
+ focusOnNextUpdate();
168
+ } : undefined;
169
+ const onGotoToday = ()=>{
170
+ navigateDay(today);
171
+ focusOnNextUpdate();
172
+ };
173
+ const onButtonKeyDown = (callback)=>{
174
+ return (ev)=>{
175
+ switch(ev.key){
176
+ case Enter:
177
+ case Space:
178
+ callback();
179
+ break;
180
+ }
181
+ };
182
+ };
183
+ const onDatePickerPopupKeyDown = (ev)=>{
184
+ switch(ev.key){
185
+ case Enter:
186
+ ev.preventDefault();
187
+ break;
188
+ case Backspace:
189
+ ev.preventDefault();
190
+ break;
191
+ case Escape:
192
+ ev.stopPropagation();
193
+ onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
194
+ break;
195
+ case PageUp:
196
+ if (ev.ctrlKey) {
197
+ // go to next year
198
+ navigateDay(addYears(navigatedDay, 1));
199
+ } else {
200
+ // go to next month
201
+ navigateDay(addMonths(navigatedDay, 1));
202
+ }
203
+ ev.preventDefault();
204
+ break;
205
+ case PageDown:
206
+ if (ev.ctrlKey) {
207
+ // go to previous year
208
+ navigateDay(addYears(navigatedDay, -1));
209
+ } else {
210
+ // go to previous month
211
+ navigateDay(addMonths(navigatedDay, -1));
212
+ }
213
+ ev.preventDefault();
214
+ break;
215
+ default:
216
+ break;
217
+ }
218
+ };
219
+ const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay({
220
+ isDayPickerVisible: isDayPickerVisibleProp,
221
+ showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
222
+ });
223
+ const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;
224
+ const classes = useCalendarStyles_unstable({
225
+ className,
226
+ isDayPickerVisible,
227
+ isMonthPickerVisible,
228
+ showWeekNumbers
229
+ });
230
+ let todayDateString = '';
231
+ let selectedDateString = '';
232
+ if (dateTimeFormatter && strings.todayDateFormatString) {
233
+ todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));
234
+ }
235
+ if (dateTimeFormatter && strings.selectedDateFormatString) {
236
+ const dateStringFormatter = monthPickerOnly ? dateTimeFormatter.formatMonthYear : dateTimeFormatter.formatMonthDayYear;
237
+ selectedDateString = strings.selectedDateFormatString.replace('{0}', dateStringFormatter(selectedDate, strings));
238
+ }
239
+ const selectionAndTodayString = selectedDateString + ', ' + todayDateString;
240
+ return /*#__PURE__*/ React.createElement("div", {
241
+ id: id,
242
+ ref: forwardedRef,
243
+ role: "group",
244
+ "aria-label": selectionAndTodayString,
245
+ className: classes.root,
246
+ onKeyDown: onDatePickerPopupKeyDown
247
+ }, /*#__PURE__*/ React.createElement("div", {
248
+ className: classes.liveRegion,
249
+ "aria-live": "polite",
250
+ "aria-atomic": "true"
251
+ }, /*#__PURE__*/ React.createElement("span", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/ React.createElement(CalendarDay, {
252
+ selectedDate: selectedDate,
253
+ navigatedDate: navigatedDay,
254
+ today: today,
255
+ onSelectDate: onDateSelected,
256
+ // eslint-disable-next-line react/jsx-no-bind
257
+ onNavigateDate: onNavigateDayDate,
258
+ onDismiss: onDismiss,
259
+ firstDayOfWeek: firstDayOfWeek,
260
+ dateRangeType: dateRangeType,
261
+ strings: strings,
262
+ // eslint-disable-next-line react/jsx-no-bind
263
+ onHeaderSelect: onHeaderSelect,
264
+ showWeekNumbers: showWeekNumbers,
265
+ firstWeekOfYear: firstWeekOfYear,
266
+ dateTimeFormatter: dateTimeFormatter,
267
+ showSixWeeksByDefault: showSixWeeksByDefault,
268
+ minDate: minDate,
269
+ maxDate: maxDate,
270
+ restrictedDates: restrictedDates,
271
+ workWeekDays: workWeekDays,
272
+ componentRef: dayPicker,
273
+ showCloseButton: showCloseButton,
274
+ allFocusable: allFocusable,
275
+ ...calendarDayProps
276
+ }), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/ React.createElement("div", {
277
+ className: classes.divider
278
+ }), isMonthPickerVisible ? /*#__PURE__*/ React.createElement("div", {
279
+ className: classes.monthPickerWrapper
280
+ }, /*#__PURE__*/ React.createElement(CalendarMonth, {
281
+ navigatedDate: navigatedMonth,
282
+ selectedDate: navigatedDay,
283
+ strings: strings,
284
+ // eslint-disable-next-line react/jsx-no-bind
285
+ onNavigateDate: onNavigateMonthDate,
286
+ today: today,
287
+ highlightCurrentMonth: highlightCurrentMonth,
288
+ highlightSelectedMonth: highlightSelectedMonth,
289
+ // eslint-disable-next-line react/jsx-no-bind
290
+ onHeaderSelect: onHeaderSelect,
291
+ dateTimeFormatter: dateTimeFormatter,
292
+ minDate: minDate,
293
+ maxDate: maxDate,
294
+ componentRef: monthPicker,
295
+ ...calendarMonthProps
296
+ }), renderGoToTodayButton()) : renderGoToTodayButton());
297
+ });
298
+ Calendar.displayName = 'Calendar';
299
+ function getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }) {
300
+ const win = getWindow();
301
+ return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;
302
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n getWindow,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nimport type { ICalendarDay } from '../CalendarDay/CalendarDay.types';\nimport type { ICalendarMonth } from '../CalendarMonth/CalendarMonth.types';\nimport type { CalendarProps } from './Calendar.types';\n\nconst MIN_SIZE_FORCE_OVERLAY = 440;\n\nconst defaultWorkWeekDays: DayOfWeek[] = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\n\nfunction useDateState({ value, today = new Date(), onSelectDate }: CalendarProps) {\n /** The currently selected date in the calendar */\n const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value,\n });\n\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n\n const navigateMonth = (date: Date) => {\n setNavigatedMonth(date);\n };\n\n const navigateDay = (date: Date) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n\n const onDateSelected = (date: Date, selectedDateRangeArray?: Date[]) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate?.(date, selectedDateRangeArray);\n };\n\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] as const;\n}\n\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay,\n}: CalendarProps) {\n /** State used to show/hide month picker */\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isDayPickerVisibleProp,\n });\n\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] as const;\n}\n\nfunction useFocusLogic({ componentRef }: CalendarProps, isDayPickerVisible: boolean, isMonthPickerVisible: boolean) {\n const dayPicker = React.useRef<ICalendarDay>(null);\n const monthPicker = React.useRef<ICalendarMonth>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [dayPicker, monthPicker, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const Calendar: React.FunctionComponent<CalendarProps> = React.forwardRef<HTMLDivElement, CalendarProps>(\n (props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today,\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic(\n { componentRef },\n isDayPickerVisible,\n isMonthPickerVisible,\n );\n\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n\n return (\n showGoToToday && (\n <button\n className={classes.goTodayButton}\n onClick={onGotoToday}\n onKeyDown={onButtonKeyDown(onGotoToday)}\n type=\"button\"\n disabled={!goTodayEnabled}\n >\n {strings!.goToToday}\n </button>\n )\n );\n };\n\n const onNavigateDayDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n\n const onNavigateMonthDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n\n navigateDay(date);\n };\n\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n })\n ? (): void => {\n toggleDayMonthPickerVisibility();\n\n focusOnNextUpdate();\n }\n : undefined;\n\n const onGotoToday = (): void => {\n navigateDay(today!);\n focusOnNextUpdate();\n };\n\n const onButtonKeyDown = (callback: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement>) => void) => {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n\n const onDatePickerPopupKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n\n case Backspace:\n ev.preventDefault();\n break;\n\n case Escape:\n ev.stopPropagation();\n onDismiss?.();\n break;\n\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers,\n });\n\n let todayDateString: string = '';\n let selectedDateString: string = '';\n if (dateTimeFormatter && strings!.todayDateFormatString) {\n todayDateString = strings!.todayDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(today, strings!),\n );\n }\n if (dateTimeFormatter && strings!.selectedDateFormatString) {\n const dateStringFormatter = monthPickerOnly\n ? dateTimeFormatter.formatMonthYear\n : dateTimeFormatter.formatMonthDayYear;\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateStringFormatter(selectedDate, strings!),\n );\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n role=\"group\"\n aria-label={selectionAndTodayString}\n className={classes.root}\n onKeyDown={onDatePickerPopupKeyDown}\n >\n <div className={classes.liveRegion} aria-live=\"polite\" aria-atomic=\"true\">\n <span>{selectedDateString}</span>\n </div>\n {isDayPickerVisible && (\n <CalendarDay\n selectedDate={selectedDate!}\n navigatedDate={navigatedDay!}\n today={today}\n onSelectDate={onDateSelected}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateDayDate}\n onDismiss={onDismiss}\n firstDayOfWeek={firstDayOfWeek!}\n dateRangeType={dateRangeType!}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n showWeekNumbers={showWeekNumbers}\n firstWeekOfYear={firstWeekOfYear!}\n dateTimeFormatter={dateTimeFormatter!}\n showSixWeeksByDefault={showSixWeeksByDefault}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n workWeekDays={workWeekDays}\n componentRef={dayPicker}\n showCloseButton={showCloseButton}\n allFocusable={allFocusable}\n {...calendarDayProps} // at end of list so consumer's custom functions take precedence\n />\n )}\n {isDayPickerVisible && isMonthPickerVisible && <div className={classes.divider} />}\n {isMonthPickerVisible ? (\n <div className={classes.monthPickerWrapper}>\n <CalendarMonth\n navigatedDate={navigatedMonth}\n selectedDate={navigatedDay}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateMonthDate}\n today={today}\n highlightCurrentMonth={highlightCurrentMonth!}\n highlightSelectedMonth={highlightSelectedMonth!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n componentRef={monthPicker}\n {...calendarMonthProps} // at end of list so consumer's custom functions take precedence\n />\n {renderGoToTodayButton()}\n </div>\n ) : (\n renderGoToTodayButton()\n )}\n </div>\n );\n },\n);\nCalendar.displayName = 'Calendar';\n\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) {\n const win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n"],"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","getWindow","CalendarDay","CalendarMonth","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","Day","dateTimeFormatter","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","button","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","onDatePickerPopupKeyDown","preventDefault","stopPropagation","ctrlKey","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","dateStringFormatter","formatMonthYear","selectionAndTodayString","div","ref","role","aria-label","root","liveRegion","aria-live","aria-atomic","span","navigatedDate","onNavigateDate","divider","monthPickerWrapper","displayName","win","innerWidth"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ export var AnimationDirection;
3
+ (function(AnimationDirection) {
4
+ AnimationDirection[AnimationDirection[/**
5
+ * Grid will transition out and in horizontally
6
+ */ "Horizontal"] = 0] = "Horizontal";
7
+ AnimationDirection[AnimationDirection[/**
8
+ * Grid will transition out and in vertically
9
+ */ "Vertical"] = 1] = "Vertical";
10
+ })(AnimationDirection || (AnimationDirection = {}));
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Calendar.types.ts"],"sourcesContent":["import * as React from 'react';\nimport type { CalendarStrings, DateFormatting, DateRangeType, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport type { CalendarDayProps } from '../CalendarDay/CalendarDay.types';\nimport type { CalendarMonthProps } from '../CalendarMonth/CalendarMonth.types';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface ICalendar {\n /** Sets focus to the selected date. */\n focus: () => void;\n}\n\nexport interface CalendarProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * Optional callback to access the ICalendar interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: React.RefObject<ICalendar>;\n\n /**\n * Customized props for the calendar day\n */\n calendarDayProps?: Partial<CalendarDayProps>;\n\n /**\n * Customized props for the calendar month\n */\n calendarMonthProps?: Partial<CalendarMonthProps>;\n\n /**\n * Optional class name to add to the root element.\n */\n className?: string;\n\n /**\n * Callback for when a date is selected\n * @param date - The date the user selected\n * @param selectedDateRangeArray - The resultant list of dates that are selected based on the date range type set\n * for the component.\n */\n onSelectDate?: (date: Date, selectedDateRangeArray?: Date[]) => void;\n\n /**\n * Callback for when calendar is closed\n */\n onDismiss?: () => void;\n\n /**\n * ID for the calendar\n */\n id?: string;\n\n /**\n * Default value of the Calendar, if any\n */\n value?: Date;\n\n /**\n * Value of today. If unspecified, current time in client machine will be used.\n */\n today?: Date;\n\n /**\n * The date range type indicating how many days should be selected as the user\n * selects days\n * @default DateRangeType.Day\n */\n dateRangeType?: DateRangeType;\n\n /**\n * The first day of the week for your locale.\n * @default DayOfWeek.Sunday\n */\n firstDayOfWeek?: DayOfWeek;\n\n /**\n * Defines when the first week of the year should start.\n * @default FirstWeekOfYear.FirstDay\n */\n firstWeekOfYear?: FirstWeekOfYear;\n\n /**\n * Whether the month picker is shown beside the day picker or hidden.\n * @default true\n */\n isMonthPickerVisible?: boolean;\n\n /**\n * Whether the day picker is shown beside the month picker or hidden.\n * @default true\n */\n isDayPickerVisible?: boolean;\n\n /**\n * Show month picker on top of date picker when visible.\n * @default false\n */\n showMonthPickerAsOverlay?: boolean;\n\n /**\n * Whether the \"Go to today\" link should be shown or not\n */\n showGoToToday?: boolean;\n\n /**\n * Whether the calendar should show the week number (weeks 1 to 53) before each week row\n * @default false\n */\n showWeekNumbers?: boolean;\n\n /**\n * Localized strings to use in the Calendar\n */\n strings?: CalendarStrings;\n\n /**\n * Apply additional formatting to dates, for example localized date formatting.\n */\n dateTimeFormatter?: DateFormatting;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date earlier than this value.\n */\n minDate?: Date;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date later than this value.\n */\n maxDate?: Date;\n\n /**\n * If set the Calendar will not allow selection of dates in this array.\n */\n restrictedDates?: Date[];\n\n /**\n * Whether the calendar should show 6 weeks by default.\n * @default false\n */\n showSixWeeksByDefault?: boolean;\n\n /**\n * The days that are selectable when `dateRangeType` is `WorkWeek`.\n * If `dateRangeType` is not `WorkWeek` this property does nothing.\n * @default [Monday,Tuesday,Wednesday,Thursday,Friday]\n */\n workWeekDays?: DayOfWeek[];\n\n /**\n * Whether the month picker should highlight the current month\n * @default false\n */\n highlightCurrentMonth?: boolean;\n\n /**\n * Whether the month picker should highlight the selected month\n * @default false\n */\n highlightSelectedMonth?: boolean;\n\n /**\n * Whether the close button should be shown or not\n * @default false\n */\n showCloseButton?: boolean;\n\n /**\n * Allows all dates and buttons to be focused, including disabled ones\n * @default false\n */\n allFocusable?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarStyleProps {\n /**\n * Custom CSS class for the calendar.\n */\n className?: string;\n\n /**\n * Whether the month picker is visible\n */\n isMonthPickerVisible?: boolean;\n\n /**\n * Whether the day picker is visible\n */\n isDayPickerVisible?: boolean;\n\n /**\n * Whether only month picker is shown\n */\n monthPickerOnly?: boolean;\n\n /**\n * Whether the month picker is overlaid on the day picker\n */\n showMonthPickerAsOverlay?: boolean;\n\n /**\n * @deprecated Use `overlaidWithButton`\n */\n overlayedWithButton?: boolean;\n\n /**\n * Whether the month and day picker are overlaid and the 'go to today' button is shown\n */\n overlaidWithButton?: boolean;\n\n /**\n * Whether the go to today button is shown\n */\n showGoToToday?: boolean;\n\n /**\n * Whether the week numbers are shown\n */\n showWeekNumbers?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarStyles {\n /**\n * Style for the root element.\n */\n root: string;\n\n divider: string;\n\n goTodayButton: string;\n\n monthPickerWrapper: string;\n\n liveRegion: string;\n}\n\nexport enum AnimationDirection {\n /**\n * Grid will transition out and in horizontally\n */\n Horizontal,\n\n /**\n * Grid will transition out and in vertically\n */\n Vertical,\n}\n"],"names":["React","AnimationDirection","Horizontal","Vertical"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;WAgPxB;UAAKC,kBAAkB;IAAlBA,mBAAAA,mBACV;;GAEC,GACDC,gBAAAA,KAAAA;IAJUD,mBAAAA,mBAMV;;GAEC,GACDE,cAAAA,KAAAA;GATUF,uBAAAA"}
@@ -0,0 +1,2 @@
1
+ import { DEFAULT_CALENDAR_STRINGS } from '../../utils';
2
+ export const defaultCalendarStrings = DEFAULT_CALENDAR_STRINGS;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["defaults.ts"],"sourcesContent":["import { DEFAULT_CALENDAR_STRINGS } from '../../utils';\nimport type { CalendarStrings } from '../../utils';\n\nexport const defaultCalendarStrings: CalendarStrings = DEFAULT_CALENDAR_STRINGS;\n"],"names":["DEFAULT_CALENDAR_STRINGS","defaultCalendarStrings"],"mappings":"AAAA,SAASA,wBAAwB,QAAQ,cAAc;AAGvD,OAAO,MAAMC,yBAA0CD,yBAAyB"}
@@ -0,0 +1,4 @@
1
+ export * from './Calendar';
2
+ export * from './Calendar.types';
3
+ export * from './useCalendarStyles.styles';
4
+ export { defaultCalendarStrings } from './defaults';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './Calendar';\nexport * from './Calendar.types';\nexport * from './useCalendarStyles.styles';\nexport { defaultCalendarStrings } from './defaults';\n"],"names":["defaultCalendarStrings"],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,mBAAmB;AACjC,cAAc,6BAA6B;AAC3C,SAASA,sBAAsB,QAAQ,aAAa"}
@@ -0,0 +1,167 @@
1
+ import { tokens } from '@fluentui/react-theme';
2
+ import { __styles, mergeClasses, shorthands } from '@griffel/react';
3
+ /**
4
+ * @internal
5
+ */
6
+ export const calendarClassNames = {
7
+ root: 'fui-Calendar',
8
+ divider: 'fui-Calendar__divider',
9
+ goTodayButton: 'fui-Calendar__goTodayButton',
10
+ monthPickerWrapper: 'fui-Calendar__monthPickerWrapper',
11
+ liveRegion: 'fui-Calendar__liveRegion'
12
+ };
13
+ const useRootStyles = /*#__PURE__*/__styles({
14
+ base: {
15
+ mc9l5x: "f22iagw",
16
+ a9b677: "f13dwy2t"
17
+ },
18
+ normalize: {
19
+ E5pizo: "f1couhl3",
20
+ B7ck84d: "f1ewtqcl",
21
+ B6of3ja: "f1hu3pq6",
22
+ t21cq0: ["f11qmguv", "f1tyq0we"],
23
+ jrapky: "f19f4twv",
24
+ Frg6f3: ["f1tyq0we", "f11qmguv"],
25
+ z8tnut: "f1g0x7ka",
26
+ z189sj: ["fhxju0i", "f1cnd47f"],
27
+ Byoj8tv: "f1qch9an",
28
+ uwmqm3: ["f1cnd47f", "fhxju0i"]
29
+ },
30
+ monthPickerNotVisible: {
31
+ Beiy3e4: "f1vx9l62"
32
+ },
33
+ dayAndMonthPickersVisible: {
34
+ a9b677: "fcy5b15"
35
+ },
36
+ dayPickerVisibleAndWeekNumbersShown: {
37
+ a9b677: "fhsg0in"
38
+ },
39
+ dayAndMonthPickersVisibleAndWeekNumbersShown: {
40
+ a9b677: "fcarq7f"
41
+ }
42
+ }, {
43
+ d: [".f22iagw{display:flex;}", ".f13dwy2t{width:220px;}", ".f1couhl3{box-shadow:none;}", ".f1ewtqcl{box-sizing:border-box;}", ".f1hu3pq6{margin-top:0;}", ".f11qmguv{margin-right:0;}", ".f1tyq0we{margin-left:0;}", ".f19f4twv{margin-bottom:0;}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", ".f1vx9l62{flex-direction:column;}", ".fcy5b15{width:440px;}", ".fhsg0in{width:250px;}", ".fcarq7f{width:470px;}"]
44
+ });
45
+ const useDividerStyles = /*#__PURE__*/__styles({
46
+ base: {
47
+ g2u3we: "f68mrw8",
48
+ h3c5rm: ["f7pw515", "fw35ms5"],
49
+ B9xav0g: "frpde29",
50
+ zhjwy3: ["fw35ms5", "f7pw515"],
51
+ Bekrc4i: ["f1hqa2wf", "finvdd3"],
52
+ vrafjx: ["fcdblym", "fjik90z"],
53
+ Bhzewxz: "f15twtuk"
54
+ }
55
+ }, {
56
+ d: [".f68mrw8{border-top-color:var(--colorNeutralStroke2);}", ".f7pw515{border-right-color:var(--colorNeutralStroke2);}", ".fw35ms5{border-left-color:var(--colorNeutralStroke2);}", ".frpde29{border-bottom-color:var(--colorNeutralStroke2);}", ".f1hqa2wf{border-right-width:1px;}", ".finvdd3{border-left-width:1px;}", ".fcdblym{border-right-style:solid;}", ".fjik90z{border-left-style:solid;}", ".f15twtuk{top:0;}"]
57
+ });
58
+ const useMonthPickerWrapperStyles = /*#__PURE__*/__styles({
59
+ base: {
60
+ mc9l5x: "f22iagw",
61
+ Beiy3e4: "f1vx9l62"
62
+ }
63
+ }, {
64
+ d: [".f22iagw{display:flex;}", ".f1vx9l62{flex-direction:column;}"]
65
+ });
66
+ const useGoTodayButtonStyles = /*#__PURE__*/__styles({
67
+ base: {
68
+ qb2dma: "fpydfdc",
69
+ De3pzq: "f1c21dwh",
70
+ icvyot: "f1ern45e",
71
+ vrafjx: ["f1n71otn", "f1deefiw"],
72
+ oivjwe: "f1h8hb77",
73
+ wvpqe5: ["f1deefiw", "f1n71otn"],
74
+ B5kzvoi: "f1yab3r1",
75
+ B7ck84d: "f1e4lqlz",
76
+ sj55zd: "f19n0e5",
77
+ Bahqtrf: "f1mo0ibp",
78
+ Be2twd7: "fy9rknc",
79
+ Bqenvij: "f1tvdnth",
80
+ Bg96gwp: "fpfng1i",
81
+ t21cq0: ["f17vyym1", "fb5scp"],
82
+ B6of3ja: "f4gg0ds",
83
+ B68tc82: "f1mtd64y",
84
+ Bmxbyg5: "f1y7q3j9",
85
+ z8tnut: "f1g0x7ka",
86
+ z189sj: ["f8wuabp", "fycuoez"],
87
+ Byoj8tv: "f1qch9an",
88
+ uwmqm3: ["fycuoez", "f8wuabp"],
89
+ seuwu7: "fvy6vk6",
90
+ Jwef8y: "f9ql6rf",
91
+ Bi91k9c: "f1f1pb61",
92
+ eoavqd: "f8491dx",
93
+ Bv57zgv: "fq3vqfz",
94
+ Bnosqey: "f7lk14",
95
+ Bx7pl5v: "f1awoz4y",
96
+ B23s7e0: ["f1q1rlij", "f1txf70x"],
97
+ knvgbf: ["f1txf70x", "f1q1rlij"],
98
+ B3ons6i: ["fduk3fc", "fw6hbk1"],
99
+ Be8uuq8: ["fw6hbk1", "fduk3fc"],
100
+ B2d53fq: "fc9d3oc",
101
+ Dyrjrp: "f1cqwcg4",
102
+ Be90el1: "fmjaa5u"
103
+ }
104
+ }, {
105
+ d: [".fpydfdc{align-self:flex-end;}", ".f1c21dwh{background-color:var(--colorTransparentBackground);}", ".f1ern45e{border-top-style:none;}", ".f1n71otn{border-right-style:none;}", ".f1deefiw{border-left-style:none;}", ".f1h8hb77{border-bottom-style:none;}", ".f1yab3r1{bottom:0;}", ".f1e4lqlz{box-sizing:content-box;}", ".f19n0e5{color:var(--colorNeutralForeground1);}", ".f1mo0ibp{font-family:inherit;}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".f1tvdnth{height:30px;}", ".fpfng1i{line-height:30px;}", ".f17vyym1{margin-right:16px;}", ".fb5scp{margin-left:16px;}", ".f4gg0ds{margin-top:3px;}", ".f1mtd64y{overflow-x:visible;}", ".f1y7q3j9{overflow-y:visible;}", ".f1g0x7ka{padding-top:0;}", ".f8wuabp{padding-right:4px;}", ".fycuoez{padding-left:4px;}", ".f1qch9an{padding-bottom:0;}", ".fvy6vk6 div{font-size:var(--fontSizeBase200);}", ".f1cqwcg4:disabled{color:var(--colorNeutralForegroundDisabled);}", ".fmjaa5u:disabled{pointer-events:none;}"],
106
+ h: [".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}", ".f1f1pb61:hover{color:var(--colorBrandForeground1);}", ".f8491dx:hover{cursor:pointer;}", ".fc9d3oc:hover:active{color:var(--colorBrandForeground2);}"],
107
+ m: [["@media (forced-colors: active){.fq3vqfz:hover{outline-width:var(--strokeWidthThin);}}", {
108
+ m: "(forced-colors: active)"
109
+ }], ["@media (forced-colors: active){.f7lk14:hover{outline-style:solid;}}", {
110
+ m: "(forced-colors: active)"
111
+ }], ["@media (forced-colors: active){.f1awoz4y:hover{outline-color:ButtonText;}}", {
112
+ m: "(forced-colors: active)"
113
+ }], ["@media (forced-colors: active){.f1q1rlij:hover{border-bottom-right-radius:var(--borderRadiusSmall);}.f1txf70x:hover{border-bottom-left-radius:var(--borderRadiusSmall);}}", {
114
+ m: "(forced-colors: active)"
115
+ }], ["@media (forced-colors: active){.fduk3fc:hover{border-top-right-radius:var(--borderRadiusSmall);}.fw6hbk1:hover{border-top-left-radius:var(--borderRadiusSmall);}}", {
116
+ m: "(forced-colors: active)"
117
+ }]]
118
+ });
119
+ const useLiveRegionStyles = /*#__PURE__*/__styles({
120
+ base: {
121
+ B4j52fo: "fre7gi1",
122
+ Bekrc4i: ["f1358rze", "f1rvrf73"],
123
+ Bn0qgzm: "fqdk4by",
124
+ ibv6hh: ["f1rvrf73", "f1358rze"],
125
+ Bqenvij: "f1mpe4l3",
126
+ B6of3ja: "fkrn0sh",
127
+ t21cq0: ["f179hvsh", "f1538868"],
128
+ jrapky: "fmxx68s",
129
+ Frg6f3: ["f1538868", "f179hvsh"],
130
+ B68tc82: "f1p9o1ba",
131
+ Bmxbyg5: "f1sil6mw",
132
+ z8tnut: "f1g0x7ka",
133
+ z189sj: ["fhxju0i", "f1cnd47f"],
134
+ Byoj8tv: "f1qch9an",
135
+ uwmqm3: ["f1cnd47f", "fhxju0i"],
136
+ qhf8xq: "f1euv43f",
137
+ a9b677: "frkrog8"
138
+ }
139
+ }, {
140
+ d: [".fre7gi1{border-top-width:0;}", ".f1358rze{border-right-width:0;}", ".f1rvrf73{border-left-width:0;}", ".fqdk4by{border-bottom-width:0;}", ".f1mpe4l3{height:1px;}", ".fkrn0sh{margin-top:-1px;}", ".f179hvsh{margin-right:-1px;}", ".f1538868{margin-left:-1px;}", ".fmxx68s{margin-bottom:-1px;}", ".f1p9o1ba{overflow-x:hidden;}", ".f1sil6mw{overflow-y:hidden;}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", ".f1euv43f{position:absolute;}", ".frkrog8{width:1px;}"]
141
+ });
142
+ /**
143
+ * @internal
144
+ *
145
+ * Apply styling to the Calendar slots based on the state
146
+ */
147
+ export const useCalendarStyles_unstable = props => {
148
+ const rootStyles = useRootStyles();
149
+ const dividerStyles = useDividerStyles();
150
+ const monthPickerWrapperStyles = useMonthPickerWrapperStyles();
151
+ const goTodayButtonStyles = useGoTodayButtonStyles();
152
+ const liveRegionStyles = useLiveRegionStyles();
153
+ const {
154
+ className,
155
+ isDayPickerVisible,
156
+ isMonthPickerVisible,
157
+ showWeekNumbers
158
+ } = props;
159
+ return {
160
+ root: mergeClasses(calendarClassNames.root, rootStyles.base, rootStyles.normalize, !isMonthPickerVisible && rootStyles.monthPickerNotVisible, isDayPickerVisible && isMonthPickerVisible && !showWeekNumbers && rootStyles.dayAndMonthPickersVisible, isDayPickerVisible && !isMonthPickerVisible && showWeekNumbers && rootStyles.dayPickerVisibleAndWeekNumbersShown, isDayPickerVisible && isMonthPickerVisible && showWeekNumbers && rootStyles.dayAndMonthPickersVisibleAndWeekNumbersShown, className),
161
+ divider: mergeClasses(calendarClassNames.divider, dividerStyles.base),
162
+ monthPickerWrapper: mergeClasses(calendarClassNames.monthPickerWrapper, monthPickerWrapperStyles.base),
163
+ goTodayButton: mergeClasses(calendarClassNames.goTodayButton, goTodayButtonStyles.base),
164
+ liveRegion: mergeClasses(calendarClassNames.liveRegion, liveRegionStyles.base)
165
+ };
166
+ };
167
+ //# sourceMappingURL=useCalendarStyles.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["tokens","__styles","mergeClasses","shorthands","calendarClassNames","root","divider","goTodayButton","monthPickerWrapper","liveRegion","useRootStyles","base","mc9l5x","a9b677","normalize","E5pizo","B7ck84d","B6of3ja","t21cq0","jrapky","Frg6f3","z8tnut","z189sj","Byoj8tv","uwmqm3","monthPickerNotVisible","Beiy3e4","dayAndMonthPickersVisible","dayPickerVisibleAndWeekNumbersShown","dayAndMonthPickersVisibleAndWeekNumbersShown","d","useDividerStyles","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bekrc4i","vrafjx","Bhzewxz","useMonthPickerWrapperStyles","useGoTodayButtonStyles","qb2dma","De3pzq","icvyot","oivjwe","wvpqe5","B5kzvoi","sj55zd","Bahqtrf","Be2twd7","Bqenvij","Bg96gwp","B68tc82","Bmxbyg5","seuwu7","Jwef8y","Bi91k9c","eoavqd","Bv57zgv","Bnosqey","Bx7pl5v","B23s7e0","knvgbf","B3ons6i","Be8uuq8","B2d53fq","Dyrjrp","Be90el1","h","m","useLiveRegionStyles","B4j52fo","Bn0qgzm","ibv6hh","qhf8xq","useCalendarStyles_unstable","props","rootStyles","dividerStyles","monthPickerWrapperStyles","goTodayButtonStyles","liveRegionStyles","className","isDayPickerVisible","isMonthPickerVisible","showWeekNumbers"],"sources":["useCalendarStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\n/**\n * @internal\n */ export const calendarClassNames = {\n root: 'fui-Calendar',\n divider: 'fui-Calendar__divider',\n goTodayButton: 'fui-Calendar__goTodayButton',\n monthPickerWrapper: 'fui-Calendar__monthPickerWrapper',\n liveRegion: 'fui-Calendar__liveRegion'\n};\nconst useRootStyles = makeStyles({\n base: {\n display: 'flex',\n width: '220px'\n },\n normalize: {\n boxShadow: 'none',\n boxSizing: 'border-box',\n ...shorthands.margin(0),\n ...shorthands.padding(0)\n },\n monthPickerNotVisible: {\n flexDirection: 'column'\n },\n dayAndMonthPickersVisible: {\n width: '440px'\n },\n dayPickerVisibleAndWeekNumbersShown: {\n width: '250px'\n },\n dayAndMonthPickersVisibleAndWeekNumbersShown: {\n width: '470px'\n }\n});\nconst useDividerStyles = makeStyles({\n base: {\n ...shorthands.borderColor(tokens.colorNeutralStroke2),\n ...shorthands.borderRight('1px', 'solid'),\n top: 0\n }\n});\nconst useMonthPickerWrapperStyles = makeStyles({\n base: {\n display: 'flex',\n flexDirection: 'column'\n }\n});\nconst useGoTodayButtonStyles = makeStyles({\n base: {\n alignSelf: 'flex-end',\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n bottom: 0,\n boxSizing: 'content-box',\n color: tokens.colorNeutralForeground1,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '30px',\n lineHeight: '30px',\n marginRight: '16px',\n marginTop: '3px',\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0, '4px'),\n '& div': {\n fontSize: tokens.fontSizeBase200\n },\n '&:hover': {\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorBrandForeground1,\n cursor: 'pointer',\n '@media (forced-colors: active)': {\n ...shorthands.outline(tokens.strokeWidthThin, 'solid', 'ButtonText'),\n ...shorthands.borderRadius(tokens.borderRadiusSmall)\n }\n },\n '&:hover:active': {\n color: tokens.colorBrandForeground2\n },\n '&:disabled': {\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none'\n }\n }\n});\nconst useLiveRegionStyles = makeStyles({\n base: {\n ...shorthands.border(0),\n height: '1px',\n ...shorthands.margin('-1px'),\n ...shorthands.overflow('hidden'),\n ...shorthands.padding(0),\n position: 'absolute',\n width: '1px'\n }\n});\n/**\n * @internal\n *\n * Apply styling to the Calendar slots based on the state\n */ export const useCalendarStyles_unstable = (props)=>{\n const rootStyles = useRootStyles();\n const dividerStyles = useDividerStyles();\n const monthPickerWrapperStyles = useMonthPickerWrapperStyles();\n const goTodayButtonStyles = useGoTodayButtonStyles();\n const liveRegionStyles = useLiveRegionStyles();\n const { className, isDayPickerVisible, isMonthPickerVisible, showWeekNumbers } = props;\n return {\n root: mergeClasses(calendarClassNames.root, rootStyles.base, rootStyles.normalize, !isMonthPickerVisible && rootStyles.monthPickerNotVisible, isDayPickerVisible && isMonthPickerVisible && !showWeekNumbers && rootStyles.dayAndMonthPickersVisible, isDayPickerVisible && !isMonthPickerVisible && showWeekNumbers && rootStyles.dayPickerVisibleAndWeekNumbersShown, isDayPickerVisible && isMonthPickerVisible && showWeekNumbers && rootStyles.dayAndMonthPickersVisibleAndWeekNumbersShown, className),\n divider: mergeClasses(calendarClassNames.divider, dividerStyles.base),\n monthPickerWrapper: mergeClasses(calendarClassNames.monthPickerWrapper, monthPickerWrapperStyles.base),\n goTodayButton: mergeClasses(calendarClassNames.goTodayButton, goTodayButtonStyles.base),\n liveRegion: mergeClasses(calendarClassNames.liveRegion, liveRegionStyles.base)\n };\n};\n"],"mappings":"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"}