@fluentui/react-calendar-compat 0.4.2 → 0.4.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.
Files changed (94) hide show
  1. package/CHANGELOG.md +26 -2
  2. package/lib/components/Calendar/useCalendarStyles.styles.js +1 -0
  3. package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -1
  4. package/lib/components/Calendar/useCalendarStyles.styles.raw.js +1 -1
  5. package/lib/components/Calendar/useCalendarStyles.styles.raw.js.map +1 -1
  6. package/lib/components/CalendarDay/CalendarDay.js +2 -1
  7. package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
  8. package/lib/components/CalendarDay/useCalendarDayStyles.styles.js +3 -10
  9. package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
  10. package/lib/components/CalendarDay/useCalendarDayStyles.styles.raw.js +2 -9
  11. package/lib/components/CalendarDay/useCalendarDayStyles.styles.raw.js.map +1 -1
  12. package/lib/components/CalendarDayGrid/CalendarDayGrid.js +30 -8
  13. package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
  14. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +1 -1
  15. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
  16. package/lib/components/CalendarDayGrid/CalendarGridRow.js +6 -5
  17. package/lib/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
  18. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js +10 -3
  19. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
  20. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +16 -58
  21. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
  22. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js +12 -67
  23. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js.map +1 -1
  24. package/lib/components/CalendarDayGrid/useWeeks.js +0 -1
  25. package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -1
  26. package/lib/components/CalendarMonth/CalendarMonth.js +10 -4
  27. package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
  28. package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.js +1 -0
  29. package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.js.map +1 -1
  30. package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js +1 -1
  31. package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js.map +1 -1
  32. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js +5 -33
  33. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
  34. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js +4 -41
  35. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js.map +1 -1
  36. package/lib/components/CalendarYear/CalendarYear.js +17 -12
  37. package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
  38. package/lib/components/CalendarYear/useCalendarYearStyles.styles.js +1 -0
  39. package/lib/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -1
  40. package/lib/components/CalendarYear/useCalendarYearStyles.styles.raw.js +1 -1
  41. package/lib/components/CalendarYear/useCalendarYearStyles.styles.raw.js.map +1 -1
  42. package/lib/utils/animations.js +24 -18
  43. package/lib/utils/animations.js.map +1 -1
  44. package/lib/utils/calendarMotions.js +93 -0
  45. package/lib/utils/calendarMotions.js.map +1 -0
  46. package/lib/utils/index.js +2 -2
  47. package/lib/utils/index.js.map +1 -1
  48. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +1 -0
  49. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -1
  50. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.raw.js +1 -1
  51. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.raw.js.map +1 -1
  52. package/lib-commonjs/components/CalendarDay/CalendarDay.js +2 -1
  53. package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
  54. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +3 -15
  55. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
  56. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.raw.js +2 -9
  57. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.raw.js.map +1 -1
  58. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +30 -8
  59. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
  60. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +1 -1
  61. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
  62. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +6 -5
  63. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
  64. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js +9 -3
  65. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
  66. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +16 -98
  67. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
  68. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js +12 -67
  69. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.raw.js.map +1 -1
  70. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +0 -1
  71. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -1
  72. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +10 -4
  73. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
  74. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.js +1 -0
  75. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.js.map +1 -1
  76. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js +1 -1
  77. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.raw.js.map +1 -1
  78. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +6 -56
  79. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
  80. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js +4 -41
  81. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.raw.js.map +1 -1
  82. package/lib-commonjs/components/CalendarYear/CalendarYear.js +17 -12
  83. package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
  84. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +1 -0
  85. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -1
  86. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.raw.js +1 -1
  87. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.raw.js.map +1 -1
  88. package/lib-commonjs/utils/animations.js +12 -11
  89. package/lib-commonjs/utils/animations.js.map +1 -1
  90. package/lib-commonjs/utils/calendarMotions.js +105 -0
  91. package/lib-commonjs/utils/calendarMotions.js.map +1 -0
  92. package/lib-commonjs/utils/index.js +1 -1
  93. package/lib-commonjs/utils/index.js.map +1 -1
  94. package/package.json +6 -4
@@ -15,6 +15,7 @@ const _keyboardkeys = require("@fluentui/keyboard-keys");
15
15
  const _reacttabster = require("@fluentui/react-tabster");
16
16
  const _react1 = require("@griffel/react");
17
17
  const _useCalendarYearStylesstyles = require("./useCalendarYearStyles.styles");
18
+ const _calendarMotions = require("../../utils/calendarMotions");
18
19
  const CELL_COUNT = 12;
19
20
  const CELLS_PER_ROW = 4;
20
21
  const DefaultCalendarYearStrings = {
@@ -110,11 +111,15 @@ const CalendarYearGrid = (props)=>{
110
111
  role: "grid",
111
112
  "aria-label": gridAriaLabel
112
113
  }, cells.map((cellRow, index)=>{
113
- return /*#__PURE__*/ _react.createElement("div", {
114
- key: 'yearPickerRow_' + index + '_' + fromYear,
114
+ return /*#__PURE__*/ _react.createElement(_calendarMotions.DirectionalSlideIn, {
115
+ key: index,
116
+ replayKey: fromYear,
117
+ animationDirection: animationDirection,
118
+ animateBackwards: animateBackwards
119
+ }, /*#__PURE__*/ _react.createElement("div", {
115
120
  role: "row",
116
121
  className: classNames.buttonRow
117
- }, cellRow);
122
+ }, cellRow));
118
123
  }));
119
124
  };
120
125
  CalendarYearGrid.displayName = 'CalendarYearGrid';
@@ -145,11 +150,12 @@ const CalendarYearNavArrow = (props)=>{
145
150
  };
146
151
  return /*#__PURE__*/ _react.createElement("button", {
147
152
  className: (0, _react1.mergeClasses)(classNames.navigationButton, disabled && classNames.disabled),
153
+ "aria-disabled": disabled,
154
+ tabIndex: disabled ? -1 : undefined,
148
155
  onClick: !disabled ? onNavigate : undefined,
149
156
  onKeyDown: !disabled ? onKeyDown : undefined,
150
157
  type: "button",
151
- title: ariaLabelString,
152
- disabled: disabled
158
+ title: ariaLabelString
153
159
  }, direction === CalendarYearNavDirection.Previous ? navigationIcons.upNavigation : navigationIcons.downNavigation);
154
160
  };
155
161
  CalendarYearNavArrow.displayName = 'CalendarYearNavArrow';
@@ -227,18 +233,17 @@ const CalendarYearHeader = (props)=>{
227
233
  }, (_onRenderTitle = onRenderTitle === null || onRenderTitle === void 0 ? void 0 : onRenderTitle(props)) !== null && _onRenderTitle !== void 0 ? _onRenderTitle : /*#__PURE__*/ _react.createElement(CalendarYearTitle, props), /*#__PURE__*/ _react.createElement(CalendarYearNav, props));
228
234
  };
229
235
  CalendarYearHeader.displayName = 'CalendarYearHeader';
