@tecsinapse/cortex-react 1.13.3 → 1.13.4-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/cjs/components/Calendar/Calendar.js +18 -4
  2. package/dist/cjs/components/Calendar/CalendarCell.js +7 -12
  3. package/dist/cjs/components/Calendar/CalendarGrid.js +3 -0
  4. package/dist/cjs/components/Calendar/CalendarGridHeaderRow.js +1 -1
  5. package/dist/cjs/components/Calendar/RangeCalendar.js +15 -4
  6. package/dist/cjs/components/DatePicker/DatePickerInput.js +20 -3
  7. package/dist/cjs/components/DatePicker/DateRangePickerInput.js +20 -5
  8. package/dist/cjs/components/Input/Mask.js +3 -0
  9. package/dist/cjs/components/Input/Search.js +3 -0
  10. package/dist/cjs/components/Menubar/Categories.js +3 -0
  11. package/dist/cjs/components/Menubar/Dropdown.js +1 -0
  12. package/dist/cjs/components/Menubar/Header.js +1 -0
  13. package/dist/cjs/components/Menubar/Item.js +1 -0
  14. package/dist/cjs/components/Menubar/MostUsed.js +3 -0
  15. package/dist/cjs/components/Menubar/Root.js +1 -0
  16. package/dist/cjs/components/Menubar/Search.js +1 -0
  17. package/dist/cjs/components/Menubar/SubItem.js +1 -0
  18. package/dist/cjs/components/Popover/Provider.js +3 -0
  19. package/dist/cjs/components/Select/GroupedOptions.js +3 -0
  20. package/dist/cjs/components/Select/MultiGroupedOptions.js +3 -0
  21. package/dist/cjs/components/Select/MultiOptions.js +3 -0
  22. package/dist/cjs/components/Select/Options.js +3 -0
  23. package/dist/cjs/components/TimePicker/TimePickerInput.js +3 -0
  24. package/dist/cjs/components/Tooltip.js +3 -0
  25. package/dist/cjs/hooks/useCalendar.js +9 -2
  26. package/dist/cjs/hooks/useCalendarCell.js +17 -2
  27. package/dist/cjs/hooks/useDatePickerInput.js +6 -2
  28. package/dist/cjs/hooks/useDateRangePickerInput.js +6 -2
  29. package/dist/cjs/hooks/useRangeCalendar.js +6 -2
  30. package/dist/cjs/index.js +3 -0
  31. package/dist/cjs/provider/CalendarProvider.js +24 -0
  32. package/dist/cjs/provider/MenubarProvider.js +3 -1
  33. package/dist/cjs/styles/calendar-cell.js +10 -5
  34. package/dist/esm/components/Calendar/Calendar.js +19 -5
  35. package/dist/esm/components/Calendar/CalendarCell.js +7 -12
  36. package/dist/esm/components/Calendar/CalendarGrid.js +3 -0
  37. package/dist/esm/components/Calendar/CalendarGridHeaderRow.js +1 -1
  38. package/dist/esm/components/Calendar/RangeCalendar.js +16 -5
  39. package/dist/esm/components/DatePicker/DatePickerInput.js +20 -3
  40. package/dist/esm/components/DatePicker/DateRangePickerInput.js +20 -5
  41. package/dist/esm/components/Input/Mask.js +3 -0
  42. package/dist/esm/components/Input/Search.js +3 -0
  43. package/dist/esm/components/Menubar/Categories.js +3 -0
  44. package/dist/esm/components/Menubar/Dropdown.js +1 -0
  45. package/dist/esm/components/Menubar/Header.js +1 -0
  46. package/dist/esm/components/Menubar/Item.js +1 -0
  47. package/dist/esm/components/Menubar/MostUsed.js +3 -0
  48. package/dist/esm/components/Menubar/Root.js +1 -0
  49. package/dist/esm/components/Menubar/Search.js +1 -0
  50. package/dist/esm/components/Menubar/SubItem.js +1 -0
  51. package/dist/esm/components/Popover/Provider.js +3 -0
  52. package/dist/esm/components/Select/GroupedOptions.js +3 -0
  53. package/dist/esm/components/Select/MultiGroupedOptions.js +3 -0
  54. package/dist/esm/components/Select/MultiOptions.js +3 -0
  55. package/dist/esm/components/Select/Options.js +3 -0
  56. package/dist/esm/components/TimePicker/TimePickerInput.js +3 -0
  57. package/dist/esm/components/Tooltip.js +3 -0
  58. package/dist/esm/hooks/useCalendar.js +9 -2
  59. package/dist/esm/hooks/useCalendarCell.js +18 -3
  60. package/dist/esm/hooks/useDatePickerInput.js +6 -2
  61. package/dist/esm/hooks/useDateRangePickerInput.js +6 -2
  62. package/dist/esm/hooks/useRangeCalendar.js +6 -2
  63. package/dist/esm/index.js +1 -0
  64. package/dist/esm/provider/CalendarProvider.js +21 -0
  65. package/dist/esm/provider/MenubarProvider.js +3 -1
  66. package/dist/esm/styles/calendar-cell.js +10 -5
  67. package/dist/types/components/Calendar/Calendar.d.ts +3 -2
  68. package/dist/types/components/Calendar/CalendarProvider.d.ts +10 -0
  69. package/dist/types/components/Calendar/RangeCalendar.d.ts +3 -2
  70. package/dist/types/components/Calendar/types.d.ts +5 -0
  71. package/dist/types/components/DatePicker/DatePickerInput.d.ts +2 -4
  72. package/dist/types/components/DatePicker/DateRangePickerInput.d.ts +3 -5
  73. package/dist/types/components/DatePicker/types.d.ts +8 -0
  74. package/dist/types/hooks/useCalendar.d.ts +3 -1
  75. package/dist/types/hooks/useCalendarCell.d.ts +2 -0
  76. package/dist/types/hooks/useDatePickerInput.d.ts +3 -1
  77. package/dist/types/hooks/useDateRangePickerInput.d.ts +3 -1
  78. package/dist/types/hooks/useRangeCalendar.d.ts +3 -1
  79. package/dist/types/provider/CalendarProvider.d.ts +10 -0
  80. package/dist/types/provider/index.d.ts +1 -0
  81. package/dist/types/styles/calendar-cell.d.ts +18 -3
  82. package/package.json +2 -2
