@fluentui/react-calendar-compat 0.3.2 → 0.3.4
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/CHANGELOG.md +21 -2
- package/lib/components/Calendar/calendarNavigationIcons.js.map +1 -1
- package/lib/components/Calendar/useCalendarStyles.styles.raw.js +115 -0
- package/lib/components/Calendar/useCalendarStyles.styles.raw.js.map +1 -0
- package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.raw.js +142 -0
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.raw.js.map +1 -0
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js +395 -0
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js.map +1 -0
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.raw.js +92 -0
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.raw.js.map +1 -0
- package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js +9 -0
- package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js.map +1 -0
- package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js +291 -0
- package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js.map +1 -0
- package/lib/components/CalendarYear/useCalendarYearStyles.styles.raw.js +9 -0
- package/lib/components/CalendarYear/useCalendarYearStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/Calendar/calendarNavigationIcons.js.map +1 -1
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.raw.js +127 -0
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.raw.js +154 -0
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js +408 -0
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.raw.js +106 -0
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js +15 -0
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js +303 -0
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.raw.js +15 -0
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.raw.js.map +1 -0
- package/package.json +2 -2
@@ -0,0 +1,291 @@
|
|
1
|
+
import { tokens } from '@fluentui/react-theme';
|
2
|
+
import { makeStyles, mergeClasses, shorthands } from '@griffel/react';
|
3
|
+
import { DURATION_2, DURATION_3, EASING_FUNCTION_1, EASING_FUNCTION_2, FADE_IN, SLIDE_DOWN_IN20, SLIDE_LEFT_IN20, SLIDE_RIGHT_IN20, SLIDE_UP_IN20 } from '../../utils/animations';
|
4
|
+
import { AnimationDirection } from '../Calendar/Calendar.types';
|
5
|
+
/**
|
6
|
+
* @internal
|
7
|
+
*/ export const calendarPickerClassNames = {
|
8
|
+
root: 'fui-CalendarPicker',
|
9
|
+
headerContainer: 'fui-CalendarPicker__headerContainer',
|
10
|
+
currentItemButton: 'fui-CalendarPicker__currentItemButton',
|
11
|
+
navigationButtonsContainer: 'fui-CalendarPicker__navigationButtonsContainer',
|
12
|
+
navigationButton: 'fui-CalendarPicker__navigationButton',
|
13
|
+
gridContainer: 'fui-CalendarPicker__gridContainer',
|
14
|
+
buttonRow: 'fui-CalendarPicker__buttonRow',
|
15
|
+
itemButton: 'fui-CalendarPicker__itemButton',
|
16
|
+
current: 'fui-CalendarPicker__current',
|
17
|
+
selected: 'fui-CalendarPicker__selected',
|
18
|
+
disabled: 'fui-CalendarPicker__disabled'
|
19
|
+
};
|
20
|
+
const useRootStyles = makeStyles({
|
21
|
+
base: {
|
22
|
+
boxSizing: 'content-box',
|
23
|
+
overflow: 'hidden',
|
24
|
+
padding: '12px',
|
25
|
+
width: '196px'
|
26
|
+
},
|
27
|
+
normalize: {
|
28
|
+
boxShadow: 'none',
|
29
|
+
boxSizing: 'border-box',
|
30
|
+
margin: '0',
|
31
|
+
padding: '0'
|
32
|
+
}
|
33
|
+
});
|
34
|
+
const useHeaderContainerStyles = makeStyles({
|
35
|
+
base: {
|
36
|
+
display: 'flex'
|
37
|
+
}
|
38
|
+
});
|
39
|
+
const useCurrentItemButtonStyles = makeStyles({
|
40
|
+
base: {
|
41
|
+
backgroundColor: tokens.colorTransparentBackground,
|
42
|
+
...shorthands.borderStyle('none'),
|
43
|
+
borderRadius: tokens.borderRadiusMedium,
|
44
|
+
color: 'inherit',
|
45
|
+
flexGrow: 1,
|
46
|
+
fontFamily: 'inherit',
|
47
|
+
fontSize: tokens.fontSizeBase300,
|
48
|
+
fontWeight: tokens.fontWeightSemibold,
|
49
|
+
overflow: 'visible',
|
50
|
+
padding: '0 4px 0 10px',
|
51
|
+
textAlign: 'left'
|
52
|
+
},
|
53
|
+
animation: {
|
54
|
+
animationDuration: DURATION_2,
|
55
|
+
animationFillMode: 'both',
|
56
|
+
animationName: FADE_IN,
|
57
|
+
animationTimingFunction: EASING_FUNCTION_2
|
58
|
+
},
|
59
|
+
hasHeaderClickCallback: {
|
60
|
+
// If this is updated, make sure to update headerIsClickable in useCalendarDayStyles as well
|
61
|
+
'&:hover': {
|
62
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedHover,
|
63
|
+
color: tokens.colorBrandForegroundOnLightHover,
|
64
|
+
cursor: 'pointer',
|
65
|
+
outline: `1px solid ${tokens.colorTransparentStroke}`
|
66
|
+
},
|
67
|
+
'&:hover:active': {
|
68
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedPressed,
|
69
|
+
color: tokens.colorBrandForegroundOnLightPressed,
|
70
|
+
cursor: 'pointer',
|
71
|
+
outline: `1px solid ${tokens.colorTransparentStroke}`
|
72
|
+
}
|
73
|
+
}
|
74
|
+
});
|
75
|
+
const useNavigationButtonsContainerStyles = makeStyles({
|
76
|
+
base: {
|
77
|
+
alignItems: 'center',
|
78
|
+
display: 'flex'
|
79
|
+
}
|
80
|
+
});
|
81
|
+
const useNavigationButtonStyles = makeStyles({
|
82
|
+
base: {
|
83
|
+
backgroundColor: tokens.colorTransparentBackground,
|
84
|
+
border: 'none',
|
85
|
+
borderRadius: tokens.borderRadiusMedium,
|
86
|
+
color: tokens.colorNeutralForeground1,
|
87
|
+
display: 'block',
|
88
|
+
fontFamily: 'inherit',
|
89
|
+
fontSize: tokens.fontSizeBase200,
|
90
|
+
height: '28px',
|
91
|
+
lineHeight: '28px',
|
92
|
+
minHeight: '28px',
|
93
|
+
minWidth: '28px',
|
94
|
+
overflow: 'visible',
|
95
|
+
padding: '0',
|
96
|
+
position: 'relative',
|
97
|
+
textAlign: 'center',
|
98
|
+
width: '28px',
|
99
|
+
'&:hover': {
|
100
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedHover,
|
101
|
+
color: tokens.colorBrandForegroundOnLightHover,
|
102
|
+
cursor: 'pointer',
|
103
|
+
outline: `1px solid ${tokens.colorTransparentStroke}`
|
104
|
+
},
|
105
|
+
'&:hover:active': {
|
106
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedPressed,
|
107
|
+
color: tokens.colorBrandForegroundOnLightPressed
|
108
|
+
}
|
109
|
+
}
|
110
|
+
});
|
111
|
+
const useGridContainerStyles = makeStyles({
|
112
|
+
base: {
|
113
|
+
marginTop: '4px'
|
114
|
+
}
|
115
|
+
});
|
116
|
+
const useButtonRowStyles = makeStyles({
|
117
|
+
base: {
|
118
|
+
marginBottom: '16px',
|
119
|
+
'&:last-of-type': {
|
120
|
+
marginBottom: 0
|
121
|
+
}
|
122
|
+
},
|
123
|
+
animation: {
|
124
|
+
animationDuration: DURATION_3,
|
125
|
+
animationFillMode: 'both',
|
126
|
+
animationTimingFunction: EASING_FUNCTION_1
|
127
|
+
},
|
128
|
+
horizontalBackward: {
|
129
|
+
animationName: [
|
130
|
+
FADE_IN,
|
131
|
+
SLIDE_RIGHT_IN20
|
132
|
+
]
|
133
|
+
},
|
134
|
+
horizontalForward: {
|
135
|
+
animationName: [
|
136
|
+
FADE_IN,
|
137
|
+
SLIDE_LEFT_IN20
|
138
|
+
]
|
139
|
+
},
|
140
|
+
verticalBackward: {
|
141
|
+
animationName: [
|
142
|
+
FADE_IN,
|
143
|
+
SLIDE_DOWN_IN20
|
144
|
+
]
|
145
|
+
},
|
146
|
+
verticalForward: {
|
147
|
+
animationName: [
|
148
|
+
FADE_IN,
|
149
|
+
SLIDE_UP_IN20
|
150
|
+
]
|
151
|
+
}
|
152
|
+
});
|
153
|
+
const useItemButtonStyles = makeStyles({
|
154
|
+
base: {
|
155
|
+
backgroundColor: tokens.colorTransparentBackground,
|
156
|
+
border: 'none',
|
157
|
+
borderRadius: tokens.borderRadiusMedium,
|
158
|
+
color: tokens.colorNeutralForeground3,
|
159
|
+
fontFamily: 'inherit',
|
160
|
+
fontSize: tokens.fontSizeBase200,
|
161
|
+
height: '40px',
|
162
|
+
lineHeight: '40px',
|
163
|
+
minHeight: '40px',
|
164
|
+
minWidth: '40px',
|
165
|
+
margin: '0 12px 0 0',
|
166
|
+
overflow: 'visible',
|
167
|
+
padding: '0',
|
168
|
+
width: '40px',
|
169
|
+
'&:nth-child(4n + 4)': {
|
170
|
+
marginRight: 0
|
171
|
+
},
|
172
|
+
'&:nth-child(n + 9)': {
|
173
|
+
marginBottom: 0
|
174
|
+
},
|
175
|
+
'& div': {
|
176
|
+
fontWeight: tokens.fontWeightRegular
|
177
|
+
},
|
178
|
+
'&:hover': {
|
179
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedHover,
|
180
|
+
color: tokens.colorNeutralForeground1Static,
|
181
|
+
cursor: 'pointer',
|
182
|
+
outline: `1px solid ${tokens.colorTransparentStroke}`,
|
183
|
+
'@media (forced-colors: active)': {
|
184
|
+
backgroundColor: 'Window',
|
185
|
+
color: 'WindowText',
|
186
|
+
forcedColorAdjust: 'none',
|
187
|
+
outline: '1px solid Highlight'
|
188
|
+
}
|
189
|
+
},
|
190
|
+
'&:hover:active': {
|
191
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedPressed,
|
192
|
+
'@media (forced-colors: active)': {
|
193
|
+
backgroundColor: 'Window',
|
194
|
+
color: 'Highlight',
|
195
|
+
forcedColorAdjust: 'none'
|
196
|
+
}
|
197
|
+
}
|
198
|
+
}
|
199
|
+
});
|
200
|
+
const useCurrentStyles = makeStyles({
|
201
|
+
highlightCurrent: {
|
202
|
+
backgroundColor: tokens.colorBrandBackground,
|
203
|
+
color: tokens.colorNeutralForegroundOnBrand,
|
204
|
+
fontWeight: tokens.fontWeightSemibold,
|
205
|
+
'@media (forced-colors: active)': {
|
206
|
+
backgroundColor: 'WindowText',
|
207
|
+
color: 'Window',
|
208
|
+
forcedColorAdjust: 'none'
|
209
|
+
},
|
210
|
+
'&:hover, &:hover:active': {
|
211
|
+
backgroundColor: tokens.colorBrandBackground,
|
212
|
+
color: tokens.colorNeutralForegroundOnBrand,
|
213
|
+
'@media (forced-colors: active)': {
|
214
|
+
backgroundColor: 'WindowText',
|
215
|
+
color: 'Window',
|
216
|
+
forcedColorAdjust: 'none'
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
220
|
+
});
|
221
|
+
const useSelectedStyles = makeStyles({
|
222
|
+
highlightSelected: {
|
223
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedSelected,
|
224
|
+
color: tokens.colorNeutralForeground1Static,
|
225
|
+
fontWeight: tokens.fontWeightSemibold,
|
226
|
+
'@media (forced-colors: active)': {
|
227
|
+
backgroundColor: 'Highlight',
|
228
|
+
color: 'Window',
|
229
|
+
forcedColorAdjust: 'none'
|
230
|
+
},
|
231
|
+
'& div': {
|
232
|
+
fontWeight: tokens.fontWeightSemibold
|
233
|
+
},
|
234
|
+
'&:hover': {
|
235
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedSelected,
|
236
|
+
color: tokens.colorNeutralForeground1Static,
|
237
|
+
'@media (forced-colors: active)': {
|
238
|
+
backgroundColor: 'Highlight',
|
239
|
+
color: 'Window',
|
240
|
+
forcedColorAdjust: 'none'
|
241
|
+
}
|
242
|
+
},
|
243
|
+
'&:hover:active': {
|
244
|
+
backgroundColor: tokens.colorBrandBackgroundInvertedPressed
|
245
|
+
}
|
246
|
+
}
|
247
|
+
});
|
248
|
+
const useDisabledStyles = makeStyles({
|
249
|
+
base: {
|
250
|
+
'&, &:disabled, & button': {
|
251
|
+
color: tokens.colorNeutralForegroundDisabled,
|
252
|
+
pointerEvents: 'none'
|
253
|
+
},
|
254
|
+
'@media (forced-colors: active)': {
|
255
|
+
color: 'GrayText',
|
256
|
+
forcedColorAdjust: 'none'
|
257
|
+
}
|
258
|
+
}
|
259
|
+
});
|
260
|
+
/**
|
261
|
+
* @internal
|
262
|
+
*
|
263
|
+
* Apply styling to the CalendarPicker slots based on the state
|
264
|
+
*/ export const useCalendarPickerStyles_unstable = (props)=>{
|
265
|
+
'use no memo';
|
266
|
+
const rootStyles = useRootStyles();
|
267
|
+
const headerContainerStyles = useHeaderContainerStyles();
|
268
|
+
const currentItemButtonStyles = useCurrentItemButtonStyles();
|
269
|
+
const navigationButtonsContainerStyles = useNavigationButtonsContainerStyles();
|
270
|
+
const navigationButtonStyles = useNavigationButtonStyles();
|
271
|
+
const gridContainerStyles = useGridContainerStyles();
|
272
|
+
const buttonRowStyles = useButtonRowStyles();
|
273
|
+
const itemButtonStyles = useItemButtonStyles();
|
274
|
+
const currentStyles = useCurrentStyles();
|
275
|
+
const selectedStyles = useSelectedStyles();
|
276
|
+
const disabledStyles = useDisabledStyles();
|
277
|
+
const { animateBackwards, animationDirection, className, hasHeaderClickCallback, highlightCurrent, highlightSelected } = props;
|
278
|
+
return {
|
279
|
+
root: mergeClasses(calendarPickerClassNames.root, rootStyles.normalize, rootStyles.base, className),
|
280
|
+
headerContainer: mergeClasses(calendarPickerClassNames.headerContainer, headerContainerStyles.base),
|
281
|
+
currentItemButton: mergeClasses(calendarPickerClassNames.currentItemButton, currentItemButtonStyles.base, animateBackwards !== undefined && currentItemButtonStyles.animation, hasHeaderClickCallback && currentItemButtonStyles.hasHeaderClickCallback),
|
282
|
+
navigationButtonsContainer: mergeClasses(calendarPickerClassNames.navigationButtonsContainer, navigationButtonsContainerStyles.base),
|
283
|
+
navigationButton: mergeClasses(calendarPickerClassNames.navigationButton, navigationButtonStyles.base),
|
284
|
+
gridContainer: mergeClasses(calendarPickerClassNames.gridContainer, gridContainerStyles.base),
|
285
|
+
buttonRow: mergeClasses(calendarPickerClassNames.buttonRow, buttonRowStyles.base, buttonRowStyles.animation, animateBackwards !== undefined && (animationDirection === AnimationDirection.Horizontal ? animateBackwards ? buttonRowStyles.horizontalBackward : buttonRowStyles.horizontalForward : animateBackwards ? buttonRowStyles.verticalBackward : buttonRowStyles.verticalForward)),
|
286
|
+
itemButton: mergeClasses(calendarPickerClassNames.itemButton, itemButtonStyles.base),
|
287
|
+
selected: mergeClasses(calendarPickerClassNames.selected, highlightSelected && selectedStyles.highlightSelected),
|
288
|
+
current: mergeClasses(calendarPickerClassNames.current, highlightCurrent && currentStyles.highlightCurrent),
|
289
|
+
disabled: mergeClasses(calendarPickerClassNames.disabled, disabledStyles.base)
|
290
|
+
};
|
291
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarPicker/useCalendarPickerStyles.styles.ts"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport {\n DURATION_2,\n DURATION_3,\n EASING_FUNCTION_1,\n EASING_FUNCTION_2,\n FADE_IN,\n SLIDE_DOWN_IN20,\n SLIDE_LEFT_IN20,\n SLIDE_RIGHT_IN20,\n SLIDE_UP_IN20,\n} from '../../utils/animations';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { CalendarPickerStyles, CalendarPickerStyleProps } from './CalendarPicker.types';\n\n/**\n * @internal\n */\nexport const calendarPickerClassNames: SlotClassNames<CalendarPickerStyles> = {\n root: 'fui-CalendarPicker',\n headerContainer: 'fui-CalendarPicker__headerContainer',\n currentItemButton: 'fui-CalendarPicker__currentItemButton',\n navigationButtonsContainer: 'fui-CalendarPicker__navigationButtonsContainer',\n navigationButton: 'fui-CalendarPicker__navigationButton',\n gridContainer: 'fui-CalendarPicker__gridContainer',\n buttonRow: 'fui-CalendarPicker__buttonRow',\n itemButton: 'fui-CalendarPicker__itemButton',\n current: 'fui-CalendarPicker__current',\n selected: 'fui-CalendarPicker__selected',\n disabled: 'fui-CalendarPicker__disabled',\n};\n\nconst useRootStyles = makeStyles({\n base: {\n boxSizing: 'content-box',\n overflow: 'hidden',\n padding: '12px',\n width: '196px',\n },\n normalize: {\n boxShadow: 'none',\n boxSizing: 'border-box',\n margin: '0',\n padding: '0',\n },\n});\n\nconst useHeaderContainerStyles = makeStyles({\n base: {\n display: 'flex',\n },\n});\n\nconst useCurrentItemButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n borderRadius: tokens.borderRadiusMedium,\n color: 'inherit',\n flexGrow: 1,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n overflow: 'visible',\n padding: '0 4px 0 10px',\n textAlign: 'left',\n },\n animation: {\n animationDuration: DURATION_2,\n animationFillMode: 'both',\n animationName: FADE_IN,\n animationTimingFunction: EASING_FUNCTION_2,\n },\n hasHeaderClickCallback: {\n // If this is updated, make sure to update headerIsClickable in useCalendarDayStyles as well\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorBrandForegroundOnLightHover,\n cursor: 'pointer',\n outline: `1px solid ${tokens.colorTransparentStroke}`,\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n color: tokens.colorBrandForegroundOnLightPressed,\n cursor: 'pointer',\n outline: `1px solid ${tokens.colorTransparentStroke}`,\n },\n },\n});\n\nconst useNavigationButtonsContainerStyles = makeStyles({\n base: {\n alignItems: 'center',\n display: 'flex',\n },\n});\n\nconst useNavigationButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n border: 'none',\n borderRadius: tokens.borderRadiusMedium,\n color: tokens.colorNeutralForeground1,\n display: 'block',\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '28px',\n lineHeight: '28px',\n minHeight: '28px',\n minWidth: '28px',\n overflow: 'visible',\n padding: '0',\n position: 'relative',\n textAlign: 'center',\n width: '28px',\n\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorBrandForegroundOnLightHover,\n cursor: 'pointer',\n outline: `1px solid ${tokens.colorTransparentStroke}`,\n },\n\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n color: tokens.colorBrandForegroundOnLightPressed,\n },\n },\n});\n\nconst useGridContainerStyles = makeStyles({\n base: {\n marginTop: '4px',\n },\n});\n\nconst useButtonRowStyles = makeStyles({\n base: {\n marginBottom: '16px',\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n animation: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationTimingFunction: EASING_FUNCTION_1,\n },\n horizontalBackward: {\n animationName: [FADE_IN, SLIDE_RIGHT_IN20],\n },\n horizontalForward: {\n animationName: [FADE_IN, SLIDE_LEFT_IN20],\n },\n verticalBackward: {\n animationName: [FADE_IN, SLIDE_DOWN_IN20],\n },\n verticalForward: {\n animationName: [FADE_IN, SLIDE_UP_IN20],\n },\n});\n\nconst useItemButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n border: 'none',\n borderRadius: tokens.borderRadiusMedium,\n color: tokens.colorNeutralForeground3,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '40px',\n lineHeight: '40px',\n minHeight: '40px',\n minWidth: '40px',\n margin: '0 12px 0 0',\n overflow: 'visible',\n padding: '0',\n width: '40px',\n\n '&:nth-child(4n + 4)': {\n marginRight: 0,\n },\n '&:nth-child(n + 9)': {\n marginBottom: 0,\n },\n '& div': {\n fontWeight: tokens.fontWeightRegular,\n },\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorNeutralForeground1Static,\n cursor: 'pointer',\n outline: `1px solid ${tokens.colorTransparentStroke}`,\n\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'WindowText',\n forcedColorAdjust: 'none',\n outline: '1px solid Highlight',\n },\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'Highlight',\n forcedColorAdjust: 'none',\n },\n },\n },\n});\n\nconst useCurrentStyles = makeStyles({\n highlightCurrent: {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n fontWeight: tokens.fontWeightSemibold,\n\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n color: 'Window',\n forcedColorAdjust: 'none',\n },\n '&:hover, &:hover:active': {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n color: 'Window',\n forcedColorAdjust: 'none',\n },\n },\n },\n});\n\nconst useSelectedStyles = makeStyles({\n highlightSelected: {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n fontWeight: tokens.fontWeightSemibold,\n\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'Window',\n forcedColorAdjust: 'none',\n },\n '& div': {\n fontWeight: tokens.fontWeightSemibold,\n },\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'Window',\n forcedColorAdjust: 'none',\n },\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n },\n },\n});\n\nconst useDisabledStyles = makeStyles({\n base: {\n '&, &:disabled, & button': {\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none',\n },\n '@media (forced-colors: active)': {\n color: 'GrayText',\n forcedColorAdjust: 'none',\n },\n },\n});\n\n/**\n * @internal\n *\n * Apply styling to the CalendarPicker slots based on the state\n */\nexport const useCalendarPickerStyles_unstable = (props: CalendarPickerStyleProps): CalendarPickerStyles => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const headerContainerStyles = useHeaderContainerStyles();\n const currentItemButtonStyles = useCurrentItemButtonStyles();\n const navigationButtonsContainerStyles = useNavigationButtonsContainerStyles();\n const navigationButtonStyles = useNavigationButtonStyles();\n const gridContainerStyles = useGridContainerStyles();\n const buttonRowStyles = useButtonRowStyles();\n const itemButtonStyles = useItemButtonStyles();\n const currentStyles = useCurrentStyles();\n const selectedStyles = useSelectedStyles();\n const disabledStyles = useDisabledStyles();\n\n const {\n animateBackwards,\n animationDirection,\n className,\n hasHeaderClickCallback,\n highlightCurrent,\n highlightSelected,\n } = props;\n\n return {\n root: mergeClasses(calendarPickerClassNames.root, rootStyles.normalize, rootStyles.base, className),\n headerContainer: mergeClasses(calendarPickerClassNames.headerContainer, headerContainerStyles.base),\n currentItemButton: mergeClasses(\n calendarPickerClassNames.currentItemButton,\n currentItemButtonStyles.base,\n animateBackwards !== undefined && currentItemButtonStyles.animation,\n hasHeaderClickCallback && currentItemButtonStyles.hasHeaderClickCallback,\n ),\n navigationButtonsContainer: mergeClasses(\n calendarPickerClassNames.navigationButtonsContainer,\n navigationButtonsContainerStyles.base,\n ),\n navigationButton: mergeClasses(calendarPickerClassNames.navigationButton, navigationButtonStyles.base),\n gridContainer: mergeClasses(calendarPickerClassNames.gridContainer, gridContainerStyles.base),\n buttonRow: mergeClasses(\n calendarPickerClassNames.buttonRow,\n buttonRowStyles.base,\n buttonRowStyles.animation,\n animateBackwards !== undefined &&\n (animationDirection === AnimationDirection.Horizontal\n ? animateBackwards\n ? buttonRowStyles.horizontalBackward\n : buttonRowStyles.horizontalForward\n : animateBackwards\n ? buttonRowStyles.verticalBackward\n : buttonRowStyles.verticalForward),\n ),\n itemButton: mergeClasses(calendarPickerClassNames.itemButton, itemButtonStyles.base),\n selected: mergeClasses(calendarPickerClassNames.selected, highlightSelected && selectedStyles.highlightSelected),\n current: mergeClasses(calendarPickerClassNames.current, highlightCurrent && currentStyles.highlightCurrent),\n disabled: mergeClasses(calendarPickerClassNames.disabled, disabledStyles.base),\n };\n};\n"],"names":["tokens","makeStyles","mergeClasses","shorthands","DURATION_2","DURATION_3","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","SLIDE_DOWN_IN20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","AnimationDirection","calendarPickerClassNames","root","headerContainer","currentItemButton","navigationButtonsContainer","navigationButton","gridContainer","buttonRow","itemButton","current","selected","disabled","useRootStyles","base","boxSizing","overflow","padding","width","normalize","boxShadow","margin","useHeaderContainerStyles","display","useCurrentItemButtonStyles","backgroundColor","colorTransparentBackground","borderStyle","borderRadius","borderRadiusMedium","color","flexGrow","fontFamily","fontSize","fontSizeBase300","fontWeight","fontWeightSemibold","textAlign","animation","animationDuration","animationFillMode","animationName","animationTimingFunction","hasHeaderClickCallback","colorBrandBackgroundInvertedHover","colorBrandForegroundOnLightHover","cursor","outline","colorTransparentStroke","colorBrandBackgroundInvertedPressed","colorBrandForegroundOnLightPressed","useNavigationButtonsContainerStyles","alignItems","useNavigationButtonStyles","border","colorNeutralForeground1","fontSizeBase200","height","lineHeight","minHeight","minWidth","position","useGridContainerStyles","marginTop","useButtonRowStyles","marginBottom","horizontalBackward","horizontalForward","verticalBackward","verticalForward","useItemButtonStyles","colorNeutralForeground3","marginRight","fontWeightRegular","colorNeutralForeground1Static","forcedColorAdjust","useCurrentStyles","highlightCurrent","colorBrandBackground","colorNeutralForegroundOnBrand","useSelectedStyles","highlightSelected","colorBrandBackgroundInvertedSelected","useDisabledStyles","colorNeutralForegroundDisabled","pointerEvents","useCalendarPickerStyles_unstable","props","rootStyles","headerContainerStyles","currentItemButtonStyles","navigationButtonsContainerStyles","navigationButtonStyles","gridContainerStyles","buttonRowStyles","itemButtonStyles","currentStyles","selectedStyles","disabledStyles","animateBackwards","animationDirection","className","undefined","Horizontal"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';
|
2
|
+
/**
|
3
|
+
* @internal
|
4
|
+
*
|
5
|
+
* Apply styling to the CalendarYear slots based on the state
|
6
|
+
*/ export const useCalendarYearStyles_unstable = (props)=>{
|
7
|
+
'use no memo';
|
8
|
+
return useCalendarPickerStyles_unstable(props);
|
9
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarYear/useCalendarYearStyles.styles.ts"],"sourcesContent":["import { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';\nimport type { CalendarYearStyleProps, CalendarYearStyles } from './CalendarYear.types';\n\n/**\n * @internal\n *\n * Apply styling to the CalendarYear slots based on the state\n */\nexport const useCalendarYearStyles_unstable = (props: CalendarYearStyleProps): CalendarYearStyles => {\n 'use no memo';\n\n return useCalendarPickerStyles_unstable(props);\n};\n"],"names":["useCalendarPickerStyles_unstable","useCalendarYearStyles_unstable","props"],"rangeMappings":";;;;;;;;","mappings":"AAAA,SAASA,gCAAgC,QAAQ,mDAAmD;AAGpG;;;;CAIC,GACD,OAAO,MAAMC,iCAAiC,CAACC;IAC7C;IAEA,OAAOF,iCAAiCE;AAC1C,EAAE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/components/Calendar/calendarNavigationIcons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDownRegular, ArrowUpRegular, DismissRegular } from '@fluentui/react-icons';\n\nexport type CalendarNavigationIcons = {\n /**\n * Icon to use for up arrow navigation. Default comes from \\@fluentui\\/react-icons\n * @default ArrowUpRegular\n */\n upNavigation?: JSX.Element;\n
|
1
|
+
{"version":3,"sources":["../src/components/Calendar/calendarNavigationIcons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDownRegular, ArrowUpRegular, DismissRegular } from '@fluentui/react-icons';\n\nexport type CalendarNavigationIcons = {\n /**\n * Icon to use for up arrow navigation. Default comes from \\@fluentui\\/react-icons\n * @default ArrowUpRegular\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n upNavigation?: JSX.Element;\n /**\n * Icon to use for down arrow navigation. Default comes from \\@fluentui\\/react-icons\n * @default ArrowDownRegular\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n downNavigation?: JSX.Element;\n /**\n * Icon to use for the dismiss button. Default comes from \\@fluentui\\/react-icons\n * @default DismissRegular\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n dismiss?: JSX.Element;\n};\n\nexport const defaultNavigationIcons: CalendarNavigationIcons = {\n dismiss: <DismissRegular />,\n downNavigation: <ArrowDownRegular />,\n upNavigation: <ArrowUpRegular />,\n};\n"],"names":["defaultNavigationIcons","dismiss","React","createElement","DismissRegular","downNavigation","ArrowDownRegular","upNavigation","ArrowUpRegular"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":";;;;+BAwBaA;;;eAAAA;;;;iEAxBU;4BAC0C;AAuB1D,MAAMA,yBAAkD;IAC7DC,SAAAA,WAAAA,GAASC,OAAAC,aAAA,CAACC,0BAAAA,EAAAA;IACVC,gBAAAA,WAAAA,GAAgBH,OAAAC,aAAA,CAACG,4BAAAA,EAAAA;IACjBC,cAAAA,WAAAA,GAAcL,OAAAC,aAAA,CAACK,0BAAAA,EAAAA;AACjB"}
|
@@ -0,0 +1,127 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
function _export(target, all) {
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
7
|
+
enumerable: true,
|
8
|
+
get: all[name]
|
9
|
+
});
|
10
|
+
}
|
11
|
+
_export(exports, {
|
12
|
+
calendarClassNames: function() {
|
13
|
+
return calendarClassNames;
|
14
|
+
},
|
15
|
+
useCalendarStyles_unstable: function() {
|
16
|
+
return useCalendarStyles_unstable;
|
17
|
+
}
|
18
|
+
});
|
19
|
+
const _reacttheme = require("@fluentui/react-theme");
|
20
|
+
const _react = require("@griffel/react");
|
21
|
+
const calendarClassNames = {
|
22
|
+
root: 'fui-Calendar',
|
23
|
+
divider: 'fui-Calendar__divider',
|
24
|
+
goTodayButton: 'fui-Calendar__goTodayButton',
|
25
|
+
monthPickerWrapper: 'fui-Calendar__monthPickerWrapper',
|
26
|
+
liveRegion: 'fui-Calendar__liveRegion'
|
27
|
+
};
|
28
|
+
const useRootStyles = (0, _react.makeStyles)({
|
29
|
+
base: {
|
30
|
+
display: 'flex',
|
31
|
+
width: '220px'
|
32
|
+
},
|
33
|
+
normalize: {
|
34
|
+
boxShadow: 'none',
|
35
|
+
boxSizing: 'border-box',
|
36
|
+
margin: '0',
|
37
|
+
padding: '0'
|
38
|
+
},
|
39
|
+
monthPickerNotVisible: {
|
40
|
+
flexDirection: 'column'
|
41
|
+
},
|
42
|
+
dayAndMonthPickersVisible: {
|
43
|
+
width: '440px'
|
44
|
+
},
|
45
|
+
dayPickerVisibleAndWeekNumbersShown: {
|
46
|
+
width: '250px'
|
47
|
+
},
|
48
|
+
dayAndMonthPickersVisibleAndWeekNumbersShown: {
|
49
|
+
width: '470px'
|
50
|
+
}
|
51
|
+
});
|
52
|
+
const useDividerStyles = (0, _react.makeStyles)({
|
53
|
+
base: {
|
54
|
+
borderRight: `1px solid ${_reacttheme.tokens.colorNeutralStroke2}`,
|
55
|
+
top: 0
|
56
|
+
}
|
57
|
+
});
|
58
|
+
const useMonthPickerWrapperStyles = (0, _react.makeStyles)({
|
59
|
+
base: {
|
60
|
+
display: 'flex',
|
61
|
+
flexDirection: 'column'
|
62
|
+
}
|
63
|
+
});
|
64
|
+
const useGoTodayButtonStyles = (0, _react.makeStyles)({
|
65
|
+
base: {
|
66
|
+
alignSelf: 'flex-end',
|
67
|
+
backgroundColor: _reacttheme.tokens.colorTransparentBackground,
|
68
|
+
..._react.shorthands.borderStyle('none'),
|
69
|
+
bottom: 0,
|
70
|
+
boxSizing: 'content-box',
|
71
|
+
color: _reacttheme.tokens.colorNeutralForeground1,
|
72
|
+
fontFamily: 'inherit',
|
73
|
+
fontSize: _reacttheme.tokens.fontSizeBase200,
|
74
|
+
height: '30px',
|
75
|
+
lineHeight: '30px',
|
76
|
+
marginRight: '16px',
|
77
|
+
marginTop: '3px',
|
78
|
+
overflow: 'visible',
|
79
|
+
padding: '0 4px',
|
80
|
+
'& div': {
|
81
|
+
fontSize: _reacttheme.tokens.fontSizeBase200
|
82
|
+
},
|
83
|
+
'&:hover': {
|
84
|
+
backgroundColor: _reacttheme.tokens.colorTransparentBackground,
|
85
|
+
color: _reacttheme.tokens.colorBrandForeground1,
|
86
|
+
cursor: 'pointer',
|
87
|
+
'@media (forced-colors: active)': {
|
88
|
+
outline: _reacttheme.tokens.strokeWidthThin,
|
89
|
+
borderRadius: _reacttheme.tokens.borderRadiusSmall
|
90
|
+
}
|
91
|
+
},
|
92
|
+
'&:hover:active': {
|
93
|
+
color: _reacttheme.tokens.colorBrandForeground2
|
94
|
+
},
|
95
|
+
'&:disabled': {
|
96
|
+
color: _reacttheme.tokens.colorNeutralForegroundDisabled,
|
97
|
+
pointerEvents: 'none'
|
98
|
+
}
|
99
|
+
}
|
100
|
+
});
|
101
|
+
const useLiveRegionStyles = (0, _react.makeStyles)({
|
102
|
+
base: {
|
103
|
+
border: 'none',
|
104
|
+
height: '1px',
|
105
|
+
margin: '-1px',
|
106
|
+
overflow: 'hidden',
|
107
|
+
padding: '0',
|
108
|
+
position: 'absolute',
|
109
|
+
width: '1px'
|
110
|
+
}
|
111
|
+
});
|
112
|
+
const useCalendarStyles_unstable = (props)=>{
|
113
|
+
'use no memo';
|
114
|
+
const rootStyles = useRootStyles();
|
115
|
+
const dividerStyles = useDividerStyles();
|
116
|
+
const monthPickerWrapperStyles = useMonthPickerWrapperStyles();
|
117
|
+
const goTodayButtonStyles = useGoTodayButtonStyles();
|
118
|
+
const liveRegionStyles = useLiveRegionStyles();
|
119
|
+
const { className, isDayPickerVisible, isMonthPickerVisible, showWeekNumbers } = props;
|
120
|
+
return {
|
121
|
+
root: (0, _react.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),
|
122
|
+
divider: (0, _react.mergeClasses)(calendarClassNames.divider, dividerStyles.base),
|
123
|
+
monthPickerWrapper: (0, _react.mergeClasses)(calendarClassNames.monthPickerWrapper, monthPickerWrapperStyles.base),
|
124
|
+
goTodayButton: (0, _react.mergeClasses)(calendarClassNames.goTodayButton, goTodayButtonStyles.base),
|
125
|
+
liveRegion: (0, _react.mergeClasses)(calendarClassNames.liveRegion, liveRegionStyles.base)
|
126
|
+
};
|
127
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/Calendar/useCalendarStyles.styles.ts"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { CalendarStyles, CalendarStyleProps } from './Calendar.types';\n\n/**\n * @internal\n */\nexport const calendarClassNames: SlotClassNames<CalendarStyles> = {\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};\n\nconst useRootStyles = makeStyles({\n base: {\n display: 'flex',\n width: '220px',\n },\n normalize: {\n boxShadow: 'none',\n boxSizing: 'border-box',\n margin: '0',\n 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});\n\nconst useDividerStyles = makeStyles({\n base: {\n borderRight: `1px solid ${tokens.colorNeutralStroke2}`,\n top: 0,\n },\n});\n\nconst useMonthPickerWrapperStyles = makeStyles({\n base: {\n display: 'flex',\n flexDirection: 'column',\n },\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 overflow: 'visible',\n padding: '0 4px',\n\n '& div': {\n fontSize: tokens.fontSizeBase200,\n },\n '&:hover': {\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorBrandForeground1,\n cursor: 'pointer',\n\n '@media (forced-colors: active)': {\n outline: tokens.strokeWidthThin,\n 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});\n\nconst useLiveRegionStyles = makeStyles({\n base: {\n border: 'none',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px',\n },\n});\n\n/**\n * @internal\n *\n * Apply styling to the Calendar slots based on the state\n */\nexport const useCalendarStyles_unstable = (props: CalendarStyleProps): CalendarStyles => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const dividerStyles = useDividerStyles();\n const monthPickerWrapperStyles = useMonthPickerWrapperStyles();\n const goTodayButtonStyles = useGoTodayButtonStyles();\n const liveRegionStyles = useLiveRegionStyles();\n\n const { className, isDayPickerVisible, isMonthPickerVisible, showWeekNumbers } = props;\n\n return {\n root: mergeClasses(\n calendarClassNames.root,\n rootStyles.base,\n rootStyles.normalize,\n !isMonthPickerVisible && rootStyles.monthPickerNotVisible,\n isDayPickerVisible && isMonthPickerVisible && !showWeekNumbers && rootStyles.dayAndMonthPickersVisible,\n isDayPickerVisible && !isMonthPickerVisible && showWeekNumbers && rootStyles.dayPickerVisibleAndWeekNumbersShown,\n isDayPickerVisible &&\n isMonthPickerVisible &&\n showWeekNumbers &&\n rootStyles.dayAndMonthPickersVisibleAndWeekNumbersShown,\n className,\n ),\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"],"names":["calendarClassNames","useCalendarStyles_unstable","root","divider","goTodayButton","monthPickerWrapper","liveRegion","useRootStyles","makeStyles","base","display","width","normalize","boxShadow","boxSizing","margin","padding","monthPickerNotVisible","flexDirection","dayAndMonthPickersVisible","dayPickerVisibleAndWeekNumbersShown","dayAndMonthPickersVisibleAndWeekNumbersShown","useDividerStyles","borderRight","tokens","colorNeutralStroke2","top","useMonthPickerWrapperStyles","useGoTodayButtonStyles","alignSelf","backgroundColor","colorTransparentBackground","shorthands","borderStyle","bottom","color","colorNeutralForeground1","fontFamily","fontSize","fontSizeBase200","height","lineHeight","marginRight","marginTop","overflow","colorBrandForeground1","cursor","outline","strokeWidthThin","borderRadius","borderRadiusSmall","colorBrandForeground2","colorNeutralForegroundDisabled","pointerEvents","useLiveRegionStyles","border","position","props","rootStyles","dividerStyles","monthPickerWrapperStyles","goTodayButtonStyles","liveRegionStyles","className","isDayPickerVisible","isMonthPickerVisible","showWeekNumbers","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/components/CalendarDay/CalendarDay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { mergeClasses } from '@griffel/react';\nimport { addMonths, compareDatePart, getMonthEnd, getMonthStart } from '../../utils';\nimport { CalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid';\nimport { useCalendarDayStyles_unstable } from './useCalendarDayStyles.styles';\nimport type { ICalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid.types';\nimport type { CalendarDayProps, CalendarDayStyles } from './CalendarDay.types';\n\n/**\n * @internal\n */\nexport const CalendarDay: React.FunctionComponent<CalendarDayProps> = props => {\n const dayGrid = React.useRef<ICalendarDayGrid>(null);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n focus() {\n dayGrid.current?.focus?.();\n },\n }),\n [],\n );\n\n const {\n strings,\n gridLabel,\n navigatedDate,\n dateTimeFormatter,\n className,\n onHeaderSelect,\n showSixWeeksByDefault,\n minDate,\n maxDate,\n restrictedDates,\n onNavigateDate,\n showWeekNumbers,\n dateRangeType,\n animationDirection,\n } = props;\n\n const classNames = useCalendarDayStyles_unstable({\n className,\n headerIsClickable: !!onHeaderSelect,\n showWeekNumbers,\n animationDirection,\n });\n\n const monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);\n const HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';\n const headerAriaLabel = strings.yearPickerHeaderAriaLabel\n ? strings.yearPickerHeaderAriaLabel.replace('{0}', monthAndYear)\n : monthAndYear;\n\n const { ...propsWithoutStyles } = props;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.header}>\n <HeaderButtonComponentType\n aria-label={onHeaderSelect ? headerAriaLabel : undefined}\n className={classNames.monthAndYear}\n onClick={onHeaderSelect}\n tabIndex={onHeaderSelect ? 0 : -1} // prevent focus if there's no action for the button\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n type=\"button\"\n >\n <span aria-live=\"polite\" aria-atomic=\"true\">\n {monthAndYear}\n </span>\n </HeaderButtonComponentType>\n <CalendarDayNavigationButtons {...props} classNames={classNames} />\n </div>\n <CalendarDayGrid\n {...propsWithoutStyles}\n gridLabel={`${monthAndYear}, ${gridLabel}`}\n componentRef={dayGrid}\n strings={strings}\n navigatedDate={navigatedDate!}\n weeksToShow={showSixWeeksByDefault ? 6 : undefined}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n onNavigateDate={onNavigateDate}\n dateRangeType={dateRangeType}\n />\n </div>\n );\n};\nCalendarDay.displayName = 'CalendarDay';\n\ninterface CalendarDayNavigationButtonsProps extends CalendarDayProps {\n classNames: Record<keyof CalendarDayStyles, string>;\n}\n\nconst CalendarDayNavigationButtons = (props: CalendarDayNavigationButtonsProps): JSX.Element => {\n const {\n minDate,\n maxDate,\n navigatedDate,\n navigationIcons,\n allFocusable,\n strings,\n showCloseButton,\n classNames,\n onNavigateDate,\n onDismiss,\n } = props;\n\n const onSelectNextMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, 1), false);\n };\n\n const onSelectPrevMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, -1), false);\n };\n\n // determine if previous/next months are in bounds\n const prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n const nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n\n // use aria-disabled instead of disabled so focus is not lost\n // when a prev/next button becomes disabled after being clicked\n return (\n <div className={classNames.monthComponents}>\n <button\n className={mergeClasses(classNames.headerIconButton, !prevMonthInBounds && classNames.disabledStyle)}\n tabIndex={prevMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!prevMonthInBounds}\n onClick={prevMonthInBounds ? onSelectPrevMonth : undefined}\n onKeyDown={prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined}\n title={\n strings.prevMonthAriaLabel\n ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.upNavigation}\n </button>\n <button\n className={mergeClasses(classNames.headerIconButton, !nextMonthInBounds && classNames.disabledStyle)}\n tabIndex={nextMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!nextMonthInBounds}\n onClick={nextMonthInBounds ? onSelectNextMonth : undefined}\n onKeyDown={nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined}\n title={\n strings.nextMonthAriaLabel\n ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.downNavigation}\n </button>\n {showCloseButton && (\n <button\n className={classNames.headerIconButton}\n onClick={onDismiss}\n onKeyDown={onButtonKeyDown(onDismiss)}\n title={strings.closeButtonAriaLabel}\n type=\"button\"\n >\n {navigationIcons.dismiss}\n </button>\n )}\n </div>\n );\n};\nCalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';\n\nconst onButtonKeyDown =\n (callback?: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => void) =>\n (ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n switch (ev.key) {\n case Enter:\n callback?.();\n break;\n }\n };\n"],"names":["CalendarDay","props","dayGrid","React","useRef","useImperativeHandle","componentRef","focus","current","strings","gridLabel","navigatedDate","dateTimeFormatter","className","onHeaderSelect","showSixWeeksByDefault","minDate","maxDate","restrictedDates","onNavigateDate","showWeekNumbers","dateRangeType","animationDirection","classNames","useCalendarDayStyles_unstable","headerIsClickable","monthAndYear","formatMonthYear","HeaderButtonComponentType","headerAriaLabel","yearPickerHeaderAriaLabel","replace","propsWithoutStyles","createElement","div","root","header","aria-label","undefined","onClick","tabIndex","onKeyDown","onButtonKeyDown","type","span","aria-live","aria-atomic","CalendarDayNavigationButtons","CalendarDayGrid","weeksToShow","displayName","navigationIcons","allFocusable","showCloseButton","onDismiss","onSelectNextMonth","addMonths","onSelectPrevMonth","prevMonthInBounds","compareDatePart","getMonthStart","nextMonthInBounds","getMonthEnd","monthComponents","button","mergeClasses","headerIconButton","disabledStyle","aria-disabled","title","prevMonthAriaLabel","months","getMonth","upNavigation","nextMonthAriaLabel","downNavigation","closeButtonAriaLabel","dismiss","callback","ev","key","Enter"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
1
|
+
{"version":3,"sources":["../src/components/CalendarDay/CalendarDay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { mergeClasses } from '@griffel/react';\nimport { addMonths, compareDatePart, getMonthEnd, getMonthStart } from '../../utils';\nimport { CalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid';\nimport { useCalendarDayStyles_unstable } from './useCalendarDayStyles.styles';\nimport type { ICalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid.types';\nimport type { CalendarDayProps, CalendarDayStyles } from './CalendarDay.types';\n\n/**\n * @internal\n */\nexport const CalendarDay: React.FunctionComponent<CalendarDayProps> = props => {\n const dayGrid = React.useRef<ICalendarDayGrid>(null);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n focus() {\n dayGrid.current?.focus?.();\n },\n }),\n [],\n );\n\n const {\n strings,\n gridLabel,\n navigatedDate,\n dateTimeFormatter,\n className,\n onHeaderSelect,\n showSixWeeksByDefault,\n minDate,\n maxDate,\n restrictedDates,\n onNavigateDate,\n showWeekNumbers,\n dateRangeType,\n animationDirection,\n } = props;\n\n const classNames = useCalendarDayStyles_unstable({\n className,\n headerIsClickable: !!onHeaderSelect,\n showWeekNumbers,\n animationDirection,\n });\n\n const monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);\n const HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';\n const headerAriaLabel = strings.yearPickerHeaderAriaLabel\n ? strings.yearPickerHeaderAriaLabel.replace('{0}', monthAndYear)\n : monthAndYear;\n\n const { ...propsWithoutStyles } = props;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.header}>\n <HeaderButtonComponentType\n aria-label={onHeaderSelect ? headerAriaLabel : undefined}\n className={classNames.monthAndYear}\n onClick={onHeaderSelect}\n tabIndex={onHeaderSelect ? 0 : -1} // prevent focus if there's no action for the button\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n type=\"button\"\n >\n <span aria-live=\"polite\" aria-atomic=\"true\">\n {monthAndYear}\n </span>\n </HeaderButtonComponentType>\n <CalendarDayNavigationButtons {...props} classNames={classNames} />\n </div>\n <CalendarDayGrid\n {...propsWithoutStyles}\n gridLabel={`${monthAndYear}, ${gridLabel}`}\n componentRef={dayGrid}\n strings={strings}\n navigatedDate={navigatedDate!}\n weeksToShow={showSixWeeksByDefault ? 6 : undefined}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n onNavigateDate={onNavigateDate}\n dateRangeType={dateRangeType}\n />\n </div>\n );\n};\nCalendarDay.displayName = 'CalendarDay';\n\ninterface CalendarDayNavigationButtonsProps extends CalendarDayProps {\n classNames: Record<keyof CalendarDayStyles, string>;\n}\n\nconst CalendarDayNavigationButtons = (\n props: CalendarDayNavigationButtonsProps,\n): // eslint-disable-next-line @typescript-eslint/no-deprecated\nJSX.Element => {\n const {\n minDate,\n maxDate,\n navigatedDate,\n navigationIcons,\n allFocusable,\n strings,\n showCloseButton,\n classNames,\n onNavigateDate,\n onDismiss,\n } = props;\n\n const onSelectNextMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, 1), false);\n };\n\n const onSelectPrevMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, -1), false);\n };\n\n // determine if previous/next months are in bounds\n const prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n const nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n\n // use aria-disabled instead of disabled so focus is not lost\n // when a prev/next button becomes disabled after being clicked\n return (\n <div className={classNames.monthComponents}>\n <button\n className={mergeClasses(classNames.headerIconButton, !prevMonthInBounds && classNames.disabledStyle)}\n tabIndex={prevMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!prevMonthInBounds}\n onClick={prevMonthInBounds ? onSelectPrevMonth : undefined}\n onKeyDown={prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined}\n title={\n strings.prevMonthAriaLabel\n ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.upNavigation}\n </button>\n <button\n className={mergeClasses(classNames.headerIconButton, !nextMonthInBounds && classNames.disabledStyle)}\n tabIndex={nextMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!nextMonthInBounds}\n onClick={nextMonthInBounds ? onSelectNextMonth : undefined}\n onKeyDown={nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined}\n title={\n strings.nextMonthAriaLabel\n ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.downNavigation}\n </button>\n {showCloseButton && (\n <button\n className={classNames.headerIconButton}\n onClick={onDismiss}\n onKeyDown={onButtonKeyDown(onDismiss)}\n title={strings.closeButtonAriaLabel}\n type=\"button\"\n >\n {navigationIcons.dismiss}\n </button>\n )}\n </div>\n );\n};\nCalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';\n\nconst onButtonKeyDown =\n (callback?: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => void) =>\n (ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n switch (ev.key) {\n case Enter:\n callback?.();\n break;\n }\n };\n"],"names":["CalendarDay","props","dayGrid","React","useRef","useImperativeHandle","componentRef","focus","current","strings","gridLabel","navigatedDate","dateTimeFormatter","className","onHeaderSelect","showSixWeeksByDefault","minDate","maxDate","restrictedDates","onNavigateDate","showWeekNumbers","dateRangeType","animationDirection","classNames","useCalendarDayStyles_unstable","headerIsClickable","monthAndYear","formatMonthYear","HeaderButtonComponentType","headerAriaLabel","yearPickerHeaderAriaLabel","replace","propsWithoutStyles","createElement","div","root","header","aria-label","undefined","onClick","tabIndex","onKeyDown","onButtonKeyDown","type","span","aria-live","aria-atomic","CalendarDayNavigationButtons","CalendarDayGrid","weeksToShow","displayName","navigationIcons","allFocusable","showCloseButton","onDismiss","onSelectNextMonth","addMonths","onSelectPrevMonth","prevMonthInBounds","compareDatePart","getMonthStart","nextMonthInBounds","getMonthEnd","monthComponents","button","mergeClasses","headerIconButton","disabledStyle","aria-disabled","title","prevMonthAriaLabel","months","getMonth","upNavigation","nextMonthAriaLabel","downNavigation","closeButtonAriaLabel","dismiss","callback","ev","key","Enter"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|