@uxf/datepicker 1.2.0 → 10.0.0-beta.9

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 (81) hide show
  1. package/contexts/date-picker-context.d.ts +1 -1
  2. package/contexts/date-picker-context.js +18 -19
  3. package/contexts/date-range-picker-context.d.ts +1 -1
  4. package/contexts/date-range-picker-context.js +21 -21
  5. package/contexts/time-picker-context.d.ts +1 -1
  6. package/contexts/time-picker-context.js +9 -10
  7. package/hooks/use-date-picker-navigation.js +32 -36
  8. package/hooks/use-date-picker-navigation.test.js +37 -46
  9. package/hooks/use-date-picker.d.ts +1 -1
  10. package/hooks/use-date-picker.js +66 -86
  11. package/hooks/use-date-picker.test.js +25 -32
  12. package/hooks/use-date-range-picker.d.ts +2 -1
  13. package/hooks/use-date-range-picker.js +94 -112
  14. package/hooks/use-date-range-picker.test.js +39 -50
  15. package/hooks/use-day.d.ts +3 -1
  16. package/hooks/use-day.js +13 -14
  17. package/hooks/use-day.test.js +44 -44
  18. package/hooks/use-decade.js +11 -15
  19. package/hooks/use-decade.test.js +13 -18
  20. package/hooks/use-hour.js +6 -8
  21. package/hooks/use-hour.test.js +26 -31
  22. package/hooks/use-hours.d.ts +1 -1
  23. package/hooks/use-hours.js +7 -11
  24. package/hooks/use-hours.test.js +8 -11
  25. package/hooks/use-minute.js +6 -8
  26. package/hooks/use-minute.test.js +26 -31
  27. package/hooks/use-minutes.d.ts +1 -1
  28. package/hooks/use-minutes.js +7 -11
  29. package/hooks/use-minutes.test.js +8 -11
  30. package/hooks/use-month.js +12 -14
  31. package/hooks/use-month.test.js +17 -22
  32. package/hooks/use-time-picker.d.ts +2 -2
  33. package/hooks/use-time-picker.js +43 -61
  34. package/hooks/use-time-picker.test.js +31 -40
  35. package/hooks/use-year.js +8 -10
  36. package/hooks/use-year.test.js +13 -18
  37. package/package.json +5 -20
  38. package/utils/can-select-range.js +9 -11
  39. package/utils/can-select-range.test.js +10 -11
  40. package/utils/dayjs-en.js +8 -5
  41. package/utils/get-current-year-month-and-date.js +2 -3
  42. package/utils/get-current-year-month-and-date.test.js +4 -5
  43. package/utils/get-date-month-and-year.js +6 -7
  44. package/utils/get-date-month-and-year.test.js +2 -3
  45. package/utils/get-days.d.ts +1 -1
  46. package/utils/get-days.js +20 -47
  47. package/utils/get-days.test.js +6 -7
  48. package/utils/get-each.js +3 -5
  49. package/utils/get-each.test.js +6 -7
  50. package/utils/get-initial-months.js +7 -8
  51. package/utils/get-initial-months.test.js +5 -6
  52. package/utils/get-months.d.ts +1 -1
  53. package/utils/get-months.js +8 -10
  54. package/utils/get-months.test.js +5 -6
  55. package/utils/get-next-active-month.js +5 -6
  56. package/utils/get-next-active-month.test.js +8 -9
  57. package/utils/get-weekday-labels.js +6 -8
  58. package/utils/get-weekday-labels.test.js +8 -9
  59. package/utils/get-years.d.ts +1 -1
  60. package/utils/get-years.js +5 -7
  61. package/utils/get-years.test.js +5 -6
  62. package/utils/is-browser.js +0 -1
  63. package/utils/is-date-blocked.js +5 -7
  64. package/utils/is-date-blocked.test.js +3 -4
  65. package/utils/is-date-hovered.js +6 -8
  66. package/utils/is-date-hovered.test.js +9 -10
  67. package/utils/is-date-inside-range.d.ts +1 -0
  68. package/utils/is-date-inside-range.js +11 -0
  69. package/utils/is-date-selected.test.js +10 -11
  70. package/utils/is-end-date.js +1 -2
  71. package/utils/is-end-date.test.js +2 -3
  72. package/utils/is-first-or-last-selected-date.js +1 -2
  73. package/utils/is-first-or-last-selected-date.test.js +2 -3
  74. package/utils/is-in-unavailable-dates.js +3 -5
  75. package/utils/is-in-unavailable-dates.test.js +2 -3
  76. package/utils/is-start-date.js +1 -2
  77. package/utils/is-start-date.test.js +2 -3
  78. package/utils/types.d.ts +1 -1
  79. package/utils/types.js +0 -1
  80. package/utils/is-date-selected.d.ts +0 -1
  81. package/utils/is-date-selected.js +0 -12
