@salt-ds/lab 1.0.0-alpha.50 → 1.0.0-alpha.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/salt-lab.css +279 -267
- package/dist-cjs/calendar/Calendar.css.js +1 -1
- package/dist-cjs/calendar/Calendar.js +6 -15
- package/dist-cjs/calendar/Calendar.js.map +1 -1
- package/dist-cjs/calendar/CalendarNavigation.css.js +6 -0
- package/dist-cjs/calendar/{internal/CalendarNavigation.js → CalendarNavigation.js} +160 -63
- package/dist-cjs/calendar/CalendarNavigation.js.map +1 -0
- package/dist-cjs/calendar/formatDate.js +56 -0
- package/dist-cjs/calendar/formatDate.js.map +1 -0
- package/dist-cjs/calendar/internal/CalendarCarousel.js +3 -3
- package/dist-cjs/calendar/internal/CalendarCarousel.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-cjs/calendar/internal/CalendarDay.js +45 -33
- package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarMonth.js +3 -2
- package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarWeekHeader.js +3 -3
- package/dist-cjs/calendar/internal/CalendarWeekHeader.js.map +1 -1
- package/dist-cjs/calendar/internal/useFocusManagement.js +7 -4
- package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
- package/dist-cjs/calendar/internal/utils.js +28 -23
- package/dist-cjs/calendar/internal/utils.js.map +1 -1
- package/dist-cjs/calendar/useCalendar.js +94 -45
- package/dist-cjs/calendar/useCalendar.js.map +1 -1
- package/dist-cjs/calendar/useCalendarDay.js +19 -10
- package/dist-cjs/calendar/useCalendarDay.js.map +1 -1
- package/dist-cjs/calendar/useCalendarSelection.js +360 -0
- package/dist-cjs/calendar/useCalendarSelection.js.map +1 -0
- package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
- package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/ComboBox.css.js +1 -1
- package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
- package/dist-cjs/content-status/ContentStatus.css.js +1 -1
- package/dist-cjs/date-input/DateInput.css.js +1 -1
- package/dist-cjs/date-input/DateInputRange.js +355 -0
- package/dist-cjs/date-input/DateInputRange.js.map +1 -0
- package/dist-cjs/date-input/DateInputSingle.js +229 -0
- package/dist-cjs/date-input/DateInputSingle.js.map +1 -0
- package/dist-cjs/date-input/utils.js +65 -0
- package/dist-cjs/date-input/utils.js.map +1 -0
- package/dist-cjs/date-picker/DatePicker.js +40 -148
- package/dist-cjs/date-picker/DatePicker.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerActions.css.js +6 -0
- package/dist-cjs/date-picker/DatePickerActions.css.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerActions.js +102 -0
- package/dist-cjs/date-picker/DatePickerActions.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerContext.js +23 -17
- package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerOverlay.css.js +6 -0
- package/dist-cjs/date-picker/DatePickerOverlay.css.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerOverlay.js +50 -0
- package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js +105 -0
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerPanel.css.js +1 -1
- package/dist-cjs/date-picker/DatePickerRangeInput.js +118 -0
- package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerRangePanel.js +206 -0
- package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerSingleInput.js +97 -0
- package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerSinglePanel.js +138 -0
- package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -0
- package/dist-cjs/date-picker/useDatePicker.js +179 -0
- package/dist-cjs/date-picker/useDatePicker.js.map +1 -0
- package/dist-cjs/dropdown/Dropdown.css.js +1 -1
- package/dist-cjs/dropdown/DropdownBase.js +1 -1
- package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
- package/dist-cjs/dropdown/useDropdown.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
- package/dist-cjs/index.js +43 -10
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/list/List.js.map +1 -1
- package/dist-cjs/menu-button/MenuButtonTrigger.css.js +1 -1
- package/dist-cjs/query-input/QueryInput.css.js +1 -1
- package/dist-cjs/slider/Slider.css.js +1 -1
- package/dist-cjs/slider/Slider.js +53 -105
- package/dist-cjs/slider/Slider.js.map +1 -1
- package/dist-cjs/slider/internal/SliderContext.js +21 -0
- package/dist-cjs/slider/internal/SliderContext.js.map +1 -0
- package/dist-cjs/slider/internal/SliderMarks.js +31 -0
- package/dist-cjs/slider/internal/SliderMarks.js.map +1 -0
- package/dist-cjs/slider/internal/SliderSelection.js +17 -10
- package/dist-cjs/slider/internal/SliderSelection.js.map +1 -1
- package/dist-cjs/slider/internal/SliderThumb.js +77 -0
- package/dist-cjs/slider/internal/SliderThumb.js.map +1 -0
- package/dist-cjs/slider/internal/SliderTrack.js +91 -0
- package/dist-cjs/slider/internal/SliderTrack.js.map +1 -0
- package/dist-cjs/slider/internal/useKeyDownThumb.js +53 -0
- package/dist-cjs/slider/internal/useKeyDownThumb.js.map +1 -0
- package/dist-cjs/slider/internal/utils.js +78 -116
- package/dist-cjs/slider/internal/utils.js.map +1 -1
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.css.js +1 -1
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +29 -25
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
- package/dist-cjs/tabs/TabActivationIndicator.css.js +1 -1
- package/dist-cjs/tabs/Tabstrip.css.js +1 -1
- package/dist-cjs/tabs/useTabs.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-es/calendar/Calendar.css.js +1 -1
- package/dist-es/calendar/Calendar.js +7 -16
- package/dist-es/calendar/Calendar.js.map +1 -1
- package/dist-es/calendar/CalendarNavigation.css.js +4 -0
- package/dist-es/calendar/CalendarNavigation.js +308 -0
- package/dist-es/calendar/CalendarNavigation.js.map +1 -0
- package/dist-es/calendar/formatDate.js +51 -0
- package/dist-es/calendar/formatDate.js.map +1 -0
- package/dist-es/calendar/internal/CalendarCarousel.js +3 -3
- package/dist-es/calendar/internal/CalendarCarousel.js.map +1 -1
- package/dist-es/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-es/calendar/internal/CalendarDay.js +45 -33
- package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-es/calendar/internal/CalendarMonth.js +3 -2
- package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-es/calendar/internal/CalendarWeekHeader.js +3 -3
- package/dist-es/calendar/internal/CalendarWeekHeader.js.map +1 -1
- package/dist-es/calendar/internal/useFocusManagement.js +7 -4
- package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
- package/dist-es/calendar/internal/utils.js +29 -23
- package/dist-es/calendar/internal/utils.js.map +1 -1
- package/dist-es/calendar/useCalendar.js +96 -47
- package/dist-es/calendar/useCalendar.js.map +1 -1
- package/dist-es/calendar/useCalendarDay.js +20 -11
- package/dist-es/calendar/useCalendarDay.js.map +1 -1
- package/dist-es/calendar/useCalendarSelection.js +350 -0
- package/dist-es/calendar/useCalendarSelection.js.map +1 -0
- package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
- package/dist-es/color-chooser/ColorChooser.js.map +1 -1
- package/dist-es/combo-box-deprecated/ComboBox.css.js +1 -1
- package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
- package/dist-es/content-status/ContentStatus.css.js +1 -1
- package/dist-es/date-input/DateInput.css.js +1 -1
- package/dist-es/date-input/DateInputRange.js +351 -0
- package/dist-es/date-input/DateInputRange.js.map +1 -0
- package/dist-es/date-input/DateInputSingle.js +225 -0
- package/dist-es/date-input/DateInputSingle.js.map +1 -0
- package/dist-es/date-input/utils.js +57 -0
- package/dist-es/date-input/utils.js.map +1 -0
- package/dist-es/date-picker/DatePicker.js +43 -152
- package/dist-es/date-picker/DatePicker.js.map +1 -1
- package/dist-es/date-picker/DatePickerActions.css.js +4 -0
- package/dist-es/date-picker/DatePickerActions.css.js.map +1 -0
- package/dist-es/date-picker/DatePickerActions.js +98 -0
- package/dist-es/date-picker/DatePickerActions.js.map +1 -0
- package/dist-es/date-picker/DatePickerContext.js +22 -17
- package/dist-es/date-picker/DatePickerContext.js.map +1 -1
- package/dist-es/date-picker/DatePickerOverlay.css.js +4 -0
- package/dist-es/date-picker/DatePickerOverlay.css.js.map +1 -0
- package/dist-es/date-picker/DatePickerOverlay.js +46 -0
- package/dist-es/date-picker/DatePickerOverlay.js.map +1 -0
- package/dist-es/date-picker/DatePickerOverlayProvider.js +100 -0
- package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -0
- package/dist-es/date-picker/DatePickerPanel.css.js +1 -1
- package/dist-es/date-picker/DatePickerRangeInput.js +114 -0
- package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -0
- package/dist-es/date-picker/DatePickerRangePanel.js +198 -0
- package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -0
- package/dist-es/date-picker/DatePickerSingleInput.js +93 -0
- package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -0
- package/dist-es/date-picker/DatePickerSinglePanel.js +130 -0
- package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -0
- package/dist-es/date-picker/useDatePicker.js +175 -0
- package/dist-es/date-picker/useDatePicker.js.map +1 -0
- package/dist-es/dropdown/Dropdown.css.js +1 -1
- package/dist-es/dropdown/DropdownBase.js +1 -1
- package/dist-es/dropdown/DropdownBase.js.map +1 -1
- package/dist-es/dropdown/useDropdown.js.map +1 -1
- package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
- package/dist-es/index.js +14 -3
- package/dist-es/index.js.map +1 -1
- package/dist-es/list/List.js.map +1 -1
- package/dist-es/menu-button/MenuButtonTrigger.css.js +1 -1
- package/dist-es/query-input/QueryInput.css.js +1 -1
- package/dist-es/slider/Slider.css.js +1 -1
- package/dist-es/slider/Slider.js +55 -107
- package/dist-es/slider/Slider.js.map +1 -1
- package/dist-es/slider/internal/SliderContext.js +16 -0
- package/dist-es/slider/internal/SliderContext.js.map +1 -0
- package/dist-es/slider/internal/SliderMarks.js +27 -0
- package/dist-es/slider/internal/SliderMarks.js.map +1 -0
- package/dist-es/slider/internal/SliderSelection.js +17 -10
- package/dist-es/slider/internal/SliderSelection.js.map +1 -1
- package/dist-es/slider/internal/SliderThumb.js +73 -0
- package/dist-es/slider/internal/SliderThumb.js.map +1 -0
- package/dist-es/slider/internal/SliderTrack.js +87 -0
- package/dist-es/slider/internal/SliderTrack.js.map +1 -0
- package/dist-es/slider/internal/useKeyDownThumb.js +49 -0
- package/dist-es/slider/internal/useKeyDownThumb.js.map +1 -0
- package/dist-es/slider/internal/utils.js +70 -111
- package/dist-es/slider/internal/utils.js.map +1 -1
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.css.js +1 -1
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +30 -26
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
- package/dist-es/tabs/TabActivationIndicator.css.js +1 -1
- package/dist-es/tabs/Tabstrip.css.js +1 -1
- package/dist-es/tabs/useTabs.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-types/calendar/Calendar.d.ts +63 -5
- package/dist-types/calendar/CalendarNavigation.d.ts +57 -0
- package/dist-types/calendar/formatDate.d.ts +14 -0
- package/dist-types/calendar/index.d.ts +3 -1
- package/dist-types/calendar/internal/CalendarDay.d.ts +2 -1
- package/dist-types/calendar/internal/CalendarWeekHeader.d.ts +4 -4
- package/dist-types/calendar/internal/useFocusManagement.d.ts +2 -1
- package/dist-types/calendar/internal/utils.d.ts +7 -8
- package/dist-types/calendar/useCalendar.d.ts +100 -16
- package/dist-types/calendar/useCalendarDay.d.ts +38 -0
- package/dist-types/calendar/useCalendarSelection.d.ts +189 -0
- package/dist-types/date-input/DateInputRange.d.ts +150 -0
- package/dist-types/date-input/DateInputSingle.d.ts +117 -0
- package/dist-types/date-input/index.d.ts +3 -1
- package/dist-types/date-input/utils.d.ts +43 -0
- package/dist-types/date-picker/DatePicker.d.ts +20 -62
- package/dist-types/date-picker/DatePickerActions.d.ts +80 -0
- package/dist-types/date-picker/DatePickerContext.d.ts +180 -17
- package/dist-types/date-picker/DatePickerOverlay.d.ts +11 -0
- package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +67 -0
- package/dist-types/date-picker/DatePickerRangeInput.d.ts +7 -0
- package/dist-types/date-picker/DatePickerRangePanel.d.ts +64 -0
- package/dist-types/date-picker/DatePickerSingleInput.d.ts +7 -0
- package/dist-types/date-picker/DatePickerSinglePanel.d.ts +42 -0
- package/dist-types/date-picker/index.d.ts +7 -0
- package/dist-types/date-picker/useDatePicker.d.ts +112 -0
- package/dist-types/slider/Slider.d.ts +23 -10
- package/dist-types/slider/internal/SliderContext.d.ts +11 -0
- package/dist-types/slider/internal/SliderMarks.d.ts +7 -0
- package/dist-types/slider/internal/SliderSelection.d.ts +3 -3
- package/dist-types/slider/internal/SliderThumb.d.ts +8 -0
- package/dist-types/slider/internal/SliderTrack.d.ts +4 -0
- package/dist-types/slider/internal/index.d.ts +3 -0
- package/dist-types/slider/internal/useKeyDownThumb.d.ts +2 -0
- package/dist-types/slider/internal/utils.d.ts +18 -10
- package/dist-types/slider/types.d.ts +3 -1
- package/dist-types/stepped-tracker/TrackerStep/TrackerStep.d.ts +11 -3
- package/package.json +3 -3
- package/dist-cjs/calendar/internal/CalendarNavigation.css.js +0 -6
- package/dist-cjs/calendar/internal/CalendarNavigation.js.map +0 -1
- package/dist-cjs/calendar/useSelection.js +0 -249
- package/dist-cjs/calendar/useSelection.js.map +0 -1
- package/dist-cjs/date-input/DateInput.js +0 -281
- package/dist-cjs/date-input/DateInput.js.map +0 -1
- package/dist-cjs/date-picker/DatePickerPanel.js +0 -155
- package/dist-cjs/date-picker/DatePickerPanel.js.map +0 -1
- package/dist-cjs/slider/internal/SliderHandle.js +0 -44
- package/dist-cjs/slider/internal/SliderHandle.js.map +0 -1
- package/dist-cjs/slider/internal/SliderMarkLabels.js +0 -45
- package/dist-cjs/slider/internal/SliderMarkLabels.js.map +0 -1
- package/dist-cjs/slider/internal/SliderRail.js +0 -25
- package/dist-cjs/slider/internal/SliderRail.js.map +0 -1
- package/dist-cjs/slider/internal/SliderRailMarks.js +0 -48
- package/dist-cjs/slider/internal/SliderRailMarks.js.map +0 -1
- package/dist-cjs/slider/internal/styles.js +0 -99
- package/dist-cjs/slider/internal/styles.js.map +0 -1
- package/dist-cjs/slider/internal/useSliderKeyDown.js +0 -50
- package/dist-cjs/slider/internal/useSliderKeyDown.js.map +0 -1
- package/dist-cjs/slider/internal/useSliderMouseDown.js +0 -96
- package/dist-cjs/slider/internal/useSliderMouseDown.js.map +0 -1
- package/dist-es/calendar/internal/CalendarNavigation.css.js +0 -4
- package/dist-es/calendar/internal/CalendarNavigation.js +0 -211
- package/dist-es/calendar/internal/CalendarNavigation.js.map +0 -1
- package/dist-es/calendar/useSelection.js +0 -242
- package/dist-es/calendar/useSelection.js.map +0 -1
- package/dist-es/date-input/DateInput.js +0 -277
- package/dist-es/date-input/DateInput.js.map +0 -1
- package/dist-es/date-picker/DatePickerPanel.js +0 -151
- package/dist-es/date-picker/DatePickerPanel.js.map +0 -1
- package/dist-es/slider/internal/SliderHandle.js +0 -40
- package/dist-es/slider/internal/SliderHandle.js.map +0 -1
- package/dist-es/slider/internal/SliderMarkLabels.js +0 -41
- package/dist-es/slider/internal/SliderMarkLabels.js.map +0 -1
- package/dist-es/slider/internal/SliderRail.js +0 -21
- package/dist-es/slider/internal/SliderRail.js.map +0 -1
- package/dist-es/slider/internal/SliderRailMarks.js +0 -44
- package/dist-es/slider/internal/SliderRailMarks.js.map +0 -1
- package/dist-es/slider/internal/styles.js +0 -91
- package/dist-es/slider/internal/styles.js.map +0 -1
- package/dist-es/slider/internal/useSliderKeyDown.js +0 -46
- package/dist-es/slider/internal/useSliderKeyDown.js.map +0 -1
- package/dist-es/slider/internal/useSliderMouseDown.js +0 -92
- package/dist-es/slider/internal/useSliderMouseDown.js.map +0 -1
- package/dist-types/calendar/internal/CalendarNavigation.d.ts +0 -15
- package/dist-types/calendar/useSelection.d.ts +0 -78
- package/dist-types/date-input/DateInput.d.ts +0 -56
- package/dist-types/date-picker/DatePickerPanel.d.ts +0 -10
- package/dist-types/slider/internal/SliderHandle.d.ts +0 -11
- package/dist-types/slider/internal/SliderMarkLabels.d.ts +0 -7
- package/dist-types/slider/internal/SliderRail.d.ts +0 -1
- package/dist-types/slider/internal/SliderRailMarks.d.ts +0 -12
- package/dist-types/slider/internal/styles.d.ts +0 -10
- package/dist-types/slider/internal/useSliderKeyDown.d.ts +0 -4
- package/dist-types/slider/internal/useSliderMouseDown.d.ts +0 -4
- /package/dist-cjs/calendar/{internal/CalendarNavigation.css.js.map → CalendarNavigation.css.js.map} +0 -0
- /package/dist-es/calendar/{internal/CalendarNavigation.css.js.map → CalendarNavigation.css.js.map} +0 -0
|
@@ -1,33 +1,116 @@
|
|
|
1
1
|
import { type DateValue } from "@internationalized/date";
|
|
2
2
|
import { type SyntheticEvent } from "react";
|
|
3
|
-
import { type
|
|
4
|
-
|
|
3
|
+
import { type UseCalendarSelectionMultiSelectProps, type UseCalendarSelectionOffsetProps, type UseCalendarSelectionRangeProps, type UseCalendarSelectionSingleProps } from "./useCalendarSelection";
|
|
4
|
+
/**
|
|
5
|
+
* Interface representing the base properties UseCalendar hook.
|
|
6
|
+
*/
|
|
7
|
+
interface UseCalendarBaseProps {
|
|
8
|
+
/**
|
|
9
|
+
* The default visible month.
|
|
10
|
+
*/
|
|
5
11
|
defaultVisibleMonth?: DateValue;
|
|
12
|
+
/**
|
|
13
|
+
* Callback fired when the visible month changes.
|
|
14
|
+
* @param event - The synthetic event.
|
|
15
|
+
* @param visibleMonth - The new visible month.
|
|
16
|
+
*/
|
|
6
17
|
onVisibleMonthChange?: (event: SyntheticEvent, visibleMonth: DateValue) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Function to determine if a day is unselectable.
|
|
20
|
+
* @param date - The date to check.
|
|
21
|
+
* @returns A string reason if the day is unselectable, otherwise `false` or `undefined`.
|
|
22
|
+
*/
|
|
7
23
|
isDayUnselectable?: (date: DateValue) => string | false | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Function to determine if a day is highlighted.
|
|
26
|
+
* @param date - The date to check.
|
|
27
|
+
* @returns A string reason if the day is highlighted, otherwise `false` or `undefined`.
|
|
28
|
+
*/
|
|
8
29
|
isDayHighlighted?: (date: DateValue) => string | false | undefined;
|
|
9
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Function to determine if a day is disabled.
|
|
32
|
+
* @param date - The date to check.
|
|
33
|
+
* @returns A string reason if the day is disabled, otherwise `false` or `undefined`.
|
|
34
|
+
*/
|
|
35
|
+
isDayDisabled?: (date: DateValue) => string | false | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* The currently visible month.
|
|
38
|
+
*/
|
|
10
39
|
visibleMonth?: DateValue;
|
|
40
|
+
/**
|
|
41
|
+
* If `true`, hides dates that are out of the selectable range.
|
|
42
|
+
*/
|
|
11
43
|
hideOutOfRangeDates?: boolean;
|
|
12
|
-
|
|
44
|
+
/**
|
|
45
|
+
* The minimum selectable date.
|
|
46
|
+
*/
|
|
13
47
|
minDate?: DateValue;
|
|
48
|
+
/**
|
|
49
|
+
* The maximum selectable date.
|
|
50
|
+
*/
|
|
14
51
|
maxDate?: DateValue;
|
|
52
|
+
/**
|
|
53
|
+
* The time zone used for date calculations.
|
|
54
|
+
*/
|
|
55
|
+
timeZone?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The locale used for date formatting.
|
|
58
|
+
*/
|
|
59
|
+
locale?: string;
|
|
15
60
|
}
|
|
16
|
-
|
|
17
|
-
|
|
61
|
+
/**
|
|
62
|
+
* UseCalendar hook props for a single date selection Calendar.
|
|
63
|
+
*/
|
|
64
|
+
export interface UseCalendarSingleProps extends UseCalendarSelectionSingleProps, UseCalendarBaseProps {
|
|
65
|
+
/**
|
|
66
|
+
* The selection variant, set to "single".
|
|
67
|
+
*/
|
|
68
|
+
selectionVariant: "single";
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* UseCalendar hook props for a date range selection Calendar.
|
|
72
|
+
*/
|
|
73
|
+
export interface UseCalendarRangeProps extends UseCalendarSelectionRangeProps, UseCalendarBaseProps {
|
|
74
|
+
/**
|
|
75
|
+
* The selection variant, set to "range".
|
|
76
|
+
*/
|
|
77
|
+
selectionVariant: "range";
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* UseCalendar hook props for a multi-select Calendar.
|
|
81
|
+
*/
|
|
82
|
+
export interface UseCalendarMultiSelectProps extends UseCalendarSelectionMultiSelectProps, UseCalendarBaseProps {
|
|
83
|
+
/**
|
|
84
|
+
* The selection variant, set to "multiselect".
|
|
85
|
+
*/
|
|
86
|
+
selectionVariant: "multiselect";
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* UseCalendar hook props for an offset date selection Calendar.
|
|
90
|
+
*/
|
|
91
|
+
export interface UseCalendarOffsetProps extends UseCalendarSelectionOffsetProps, UseCalendarBaseProps {
|
|
92
|
+
/**
|
|
93
|
+
* The selection variant, set to "offset".
|
|
94
|
+
*/
|
|
95
|
+
selectionVariant: "offset";
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* UseCalendar hook props, wth the selection variant determining the return type of the date selection
|
|
99
|
+
*/
|
|
100
|
+
export declare type UseCalendarProps = UseCalendarSingleProps | UseCalendarRangeProps | UseCalendarMultiSelectProps | UseCalendarOffsetProps;
|
|
101
|
+
export declare function useCalendar(props: UseCalendarProps): {
|
|
18
102
|
state: {
|
|
19
|
-
selectedDate: import("@internationalized/date").CalendarDate | import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("./
|
|
20
|
-
startDate?: DateValue | undefined;
|
|
21
|
-
endDate?: DateValue | undefined;
|
|
22
|
-
} | DateValue[] | null | undefined;
|
|
103
|
+
selectedDate: import("@internationalized/date").CalendarDate | import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("./useCalendarSelection").DateRangeSelection | import("./useCalendarSelection").MultipleDateSelection | null | undefined;
|
|
23
104
|
hoveredDate: import("@internationalized/date").CalendarDate | import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | null | undefined;
|
|
24
105
|
visibleMonth: DateValue;
|
|
25
|
-
focusedDate: DateValue;
|
|
106
|
+
focusedDate: DateValue | null;
|
|
26
107
|
minDate: DateValue | undefined;
|
|
27
108
|
maxDate: DateValue | undefined;
|
|
28
|
-
selectionVariant: "offset" | "range" | "
|
|
109
|
+
selectionVariant: "offset" | "range" | "single" | "multiselect";
|
|
29
110
|
hideOutOfRangeDates: boolean | undefined;
|
|
30
111
|
calendarFocused: boolean;
|
|
112
|
+
timeZone: string;
|
|
113
|
+
locale: string;
|
|
31
114
|
};
|
|
32
115
|
helpers: {
|
|
33
116
|
setSelectedDate: (event: SyntheticEvent<HTMLButtonElement, Event>, newSelectedDate: DateValue) => void;
|
|
@@ -39,16 +122,17 @@ export declare function useCalendar(props: useCalendarProps): {
|
|
|
39
122
|
isSelectedStart: (date: DateValue) => boolean;
|
|
40
123
|
isSelectedEnd: (date: DateValue) => boolean;
|
|
41
124
|
isHoveredOffset: (date: DateValue) => boolean;
|
|
125
|
+
isDaySelectable: ((date: DateValue) => boolean) | undefined;
|
|
42
126
|
setVisibleMonth: (event: SyntheticEvent, newVisibleMonth: DateValue) => void;
|
|
43
127
|
setFocusedDate: (event: SyntheticEvent, date: DateValue) => void;
|
|
44
128
|
setCalendarFocused: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
45
129
|
isDayUnselectable: (date: DateValue) => string | false | undefined;
|
|
46
130
|
isDayHighlighted: (date: DateValue) => string | false | undefined;
|
|
47
|
-
isDayDisabled: (date: DateValue) =>
|
|
131
|
+
isDayDisabled: (date: DateValue) => string | false | undefined;
|
|
48
132
|
isDayVisible: (date: DateValue) => boolean;
|
|
49
|
-
isOutsideAllowedDates: (date: DateValue) => boolean;
|
|
50
|
-
isOutsideAllowedMonths: (date: DateValue) => boolean;
|
|
51
|
-
isOutsideAllowedYears: (date: DateValue) => boolean;
|
|
133
|
+
isOutsideAllowedDates: (date: DateValue) => boolean | undefined;
|
|
134
|
+
isOutsideAllowedMonths: (date: DateValue) => boolean | undefined;
|
|
135
|
+
isOutsideAllowedYears: (date: DateValue) => boolean | undefined;
|
|
52
136
|
};
|
|
53
137
|
};
|
|
54
138
|
export {};
|
|
@@ -1,17 +1,53 @@
|
|
|
1
1
|
import { type DateValue } from "@internationalized/date";
|
|
2
2
|
import { type RefObject } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Interface representing the status of a day in the Calendar.
|
|
5
|
+
*/
|
|
3
6
|
export interface DayStatus {
|
|
7
|
+
/**
|
|
8
|
+
* If `true`, the day is out of the selectable range.
|
|
9
|
+
*/
|
|
4
10
|
outOfRange?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* If `true`, the day is selected.
|
|
13
|
+
*/
|
|
5
14
|
selected?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* If `true`, the day is today.
|
|
17
|
+
*/
|
|
6
18
|
today?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* If set, the day is unselectable with a reason.
|
|
21
|
+
*/
|
|
7
22
|
unselectable?: string | false;
|
|
23
|
+
/**
|
|
24
|
+
* If set, the day is highlighted with a reason.
|
|
25
|
+
*/
|
|
8
26
|
highlighted?: string | false;
|
|
27
|
+
/**
|
|
28
|
+
* If `true`, the day is focused.
|
|
29
|
+
*/
|
|
9
30
|
focused?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* If `true`, the day is disabled.
|
|
33
|
+
*/
|
|
10
34
|
disabled?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* If `true`, the day is hidden.
|
|
37
|
+
*/
|
|
11
38
|
hidden?: boolean;
|
|
12
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* UseCalendar hook props to return a calendar day's status
|
|
42
|
+
*/
|
|
13
43
|
export interface useCalendarDayProps {
|
|
44
|
+
/**
|
|
45
|
+
* The date of the calendar day.
|
|
46
|
+
*/
|
|
14
47
|
date: DateValue;
|
|
48
|
+
/**
|
|
49
|
+
* The month of the calendar day.
|
|
50
|
+
*/
|
|
15
51
|
month: DateValue;
|
|
16
52
|
}
|
|
17
53
|
export declare function useCalendarDay({ date, month }: useCalendarDayProps, ref: RefObject<HTMLElement>): {
|
|
@@ -19,4 +55,6 @@ export declare function useCalendarDay({ date, month }: useCalendarDayProps, ref
|
|
|
19
55
|
dayProps: Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">;
|
|
20
56
|
unselectableReason: string | false | undefined;
|
|
21
57
|
highlightedReason: string | false | undefined;
|
|
58
|
+
locale: string;
|
|
59
|
+
timeZone: string;
|
|
22
60
|
};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { CalendarDate, CalendarDateTime, type DateValue, ZonedDateTime } from "@internationalized/date";
|
|
2
|
+
import type { KeyboardEventHandler, MouseEventHandler, SyntheticEvent } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* Type representing a single date selection.
|
|
5
|
+
*/
|
|
6
|
+
export declare type SingleDateSelection = DateValue;
|
|
7
|
+
/**
|
|
8
|
+
* Type representing multiple date selections.
|
|
9
|
+
*/
|
|
10
|
+
export declare type MultipleDateSelection = DateValue[];
|
|
11
|
+
/**
|
|
12
|
+
* Type representing a date range selection.
|
|
13
|
+
*/
|
|
14
|
+
export declare type DateRangeSelection = {
|
|
15
|
+
/**
|
|
16
|
+
* The start date of the range.
|
|
17
|
+
*/
|
|
18
|
+
startDate?: DateValue | null;
|
|
19
|
+
/**
|
|
20
|
+
* The end date of the range.
|
|
21
|
+
*/
|
|
22
|
+
endDate?: DateValue | null;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Type representing all possible selection value types.
|
|
26
|
+
*/
|
|
27
|
+
export declare type AllSelectionValueType = SingleDateSelection | MultipleDateSelection | DateRangeSelection | null;
|
|
28
|
+
/**
|
|
29
|
+
* The default minimum year used by the calendar.
|
|
30
|
+
*/
|
|
31
|
+
export declare const CALENDAR_MIN_YEAR = 1900;
|
|
32
|
+
/**
|
|
33
|
+
* The default maximum year used by the calendar.
|
|
34
|
+
*/
|
|
35
|
+
export declare const CALENDAR_MAX_YEAR = 2100;
|
|
36
|
+
/**
|
|
37
|
+
* Checks if a value is a single date selection.
|
|
38
|
+
* @param value - The value to check.
|
|
39
|
+
* @returns `true` if the value is a single date selection, otherwise `false`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function isSingleSelectionValueType(value: any): value is DateValue;
|
|
42
|
+
/**
|
|
43
|
+
* Checks if a value is a date range selection.
|
|
44
|
+
* @param value - The value to check.
|
|
45
|
+
* @returns `true` if the value is a date range selection, otherwise `false`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function isDateRangeSelection(value: any): value is DateRangeSelection;
|
|
48
|
+
/**
|
|
49
|
+
* Checks if a value is a multiple date selection.
|
|
50
|
+
* @param value - The value to check.
|
|
51
|
+
* @returns `true` if the value is a multiple date selection, otherwise `false`.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isMultipleDateSelection(value: any): value is MultipleDateSelection;
|
|
54
|
+
/**
|
|
55
|
+
* Base properties for calendar UseCalendarSelection hook.
|
|
56
|
+
* @template SelectionVariantType - The type of the selection variant.
|
|
57
|
+
*/
|
|
58
|
+
interface UseCalendarSelectionBaseProps<SelectionVariantType> {
|
|
59
|
+
/**
|
|
60
|
+
* The currently hovered date.
|
|
61
|
+
*/
|
|
62
|
+
hoveredDate?: DateValue | null;
|
|
63
|
+
/**
|
|
64
|
+
* The currently selected date.
|
|
65
|
+
*/
|
|
66
|
+
selectedDate?: SelectionVariantType | null;
|
|
67
|
+
/**
|
|
68
|
+
* The default selected date.
|
|
69
|
+
*/
|
|
70
|
+
defaultSelectedDate?: SelectionVariantType;
|
|
71
|
+
/**
|
|
72
|
+
* Callback fired when the selected date changes.
|
|
73
|
+
* @param event - The synthetic event.
|
|
74
|
+
* @param selectedDate - The new selected date.
|
|
75
|
+
*/
|
|
76
|
+
onSelectedDateChange?: (event: SyntheticEvent, selectedDate: SelectionVariantType | null) => void;
|
|
77
|
+
/**
|
|
78
|
+
* Function to determine if a day is selectable.
|
|
79
|
+
* @param date - The date to check.
|
|
80
|
+
* @returns `true` if the day is selectable, otherwise `false`.
|
|
81
|
+
*/
|
|
82
|
+
isDaySelectable?: (date: DateValue) => boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Callback fired when the hovered date changes.
|
|
85
|
+
* @param event - The synthetic event.
|
|
86
|
+
* @param hoveredDate - The new hovered date.
|
|
87
|
+
*/
|
|
88
|
+
onHoveredDateChange?: (event: SyntheticEvent, hoveredDate: DateValue | null) => void;
|
|
89
|
+
/**
|
|
90
|
+
* Function to select a new date.
|
|
91
|
+
* @param currentSelectedDate - The current selected date.
|
|
92
|
+
* @param newSelectedDate - The new date to select.
|
|
93
|
+
* @returns The updated selection variant type.
|
|
94
|
+
*/
|
|
95
|
+
select?: (currentSelectedDate: SelectionVariantType, newSelectedDate: DateValue) => SelectionVariantType;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* UseCalendar hook props to return a calendar day's status
|
|
99
|
+
*/
|
|
100
|
+
export interface UseCalendarSelectionOffsetProps extends Omit<UseCalendarSelectionBaseProps<DateRangeSelection>, "startDateOffset" | "endDateOffset"> {
|
|
101
|
+
/**
|
|
102
|
+
* The selection variant, set to "offset".
|
|
103
|
+
*/
|
|
104
|
+
selectionVariant: "offset";
|
|
105
|
+
/**
|
|
106
|
+
* Function to calculate the start date offset.
|
|
107
|
+
* @param date - The date to offset.
|
|
108
|
+
* @returns The offset start date.
|
|
109
|
+
*/
|
|
110
|
+
startDateOffset?: (date: DateValue) => DateValue;
|
|
111
|
+
/**
|
|
112
|
+
* Function to calculate the end date offset.
|
|
113
|
+
* @param date - The date to offset.
|
|
114
|
+
* @returns The offset end date.
|
|
115
|
+
*/
|
|
116
|
+
endDateOffset?: (date: DateValue) => DateValue;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Properties for the range date selection hook.
|
|
120
|
+
*/
|
|
121
|
+
export interface UseCalendarSelectionRangeProps extends UseCalendarSelectionBaseProps<DateRangeSelection> {
|
|
122
|
+
/**
|
|
123
|
+
* The selection variant, set to "range".
|
|
124
|
+
*/
|
|
125
|
+
selectionVariant: "range";
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Properties for the multi-select date selection hook.
|
|
129
|
+
*/
|
|
130
|
+
export interface UseCalendarSelectionMultiSelectProps extends UseCalendarSelectionBaseProps<MultipleDateSelection> {
|
|
131
|
+
/**
|
|
132
|
+
* The selection variant, set to "multiselect".
|
|
133
|
+
*/
|
|
134
|
+
selectionVariant: "multiselect";
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Properties for the single date selection hook.
|
|
138
|
+
*/
|
|
139
|
+
export interface UseCalendarSelectionSingleProps extends UseCalendarSelectionBaseProps<SingleDateSelection> {
|
|
140
|
+
/**
|
|
141
|
+
* The selection variant, set to "single".
|
|
142
|
+
*/
|
|
143
|
+
selectionVariant: "single";
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* UseCalendarSelection hook props, wth the selection variant determining the return type of the date selection
|
|
147
|
+
*/
|
|
148
|
+
export declare type UseCalendarSelectionProps = UseCalendarSelectionSingleProps | UseCalendarSelectionMultiSelectProps | UseCalendarSelectionRangeProps | UseCalendarSelectionOffsetProps;
|
|
149
|
+
export declare function useCalendarSelection(props: UseCalendarSelectionProps): {
|
|
150
|
+
state: {
|
|
151
|
+
selectedDate: CalendarDate | CalendarDateTime | ZonedDateTime | DateRangeSelection | MultipleDateSelection | null | undefined;
|
|
152
|
+
hoveredDate: CalendarDate | CalendarDateTime | ZonedDateTime | null | undefined;
|
|
153
|
+
};
|
|
154
|
+
helpers: {
|
|
155
|
+
setSelectedDate: (event: SyntheticEvent<HTMLButtonElement>, newSelectedDate: DateValue) => void;
|
|
156
|
+
isSelected: (date: DateValue) => boolean;
|
|
157
|
+
setHoveredDate: (event: SyntheticEvent, date: DateValue | null) => void;
|
|
158
|
+
isHovered: (date: DateValue) => boolean;
|
|
159
|
+
isSelectedSpan: (date: DateValue) => boolean;
|
|
160
|
+
isHoveredSpan: (date: DateValue) => boolean;
|
|
161
|
+
isSelectedStart: (date: DateValue) => boolean;
|
|
162
|
+
isSelectedEnd: (date: DateValue) => boolean;
|
|
163
|
+
isHoveredOffset: (date: DateValue) => boolean;
|
|
164
|
+
isDaySelectable: ((date: DateValue) => boolean) | undefined;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
export declare function useCalendarSelectionDay({ date }: {
|
|
168
|
+
date: DateValue;
|
|
169
|
+
}): {
|
|
170
|
+
handleClick: MouseEventHandler<HTMLButtonElement>;
|
|
171
|
+
handleKeyDown: KeyboardEventHandler<HTMLButtonElement>;
|
|
172
|
+
handleMouseOver: MouseEventHandler<HTMLButtonElement>;
|
|
173
|
+
handleMouseLeave: MouseEventHandler<HTMLButtonElement>;
|
|
174
|
+
status: {
|
|
175
|
+
selected: boolean;
|
|
176
|
+
selectedSpan: boolean;
|
|
177
|
+
hoveredSpan: boolean;
|
|
178
|
+
selectedStart: boolean;
|
|
179
|
+
selectedEnd: boolean;
|
|
180
|
+
hovered: boolean;
|
|
181
|
+
hoveredOffset: boolean;
|
|
182
|
+
};
|
|
183
|
+
dayProps: {
|
|
184
|
+
className: string;
|
|
185
|
+
"aria-pressed": string | undefined;
|
|
186
|
+
"aria-disabled": string | undefined;
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { type DateValue } from "@internationalized/date";
|
|
2
|
+
import { type InputProps } from "@salt-ds/core";
|
|
3
|
+
import { type ChangeEvent, type ComponentPropsWithoutRef, type InputHTMLAttributes, type ReactNode, type Ref, type SyntheticEvent } from "react";
|
|
4
|
+
import { type DateRangeSelection } from "../calendar";
|
|
5
|
+
import type { DateInputSingleParserError } from "./DateInputSingle";
|
|
6
|
+
/**
|
|
7
|
+
* Date error produced by DateInputRange parser.
|
|
8
|
+
*/
|
|
9
|
+
export declare type DateInputRangeParserError = string | false;
|
|
10
|
+
/**
|
|
11
|
+
* DateInputRange raw value or null if no date is defined.
|
|
12
|
+
*/
|
|
13
|
+
export declare type DateInputRangeValue = {
|
|
14
|
+
startDate?: string | null;
|
|
15
|
+
endDate?: string | null;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Return value of DateInputRange parser.
|
|
19
|
+
* @template T
|
|
20
|
+
*/
|
|
21
|
+
export interface DateInputRangeParserResult<T = DateValue | null> {
|
|
22
|
+
/**
|
|
23
|
+
* The parsed date value.
|
|
24
|
+
*/
|
|
25
|
+
date: T;
|
|
26
|
+
/**
|
|
27
|
+
* The error encountered during parsing, if any.
|
|
28
|
+
*/
|
|
29
|
+
error: DateInputRangeParserError;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Date Range error returned with selected date to indicate invalid dates.
|
|
33
|
+
*/
|
|
34
|
+
export declare type DateInputRangeError = {
|
|
35
|
+
/**
|
|
36
|
+
* The error for the start date.
|
|
37
|
+
*/
|
|
38
|
+
startDate: DateInputSingleParserError;
|
|
39
|
+
/**
|
|
40
|
+
* The error for the end date.
|
|
41
|
+
*/
|
|
42
|
+
endDate: DateInputSingleParserError;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Props for the DateInputRange component.
|
|
46
|
+
* @template T
|
|
47
|
+
*/
|
|
48
|
+
export interface DateInputRangeProps<T = DateRangeSelection> extends Omit<ComponentPropsWithoutRef<"div">, "defaultValue" | "onChange">, Omit<InputProps, "defaultValue" | "inputRef" | "value" | "onChange"> {
|
|
49
|
+
/**
|
|
50
|
+
* The aria-label for accessibility.
|
|
51
|
+
*/
|
|
52
|
+
ariaLabel?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Styling variant with full border. Defaults to false.
|
|
55
|
+
*/
|
|
56
|
+
bordered?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* The marker to use in an empty read-only DateInput.
|
|
59
|
+
* Use `''` to disable this feature. Defaults to '—'.
|
|
60
|
+
*/
|
|
61
|
+
emptyReadOnlyMarker?: string;
|
|
62
|
+
/**
|
|
63
|
+
* End adornment component.
|
|
64
|
+
*/
|
|
65
|
+
endAdornment?: ReactNode;
|
|
66
|
+
/**
|
|
67
|
+
* Attributes applied to the start `input` element.
|
|
68
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dateInput#Attributes
|
|
69
|
+
*/
|
|
70
|
+
startInputProps?: InputHTMLAttributes<HTMLInputElement>;
|
|
71
|
+
/**
|
|
72
|
+
* Attributes applied to the end `input` element.
|
|
73
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dateInput#Attributes
|
|
74
|
+
*/
|
|
75
|
+
endInputProps?: InputHTMLAttributes<HTMLInputElement>;
|
|
76
|
+
/**
|
|
77
|
+
* If `true`, the component is read-only.
|
|
78
|
+
*/
|
|
79
|
+
readOnly?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Validation status.
|
|
82
|
+
*/
|
|
83
|
+
validationStatus?: "error" | "warning" | "success";
|
|
84
|
+
/**
|
|
85
|
+
* Styling variant. Defaults to "primary".
|
|
86
|
+
*/
|
|
87
|
+
variant?: "primary" | "secondary";
|
|
88
|
+
/**
|
|
89
|
+
* Function to format the input value.
|
|
90
|
+
*/
|
|
91
|
+
format?: (date: DateValue | null) => string;
|
|
92
|
+
/**
|
|
93
|
+
* Optional ref for the start input component.
|
|
94
|
+
*/
|
|
95
|
+
startInputRef?: Ref<HTMLInputElement>;
|
|
96
|
+
/**
|
|
97
|
+
* Optional ref for the end input component.
|
|
98
|
+
*/
|
|
99
|
+
endInputRef?: Ref<HTMLInputElement>;
|
|
100
|
+
/**
|
|
101
|
+
* Input value. Use when the input value is controlled.
|
|
102
|
+
*/
|
|
103
|
+
value?: DateInputRangeValue;
|
|
104
|
+
/**
|
|
105
|
+
* The initial input value. Use when the component is uncontrolled.
|
|
106
|
+
*/
|
|
107
|
+
defaultValue?: DateInputRangeValue;
|
|
108
|
+
/**
|
|
109
|
+
* The date value. Use when the component is controlled.
|
|
110
|
+
*/
|
|
111
|
+
date?: T | null;
|
|
112
|
+
/**
|
|
113
|
+
* The initial selected date value. Use when the component is uncontrolled.
|
|
114
|
+
*/
|
|
115
|
+
defaultDate?: T | null;
|
|
116
|
+
/**
|
|
117
|
+
* Callback fired when the input value changes.
|
|
118
|
+
* @param event - The change event.
|
|
119
|
+
* @param date - The new date input range value.
|
|
120
|
+
*/
|
|
121
|
+
onChange?: (event: ChangeEvent<HTMLInputElement>, date: DateInputRangeValue) => void;
|
|
122
|
+
/**
|
|
123
|
+
* Callback fired when the selected date changes.
|
|
124
|
+
* @param event - The synthetic event.
|
|
125
|
+
* @param date - The new date value.
|
|
126
|
+
* @param error - The date input range error.
|
|
127
|
+
*/
|
|
128
|
+
onDateChange?: (event: SyntheticEvent, date: T | null, error: DateInputRangeError) => void;
|
|
129
|
+
/**
|
|
130
|
+
* Called when input values change, either due to user interaction or programmatic formatting of valid dates.
|
|
131
|
+
* @param newValue - The new date input range value.
|
|
132
|
+
* @param isFormatted - Whether the value is formatted.
|
|
133
|
+
*/
|
|
134
|
+
onDateValueChange?: (newValue: DateInputRangeValue, isFormatted: boolean) => void;
|
|
135
|
+
/**
|
|
136
|
+
* Function to parse date string to valid `DateValue` or null, if invalid.
|
|
137
|
+
* @param inputDate - The input date string.
|
|
138
|
+
* @returns The result of the date input range parser.
|
|
139
|
+
*/
|
|
140
|
+
parse?: (inputDate: string) => DateInputRangeParserResult;
|
|
141
|
+
/**
|
|
142
|
+
* Locale of the entered date.
|
|
143
|
+
*/
|
|
144
|
+
locale?: string;
|
|
145
|
+
/**
|
|
146
|
+
* Timezone of the entered date.
|
|
147
|
+
*/
|
|
148
|
+
timeZone?: string;
|
|
149
|
+
}
|
|
150
|
+
export declare const DateInputRange: import("react").ForwardRefExoticComponent<DateInputRangeProps<DateRangeSelection> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { type DateValue } from "@internationalized/date";
|
|
2
|
+
import { type ComponentPropsWithoutRef, type InputHTMLAttributes, type ReactNode, type RefObject, type SyntheticEvent } from "react";
|
|
3
|
+
import { type SingleDateSelection } from "../calendar";
|
|
4
|
+
/**
|
|
5
|
+
* Date error produced by DateInputSingle parser.
|
|
6
|
+
*/
|
|
7
|
+
export declare type DateInputSingleParserError = string | false;
|
|
8
|
+
/**
|
|
9
|
+
* Date error produced by DateInputSingle parser.
|
|
10
|
+
*/
|
|
11
|
+
export declare type DateInputSingleError = DateInputSingleParserError;
|
|
12
|
+
/**
|
|
13
|
+
* Return value of DateInputSingle parser.
|
|
14
|
+
* @template T
|
|
15
|
+
*/
|
|
16
|
+
export interface DateInputSingleParserResult<T = DateValue | null> {
|
|
17
|
+
/**
|
|
18
|
+
* The parsed date value.
|
|
19
|
+
*/
|
|
20
|
+
date: T;
|
|
21
|
+
/**
|
|
22
|
+
* The error encountered during parsing, if any.
|
|
23
|
+
*/
|
|
24
|
+
error: DateInputSingleParserError;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Props for the DateInputSingle component.
|
|
28
|
+
* @template T
|
|
29
|
+
*/
|
|
30
|
+
export interface DateInputSingleProps<T = SingleDateSelection> extends Omit<ComponentPropsWithoutRef<"div">, "defaultValue">, Pick<ComponentPropsWithoutRef<"input">, "disabled" | "value" | "defaultValue" | "placeholder"> {
|
|
31
|
+
/**
|
|
32
|
+
* The aria-label for accessibility.
|
|
33
|
+
*/
|
|
34
|
+
ariaLabel?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Styling variant with full border. Defaults to false.
|
|
37
|
+
*/
|
|
38
|
+
bordered?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The marker to use in an empty read-only DateInput.
|
|
41
|
+
* Use `''` to disable this feature. Defaults to '—'.
|
|
42
|
+
*/
|
|
43
|
+
emptyReadOnlyMarker?: string;
|
|
44
|
+
/**
|
|
45
|
+
* End adornment component.
|
|
46
|
+
*/
|
|
47
|
+
endAdornment?: ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Attributes applied to the `input` element.
|
|
50
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dateInput#Attributes
|
|
51
|
+
*/
|
|
52
|
+
inputProps?: InputHTMLAttributes<HTMLInputElement>;
|
|
53
|
+
/**
|
|
54
|
+
* If `true`, the component is read-only.
|
|
55
|
+
*/
|
|
56
|
+
readOnly?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Validation status.
|
|
59
|
+
*/
|
|
60
|
+
validationStatus?: "error" | "warning" | "success";
|
|
61
|
+
/**
|
|
62
|
+
* Styling variant. Defaults to "primary".
|
|
63
|
+
*/
|
|
64
|
+
variant?: "primary" | "secondary";
|
|
65
|
+
/**
|
|
66
|
+
* Function to format the input value.
|
|
67
|
+
*/
|
|
68
|
+
format?: (date: DateValue | null) => string;
|
|
69
|
+
/**
|
|
70
|
+
* Reference for the input.
|
|
71
|
+
*/
|
|
72
|
+
inputRef?: RefObject<HTMLInputElement>;
|
|
73
|
+
/**
|
|
74
|
+
* Input value. Use when the input value is controlled.
|
|
75
|
+
*/
|
|
76
|
+
value?: string;
|
|
77
|
+
/**
|
|
78
|
+
* The initial input value. Use when the component is uncontrolled.
|
|
79
|
+
*/
|
|
80
|
+
defaultValue?: string;
|
|
81
|
+
/**
|
|
82
|
+
* The date value. Use when the component is controlled.
|
|
83
|
+
*/
|
|
84
|
+
date?: T | null;
|
|
85
|
+
/**
|
|
86
|
+
* The initial selected date value. Use when the component is uncontrolled.
|
|
87
|
+
*/
|
|
88
|
+
defaultDate?: T | null;
|
|
89
|
+
/**
|
|
90
|
+
* Callback fired when the selected date changes.
|
|
91
|
+
* @param event - The synthetic event.
|
|
92
|
+
* @param date - The new date value.
|
|
93
|
+
* @param error - The date input single error.
|
|
94
|
+
*/
|
|
95
|
+
onDateChange?: (event: SyntheticEvent, date: T | null, error: DateInputSingleError) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Function to parse date string to valid `DateValue` or null, if invalid or empty.
|
|
98
|
+
* @param inputDate - The input date string.
|
|
99
|
+
* @returns The result of the date input single parser.
|
|
100
|
+
*/
|
|
101
|
+
parse?: (inputDate: string) => DateInputSingleParserResult;
|
|
102
|
+
/**
|
|
103
|
+
* Called when input value changes, either due to user interaction or programmatic formatting of valid dates.
|
|
104
|
+
* @param newValue - The new date input value.
|
|
105
|
+
* @param isFormatted - Whether the value is formatted.
|
|
106
|
+
*/
|
|
107
|
+
onDateValueChange?: (newValue: string, isFormatted: boolean) => void;
|
|
108
|
+
/**
|
|
109
|
+
* Locale of the entered date.
|
|
110
|
+
*/
|
|
111
|
+
locale?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Timezone of the entered date.
|
|
114
|
+
*/
|
|
115
|
+
timeZone?: string;
|
|
116
|
+
}
|
|
117
|
+
export declare const DateInputSingle: import("react").ForwardRefExoticComponent<DateInputSingleProps<DateValue> & import("react").RefAttributes<HTMLDivElement>>;
|