230
- function useAnimateBackwards({ selectedYear, navigatedYear }) {
231
- const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();
232
- const fromYear = Math.floor(rangeYear / 10) * 10;
233
- const previousFromYearRef = _react.useRef(fromYear);
234
- _react.useRef(()=>{
236
+ function useAnimateBackwards(fromYear) {
237
+ const previousFromYearRef = _react.useRef(undefined);
238
+ _react.useEffect(()=>{
235
239
  previousFromYearRef.current = fromYear;
236
240
  });
237
241
  // eslint-disable-next-line react-hooks/refs
238
242
  const previousFromYear = previousFromYearRef.current;
239
243
  // eslint-disable-next-line react-hooks/refs
240
- if (!previousFromYear || previousFromYear === fromYear) {
244
+ if (previousFromYear === undefined || previousFromYear === fromYear) {
241
245
  return undefined;
246
+ // eslint-disable-next-line react-hooks/refs
242
247
  } else if (previousFromYear > fromYear) {
243
248
  return true;
244
249
  } else {
@@ -278,8 +283,8 @@ function useYearRangeState({ selectedYear, navigatedYear, onNavigateDate }) {
278
283
  ];
279
284
  }
280
285
  const CalendarYear = (props)=>{
281
- const animateBackwards = useAnimateBackwards(props);
282
286
  const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);
287
+ const animateBackwards = useAnimateBackwards(fromYear);
283
288
  const gridRef = _react.useRef(null);
284
289
  _react.useImperativeHandle(props.componentRef, ()=>({
285
290
  focus () {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CalendarYear/CalendarYear.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Enter, Space } from '@fluentui/keyboard-keys';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport { useCalendarYearStyles_unstable } from './useCalendarYearStyles.styles';\nimport type {\n CalendarYearStrings,\n CalendarYearProps,\n CalendarYearRange,\n CalendarYearHeaderProps,\n} from './CalendarYear.types';\n\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\n\nconst DefaultCalendarYearStrings: CalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined,\n};\ninterface CalendarYearGrid {\n focus(): void;\n}\n\ninterface CalendarYearGridCellProps extends CalendarYearProps {\n year: number;\n current?: boolean;\n selected?: boolean;\n disabled?: boolean;\n onSelectYear?: (year: number) => void;\n onRenderYear?: (year: number) => React.ReactNode;\n}\n\ninterface CalendarYearGridProps extends CalendarYearProps, CalendarYearRange {\n selectedYear?: number;\n animateBackwards?: boolean;\n componentRef?: React.RefObject<CalendarYearGridCell | null>;\n}\n\ninterface CalendarYearGridCell {\n focus(): void;\n}\n\nconst CalendarYearGridCell: React.FunctionComponent<CalendarYearGridCellProps> = props => {\n const {\n className,\n highlightCurrentYear,\n highlightSelectedYear,\n year,\n selected,\n disabled,\n componentRef,\n onSelectYear,\n onRenderYear,\n } = props;\n\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n buttonRef.current?.focus?.();\n },\n }),\n [],\n );\n\n const onClick = () => {\n onSelectYear?.(year);\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onSelectYear?.(year);\n }\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear,\n });\n\n return (\n <button\n className={mergeClasses(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled)}\n type=\"button\"\n role=\"gridcell\"\n onClick={!disabled ? onClick : undefined}\n onKeyDown={!disabled ? onKeyDown : undefined}\n disabled={disabled}\n aria-selected={selected}\n ref={buttonRef}\n >\n {onRenderYear?.(year) ?? year}\n </button>\n );\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\n\nconst CalendarYearGrid: React.FunctionComponent<CalendarYearGridProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n animationDirection,\n animateBackwards,\n minYear,\n maxYear,\n onSelectYear,\n selectedYear,\n componentRef,\n } = props;\n\n const selectedCellRef = React.useRef<CalendarYearGridCell>(null);\n\n const currentCellRef = React.useRef<CalendarYearGridCell>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n (selectedCellRef.current || currentCellRef.current)?.focus?.();\n },\n }),\n [],\n );\n\n const renderCell = (yearToRender: number): React.ReactNode => {\n const selected = yearToRender === selectedYear;\n const disabled =\n (minYear !== undefined && yearToRender < minYear) || (maxYear !== undefined && yearToRender > maxYear);\n const current = yearToRender === new Date().getFullYear();\n\n return (\n <CalendarYearGridCell\n {...props}\n key={yearToRender}\n year={yearToRender}\n selected={selected}\n current={current}\n disabled={disabled}\n onSelectYear={onSelectYear}\n componentRef={selected ? selectedCellRef : current ? currentCellRef : undefined}\n />\n );\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection,\n });\n\n const onRenderYear = (value: number) => {\n return props.onRenderYear?.(value) ?? value;\n };\n\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n\n let year = fromYear;\n const cells: React.ReactNode[][] = [];\n\n for (let i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++) {\n cells.push([]);\n for (let j = 0; j < CELLS_PER_ROW; j++) {\n cells[i].push(renderCell(year));\n year++;\n }\n }\n\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'grid' });\n\n return (\n <div {...arrowNavigationAttributes} className={classNames.gridContainer} role=\"grid\" aria-label={gridAriaLabel}>\n {cells.map((cellRow: React.ReactNode[], index: number) => {\n return (\n <div key={'yearPickerRow_' + index + '_' + fromYear} role=\"row\" className={classNames.buttonRow}>\n {cellRow}\n </div>\n );\n })}\n </div>\n );\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\n\nconst CalendarYearNavDirection = {\n Previous: 0 as const,\n Next: 1 as const,\n};\n\ninterface CalendarYearNavArrowProps extends CalendarYearHeaderProps {\n direction: (typeof CalendarYearNavDirection)[keyof typeof CalendarYearNavDirection];\n}\n\nconst CalendarYearNavArrow: React.FunctionComponent<CalendarYearNavArrowProps> = props => {\n const {\n className,\n strings = DefaultCalendarYearStrings,\n direction,\n onSelectPrev,\n onSelectNext,\n fromYear,\n toYear,\n maxYear,\n minYear,\n navigationIcons,\n } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n const ariaLabel =\n direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = { fromYear: fromYear + newRangeOffset, toYear: toYear + newRangeOffset };\n const ariaLabelString = ariaLabel ? (typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange)) : undefined;\n const disabled =\n direction === CalendarYearNavDirection.Previous\n ? minYear !== undefined && fromYear < minYear\n : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n\n const onNavigate = () => {\n direction === CalendarYearNavDirection.Previous ? onSelectPrev?.() : onSelectNext?.();\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n\n return (\n <button\n className={mergeClasses(classNames.navigationButton, disabled && classNames.disabled)}\n onClick={!disabled ? onNavigate : undefined}\n onKeyDown={!disabled ? onKeyDown : undefined}\n type=\"button\"\n title={ariaLabelString}\n disabled={disabled}\n >\n {direction === CalendarYearNavDirection.Previous ? navigationIcons.upNavigation : navigationIcons.downNavigation}\n </button>\n );\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\n\nconst CalendarYearNav: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.navigationButtonsContainer}>\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Previous} />\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Next} />\n </div>\n );\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\n\nconst CalendarYearTitle: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n strings = DefaultCalendarYearStrings,\n animateBackwards,\n animationDirection,\n } = props;\n\n const onHeaderSelect = () => {\n props.onHeaderSelect?.(true);\n };\n\n const onHeaderKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n\n const onRenderYear = (year: number) => {\n return props.onRenderYear?.(year) ?? year;\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel\n ? typeof rangeAriaLabel === 'string'\n ? rangeAriaLabel\n : rangeAriaLabel(props)\n : undefined;\n\n const ariaLabel = headerAriaLabelFormatString\n ? headerAriaLabelFormatString.replace('{0}', currentDateRange ?? '')\n : currentDateRange;\n\n return (\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onHeaderKeyDown}\n aria-label={ariaLabel}\n role=\"button\"\n type=\"button\"\n >\n <span aria-live=\"assertive\" aria-atomic=\"true\">\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </span>\n </button>\n );\n }\n\n return (\n <div className={classNames.current}>\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </div>\n );\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\n\nconst CalendarYearHeader: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n return (\n <div className={classNames.headerContainer}>\n {onRenderTitle?.(props) ?? <CalendarYearTitle {...props} />}\n <CalendarYearNav {...props} />\n </div>\n );\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\n\nfunction useAnimateBackwards({ selectedYear, navigatedYear }: CalendarYearProps) {\n const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n const fromYear = Math.floor(rangeYear / 10) * 10;\n\n const previousFromYearRef = React.useRef<number | undefined>(fromYear);\n React.useRef(() => {\n previousFromYearRef.current = fromYear;\n });\n // eslint-disable-next-line react-hooks/refs\n const previousFromYear = previousFromYearRef.current;\n\n // eslint-disable-next-line react-hooks/refs\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction useYearRangeState({ selectedYear, navigatedYear, onNavigateDate }: CalendarYearProps) {\n const rangeYear = React.useMemo(() => {\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [navigatedYear, selectedYear]);\n\n const [fromYear, setFromYear] = React.useState<number>(rangeYear);\n\n const onNavNext = () => {\n const newFromYear = fromYear + CELL_COUNT;\n setFromYear(newFromYear);\n onNavigateDate?.(newFromYear);\n };\n\n const onNavPrevious = () => {\n const newFromYear = fromYear - CELL_COUNT;\n setFromYear(newFromYear);\n onNavigateDate?.(newFromYear);\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setFromYear(rangeYear);\n }, [rangeYear]);\n\n const toYear = fromYear + CELL_COUNT - 1;\n\n return [fromYear, toYear, onNavNext, onNavPrevious] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarYear: React.FunctionComponent<CalendarYearProps> = props => {\n const animateBackwards = useAnimateBackwards(props);\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n\n const gridRef = React.useRef<CalendarYearGrid>(null);\n\n React.useImperativeHandle(props.componentRef, () => ({\n focus() {\n gridRef.current?.focus?.();\n },\n }));\n\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.root}>\n <CalendarYearHeader\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n onSelectPrev={onNavPrevious}\n onSelectNext={onNavNext}\n animateBackwards={animateBackwards}\n />\n <CalendarYearGrid\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n animateBackwards={animateBackwards}\n componentRef={gridRef}\n />\n </div>\n );\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["React","Enter","Space","useArrowNavigationGroup","mergeClasses","useCalendarYearStyles_unstable","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","onRenderYear","buttonRef","useRef","useImperativeHandle","focus","current","onClick","onKeyDown","ev","key","classNames","highlightCurrent","highlightSelected","button","itemButton","type","role","aria-selected","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","renderCell","yearToRender","Date","getFullYear","value","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","axis","div","gridContainer","aria-label","map","cellRow","index","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","navigationIcons","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","navigationButton","title","upNavigation","downNavigation","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","onHeaderKeyDown","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","span","aria-live","aria-atomic","CalendarYearHeader","onRenderTitle","headerContainer","useAnimateBackwards","navigatedYear","rangeYear","Math","floor","previousFromYearRef","previousFromYear","useYearRangeState","onNavigateDate","useMemo","setFromYear","useState","onNavNext","newFromYear","onNavPrevious","useEffect","CalendarYear","gridRef","root"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/CalendarYear/CalendarYear.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Enter, Space } from '@fluentui/keyboard-keys';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport { useCalendarYearStyles_unstable } from './useCalendarYearStyles.styles';\nimport { DirectionalSlideIn } from '../../utils/calendarMotions';\nimport type {\n CalendarYearStrings,\n CalendarYearProps,\n CalendarYearRange,\n CalendarYearHeaderProps,\n} from './CalendarYear.types';\n\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\n\nconst DefaultCalendarYearStrings: CalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined,\n};\ninterface CalendarYearGrid {\n focus(): void;\n}\n\ninterface CalendarYearGridCellProps extends CalendarYearProps {\n year: number;\n current?: boolean;\n selected?: boolean;\n disabled?: boolean;\n onSelectYear?: (year: number) => void;\n onRenderYear?: (year: number) => React.ReactNode;\n}\n\ninterface CalendarYearGridProps extends CalendarYearProps, CalendarYearRange {\n selectedYear?: number;\n animateBackwards?: boolean;\n componentRef?: React.RefObject<CalendarYearGridCell | null>;\n}\n\ninterface CalendarYearGridCell {\n focus(): void;\n}\n\nconst CalendarYearGridCell: React.FunctionComponent<CalendarYearGridCellProps> = props => {\n const {\n className,\n highlightCurrentYear,\n highlightSelectedYear,\n year,\n selected,\n disabled,\n componentRef,\n onSelectYear,\n onRenderYear,\n } = props;\n\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n buttonRef.current?.focus?.();\n },\n }),\n [],\n );\n\n const onClick = () => {\n onSelectYear?.(year);\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onSelectYear?.(year);\n }\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear,\n });\n\n return (\n <button\n className={mergeClasses(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled)}\n type=\"button\"\n role=\"gridcell\"\n onClick={!disabled ? onClick : undefined}\n onKeyDown={!disabled ? onKeyDown : undefined}\n disabled={disabled}\n aria-selected={selected}\n ref={buttonRef}\n >\n {onRenderYear?.(year) ?? year}\n </button>\n );\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\n\nconst CalendarYearGrid: React.FunctionComponent<CalendarYearGridProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n animationDirection,\n animateBackwards,\n minYear,\n maxYear,\n onSelectYear,\n selectedYear,\n componentRef,\n } = props;\n\n const selectedCellRef = React.useRef<CalendarYearGridCell>(null);\n\n const currentCellRef = React.useRef<CalendarYearGridCell>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n (selectedCellRef.current || currentCellRef.current)?.focus?.();\n },\n }),\n [],\n );\n\n const renderCell = (yearToRender: number): React.ReactNode => {\n const selected = yearToRender === selectedYear;\n const disabled =\n (minYear !== undefined && yearToRender < minYear) || (maxYear !== undefined && yearToRender > maxYear);\n const current = yearToRender === new Date().getFullYear();\n\n return (\n <CalendarYearGridCell\n {...props}\n key={yearToRender}\n year={yearToRender}\n selected={selected}\n current={current}\n disabled={disabled}\n onSelectYear={onSelectYear}\n componentRef={selected ? selectedCellRef : current ? currentCellRef : undefined}\n />\n );\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection,\n });\n\n const onRenderYear = (value: number) => {\n return props.onRenderYear?.(value) ?? value;\n };\n\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n\n let year = fromYear;\n const cells: React.ReactNode[][] = [];\n\n for (let i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++) {\n cells.push([]);\n for (let j = 0; j < CELLS_PER_ROW; j++) {\n cells[i].push(renderCell(year));\n year++;\n }\n }\n\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'grid' });\n\n return (\n <div {...arrowNavigationAttributes} className={classNames.gridContainer} role=\"grid\" aria-label={gridAriaLabel}>\n {cells.map((cellRow: React.ReactNode[], index: number) => {\n return (\n <DirectionalSlideIn\n key={index}\n replayKey={fromYear}\n animationDirection={animationDirection}\n animateBackwards={animateBackwards}\n >\n <div role=\"row\" className={classNames.buttonRow}>\n {cellRow}\n </div>\n </DirectionalSlideIn>\n );\n })}\n </div>\n );\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\n\nconst CalendarYearNavDirection = {\n Previous: 0 as const,\n Next: 1 as const,\n};\n\ninterface CalendarYearNavArrowProps extends CalendarYearHeaderProps {\n direction: (typeof CalendarYearNavDirection)[keyof typeof CalendarYearNavDirection];\n}\n\nconst CalendarYearNavArrow: React.FunctionComponent<CalendarYearNavArrowProps> = props => {\n const {\n className,\n strings = DefaultCalendarYearStrings,\n direction,\n onSelectPrev,\n onSelectNext,\n fromYear,\n toYear,\n maxYear,\n minYear,\n navigationIcons,\n } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n const ariaLabel =\n direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = { fromYear: fromYear + newRangeOffset, toYear: toYear + newRangeOffset };\n const ariaLabelString = ariaLabel ? (typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange)) : undefined;\n const disabled =\n direction === CalendarYearNavDirection.Previous\n ? minYear !== undefined && fromYear < minYear\n : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n\n const onNavigate = () => {\n direction === CalendarYearNavDirection.Previous ? onSelectPrev?.() : onSelectNext?.();\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n\n return (\n <button\n className={mergeClasses(classNames.navigationButton, disabled && classNames.disabled)}\n aria-disabled={disabled}\n tabIndex={disabled ? -1 : undefined}\n onClick={!disabled ? onNavigate : undefined}\n onKeyDown={!disabled ? onKeyDown : undefined}\n type=\"button\"\n title={ariaLabelString}\n >\n {direction === CalendarYearNavDirection.Previous ? navigationIcons.upNavigation : navigationIcons.downNavigation}\n </button>\n );\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\n\nconst CalendarYearNav: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.navigationButtonsContainer}>\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Previous} />\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Next} />\n </div>\n );\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\n\nconst CalendarYearTitle: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n strings = DefaultCalendarYearStrings,\n animateBackwards,\n animationDirection,\n } = props;\n\n const onHeaderSelect = () => {\n props.onHeaderSelect?.(true);\n };\n\n const onHeaderKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n\n const onRenderYear = (year: number) => {\n return props.onRenderYear?.(year) ?? year;\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel\n ? typeof rangeAriaLabel === 'string'\n ? rangeAriaLabel\n : rangeAriaLabel(props)\n : undefined;\n\n const ariaLabel = headerAriaLabelFormatString\n ? headerAriaLabelFormatString.replace('{0}', currentDateRange ?? '')\n : currentDateRange;\n\n return (\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onHeaderKeyDown}\n aria-label={ariaLabel}\n role=\"button\"\n type=\"button\"\n >\n <span aria-live=\"assertive\" aria-atomic=\"true\">\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </span>\n </button>\n );\n }\n\n return (\n <div className={classNames.current}>\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </div>\n );\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\n\nconst CalendarYearHeader: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n return (\n <div className={classNames.headerContainer}>\n {onRenderTitle?.(props) ?? <CalendarYearTitle {...props} />}\n <CalendarYearNav {...props} />\n </div>\n );\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\n\nfunction useAnimateBackwards(fromYear: number): boolean | undefined {\n const previousFromYearRef = React.useRef<number | undefined>(undefined);\n React.useEffect(() => {\n previousFromYearRef.current = fromYear;\n });\n // eslint-disable-next-line react-hooks/refs\n const previousFromYear = previousFromYearRef.current;\n\n // eslint-disable-next-line react-hooks/refs\n if (previousFromYear === undefined || previousFromYear === fromYear) {\n return undefined;\n // eslint-disable-next-line react-hooks/refs\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction useYearRangeState({ selectedYear, navigatedYear, onNavigateDate }: CalendarYearProps) {\n const rangeYear = React.useMemo(() => {\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [navigatedYear, selectedYear]);\n\n const [fromYear, setFromYear] = React.useState<number>(rangeYear);\n\n const onNavNext = () => {\n const newFromYear = fromYear + CELL_COUNT;\n setFromYear(newFromYear);\n onNavigateDate?.(newFromYear);\n };\n\n const onNavPrevious = () => {\n const newFromYear = fromYear - CELL_COUNT;\n setFromYear(newFromYear);\n onNavigateDate?.(newFromYear);\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setFromYear(rangeYear);\n }, [rangeYear]);\n\n const toYear = fromYear + CELL_COUNT - 1;\n\n return [fromYear, toYear, onNavNext, onNavPrevious] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarYear: React.FunctionComponent<CalendarYearProps> = props => {\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n const animateBackwards = useAnimateBackwards(fromYear);\n\n const gridRef = React.useRef<CalendarYearGrid>(null);\n\n React.useImperativeHandle(props.componentRef, () => ({\n focus() {\n gridRef.current?.focus?.();\n },\n }));\n\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.root}>\n <CalendarYearHeader\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n onSelectPrev={onNavPrevious}\n onSelectNext={onNavNext}\n animateBackwards={animateBackwards}\n />\n <CalendarYearGrid\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n animateBackwards={animateBackwards}\n componentRef={gridRef}\n />\n </div>\n );\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["React","Enter","Space","useArrowNavigationGroup","mergeClasses","useCalendarYearStyles_unstable","DirectionalSlideIn","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","onRenderYear","buttonRef","useRef","useImperativeHandle","focus","current","onClick","onKeyDown","ev","key","classNames","highlightCurrent","highlightSelected","button","itemButton","type","role","aria-selected","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","renderCell","yearToRender","Date","getFullYear","value","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","axis","div","gridContainer","aria-label","map","cellRow","index","replayKey","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","navigationIcons","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","navigationButton","aria-disabled","tabIndex","title","upNavigation","downNavigation","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","onHeaderKeyDown","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","span","aria-live","aria-atomic","CalendarYearHeader","onRenderTitle","headerContainer","useAnimateBackwards","previousFromYearRef","useEffect","previousFromYear","useYearRangeState","navigatedYear","onNavigateDate","rangeYear","useMemo","Math","floor","setFromYear","useState","onNavNext","newFromYear","onNavPrevious","CalendarYear","gridRef","root"],"mappings":"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"}
@@ -12,5 +12,6 @@ Object.defineProperty(exports, "useCalendarYearStyles_unstable", {
12
12
  const _useCalendarPickerStylesstyles = require("../CalendarPicker/useCalendarPickerStyles.styles");
13
13
  const useCalendarYearStyles_unstable = (props)=>{
14
14
  'use no memo';
15
+ // justified: compiler would optimize useCalendarYearStyles_unstable — manual opt-out to preserve runtime behavior
15
16
  return (0, _useCalendarPickerStylesstyles.useCalendarPickerStyles_unstable)(props);
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["useCalendarYearStyles.styles.js"],"sourcesContent":["'use client';\nimport { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';\n/**\n * Apply styling to the CalendarYear slots based on the state\n *\n * @internal\n */ export const useCalendarYearStyles_unstable = (props)=>{\n 'use no memo';\n return useCalendarPickerStyles_unstable(props);\n};\n"],"names":["useCalendarPickerStyles_unstable","useCalendarYearStyles_unstable","props"],"mappings":"AAAA,YAAY;;;;;;;;;;;+CACqC,kDAAkD;AAKxF,MAAMC,8BAA8B,IAAIC,KAAK,IAAG;IACvD,aAAa;IACb,WAAOF,+DAAgC,EAACE,KAAK,CAAC;AAClD,CAAC"}
1
+ {"version":3,"sources":["useCalendarYearStyles.styles.js"],"sourcesContent":["'use client';\nimport { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';\n/**\n * Apply styling to the CalendarYear slots based on the state\n *\n * @internal\n */ export const useCalendarYearStyles_unstable = (props)=>{\n 'use no memo'; // justified: compiler would optimize useCalendarYearStyles_unstable — manual opt-out to preserve runtime behavior\n return useCalendarPickerStyles_unstable(props);\n};\n"],"names":["useCalendarPickerStyles_unstable","useCalendarYearStyles_unstable","props"],"mappings":"AAAA,YAAY;;;;;;;;;;;+CACqC,kDAAkD;AAKxF,MAAMC,8BAA8B,IAAIC,KAAK,IAAG;IACvD,aAAa;IAAE,kHAAA;IACf,WAAOF,+DAAgC,EAACE,KAAK,CAAC;AAClD,CAAC"}
@@ -11,6 +11,6 @@ Object.defineProperty(exports, "useCalendarYearStyles_unstable", {
11
11
  });
12
12
  const _useCalendarPickerStylesstyles = require("../CalendarPicker/useCalendarPickerStyles.styles");
13
13
  const useCalendarYearStyles_unstable = (props)=>{
14
- 'use no memo';
14
+ 'use no memo'; // justified: compiler would optimize useCalendarYearStyles_unstable — manual opt-out to preserve runtime behavior
15
15
  return (0, _useCalendarPickerStylesstyles.useCalendarPickerStyles_unstable)(props);
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CalendarYear/useCalendarYearStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';\nimport type { CalendarYearStyleProps, CalendarYearStyles } from './CalendarYear.types';\n\n/**\n * Apply styling to the CalendarYear slots based on the state\n *\n * @internal\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"],"mappings":"AAAA;;;;;;;;;;;+CAEiD,mDAAmD;AAQ7F,MAAMC,iCAAiC,CAACC;IAC7C;IAEA,WAAOF,+DAAAA,EAAiCE;AAC1C,EAAE"}
1
+ {"version":3,"sources":["../src/components/CalendarYear/useCalendarYearStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';\nimport type { CalendarYearStyleProps, CalendarYearStyles } from './CalendarYear.types';\n\n/**\n * Apply styling to the CalendarYear slots based on the state\n *\n * @internal\n */\nexport const useCalendarYearStyles_unstable = (props: CalendarYearStyleProps): CalendarYearStyles => {\n 'use no memo'; // justified: compiler would optimize useCalendarYearStyles_unstable — manual opt-out to preserve runtime behavior\n\n return useCalendarPickerStyles_unstable(props);\n};\n"],"names":["useCalendarPickerStyles_unstable","useCalendarYearStyles_unstable","props"],"mappings":"AAAA;;;;;;;;;;;+CAEiD,mDAAmD;AAQ7F,MAAMC,iCAAiC,CAACC;IAC7C,eAAe,kHAAkH;IAEjI,WAAOF,+DAAAA,EAAiCE;AAC1C,EAAE"}
@@ -55,12 +55,13 @@ _export(exports, {
55
55
  return TRANSITION_ROW_DISAPPEARANCE;
56
56
  }
57
57
  });
58
- const EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';
58
+ const _reactmotion = require("@fluentui/react-motion");
59
+ const EASING_FUNCTION_1 = _reactmotion.motionTokens.curveDecelerateMax;
59
60
  const EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';
60
- const DURATION_1 = '0.167s';
61
- const DURATION_2 = '0.267s';
62
- const DURATION_3 = '0.367s';
63
- const DURATION_4 = '0.467s';
61
+ const DURATION_1 = `${_reactmotion.motionTokens.durationFast}ms`;
62
+ const DURATION_2 = `${_reactmotion.motionTokens.durationGentle}ms`;
63
+ const DURATION_3 = `${_reactmotion.motionTokens.durationSlower}ms`;
64
+ const DURATION_4 = `${_reactmotion.motionTokens.durationUltraSlow}ms`;
64
65
  const FADE_IN = {
65
66
  from: {
66
67
  opacity: 0
@@ -88,30 +89,30 @@ const SLIDE_DOWN_IN20 = {
88
89
  transform: 'translate3d(0, 0, 0)'
89
90
  }
90
91
  };
91
- const SLIDE_LEFT_IN20 = {
92
+ const SLIDE_UP_IN20 = {
92
93
  from: {
93
94
  pointerEvents: 'none',
94
- transform: 'translate3d(20px, 0, 0)'
95
+ transform: 'translate3d(0, 20px, 0)'
95
96
  },
96
97
  to: {
97
98
  pointerEvents: 'auto',
98
99
  transform: 'translate3d(0, 0, 0)'
99
100
  }
100
101
  };
101
- const SLIDE_RIGHT_IN20 = {
102
+ const SLIDE_LEFT_IN20 = {
102
103
  from: {
103
104
  pointerEvents: 'none',
104
- transform: 'translate3d(-20px, 0, 0)'
105
+ transform: 'translate3d(20px, 0, 0)'
105
106
  },
106
107
  to: {
107
108
  pointerEvents: 'auto',
108
109
  transform: 'translate3d(0, 0, 0)'
109
110
  }
110
111
  };
111
- const SLIDE_UP_IN20 = {
112
+ const SLIDE_RIGHT_IN20 = {
112
113
  from: {
113
114
  pointerEvents: 'none',
114
- transform: 'translate3d(0, 20px, 0)'
115
+ transform: 'translate3d(-20px, 0, 0)'
115
116
  },
116
117
  to: {
117
118
  pointerEvents: 'auto',
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/animations.ts"],"sourcesContent":["export const EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nexport const EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nexport const DURATION_1 = '0.167s';\nexport const DURATION_2 = '0.267s';\nexport const DURATION_3 = '0.367s';\nexport const DURATION_4 = '0.467s';\n\nexport const FADE_IN = {\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n};\nexport const FADE_OUT = {\n from: {\n opacity: 1,\n },\n to: {\n opacity: 0,\n visibility: 'hidden' as const,\n },\n};\nexport const SLIDE_DOWN_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(0, -20px, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\nexport const SLIDE_LEFT_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(20px, 0, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\nexport const SLIDE_RIGHT_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(-20px, 0, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\nexport const SLIDE_UP_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(0, 20px, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\nexport const SLIDE_DOWN_OUT20 = {\n from: {\n transform: 'translate3d(0, 0, 0)',\n },\n to: {\n transform: 'translate3d(0, 20px, 0)',\n },\n};\nexport const SLIDE_UP_OUT20 = {\n from: {\n transform: 'translate3d(0, 0, 0)',\n },\n to: {\n transform: 'translate3d(0, -20px, 0)',\n },\n};\n\nexport const TRANSITION_ROW_DISAPPEARANCE = {\n '100%': {\n height: '0px',\n overflow: 'hidden',\n\n width: '0px',\n },\n '99.9%': {\n height: '28px',\n overflow: 'visible',\n width: '100%',\n },\n '0%': {\n height: '28px',\n overflow: 'visible',\n width: '100%',\n },\n};\n"],"names":["EASING_FUNCTION_1","EASING_FUNCTION_2","DURATION_1","DURATION_2","DURATION_3","DURATION_4","FADE_IN","from","opacity","to","FADE_OUT","visibility","SLIDE_DOWN_IN20","pointerEvents","transform","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","SLIDE_DOWN_OUT20","SLIDE_UP_OUT20","TRANSITION_ROW_DISAPPEARANCE","height","overflow","width"],"mappings":";;;;;;;;;;;cAEaE;;;IACAC,UAAAA;;;IACAC,UAAAA;;;cACAC;;;qBALAL;;;qBACAC;;;WAMAK;;;YAQAI;eAAAA;;mBASAE;;;oBAwCAM;;;IA9BAH,eAAAA;;;oBAUAC;;;IAUAC,aAAAA;;;kBAkBAE;;;gCASAC;;;;AAjFN,MAAMpB,oBAAoB,2BAA2B;AACrD,MAAMC,oBAAoB,8BAA8B;AACxD,MAAMC,aAAa,SAAS;AAC5B,mBAAmB,SAAS;AAC5B,mBAAmB,SAAS;AAC5B,MAAMG,aAAa,SAAS;AAE5B,MAAMC,UAAU;IACrBC,MAAM;QACJC,SAAS;IACX;IACAC,IAAI;QACFD,SAAS;IACX;AACF,EAAE;AACK,iBAAiB;IACtBD,MAAM;QACJC,SAAS;IACX;IACAC,IAAI;QACFD,SAAS;QACTG,YAAY;IACd;AACF,EAAE;AACK,MAAMC,kBAAkB;IAC7BL,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AACK,wBAAwB;IAC7BP,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AACK,MAAME,mBAAmB;IAC9BT,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AACK,sBAAsB;IAC3BP,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AACK,MAAMI,mBAAmB;IAC9BX,MAAM;QACJO,WAAW;IACb;IACAL,IAAI;QACFK,WAAW;IACb;AACF,EAAE;AACK,MAAMK,iBAAiB;IAC5BZ,MAAM;QACJO,WAAW;IACb;IACAL,IAAI;QACFK,WAAW;IACb;AACF,EAAE;AAEK,MAAMM,+BAA+B;IAC1C,QAAQ;QACNC,QAAQ;QACRC,UAAU;QAEVC,OAAO;IACT;IACA,SAAS;QACPF,QAAQ;QACRC,UAAU;QACVC,OAAO;IACT;IACA,MAAM;QACJF,QAAQ;QACRC,UAAU;QACVC,OAAO;IACT;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/utils/animations.ts"],"sourcesContent":["import { motionTokens } from '@fluentui/react-motion';\n\n// === EASING FUNCTIONS ===\n\n/** @deprecated Slide animations now use motion components. Use motionTokens.curveDecelerateMax instead. */\nexport const EASING_FUNCTION_1 = motionTokens.curveDecelerateMax;\n\n/** @deprecated Fade animations now use Fade.In motion component. No exact motion token equivalent. */\nexport const EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\n\n// === DURATIONS ===\n\n/** @deprecated No longer used internally. */\nexport const DURATION_1 = `${motionTokens.durationFast}ms`;\n\n/** @deprecated Fade animations now use Fade.In motion component with motionTokens.durationGentle. */\nexport const DURATION_2 = `${motionTokens.durationGentle}ms`;\n\n/** @deprecated Slide animations now use motion components with motionTokens.durationSlower. */\nexport const DURATION_3 = `${motionTokens.durationSlower}ms`;\n\n/** @deprecated No longer used internally. */\nexport const DURATION_4 = `${motionTokens.durationUltraSlow}ms`;\n\n// === FADE ANIMATIONS ===\n\n/** @deprecated Fade animations now use Fade.In motion component. */\nexport const FADE_IN = {\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n};\n\n/** @deprecated Slide animations now use motion components. */\nexport const FADE_OUT = {\n from: {\n opacity: 1,\n },\n to: {\n opacity: 0,\n visibility: 'hidden' as const,\n },\n};\n\n// === SLIDE ANIMATIONS ===\n\n/** @deprecated Slide-in animations now use the `DirectionalSlideIn` motion component. */\nexport const SLIDE_DOWN_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(0, -20px, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\n\n/** @deprecated Slide-in animations now use the `DirectionalSlideIn` motion component. */\nexport const SLIDE_UP_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(0, 20px, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\n\n/** @deprecated Slide-in animations now use the `DirectionalSlideIn` motion component. */\nexport const SLIDE_LEFT_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(20px, 0, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\n\n/** @deprecated Slide-in animations now use the `DirectionalSlideIn` motion component. */\nexport const SLIDE_RIGHT_IN20 = {\n from: {\n pointerEvents: 'none' as const,\n transform: 'translate3d(-20px, 0, 0)',\n },\n to: {\n pointerEvents: 'auto' as const,\n transform: 'translate3d(0, 0, 0)',\n },\n};\n\n/** @deprecated Slide-out animations now use the `DirectionalSlideOut` motion component. */\nexport const SLIDE_DOWN_OUT20 = {\n from: {\n transform: 'translate3d(0, 0, 0)',\n },\n to: {\n transform: 'translate3d(0, 20px, 0)',\n },\n};\n\n/** @deprecated Slide-out animations now use the `DirectionalSlideOut` motion component. */\nexport const SLIDE_UP_OUT20 = {\n from: {\n transform: 'translate3d(0, 0, 0)',\n },\n to: {\n transform: 'translate3d(0, -20px, 0)',\n },\n};\n\n// === OTHER TRANSITIONS ===\n\n/** @deprecated No longer used internally. */\nexport const TRANSITION_ROW_DISAPPEARANCE = {\n '100%': {\n height: '0px',\n overflow: 'hidden',\n width: '0px',\n },\n '99.9%': {\n height: '28px',\n overflow: 'visible',\n width: '100%',\n },\n '0%': {\n height: '28px',\n overflow: 'visible',\n width: '100%',\n },\n};\n"],"names":["motionTokens","EASING_FUNCTION_1","curveDecelerateMax","EASING_FUNCTION_2","DURATION_1","durationFast","DURATION_2","durationGentle","DURATION_3","durationSlower","DURATION_4","durationUltraSlow","FADE_IN","from","opacity","to","FADE_OUT","visibility","SLIDE_DOWN_IN20","pointerEvents","transform","SLIDE_UP_IN20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_DOWN_OUT20","SLIDE_UP_OUT20","TRANSITION_ROW_DISAPPEARANCE","height","overflow","width"],"mappings":";;;;;;;;;;;cAaaI;;;cAGAE;eAAAA;;cAGAE;;;cAGAE;;;qBAjBAT;;;qBAGAE;;;IAmBAS,OAAAA;;;YAUAI;;;IAaAE,eAAAA;;;oBAgDAM;;;mBAxBAF;;;IAYAC,gBAAAA;;;iBAxBAF;eAAAA;;kBA8CAI;;;gCAYAC;;;;6BAxHgB,yBAAyB;AAK/C,MAAMzB,oBAAoBD,yBAAAA,CAAaE,kBAAkB,CAAC;AAG1D,MAAMC,oBAAoB,8BAA8B;AAKxD,MAAMC,aAAa,GAAGJ,yBAAAA,CAAaK,YAAY,CAAC,EAAE,CAAC,CAAC;AAGpD,mBAAmB,GAAGL,yBAAAA,CAAaO,cAAc,CAAC,EAAE,CAAC,CAAC;AAGtD,MAAMC,aAAa,GAAGR,yBAAAA,CAAaS,cAAc,CAAC,EAAE,CAAC,CAAC;AAGtD,MAAMC,aAAa,GAAGV,yBAAAA,CAAaW,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAKzD,gBAAgB;IACrBE,MAAM;QACJC,SAAS;IACX;IACAC,IAAI;QACFD,SAAS;IACX;AACF,EAAE;AAGK,MAAME,WAAW;IACtBH,MAAM;QACJC,SAAS;IACX;IACAC,IAAI;QACFD,SAAS;QACTG,YAAY;IACd;AACF,EAAE;AAKK,wBAAwB;IAC7BJ,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AAGK,sBAAsB;IAC3BP,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AAGK,MAAME,kBAAkB;IAC7BT,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AAGK,yBAAyB;IAC9BP,MAAM;QACJM,eAAe;QACfC,WAAW;IACb;IACAL,IAAI;QACFI,eAAe;QACfC,WAAW;IACb;AACF,EAAE;AAGK,MAAMI,mBAAmB;IAC9BX,MAAM;QACJO,WAAW;IACb;IACAL,IAAI;QACFK,WAAW;IACb;AACF,EAAE;AAGK,MAAMK,iBAAiB;IAC5BZ,MAAM;QACJO,WAAW;IACb;IACAL,IAAI;QACFK,WAAW;IACb;AACF,EAAE;AAKK,MAAMM,+BAA+B;IAC1C,QAAQ;QACNC,QAAQ;QACRC,UAAU;QACVC,OAAO;IACT;IACA,SAAS;QACPF,QAAQ;QACRC,UAAU;QACVC,OAAO;IACT;IACA,MAAM;QACJF,QAAQ;QACRC,UAAU;QACVC,OAAO;IACT;AACF,EAAE"}
@@ -0,0 +1,105 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ function _export(target, all) {
7
+ for(var name in all)Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: all[name]
10
+ });
11
+ }
12
+ _export(exports, {
13
+ DirectionalSlideIn: function() {
14
+ return DirectionalSlideIn;
15
+ },
16
+ DirectionalSlideOut: function() {
17
+ return DirectionalSlideOut;
18
+ }
19
+ });
20
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
21
+ const _reactmotion = require("@fluentui/react-motion");
22
+ const _reactmotioncomponentspreview = require("@fluentui/react-motion-components-preview");
23
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
24
+ const _reactutilities = require("@fluentui/react-utilities");
25
+ const _Calendar = require("../Calendar");
26
+ // Distance the rows travel as they slide in/out. Shared so the enter and exit motions stay in sync.
27
+ const SLIDE_DISTANCE = '20px';
28
+ // Clones the single child with a ref that merges the forwarded ref and the child's own ref. Lets the
29
+ // `DirectionalSlideIn`/`DirectionalSlideOut` wrappers render no DOM of their own while still exposing a
30
+ // ref to the actual child element (e.g. the `<tr>`), keeping them transparent for table semantics.
31
+ function useChildWithMergedRef(children, ref) {
32
+ const child = _react.Children.only(children);
33
+ const mergedRef = (0, _reactutilities.useMergedRefs)(ref, (0, _reactutilities.getReactElementRef)(child));
34
+ return /*#__PURE__*/ _react.cloneElement(child, {
35
+ ref: mergedRef
36
+ });
37
+ }
38
+ const DirectionalSlideIn = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
39
+ const { duration = _reactmotion.motionTokens.durationSlower, easing = _reactmotion.motionTokens.curveDecelerateMax, animationDirection = _Calendar.AnimationDirection.Vertical, animateBackwards = false, replayKey, children } = props;
40
+ let outX = '0px';
41
+ let outY = '0px';
42
+ const distance = animateBackwards ? `-${SLIDE_DISTANCE}` : SLIDE_DISTANCE;
43
+ if (animationDirection === _Calendar.AnimationDirection.Horizontal) {
44
+ outX = distance;
45
+ } else {
46
+ outY = distance;
47
+ }
48
+ // `Slide.In`'s `useChildElement` will further merge its motion ref on top.
49
+ const childWithRef = useChildWithMergedRef(children, ref);
50
+ // `Slide.In` bakes `outY` into its atoms at mount and `replayKey` only replays them, so a
51
+ // direction flip needs a remount. Same-direction navigations keep the key and reuse the DOM.
52
+ const directionKey = animateBackwards ? 'back' : 'fwd';
53
+ return /*#__PURE__*/ _react.createElement(_reactmotioncomponentspreview.Slide.In, {
54
+ key: directionKey,
55
+ duration: duration,
56
+ easing: easing,
57
+ outX: outX,
58
+ outY: outY,
59
+ replayKey: replayKey
60
+ }, childWithRef);
61
+ });
62
+ DirectionalSlideIn.displayName = 'DirectionalSlideIn';
63
+ // One-way "out" motion for the day grid's transition (filler) rows. It fades and slides the row
64
+ // out in the navigation direction (the top row slides up, the bottom row slides down). The row is
65
+ // `position: absolute` and `opacity: 0` at rest, so the motion's forwards fill leaves it back at its
66
+ // hidden resting state once it finishes. Composed from Fluent's `fadeAtom` + `slideAtom` so it stays
67
+ // consistent with the rest of the motion system; there is no size animation, because the row is
68
+ // overlaid out of flow and hidden via opacity (not by collapsing its box).
69
+ const TransitionRowSlideOut = (0, _reactmotion.createMotionComponent)(({ outY })=>{
70
+ const duration = _reactmotion.motionTokens.durationSlower;
71
+ const easing = _reactmotion.motionTokens.curveDecelerateMax;
72
+ return [
73
+ (0, _reactmotioncomponentspreview.fadeAtom)({
74
+ direction: 'exit',
75
+ duration,
76
+ easing
77
+ }),
78
+ (0, _reactmotioncomponentspreview.slideAtom)({
79
+ direction: 'exit',
80
+ duration,
81
+ easing,
82
+ outY
83
+ })
84
+ ];
85
+ });
86
+ const DirectionalSlideOut = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
87
+ const { edge, animationDirection = _Calendar.AnimationDirection.Vertical, animateBackwards, replayKey, children } = props;
88
+ const childWithRef = useChildWithMergedRef(children, ref);
89
+ // The legacy animation only ran for vertical navigation, and only on the row matching the
90
+ // navigation direction: the top (first) row slides up & out when navigating forward, the bottom
91
+ // (last) row slides down & out when navigating backward. `animateBackwards === undefined` means no
92
+ // navigation has happened yet, so nothing animates on initial mount (the row stays hidden at rest).
93
+ const isVertical = animationDirection !== _Calendar.AnimationDirection.Horizontal;
94
+ const shouldAnimate = isVertical && animateBackwards !== undefined && (edge === 'first' ? !animateBackwards : animateBackwards);
95
+ if (!shouldAnimate) {
96
+ return childWithRef;
97
+ }
98
+ // First (top) row slides up and out; last (bottom) row slides down and out.
99
+ const outY = edge === 'first' ? `-${SLIDE_DISTANCE}` : SLIDE_DISTANCE;
100
+ return /*#__PURE__*/ _react.createElement(TransitionRowSlideOut, {
101
+ outY: outY,
102
+ replayKey: replayKey
103
+ }, childWithRef);
104
+ });
105
+ DirectionalSlideOut.displayName = 'DirectionalSlideOut';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/calendarMotions.tsx"],"sourcesContent":["'use client';\n\nimport { motionTokens, createMotionComponent } from '@fluentui/react-motion';\nimport { Slide, fadeAtom, slideAtom } from '@fluentui/react-motion-components-preview';\nimport * as React from 'react';\nimport { getReactElementRef, useMergedRefs } from '@fluentui/react-utilities';\nimport { AnimationDirection } from '../Calendar';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\n// Distance the rows travel as they slide in/out. Shared so the enter and exit motions stay in sync.\nconst SLIDE_DISTANCE = '20px';\n\n// Clones the single child with a ref that merges the forwarded ref and the child's own ref. Lets the\n// `DirectionalSlideIn`/`DirectionalSlideOut` wrappers render no DOM of their own while still exposing a\n// ref to the actual child element (e.g. the `<tr>`), keeping them transparent for table semantics.\nfunction useChildWithMergedRef(children: JSXElement, ref: React.Ref<HTMLElement>) {\n const child = React.Children.only(children) as React.ReactElement<{ ref?: React.Ref<HTMLElement> }>;\n const mergedRef = useMergedRefs(ref, getReactElementRef(child));\n return React.cloneElement(child, { ref: mergedRef });\n}\n\nexport type DirectionalSlideInProps = {\n duration?: number;\n easing?: string;\n animationDirection?: AnimationDirection;\n animateBackwards?: boolean;\n /**\n * When this value changes, the slide animation replays from the start on the same DOM element\n * without remounting the subtree. Use this instead of a React `key` to retrigger the animation\n * on navigation, so focus and DOM identity are preserved during keyboard navigation.\n */\n replayKey?: string | number;\n children: JSXElement;\n};\n\n// `forwardRef` per the repo rule banning `React.FC`. This wrapper renders no DOM of its own,\n// so the forwarded ref is cloned onto the child below — callers get a ref to the actual\n// `<tr>`/`<div role=\"row\">`, keeping `DirectionalSlideIn` transparent.\nexport const DirectionalSlideIn = React.forwardRef<HTMLElement, DirectionalSlideInProps>((props, ref) => {\n const {\n // Using durationSlower (400ms) as the closest token to the original 367ms\n duration = motionTokens.durationSlower,\n easing = motionTokens.curveDecelerateMax,\n animationDirection = AnimationDirection.Vertical,\n animateBackwards = false,\n replayKey,\n children,\n } = props;\n\n let outX = '0px';\n let outY = '0px';\n const distance = animateBackwards ? `-${SLIDE_DISTANCE}` : SLIDE_DISTANCE;\n if (animationDirection === AnimationDirection.Horizontal) {\n outX = distance;\n } else {\n outY = distance;\n }\n\n // `Slide.In`'s `useChildElement` will further merge its motion ref on top.\n const childWithRef = useChildWithMergedRef(children, ref);\n\n // `Slide.In` bakes `outY` into its atoms at mount and `replayKey` only replays them, so a\n // direction flip needs a remount. Same-direction navigations keep the key and reuse the DOM.\n const directionKey = animateBackwards ? 'back' : 'fwd';\n\n return (\n <Slide.In key={directionKey} duration={duration} easing={easing} outX={outX} outY={outY} replayKey={replayKey}>\n {childWithRef}\n </Slide.In>\n );\n});\n\nDirectionalSlideIn.displayName = 'DirectionalSlideIn';\n\n// One-way \"out\" motion for the day grid's transition (filler) rows. It fades and slides the row\n// out in the navigation direction (the top row slides up, the bottom row slides down). The row is\n// `position: absolute` and `opacity: 0` at rest, so the motion's forwards fill leaves it back at its\n// hidden resting state once it finishes. Composed from Fluent's `fadeAtom` + `slideAtom` so it stays\n// consistent with the rest of the motion system; there is no size animation, because the row is\n// overlaid out of flow and hidden via opacity (not by collapsing its box).\nconst TransitionRowSlideOut = createMotionComponent(({ outY }: { outY: string }) => {\n const duration = motionTokens.durationSlower;\n const easing = motionTokens.curveDecelerateMax;\n return [fadeAtom({ direction: 'exit', duration, easing }), slideAtom({ direction: 'exit', duration, easing, outY })];\n});\n\nexport type DirectionalSlideOutProps = {\n /** Which transition row this wraps: the first (top) or last (bottom) filler row. */\n edge: 'first' | 'last';\n animationDirection?: AnimationDirection;\n animateBackwards?: boolean;\n /**\n * When this value changes, the slide-out animation replays from the start on the same DOM element\n * without remounting the subtree, matching {@link DirectionalSlideIn}.\n */\n replayKey?: string | number;\n children: JSXElement;\n};\n\n// `forwardRef` per the repo rule banning `React.FC`. Like `DirectionalSlideIn`, this wrapper renders\n// no DOM of its own — the forwarded ref is cloned onto the child so callers get a ref to the actual\n// `<tr>`, keeping the wrapper transparent for table semantics.\nexport const DirectionalSlideOut = React.forwardRef<HTMLElement, DirectionalSlideOutProps>((props, ref) => {\n const { edge, animationDirection = AnimationDirection.Vertical, animateBackwards, replayKey, children } = props;\n\n const childWithRef = useChildWithMergedRef(children, ref);\n\n // The legacy animation only ran for vertical navigation, and only on the row matching the\n // navigation direction: the top (first) row slides up & out when navigating forward, the bottom\n // (last) row slides down & out when navigating backward. `animateBackwards === undefined` means no\n // navigation has happened yet, so nothing animates on initial mount (the row stays hidden at rest).\n const isVertical = animationDirection !== AnimationDirection.Horizontal;\n const shouldAnimate =\n isVertical && animateBackwards !== undefined && (edge === 'first' ? !animateBackwards : animateBackwards);\n\n if (!shouldAnimate) {\n return childWithRef;\n }\n\n // First (top) row slides up and out; last (bottom) row slides down and out.\n const outY = edge === 'first' ? `-${SLIDE_DISTANCE}` : SLIDE_DISTANCE;\n\n return (\n <TransitionRowSlideOut outY={outY} replayKey={replayKey}>\n {childWithRef}\n </TransitionRowSlideOut>\n );\n});\n\nDirectionalSlideOut.displayName = 'DirectionalSlideOut';\n"],"names":["motionTokens","createMotionComponent","Slide","fadeAtom","slideAtom","React","getReactElementRef","useMergedRefs","AnimationDirection","SLIDE_DISTANCE","useChildWithMergedRef","children","ref","child","Children","only","mergedRef","cloneElement","DirectionalSlideIn","forwardRef","props","duration","durationSlower","easing","curveDecelerateMax","animationDirection","Vertical","animateBackwards","replayKey","outX","outY","distance","Horizontal","childWithRef","directionKey","In","key","displayName","TransitionRowSlideOut","direction","DirectionalSlideOut","edge","isVertical","shouldAnimate","undefined"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ /* eslint-disable @typescript-eslint/no-deprecated -- Re-exporting deprecated animations for backwards compatibility */ "use strict";
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/index.ts"],"sourcesContent":["export {\n DURATION_1,\n DURATION_2,\n DURATION_3,\n DURATION_4,\n EASING_FUNCTION_1,\n EASING_FUNCTION_2,\n FADE_IN,\n FADE_OUT,\n SLIDE_DOWN_IN20,\n SLIDE_DOWN_OUT20,\n SLIDE_LEFT_IN20,\n SLIDE_RIGHT_IN20,\n SLIDE_UP_IN20,\n SLIDE_UP_OUT20,\n TRANSITION_ROW_DISAPPEARANCE,\n} from './animations';\nexport { DAYS_IN_WEEK, DateRangeType, DayOfWeek, FirstWeekOfYear, MonthOfYear, TimeConstants } from './constants';\nexport type { CalendarStrings, DateFormatting, DateGridStrings } from './dateFormatting';\nexport {\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n DEFAULT_DATE_GRID_STRINGS,\n formatDay,\n formatMonth,\n formatMonthDayYear,\n formatMonthYear,\n formatYear,\n} from './dateFormatting';\nexport type { AvailableDateOptions, Day, DayGridOptions, RestrictedDatesOptions } from './dateGrid';\nexport { findAvailableDate, getBoundedDateRange, getDayGrid, isRestrictedDate } from './dateGrid';\nexport {\n addDays,\n addMonths,\n addWeeks,\n addYears,\n compareDatePart,\n compareDates,\n getDatePartHashValue,\n getDateRangeArray,\n getEndDateOfWeek,\n getMonthEnd,\n getMonthStart,\n getStartDateOfWeek,\n getWeekNumber,\n getWeekNumbersInMonth,\n getYearEnd,\n getYearStart,\n isInDateRangeArray,\n setMonth,\n} from './dateMath';\nexport { focusAsync } from './focus';\n"],"names":["DURATION_1","DURATION_2","DURATION_3","DURATION_4","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","FADE_OUT","SLIDE_DOWN_IN20","SLIDE_DOWN_OUT20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","SLIDE_UP_OUT20","TRANSITION_ROW_DISAPPEARANCE","DAYS_IN_WEEK","DateRangeType","DayOfWeek","FirstWeekOfYear","MonthOfYear","TimeConstants","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","DEFAULT_DATE_GRID_STRINGS","formatDay","formatMonth","formatMonthDayYear","formatMonthYear","formatYear","findAvailableDate","getBoundedDateRange","getDayGrid","isRestrictedDate","addDays","addMonths","addWeeks","addYears","compareDatePart","compareDates","getDatePartHashValue","getDateRangeArray","getEndDateOfWeek","getMonthEnd","getMonthStart","getStartDateOfWeek","getWeekNumber","getWeekNumbersInMonth","getYearEnd","getYearStart","isInDateRangeArray","setMonth","focusAsync"],"mappings":";;;;;;;;;;;IAiBSe;sCAAY;;IAGnBM,wBAAwB;;;;eACxBC,uCAAuB;;IACvBC,yBAAyB;;;IArBzBvB;qCAAU;;;eACVC,sBAAU;;;eACVC,sBAAU;;;eACVC,sBAAU;;;eAaWa,wBAAa;;;eAAEC,oBAAS;;;eAZ7Cb,6BAAiB;;;eACjBC,6BAAiB;;;eACjBC,mBAAO;;;eACPC,oBAAQ;;;eASuCW,0BAAe;;IAAEC;qCAAW;;;eAR3EX,2BAAe;;;eACfC,4BAAgB;;;eAChBC,2BAAe;;;eACfC,4BAAgB;;;eAChBC,yBAAa;;kBACC;eAAdC;;;eACAC,wCAA4B;;;eAEiDM,wBAAa;;;eAe1Fa,iBAAO;;IACPC,SAAS;;;;eACTC,kBAAQ;;;eACRC,kBAAQ;;;eACRC,yBAAe;;gBACH;eAAZC;;;eAPOT,2BAAiB;;cAqBP;eAAVsB;;;eA5BP3B,yBAAS;;;eACTC,2BAAW;;;eACXC,kCAAkB;;;eAClBC,+BAAe;;;eACfC,0BAAU;;uBAGmC;eAAnBE;;wBAQN;eAApBS;;IACAC,iBAAiB;;;;eAT8BT,oBAAU;;;eAUzDU,0BAAgB;;eACL;eAAXC;;;eACAC,uBAAa;;;eACbC,4BAAkB;;;eAClBC,uBAAa;;;eACbC,+BAAqB;;cACX;eAAVC;;;eACAC,sBAAY;;;eACZC,4BAAkB;;;eAlByCjB,0BAAgB;;;eAmB3EkB,kBAAQ;;;4BAjCH,eAAe;2BAC8E,cAAc;gCAW3G,mBAAmB;0BAE2D,aAAa;0BAoB3F,aAAa;uBACO,UAAU"}
1
+ {"version":3,"sources":["../src/utils/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-deprecated -- Re-exporting deprecated animations for backwards compatibility */\nexport {\n DURATION_1,\n DURATION_2,\n DURATION_3,\n DURATION_4,\n EASING_FUNCTION_1,\n EASING_FUNCTION_2,\n FADE_IN,\n FADE_OUT,\n SLIDE_DOWN_IN20,\n SLIDE_DOWN_OUT20,\n SLIDE_LEFT_IN20,\n SLIDE_RIGHT_IN20,\n SLIDE_UP_IN20,\n SLIDE_UP_OUT20,\n TRANSITION_ROW_DISAPPEARANCE,\n} from './animations';\n/* eslint-enable @typescript-eslint/no-deprecated */\nexport { DAYS_IN_WEEK, DateRangeType, DayOfWeek, FirstWeekOfYear, MonthOfYear, TimeConstants } from './constants';\nexport type { CalendarStrings, DateFormatting, DateGridStrings } from './dateFormatting';\nexport {\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n DEFAULT_DATE_GRID_STRINGS,\n formatDay,\n formatMonth,\n formatMonthDayYear,\n formatMonthYear,\n formatYear,\n} from './dateFormatting';\nexport type { AvailableDateOptions, Day, DayGridOptions, RestrictedDatesOptions } from './dateGrid';\nexport { findAvailableDate, getBoundedDateRange, getDayGrid, isRestrictedDate } from './dateGrid';\nexport {\n addDays,\n addMonths,\n addWeeks,\n addYears,\n compareDatePart,\n compareDates,\n getDatePartHashValue,\n getDateRangeArray,\n getEndDateOfWeek,\n getMonthEnd,\n getMonthStart,\n getStartDateOfWeek,\n getWeekNumber,\n getWeekNumbersInMonth,\n getYearEnd,\n getYearStart,\n isInDateRangeArray,\n setMonth,\n} from './dateMath';\nexport { focusAsync } from './focus';\n"],"names":["DURATION_1","DURATION_2","DURATION_3","DURATION_4","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","FADE_OUT","SLIDE_DOWN_IN20","SLIDE_DOWN_OUT20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","SLIDE_UP_OUT20","TRANSITION_ROW_DISAPPEARANCE","DAYS_IN_WEEK","DateRangeType","DayOfWeek","FirstWeekOfYear","MonthOfYear","TimeConstants","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","DEFAULT_DATE_GRID_STRINGS","formatDay","formatMonth","formatMonthDayYear","formatMonthYear","formatYear","findAvailableDate","getBoundedDateRange","getDayGrid","isRestrictedDate","addDays","addMonths","addWeeks","addYears","compareDatePart","compareDates","getDatePartHashValue","getDateRangeArray","getEndDateOfWeek","getMonthEnd","getMonthStart","getStartDateOfWeek","getWeekNumber","getWeekNumbersInMonth","getYearEnd","getYearStart","isInDateRangeArray","setMonth","focusAsync"],"mappings":"AAAA,qHAAqH,GACrH;;;;;;;;;;;;eAkBSe,uBAAY;;IAGnBM,wBAAwB;;;IACxBC,uBAAuB;;;;eACvBC,yCAAyB;;;eAtBzBvB,sBAAU;;;eACVC,sBAAU;;;eACVC,sBAAU;;;eACVC,sBAAU;;;eAcWa,wBAAa;;;eAAEC,oBAAS;;;eAb7Cb,6BAAiB;;qBACA;eAAjBC;;;eACAC,mBAAO;;;eACPC,oBAAQ;;;eAUuCW,0BAAe;;;eAAEC,sBAAW;;;eAT3EX,2BAAe;;;eACfC,4BAAgB;;;eAChBC,2BAAe;;oBACC;eAAhBC;;;eACAC,yBAAa;;;eACbC,0BAAc;;;eACdC,wCAA4B;;;eAGiDM,wBAAa;;;eAe1Fa,iBAAO;;;eACPC,mBAAS;;IACTC,QAAQ;;;;eACRC,kBAAQ;;;eACRC,yBAAe;;IACfC,YAAY;;;;eAPLT,2BAAiB;;cAqBP;eAAVsB;;;eA5BP3B,yBAAS;;;eACTC,2BAAW;;;eACXC,kCAAkB;;;eAClBC,+BAAe;;;eACfC,0BAAU;;;eAGgBE,6BAAmB;;wBAQzB;eAApBS;;IACAC,iBAAiB;;;cATwC;eAAVT;;;eAU/CU,0BAAgB;;eACL;eAAXC;;;eACAC,uBAAa;;;eACbC,4BAAkB;;;eAClBC,uBAAa;;;eACbC,+BAAqB;;cACX;eAAVC;;;eACAC,sBAAY;;;eACZC,4BAAkB;;;eAlByCjB,0BAAgB;;;eAmB3EkB,kBAAQ;;;4BAlCH,eAAe;2BAE8E,cAAc;gCAW3G,mBAAmB;0BAE2D,aAAa;0BAoB3F,aAAa;uBACO,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-calendar-compat",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "Calendar compat component for Fluent UI v9",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -14,11 +14,13 @@
14
14
  "dependencies": {
15
15
  "@fluentui/keyboard-keys": "^9.0.8",
16
16
  "@fluentui/react-icons": "^2.0.245",
17
- "@fluentui/react-jsx-runtime": "^9.4.3",
17
+ "@fluentui/react-jsx-runtime": "^9.4.4",
18
+ "@fluentui/react-motion": "^9.16.1",
19
+ "@fluentui/react-motion-components-preview": "^0.15.6",
18
20
  "@fluentui/react-shared-contexts": "^9.26.2",
19
- "@fluentui/react-tabster": "^9.26.15",
21
+ "@fluentui/react-tabster": "^9.26.16",
20
22
  "@fluentui/react-theme": "^9.2.1",
21
- "@fluentui/react-utilities": "^9.26.4",
23
+ "@fluentui/react-utilities": "^9.26.5",
22
24
  "@griffel/react": "^1.5.32",
23
25
  "@swc/helpers": "^0.5.1"
24
26
  },