@@ -1,102 +1,68 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __read = (this && this.__read) || function (o, n) {
14
- var m = typeof Symbol === "function" && o[Symbol.iterator];
15
- if (!m) return o;
16
- var i = m.call(o), r, ar = [], e;
17
- try {
18
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
- }
20
- catch (error) { e = { error: error }; }
21
- finally {
22
- try {
23
- if (r && !r.done && (m = i["return"])) m.call(i);
24
- }
25
- finally { if (e) throw e.error; }
26
- }
27
- return ar;
28
- };
29
2
  Object.defineProperty(exports, "__esModule", { value: true });
30
3
  exports.useDatePicker = void 0;
31
- var react_1 = require("react");
32
- var get_initial_months_1 = require("../utils/get-initial-months");
33
- var is_date_blocked_1 = require("../utils/is-date-blocked");
34
- var is_date_hovered_1 = require("../utils/is-date-hovered");
35
- var is_in_unavailable_dates_1 = require("../utils/is-in-unavailable-dates");
36
- var is_start_date_1 = require("../utils/is-start-date");
37
- var use_date_picker_navigation_1 = require("./use-date-picker-navigation");
38
- var is_browser_1 = require("../utils/is-browser");
39
- var dayjs_en_1 = require("../utils/dayjs-en");
40
- function useDatePicker(_a) {
41
- var _b = _a.firstDayOfWeek, firstDayOfWeek = _b === void 0 ? 0 : _b, initialVisibleMonth = _a.initialVisibleMonth, _c = _a.isDateBlocked, isDateBlockedProps = _c === void 0 ? function () { return false; } : _c, maxBookingDate = _a.maxBookingDate, minBookingDate = _a.minBookingDate, _d = _a.numberOfMonths, numberOfMonths = _d === void 0 ? 1 : _d, onDateChange = _a.onDateChange, selectedDate = _a.selectedDate, _e = _a.unavailableDates, unavailableDates = _e === void 0 ? [] : _e;
42
- var _f = __read((0, react_1.useState)(function () {
43
- return selectedDate
44
- ? (0, get_initial_months_1.getInitialMonths)(numberOfMonths, selectedDate)
45
- : (0, get_initial_months_1.getInitialMonths)(numberOfMonths, initialVisibleMonth || null);
46
- }), 2), activeMonths = _f[0], setActiveMonths = _f[1];
47
- var _g = __read((0, react_1.useState)(null), 2), hoveredDate = _g[0], setHoveredDate = _g[1];
48
- var _h = __read((0, react_1.useState)(selectedDate), 2), focusedDate = _h[0], setFocusedDate = _h[1];
49
- var disabledDatesByUser = function (date) {
4
+ const react_1 = require("react");
5
+ const get_initial_months_1 = require("../utils/get-initial-months");
6
+ const is_date_blocked_1 = require("../utils/is-date-blocked");
7
+ const is_date_hovered_1 = require("../utils/is-date-hovered");
8
+ const is_in_unavailable_dates_1 = require("../utils/is-in-unavailable-dates");
9
+ const is_start_date_1 = require("../utils/is-start-date");
10
+ const use_date_picker_navigation_1 = require("./use-date-picker-navigation");
11
+ const is_browser_1 = require("../utils/is-browser");
12
+ const dayjs_en_1 = require("../utils/dayjs-en");
13
+ function useDatePicker({ firstDayOfWeek = 0, initialVisibleMonth, isDateBlocked: isDateBlockedProps = () => false, maxBookingDate, minBookingDate, numberOfMonths = 1, onDateChange, selectedDate, unavailableDates = [], }) {
14
+ const [activeMonths, setActiveMonths] = (0, react_1.useState)(() => selectedDate
15
+ ? (0, get_initial_months_1.getInitialMonths)(numberOfMonths, selectedDate)
16
+ : (0, get_initial_months_1.getInitialMonths)(numberOfMonths, initialVisibleMonth || null));
17
+ const [hoveredDate, setHoveredDate] = (0, react_1.useState)(null);
18
+ const [focusedDate, setFocusedDate] = (0, react_1.useState)(selectedDate);
19
+ const disabledDatesByUser = (date) => {
50
20
  return (0, is_in_unavailable_dates_1.isInUnavailableDates)(unavailableDates, date) || isDateBlockedProps(date);
51
21
  };
52
- var onDateFocus = (0, react_1.useCallback)(function (date) {
22
+ const onDateFocus = (0, react_1.useCallback)((date) => {
53
23
  setFocusedDate(date);
54
- if (!focusedDate || !activeMonths.map(function (m) { return m.month; }).includes((0, dayjs_en_1.dayjsEn)(date).month())) {
24
+ if (!focusedDate || !activeMonths.map((m) => m.month).includes((0, dayjs_en_1.dayjsEn)(date).month())) {
55
25
  setActiveMonths((0, get_initial_months_1.getInitialMonths)(numberOfMonths, date));
56
26
  }
57
27
  }, [activeMonths, focusedDate, numberOfMonths]);
58
- var _isDateSelected = function (date) { return (0, is_start_date_1.isStartDate)(date, selectedDate); };
59
- var _isDateBlocked = function (date) {
60
- return (0, is_date_blocked_1.isDateBlocked)({
61
- date: date,
62
- minBookingDate: minBookingDate,
63
- maxBookingDate: maxBookingDate,
64
- startDate: selectedDate,
65
- endDate: selectedDate,
66
- minBookingDays: 1,
67
- isDateBlockedFn: disabledDatesByUser,
68
- });
69
- };
70
- var isDateFocused = function (date) { return (focusedDate ? (0, dayjs_en_1.dayjsEn)(date).isSame(focusedDate, "day") : false); };
71
- var _isDateHovered = function (date) {
72
- return (0, is_date_hovered_1.isDateHovered)({
73
- date: date,
74
- hoveredDate: hoveredDate,
75
- startDate: selectedDate,
76
- endDate: selectedDate,
77
- minBookingDays: 1,
78
- exactMinBookingDays: false,
79
- isDateBlocked: disabledDatesByUser,
80
- });
81
- };
82
- (0, react_1.useEffect)(function () {
28
+ const _isDateSelected = (date) => (0, is_start_date_1.isStartDate)(date, selectedDate);
29
+ const _isDateBlocked = (date) => (0, is_date_blocked_1.isDateBlocked)({
30
+ date,
31
+ minBookingDate,
32
+ maxBookingDate,
33
+ startDate: selectedDate,
34
+ endDate: selectedDate,
35
+ minBookingDays: 1,
36
+ isDateBlockedFn: disabledDatesByUser,
37
+ });
38
+ const isDateFocused = (date) => (focusedDate ? (0, dayjs_en_1.dayjsEn)(date).isSame(focusedDate, "day") : false);
39
+ const _isDateHovered = (date) => (0, is_date_hovered_1.isDateHovered)({
40
+ date,
41
+ hoveredDate,
42
+ startDate: selectedDate,
43
+ endDate: selectedDate,
44
+ minBookingDays: 1,
45
+ exactMinBookingDays: false,
46
+ isDateBlocked: disabledDatesByUser,
47
+ });
48
+ (0, react_1.useEffect)(() => {
83
49
  if (!is_browser_1.isBrowser) {
84
50
  return;
85
51
  }
86
52
  function handleKeyDown(e) {
87
53
  if ((e.key === "ArrowRight" || e.key === "ArrowLeft" || e.key === "ArrowDown" || e.key === "ArrowUp") &&
88
54
  !focusedDate) {
89
- var activeMonth = activeMonths[0];
55
+ const activeMonth = activeMonths[0];
90
56
  onDateFocus(activeMonth.date);
91
57
  setActiveMonths((0, get_initial_months_1.getInitialMonths)(numberOfMonths, activeMonth.date));
92
58
  }
93
59
  }
94
60
  window.addEventListener("keydown", handleKeyDown);
95
- return function () {
61
+ return () => {
96
62
  window.removeEventListener("keydown", handleKeyDown);
97
63
  };
98
64
  }, [activeMonths, focusedDate, numberOfMonths, onDateFocus]);
99
- var onReset = (0, react_1.useCallback)(function () {
65
+ const onReset = (0, react_1.useCallback)(() => {
100
66
  onDateChange(null);
101
67
  }, [onDateChange]);
102
68
  function onDateSelect(date) {
@@ -112,7 +78,7 @@ function useDatePicker(_a) {
112
78
  setHoveredDate(null);
113
79
  }
114
80
  else {
115
- var isNotBlocked = !_isDateBlocked(date) || (selectedDate && (0, dayjs_en_1.dayjsEn)(date).isSame(selectedDate, "day"));
81
+ const isNotBlocked = !_isDateBlocked(date) || (selectedDate && (0, dayjs_en_1.dayjsEn)(date).isSame(selectedDate, "day"));
116
82
  if (isNotBlocked) {
117
83
  setHoveredDate(date);
118
84
  }
@@ -121,14 +87,28 @@ function useDatePicker(_a) {
121
87
  }
122
88
  }
123
89
  }
124
- return __assign(__assign({}, (0, use_date_picker_navigation_1.useDatePickerNavigation)({
125
- activeMonths: activeMonths,
126
- maxBookingDate: maxBookingDate,
127
- minBookingDate: minBookingDate,
128
- numberOfMonths: numberOfMonths,
129
- setActiveMonths: setActiveMonths,
130
- setFocusedDate: setFocusedDate,
131
- })), { activeMonths: activeMonths, firstDayOfWeek: firstDayOfWeek, focusedDate: focusedDate, hoveredDate: hoveredDate, isDateBlocked: _isDateBlocked, isDateFocused: isDateFocused, isDateHovered: _isDateHovered, isDateSelected: _isDateSelected, numberOfMonths: numberOfMonths, onDateFocus: onDateFocus, onDateHover: onDateHover, onDateSelect: onDateSelect, onResetDates: onReset });
90
+ return {
91
+ ...(0, use_date_picker_navigation_1.useDatePickerNavigation)({
92
+ activeMonths,
93
+ maxBookingDate,
94
+ minBookingDate,
95
+ numberOfMonths,
96
+ setActiveMonths,
97
+ setFocusedDate,
98
+ }),
99
+ activeMonths,
100
+ firstDayOfWeek,
101
+ focusedDate,
102
+ hoveredDate,
103
+ isDateBlocked: _isDateBlocked,
104
+ isDateFocused,
105
+ isDateHovered: _isDateHovered,
106
+ isDateSelected: _isDateSelected,
107
+ numberOfMonths,
108
+ onDateFocus,
109
+ onDateHover,
110
+ onDateSelect,
111
+ onResetDates: onReset,
112
+ };
132
113
  }
133
114
  exports.useDatePicker = useDatePicker;
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRhdGUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZS1kYXRlLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFBeUQ7QUFDekQsa0VBQStEO0FBQy9ELDREQUF5RDtBQUN6RCw0REFBeUQ7QUFDekQsNEVBQXdFO0FBQ3hFLHdEQUFxRDtBQUVyRCwyRUFBMEc7QUFDMUcsa0RBQWdEO0FBQ2hELDhDQUE0QztBQWdDNUMsU0FBZ0IsYUFBYSxDQUFDLEVBVVQ7UUFUakIsc0JBQWtCLEVBQWxCLGNBQWMsbUJBQUcsQ0FBQyxLQUFBLEVBQ2xCLG1CQUFtQix5QkFBQSxFQUNuQixxQkFBK0MsRUFBaEMsa0JBQWtCLG1CQUFHLGNBQU0sT0FBQSxLQUFLLEVBQUwsQ0FBSyxLQUFBLEVBQy9DLGNBQWMsb0JBQUEsRUFDZCxjQUFjLG9CQUFBLEVBQ2Qsc0JBQWtCLEVBQWxCLGNBQWMsbUJBQUcsQ0FBQyxLQUFBLEVBQ2xCLFlBQVksa0JBQUEsRUFDWixZQUFZLGtCQUFBLEVBQ1osd0JBQXFCLEVBQXJCLGdCQUFnQixtQkFBRyxFQUFFLEtBQUE7SUFFZixJQUFBLEtBQUEsT0FBa0MsSUFBQSxnQkFBUSxFQUFDO1FBQzdDLE9BQUEsWUFBWTtZQUNSLENBQUMsQ0FBQyxJQUFBLHFDQUFnQixFQUFDLGNBQWMsRUFBRSxZQUFZLENBQUM7WUFDaEQsQ0FBQyxDQUFDLElBQUEscUNBQWdCLEVBQUMsY0FBYyxFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQztJQUZuRSxDQUVtRSxDQUN0RSxJQUFBLEVBSk0sWUFBWSxRQUFBLEVBQUUsZUFBZSxRQUluQyxDQUFDO0lBQ0ksSUFBQSxLQUFBLE9BQWdDLElBQUEsZ0JBQVEsRUFBYyxJQUFJLENBQUMsSUFBQSxFQUExRCxXQUFXLFFBQUEsRUFBRSxjQUFjLFFBQStCLENBQUM7SUFDNUQsSUFBQSxL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
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var react_hooks_1 = require("@testing-library/react-hooks");
4
- var react_1 = require("react");
5
- var use_date_picker_1 = require("./use-date-picker");
6
- test("base data", function () {
7
- var BASE_DATE = new Date("2021-09-15");
8
- var result = (0, react_hooks_1.renderHook)(function () {
9
- return (0, use_date_picker_1.useDatePicker)({
10
- selectedDate: BASE_DATE,
11
- onDateChange: function () { return undefined; },
12
- minBookingDate: new Date("2020-01-01"),
13
- });
14
- }).result;
3
+ const react_hooks_1 = require("@testing-library/react-hooks");
4
+ const react_1 = require("react");
5
+ const use_date_picker_1 = require("./use-date-picker");
6
+ test("base data", () => {
7
+ const BASE_DATE = new Date("2021-09-15");
8
+ const { result } = (0, react_hooks_1.renderHook)(() => (0, use_date_picker_1.useDatePicker)({
9
+ selectedDate: BASE_DATE,
10
+ onDateChange: () => undefined,
11
+ minBookingDate: new Date("2020-01-01"),
12
+ }));
15
13
  expect(result.current.firstDayOfWeek).toBe(0);
16
14
  expect(result.current.focusedDate).toStrictEqual(BASE_DATE);
17
15
  expect(result.current.hoveredDate).toBe(null);
@@ -25,54 +23,49 @@ test("base data", function () {
25
23
  expect(result.current.isDateBlocked(new Date("2020-01-01"))).toBe(false);
26
24
  expect(result.current.isDateBlocked(new Date("2019-12-31"))).toBe(true);
27
25
  });
28
- test("date focus", function () {
29
- var BASE_DATE = new Date("2021-09-15");
30
- var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_DATE); }).result;
31
- var result = (0, react_hooks_1.renderHook)(function () {
32
- return (0, use_date_picker_1.useDatePicker)({ selectedDate: state.current[0], onDateChange: function (date) { return state.current[1](date); } });
33
- }).result;
34
- var NEW_DATE = new Date("2022-12-22");
26
+ test("date focus", () => {
27
+ const BASE_DATE = new Date("2021-09-15");
28
+ const { result: state } = (0, react_hooks_1.renderHook)(() => (0, react_1.useState)(BASE_DATE));
29
+ const { result } = (0, react_hooks_1.renderHook)(() => (0, use_date_picker_1.useDatePicker)({ selectedDate: state.current[0], onDateChange: (date) => state.current[1](date) }));
30
+ const NEW_DATE = new Date("2022-12-22");
35
31
  expect(result.current.isDateFocused(BASE_DATE)).toBe(true);
36
32
  expect(result.current.isDateFocused(NEW_DATE)).toBe(false);
37
- (0, react_hooks_1.act)(function () {
33
+ (0, react_hooks_1.act)(() => {
38
34
  result.current.onDateFocus(NEW_DATE);
39
35
  });
40
36
  expect(result.current.isDateFocused(NEW_DATE)).toBe(true);
41
37
  expect(result.current.isDateFocused(BASE_DATE)).toBe(false);
42
38
  });
43
- test("date select", function () {
44
- var BASE_DATE = new Date("2021-09-15");
45
- var state = (0, react_hooks_1.renderHook)(function () { return (0, react_1.useState)(BASE_DATE); }).result;
46
- var _a = (0, react_hooks_1.renderHook)(function () {
47
- return (0, use_date_picker_1.useDatePicker)({ selectedDate: state.current[0], onDateChange: function (date) { return state.current[1](date); } });
48
- }), result = _a.result, rerender = _a.rerender;
49
- var NEW_DATE = new Date("2022-12-22");
39
+ test("date select", () => {
40
+ const BASE_DATE = new Date("2021-09-15");
41
+ const { result: state } = (0, react_hooks_1.renderHook)(() => (0, react_1.useState)(BASE_DATE));
42
+ const { result, rerender } = (0, react_hooks_1.renderHook)(() => (0, use_date_picker_1.useDatePicker)({ selectedDate: state.current[0], onDateChange: (date) => state.current[1](date) }));
43
+ const NEW_DATE = new Date("2022-12-22");
50
44
  expect(result.current.isDateSelected(BASE_DATE)).toBe(true);
51
45
  expect(result.current.isDateSelected(NEW_DATE)).toBe(false);
52
- (0, react_hooks_1.act)(function () {
46
+ (0, react_hooks_1.act)(() => {
53
47
  result.current.onDateSelect(NEW_DATE);
54
48
  rerender();
55
49
  });
56
50
  expect(result.current.isDateSelected(NEW_DATE)).toBe(true);
57
51
  expect(result.current.isDateSelected(BASE_DATE)).toBe(false);
58
52
  // select another
59
- (0, react_hooks_1.act)(function () {
53
+ (0, react_hooks_1.act)(() => {
60
54
  result.current.onDateSelect(BASE_DATE);
61
55
  rerender();
62
56
  });
63
57
  expect(result.current.isDateSelected(BASE_DATE)).toBe(true);
64
58
  // select save (deselect)
65
- (0, react_hooks_1.act)(function () {
59
+ (0, react_hooks_1.act)(() => {
66
60
  result.current.onDateSelect(BASE_DATE);
67
61
  rerender();
68
62
  });
69
63
  expect(result.current.isDateSelected(BASE_DATE)).toBe(false);
70
64
  // reset
71
- (0, react_hooks_1.act)(function () {
65
+ (0, react_hooks_1.act)(() => {
72
66
  result.current.onDateSelect(BASE_DATE);
73
67
  result.current.onResetDates();
74
68
  rerender();
75
69
  });
76
70
  expect(result.current.isDateSelected(BASE_DATE)).toBe(false);
77
71
  });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWRhdGUtcGlja2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlLWRhdGUtcGlja2VyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0REFBK0Q7QUFDL0QsK0JBQWlDO0FBQ2pDLHFEQUFrRDtBQUVsRCxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQ2QsSUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsSUFBQSxNQUFNLEdBQUssSUFBQSx3QkFBVSxFQUFDO1FBQzFCLE9BQUEsSUFBQSwrQkFBYSxFQUFDO1lBQ1YsWUFBWSxFQUFFLFNBQVM7WUFDdkIsWUFBWSxFQUFFLGNBQU0sT0FBQSxTQUFTLEVBQVQsQ0FBUztZQUM3QixjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ3pDLENBQUM7SUFKRixDQUlFLENBQ0wsT0FOYSxDQU1aO0lBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQzlDO1lBQ0ksSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxJQUFJO1NBQ2I7S0FDSixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFB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
@@ -2,7 +2,7 @@ import { FirstDayOfWeek, MonthType } from "../utils/types";
2
2
  import { UseDatePickerNavigationReturnType } from "./use-date-picker-navigation";
3
3
  export declare const START_DATE = "startDate";
4
4
  export declare const END_DATE = "endDate";
5
- export declare type FocusedInput = "startDate" | "endDate" | null;
5
+ export type FocusedInput = "startDate" | "endDate" | null;
6
6
  export interface OnDatesChangeProps {
7
7
  endDate: Date | null;
8
8
  focusedInput: FocusedInput;
@@ -32,6 +32,7 @@ export interface UseDateRangePickerReturnType extends UseDatePickerNavigationRet
32
32
  isDateBlocked: (date: Date) => boolean;
33
33
  isDateFocused: (date: Date) => boolean;
34
34
  isDateHovered: (date: Date) => boolean;
35
+ isDateInsideRange: (date: Date) => boolean;
35
36
  isDateSelected: (date: Date) => boolean;
36
37
  isEndDate: (date: Date) => boolean;
37
38
  isStartDate: (date: Date) => boolean;