@@ -8,27 +8,32 @@ const calendarCell = tailwindVariants.tv({
8
8
  button: "flex aspect-square items-center justify-center"
9
9
  },
10
10
  variants: {
11
+ isToday: {
12
+ true: {
13
+ cell: "border-primary-light border-2"
14
+ }
15
+ },
11
16
  isSelected: {
12
17
  true: {
13
- cell: "bg-primary-medium text-white hover:bg-primary-medium"
18
+ cell: "bg-primary-medium border-2 border-primary-medium text-white hover:bg-primary-medium"
14
19
  }
15
20
  },
16
21
  isSelectionStart: {
17
22
  true: {
18
- cell: "bg-primary-medium rounded-r-none text-white"
23
+ cell: "bg-primary-medium border-2 border-primary-medium rounded-r-none text-white"
19
24
  }
20
25
  },
21
26
  isSelectionEnd: {
22
27
  true: {
23
- cell: "bg-primary-medium rounded-l-none text-white"
28
+ cell: "bg-primary-medium border-2 border-primary-medium rounded-l-none text-white"
24
29
  }
25
30
  },
26
31
  inRange: {
27
32
  true: {
28
- cell: "bg-primary-light rounded-none text-black"
33
+ cell: "bg-primary-light border-0 rounded-none text-black"
29
34
  }
30
35
  },
31
- isOutsideVisibleRange: {
36
+ isDisabled: {
32
37
  true: {
33
38
  cell: "text-secondary-light cursor-default hover:bg-white-500",
34
39
  button: "cursor-default"
@@ -1,8 +1,11 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useCalendar } from '../../hooks/useCalendar.js';
3
3
  import '@internationalized/date';
4
4
  import 'react';
5
5
  import 'react-aria';
6
+ import '../../provider/MenubarContext.js';
7
+ import '../../provider/SnackbarProvider.js';
8
+ import { CalendarProvider } from '../../provider/CalendarProvider.js';
6
9
  import 'react-stately';
7
10
  import '../Popover/Context.js';
8
11
  import 'react-dropzone';
@@ -12,9 +15,20 @@ import 'currency.js';
12
15
  import { CalendarGrid } from './CalendarGrid.js';
13
16
  import { CalendarHeader } from './CalendarHeader.js';
14
17
 
15
- const Calendar = ({ value, onChange }) => {
16
- const { calendarProps, title, state } = useCalendar({ value, onChange });
17
- return /* @__PURE__ */ jsxs("div", { ...calendarProps, className: "calendar", "data-testid": "calendar-div", children: [
18
+ const Calendar = ({
19
+ value,
20
+ onChange,
21
+ isTodayHighlited = true,
22
+ minValue,
23
+ maxValue
24
+ }) => {
25
+ const { calendarProps, title, state } = useCalendar({
26
+ value,
27
+ onChange,
28
+ minValue,
29
+ maxValue
30
+ });
31
+ return /* @__PURE__ */ jsx(CalendarProvider, { isTodayHighlited, children: /* @__PURE__ */ jsxs("div", { ...calendarProps, className: "calendar", "data-testid": "calendar-div", children: [
18
32
  /* @__PURE__ */ jsx(
19
33
  CalendarHeader,
20
34
  {
@@ -24,7 +38,7 @@ const Calendar = ({ value, onChange }) => {
24
38
  }
25
39
  ),
26
40
  /* @__PURE__ */ jsx(CalendarGrid, { state })
27
- ] });
41
+ ] }) });
28
42
  };
29
43
 
30
44
  export { Calendar };
@@ -27,7 +27,9 @@ const CalendarCell = ({ state, date }) => {
27
27
  formattedDate,
28
28
  isSelectionStart,
29
29
  isSelectionEnd,
30
- inRange
30
+ inRange,
31
+ isToday,
32
+ isDisabled
31
33
  } = useCalendarCell({ state, date });
32
34
  return /* @__PURE__ */ jsx(
33
35
  Td,
@@ -35,21 +37,14 @@ const CalendarCell = ({ state, date }) => {
35
37
  ...cellProps,
36
38
  "data-testid": "calendar-cell-td",
37
39
  className: cell({
38
- isOutsideVisibleRange,
40
+ isDisabled: isOutsideVisibleRange || isDisabled,
39
41
  isSelected,
40
42
  isSelectionStart,
41
43
  isSelectionEnd,
42
- inRange
44
+ inRange,
45
+ isToday
43
46
  }),
44
- children: /* @__PURE__ */ jsx(
45
- "div",
46
- {
47
- ...buttonProps,
48
- ref,
49
- className: button({ isOutsideVisibleRange }),
50
- children: formattedDate
51
- }
52
- )
47
+ children: /* @__PURE__ */ jsx("div", { ...buttonProps, ref, className: button({ isDisabled }), children: formattedDate })
53
48
  }
54
49
  );
55
50
  };
@@ -3,6 +3,9 @@ import '@internationalized/date';
3
3
  import 'react-aria';
4
4
  import 'react-stately';
5
5
  import 'react';
6
+ import '../../provider/MenubarContext.js';
7
+ import '../../provider/SnackbarProvider.js';
8
+ import '../../provider/CalendarProvider.js';
6
9
  import { useCalendarGrid } from '../../hooks/useCalendarGrid.js';
7
10
  import '../Popover/Context.js';
8
11
  import 'react-dropzone';
@@ -4,7 +4,7 @@ import { THeadCell } from '../Table.js';
4
4
  const CalendarGridHeaderRow = ({
5
5
  weekDays
6
6
  }) => {
7
- return /* @__PURE__ */ jsx("tr", { "data-testid": "calendar-grid-header-row", children: weekDays.map((day, index) => /* @__PURE__ */ jsx(THeadCell, { children: day }, index)) });
7
+ return /* @__PURE__ */ jsx("tr", { "data-testid": "calendar-grid-header-row", children: weekDays.map((day, index) => /* @__PURE__ */ jsx(THeadCell, { className: "w-11 h-11 aspect-square", children: day }, index)) });
8
8
  };
9
9
 
10
10
  export { CalendarGridHeaderRow };
@@ -1,8 +1,11 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import '@internationalized/date';
3
3
  import 'react-aria';
4
4
  import 'react-stately';
5
5
  import 'react';
6
+ import '../../provider/MenubarContext.js';
7
+ import '../../provider/SnackbarProvider.js';
8
+ import { CalendarProvider } from '../../provider/CalendarProvider.js';
6
9
  import '../Popover/Context.js';
7
10
  import 'react-dropzone';
8
11
  import 'uuid';
@@ -12,12 +15,20 @@ import { useRangeCalendar } from '../../hooks/useRangeCalendar.js';
12
15
  import { CalendarGrid } from './CalendarGrid.js';
13
16
  import { CalendarHeader } from './CalendarHeader.js';
14
17
 
15
- const RangeCalendar = ({ value, onChange }) => {
18
+ const RangeCalendar = ({
19
+ value,
20
+ onChange,
21
+ isTodayHighlited = true,
22
+ minValue,
23
+ maxValue
24
+ }) => {
16
25
  const { calendarProps, state, title, ref } = useRangeCalendar({
17
26
  value,
18
- onChange
27
+ onChange,
28
+ minValue,
29
+ maxValue
19
30
  });
20
- return /* @__PURE__ */ jsxs(
31
+ return /* @__PURE__ */ jsx(CalendarProvider, { isTodayHighlited, children: /* @__PURE__ */ jsxs(
21
32
  "div",
22
33
  {
23
34
  ...calendarProps,
@@ -36,7 +47,7 @@ const RangeCalendar = ({ value, onChange }) => {
36
47
  /* @__PURE__ */ jsx(CalendarGrid, { state })
37
48
  ]
38
49
  }
39
- );
50
+ ) });
40
51
  };
41
52
 
42
53
  export { RangeCalendar };
@@ -4,6 +4,9 @@ import 'react-aria';
4
4
  import 'react-stately';
5
5
  import { dateToCalendarDateTime } from '../../utils/date.js';
6
6
  import 'react';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import { useDatePickerInput } from '../../hooks/useDatePickerInput.js';
8
11
  import { useDatePickerInputCommon } from '../../hooks/useDatePickerInputCommon.js';
9
12
  import 'react-dropzone';
@@ -25,11 +28,16 @@ const DatePickerInputWithPopover = (props) => {
25
28
  variants,
26
29
  disabled,
27
30
  hourCycle = 24,
28
- granularity = "day"
31
+ granularity = "day",
32
+ isTodayHighlited,
33
+ minValue,
34
+ maxValue
29
35
  } = props;
30
36
  const { fieldProps, state, ref } = useDatePickerInput({
31
37
  value,
32
- onChange
38
+ onChange,
39
+ minValue,
40
+ maxValue
33
41
  });
34
42
  const { handleTogglePopover, handleChangeCalendar, handleCloseCalendar } = useDatePickerInputCommon({
35
43
  onChangeCalendar: (_value) => {
@@ -70,7 +78,16 @@ const DatePickerInputWithPopover = (props) => {
70
78
  {
71
79
  className: "bg-inherit shadow-default border-none",
72
80
  initialFocus: -1,
73
- children: /* @__PURE__ */ jsx(Calendar, { value, onChange: handleChangeCalendar })
81
+ children: /* @__PURE__ */ jsx(
82
+ Calendar,
83
+ {
84
+ value,
85
+ onChange: handleChangeCalendar,
86
+ isTodayHighlited,
87
+ minValue,
88
+ maxValue
89
+ }
90
+ )
74
91
  }
75
92
  )
76
93
  ] });
@@ -4,6 +4,9 @@ import 'react-aria';
4
4
  import 'react-stately';
5
5
  import { dateToCalendarDateTime } from '../../utils/date.js';
6
6
  import 'react';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import { useDatePickerInputCommon } from '../../hooks/useDatePickerInputCommon.js';
8
11
  import { useDateRangePickerInput } from '../../hooks/useDateRangePickerInput.js';
9
12
  import 'react-dropzone';
@@ -11,11 +14,11 @@ import 'uuid';
11
14
  import '@floating-ui/react';
12
15
  import 'currency.js';
13
16
  import '../Popover/Context.js';
14
- import { RangeCalendar } from '../Calendar/RangeCalendar.js';
15
- import { Popover } from '../Popover/index.js';
16
17
  import { Content } from '../Content.js';
17
18
  import { DateField } from './DateField.js';
18
19
  import { DatePickerInputBase } from './DatePickerInputBase.js';
20
+ import { Popover } from '../Popover/index.js';
21
+ import { RangeCalendar } from '../Calendar/RangeCalendar.js';
19
22
 
20
23
  const DateRangePickerInputWithPopover = (props) => {
21
24
  const {
@@ -25,9 +28,12 @@ const DateRangePickerInputWithPopover = (props) => {
25
28
  variants,
26
29
  disabled = false,
27
30
  hourCycle = 24,
28
- granularity = "day"
31
+ granularity = "day",
32
+ isTodayHighlited,
33
+ minValue,
34
+ maxValue
29
35
  } = props;
30
- const { endFieldProps, startFieldProps, ref, state } = useDateRangePickerInput({ value, onChange });
36
+ const { endFieldProps, startFieldProps, ref, state } = useDateRangePickerInput({ value, onChange, minValue, maxValue });
31
37
  const { handleTogglePopover, handleChangeCalendar, handleCloseCalendar } = useDatePickerInputCommon({
32
38
  onChangeRangeCalendar: (value2) => {
33
39
  state.setDateRange({
@@ -87,7 +93,16 @@ const DateRangePickerInputWithPopover = (props) => {
87
93
  {
88
94
  className: "bg-inherit shadow-default border-none",
89
95
  initialFocus: -1,
90
- children: /* @__PURE__ */ jsx(RangeCalendar, { value, onChange: handleChangeCalendar })
96
+ children: /* @__PURE__ */ jsx(
97
+ RangeCalendar,
98
+ {
99
+ value,
100
+ onChange: handleChangeCalendar,
101
+ isTodayHighlited,
102
+ minValue,
103
+ maxValue
104
+ }
105
+ )
91
106
  }
92
107
  )
93
108
  ] });
@@ -3,6 +3,9 @@ import React, { useEffect, useCallback } from 'react';
3
3
  import '@internationalized/date';
4
4
  import 'react-aria';
5
5
  import 'react-stately';
6
+ import '../../provider/MenubarContext.js';
7
+ import '../../provider/SnackbarProvider.js';
8
+ import '../../provider/CalendarProvider.js';
6
9
  import '../Popover/Context.js';
7
10
  import 'react-dropzone';
8
11
  import 'uuid';
@@ -4,6 +4,9 @@ import { IoSearchOutline } from 'react-icons/io5';
4
4
  import '@internationalized/date';
5
5
  import 'react-aria';
6
6
  import 'react-stately';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import '../Popover/Context.js';
8
11
  import { useDebouncedState } from '../../hooks/useDebouncedState.js';
9
12
  import 'react-dropzone';
@@ -4,6 +4,9 @@ import '@internationalized/date';
4
4
  import 'react-aria';
5
5
  import 'react-stately';
6
6
  import 'react';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import '../Popover/Context.js';
8
11
  import { useDimensions } from '../../hooks/useDimensions.js';
9
12
  import 'react-dropzone';
@@ -13,6 +13,7 @@ import 'currency.js';
13
13
  import '../../provider/MenubarContext.js';
14
14
  import '../../provider/SnackbarProvider.js';
15
15
  import { useMenubar } from '../../provider/useMenubar.js';
16
+ import '../../provider/CalendarProvider.js';
16
17
 
17
18
  const { dropdown } = menubar();
18
19
  const Dropdown = ({ children, ...rest }) => {
@@ -12,6 +12,7 @@ import 'currency.js';
12
12
  import '../../provider/MenubarContext.js';
13
13
  import '../../provider/SnackbarProvider.js';
14
14
  import { useMenubar } from '../../provider/useMenubar.js';
15
+ import '../../provider/CalendarProvider.js';
15
16
  import { menubar } from '../../styles/menubar.js';
16
17
  import { Button } from '../Button.js';
17
18
 
@@ -12,6 +12,7 @@ import 'currency.js';
12
12
  import '../../provider/MenubarContext.js';
13
13
  import '../../provider/SnackbarProvider.js';
14
14
  import { useMenubar } from '../../provider/useMenubar.js';
15
+ import '../../provider/CalendarProvider.js';
15
16
  import { item } from '../../styles/menubar.js';
16
17
  import IconControlSubItem from './IconControlSubItem.js';
17
18
  import ItemLink from './ItemLink.js';
@@ -4,6 +4,9 @@ import '@internationalized/date';
4
4
  import 'react-aria';
5
5
  import 'react-stately';
6
6
  import 'react';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import '../Popover/Context.js';
8
11
  import { useDimensions } from '../../hooks/useDimensions.js';
9
12
  import 'react-dropzone';
@@ -3,6 +3,7 @@ import { MenubarProvider } from '../../provider/MenubarProvider.js';
3
3
  import '../../provider/SnackbarProvider.js';
4
4
  import '../../provider/MenubarContext.js';
5
5
  import 'react';
6
+ import '../../provider/CalendarProvider.js';
6
7
 
7
8
  const Root = ({ children }) => {
8
9
  return /* @__PURE__ */ jsx(MenubarProvider, { children });
@@ -14,6 +14,7 @@ import 'currency.js';
14
14
  import '../../provider/MenubarContext.js';
15
15
  import '../../provider/SnackbarProvider.js';
16
16
  import { useMenubar } from '../../provider/useMenubar.js';
17
+ import '../../provider/CalendarProvider.js';
17
18
 
18
19
  const Search = (props) => {
19
20
  const [show] = useMenubar();
@@ -13,6 +13,7 @@ import 'currency.js';
13
13
  import '../../provider/MenubarContext.js';
14
14
  import '../../provider/SnackbarProvider.js';
15
15
  import { useMenubar } from '../../provider/useMenubar.js';
16
+ import '../../provider/CalendarProvider.js';
16
17
 
17
18
  const { container } = subItem();
18
19
  const SubItem = ({
@@ -3,6 +3,9 @@ import '@internationalized/date';
3
3
  import 'react-aria';
4
4
  import 'react-stately';
5
5
  import 'react';
6
+ import '../../provider/MenubarContext.js';
7
+ import '../../provider/SnackbarProvider.js';
8
+ import '../../provider/CalendarProvider.js';
6
9
  import { Context } from './Context.js';
7
10
  import 'react-dropzone';
8
11
  import 'uuid';
@@ -4,6 +4,9 @@ import { useContext, useCallback } from 'react';
4
4
  import '@internationalized/date';
5
5
  import 'react-aria';
6
6
  import 'react-stately';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import { usePopoverContext } from '../Popover/Context.js';
8
11
  import 'react-dropzone';
9
12
  import 'uuid';
@@ -4,6 +4,9 @@ import { useContext, useMemo } from 'react';
4
4
  import '@internationalized/date';
5
5
  import 'react-aria';
6
6
  import 'react-stately';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import '../Popover/Context.js';
8
11
  import 'react-dropzone';
9
12
  import 'uuid';
@@ -4,6 +4,9 @@ import { useContext } from 'react';
4
4
  import '@internationalized/date';
5
5
  import 'react-aria';
6
6
  import 'react-stately';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import '../Popover/Context.js';
8
11
  import 'react-dropzone';
9
12
  import 'uuid';
@@ -4,6 +4,9 @@ import { useContext, useCallback, useMemo } from 'react';
4
4
  import '@internationalized/date';
5
5
  import 'react-aria';
6
6
  import 'react-stately';
7
+ import '../../provider/MenubarContext.js';
8
+ import '../../provider/SnackbarProvider.js';
9
+ import '../../provider/CalendarProvider.js';
7
10
  import { usePopoverContext } from '../Popover/Context.js';
8
11
  import 'react-dropzone';
9
12
  import 'uuid';
@@ -3,6 +3,9 @@ import '@internationalized/date';
3
3
  import 'react-aria';
4
4
  import 'react-stately';
5
5
  import 'react';
6
+ import '../../provider/MenubarContext.js';
7
+ import '../../provider/SnackbarProvider.js';
8
+ import '../../provider/CalendarProvider.js';
6
9
  import '../Popover/Context.js';
7
10
  import 'react-dropzone';
8
11
  import 'uuid';
@@ -5,6 +5,9 @@ import '@internationalized/date';
5
5
  import 'react-aria';
6
6
  import 'react-stately';
7
7
  import { cloneWithProps } from '../utils/react.js';
8
+ import '../provider/MenubarContext.js';
9
+ import '../provider/SnackbarProvider.js';
10
+ import '../provider/CalendarProvider.js';
8
11
  import './Popover/Context.js';
9
12
  import 'react-dropzone';
10
13
  import 'uuid';
@@ -5,13 +5,20 @@ import { dateToCalendarDateTime, calendarDateToDate } from '../utils/date.js';
5
5
  import 'react/jsx-runtime';
6
6
  import 'react';
7
7
 
8
- const useCalendar = ({ value, onChange }) => {
8
+ const useCalendar = ({
9
+ value,
10
+ onChange,
11
+ minValue,
12
+ maxValue
13
+ }) => {
9
14
  const { locale } = useLocale();
10
15
  const state = useCalendarState({
11
16
  locale,
12
17
  createCalendar,
13
18
  defaultValue: value ? dateToCalendarDateTime(value) : null,
14
- onChange: (value2) => onChange(calendarDateToDate(value2))
19
+ onChange: (value2) => onChange(calendarDateToDate(value2)),
20
+ minValue: minValue ? dateToCalendarDateTime(minValue) : null,
21
+ maxValue: maxValue ? dateToCalendarDateTime(maxValue) : null
15
22
  });
16
23
  const { calendarProps, title } = useCalendar$1({}, state);
17
24
  return {
@@ -1,16 +1,29 @@
1
- import { isSameDay } from '@internationalized/date';
1
+ import { isSameDay, today, getLocalTimeZone } from '@internationalized/date';
2
2
  import { useRef } from 'react';
3
3
  import { useCalendarCell as useCalendarCell$1 } from 'react-aria';
4
+ import 'react/jsx-runtime';
5
+ import 'react-stately';
6
+ import '../components/Popover/Context.js';
7
+ import 'react-dropzone';
8
+ import 'uuid';
9
+ import '@floating-ui/react';
10
+ import 'currency.js';
11
+ import '../provider/MenubarContext.js';
12
+ import '../provider/SnackbarProvider.js';
13
+ import { useCalendarContext } from '../provider/CalendarProvider.js';
4
14
 
5
15
  const useCalendarCell = ({ state, date }) => {
16
+ const { isTodayHighlited } = useCalendarContext();
6
17
  const ref = useRef(null);
7
18
  const {
8
19
  cellProps,
9
20
  buttonProps,
10
21
  isSelected,
11
22
  isOutsideVisibleRange,
12
- formattedDate
23
+ formattedDate,
24
+ isDisabled
13
25
  } = useCalendarCell$1({ date }, state, ref);
26
+ const isToday = isTodayHighlited ? isSameDay(date, today(getLocalTimeZone())) : false;
14
27
  const rangeStateHighlitedRange = state?.highlightedRange;
15
28
  const isSameDayStart = rangeStateHighlitedRange && date ? isSameDay(date, rangeStateHighlitedRange.start) : void 0;
16
29
  const isSameDayEnd = rangeStateHighlitedRange && date ? isSameDay(date, rangeStateHighlitedRange.end) : void 0;
@@ -26,7 +39,9 @@ const useCalendarCell = ({ state, date }) => {
26
39
  formattedDate,
27
40
  isSelectionStart,
28
41
  isSelectionEnd,
29
- inRange: Boolean(inRange)
42
+ inRange: Boolean(inRange),
43
+ isToday,
44
+ isDisabled
30
45
  };
31
46
  };
32
47
 
@@ -6,13 +6,17 @@ import 'react/jsx-runtime';
6
6
 
7
7
  const useDatePickerInput = ({
8
8
  value,
9
- onChange
9
+ onChange,
10
+ minValue,
11
+ maxValue
10
12
  }) => {
11
13
  const state = useDatePickerState({
12
14
  defaultValue: value ? dateToCalendarDateTime(value) : null,
13
15
  onChange: (_value) => {
14
16
  onChange(calendarDateToDate(_value));
15
- }
17
+ },
18
+ minValue: minValue ? dateToCalendarDateTime(minValue) : null,
19
+ maxValue: maxValue ? dateToCalendarDateTime(maxValue) : null
16
20
  });
17
21
  const ref = useRef(null);
18
22
  const { fieldProps } = useDatePicker(
@@ -6,7 +6,9 @@ import 'react/jsx-runtime';
6
6
 
7
7
  const useDateRangePickerInput = ({
8
8
  value,
9
- onChange
9
+ onChange,
10
+ minValue,
11
+ maxValue
10
12
  }) => {
11
13
  const state = useDateRangePickerState({
12
14
  defaultValue: value ? {
@@ -18,7 +20,9 @@ const useDateRangePickerInput = ({
18
20
  start: value2 ? calendarDateToDate(value2.start) : void 0,
19
21
  end: value2 ? calendarDateToDate(value2.end) : void 0
20
22
  });
21
- }
23
+ },
24
+ minValue: minValue ? dateToCalendarDateTime(minValue) : null,
25
+ maxValue: maxValue ? dateToCalendarDateTime(maxValue) : null
22
26
  });
23
27
  const ref = useRef(null);
24
28
  const { startFieldProps, endFieldProps } = useDateRangePicker(
@@ -7,7 +7,9 @@ import 'react/jsx-runtime';
7
7
 
8
8
  const useRangeCalendar = ({
9
9
  value,
10
- onChange
10
+ onChange,
11
+ minValue,
12
+ maxValue
11
13
  }) => {
12
14
  const { locale } = useLocale();
13
15
  const state = useRangeCalendarState({
@@ -20,7 +22,9 @@ const useRangeCalendar = ({
20
22
  onChange: (value2) => onChange({
21
23
  start: calendarDateToDate(value2.start),
22
24
  end: calendarDateToDate(value2.end)
23
- })
25
+ }),
26
+ minValue: minValue ? dateToCalendarDateTime(minValue) : null,
27
+ maxValue: maxValue ? dateToCalendarDateTime(maxValue) : null
24
28
  });
25
29
  const ref = useRef(null);
26
30
  const { calendarProps, title } = useRangeCalendar$1({}, state, ref);
package/dist/esm/index.js CHANGED
@@ -64,6 +64,7 @@ export { MenubarProvider } from './provider/MenubarProvider.js';
64
64
  export { SnackbarProvider, useSnackbar } from './provider/SnackbarProvider.js';
65
65
  export { MenubarContext } from './provider/MenubarContext.js';
66
66
  export { useMenubar } from './provider/useMenubar.js';
67
+ export { CalendarProvider, useCalendarContext } from './provider/CalendarProvider.js';
67
68
  export { Context, useAccordionContext } from './components/Accordion/context.js';
68
69
  export { BRLMask, CurrencyIMask, ExpressionMasks, Masks, NumberIMask, PercentageIMask, PercentageMask } from './components/Input/masks.js';
69
70
  export { Root } from './components/Uploader/Root.js';
@@ -0,0 +1,21 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { createContext, useContext } from 'react';
3
+
4
+ const CalendarContext = createContext(
5
+ void 0
6
+ );
7
+ const CalendarProvider = ({
8
+ isTodayHighlited,
9
+ children
10
+ }) => /* @__PURE__ */ jsx(CalendarContext.Provider, { value: { isTodayHighlited }, children });
11
+ const useCalendarContext = () => {
12
+ const context = useContext(CalendarContext);
13
+ if (!context) {
14
+ throw new Error(
15
+ "useCalendarContext must be used within a CalendarProvider"
16
+ );
17
+ }
18
+ return context;
19
+ };
20
+
21
+ export { CalendarProvider, useCalendarContext };
@@ -3,13 +3,15 @@ import React, { useRef, useEffect } from 'react';
3
3
  import '@internationalized/date';
4
4
  import 'react-aria';
5
5
  import 'react-stately';
6
+ import { MenubarContext } from './MenubarContext.js';
7
+ import './SnackbarProvider.js';
8
+ import './CalendarProvider.js';
6
9
  import '../components/Popover/Context.js';
7
10
  import 'react-dropzone';
8
11
  import 'uuid';
9
12
  import '@floating-ui/react';
10
13
  import 'currency.js';
11
14
  import { useOutsideClickListener } from '../hooks/useOutsideClickListener.js';
12
- import { MenubarContext } from './MenubarContext.js';
13
15
 
14
16
  const MenubarProvider = ({ children }) => {
15
17
  const [show, setShow] = React.useState(false);