@salt-ds/lab 1.0.0-alpha.51 → 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 +256 -268
- package/dist-cjs/calendar/Calendar.css.js +1 -1
- package/dist-cjs/calendar/Calendar.js +6 -17
- 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 -66
- 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.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 -150
- 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/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/tabs/TabActivationIndicator.css.js +1 -1
- package/dist-cjs/tabs/useTabs.js.map +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 -18
- 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.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 -154
- 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/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/tabs/TabActivationIndicator.css.js +1 -1
- package/dist-es/tabs/useTabs.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-types/calendar/Calendar.d.ts +63 -6
- 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/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 -283
- 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 -214
- 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 -279
- 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 -16
- package/dist-types/calendar/useSelection.d.ts +0 -78
- package/dist-types/date-input/DateInput.d.ts +0 -60
- 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
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Props for the DatePickerOverlay component.
|
|
4
|
+
*/
|
|
5
|
+
export interface DatePickerOverlayProps extends ComponentPropsWithoutRef<"div"> {
|
|
6
|
+
/**
|
|
7
|
+
* The content to be rendered inside the overlay.
|
|
8
|
+
*/
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare const DatePickerOverlay: import("react").ForwardRefExoticComponent<DatePickerOverlayProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useInteractions } from "@floating-ui/react";
|
|
2
|
+
import { useFloatingUI } from "@salt-ds/core";
|
|
3
|
+
import { type ReactNode } from "react";
|
|
4
|
+
/**
|
|
5
|
+
* Interface representing the state for a DatePicker overlay.
|
|
6
|
+
*/
|
|
7
|
+
interface DatePickerOverlayState {
|
|
8
|
+
/**
|
|
9
|
+
* If `true`, the overlay is open.
|
|
10
|
+
*/
|
|
11
|
+
open: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* The result of the floating UI calculations.
|
|
14
|
+
*/
|
|
15
|
+
floatingUIResult: ReturnType<typeof useFloatingUI>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Interface representing the helper functions for a DatePicker overlay.
|
|
19
|
+
*/
|
|
20
|
+
interface DatePickerOverlayHelpers {
|
|
21
|
+
/**
|
|
22
|
+
* Function to get the props for the floating element.
|
|
23
|
+
*/
|
|
24
|
+
getFloatingProps: ReturnType<typeof useInteractions>["getFloatingProps"];
|
|
25
|
+
/**
|
|
26
|
+
* Function to get the props for the reference element.
|
|
27
|
+
*/
|
|
28
|
+
getReferenceProps: ReturnType<typeof useInteractions>["getReferenceProps"];
|
|
29
|
+
/**
|
|
30
|
+
* Sets the open state of the overlay.
|
|
31
|
+
* @param newOpen - The new value for the open state.
|
|
32
|
+
*/
|
|
33
|
+
setOpen: (newOpen: boolean) => void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Interface representing the context type for a DatePicker overlay.
|
|
37
|
+
*/
|
|
38
|
+
interface DatePickerOverlayContextType {
|
|
39
|
+
/**
|
|
40
|
+
* The state of the DatePicker overlay.
|
|
41
|
+
*/
|
|
42
|
+
state: DatePickerOverlayState;
|
|
43
|
+
/**
|
|
44
|
+
* The helper functions for the DatePicker overlay.
|
|
45
|
+
*/
|
|
46
|
+
helpers: DatePickerOverlayHelpers;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Props for the DatePickerOverlayProvider component.
|
|
50
|
+
*/
|
|
51
|
+
interface DatePickerOverlayProviderProps {
|
|
52
|
+
/**
|
|
53
|
+
* If `true`, the overlay is open.
|
|
54
|
+
*/
|
|
55
|
+
open?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* The default open state of the overlay.
|
|
58
|
+
*/
|
|
59
|
+
defaultOpen?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* The content to be rendered inside the overlay provider.
|
|
62
|
+
*/
|
|
63
|
+
children: ReactNode;
|
|
64
|
+
}
|
|
65
|
+
export declare const DatePickerOverlayProvider: React.FC<DatePickerOverlayProviderProps>;
|
|
66
|
+
export declare const useDatePickerOverlay: () => DatePickerOverlayContextType;
|
|
67
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type DateInputRangeProps } from "../date-input";
|
|
2
|
+
/**
|
|
3
|
+
* Props for the DatePickerRangeInput component.
|
|
4
|
+
*/
|
|
5
|
+
export interface DatePickerRangeInputProps extends DateInputRangeProps {
|
|
6
|
+
}
|
|
7
|
+
export declare const DatePickerRangeInput: import("react").ForwardRefExoticComponent<DatePickerRangeInputProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type DateValue } from "@internationalized/date";
|
|
2
|
+
import { type ComponentPropsWithoutRef, type SyntheticEvent } from "react";
|
|
3
|
+
import { type CalendarNavigationProps, type CalendarOffsetProps, type CalendarRangeProps, type DateRangeSelection } from "../calendar";
|
|
4
|
+
/**
|
|
5
|
+
* Props for the DatePickerRangePanel component.
|
|
6
|
+
* @template T - The type of the selected date range.
|
|
7
|
+
*/
|
|
8
|
+
export interface DatePickerRangePanelProps<T> extends ComponentPropsWithoutRef<"div"> {
|
|
9
|
+
/**
|
|
10
|
+
* Callback fired when a date range is selected.
|
|
11
|
+
* @param event - The synthetic event.
|
|
12
|
+
* @param selectedDate - The selected date range or null.
|
|
13
|
+
*/
|
|
14
|
+
onSelect?: (event: SyntheticEvent, selectedDate?: T | null) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Helper text to be displayed below the date picker.
|
|
17
|
+
*/
|
|
18
|
+
helperText?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The currently visible month for the start date.
|
|
21
|
+
*/
|
|
22
|
+
startVisibleMonth?: DateValue;
|
|
23
|
+
/**
|
|
24
|
+
* The default visible month for the start date.
|
|
25
|
+
*/
|
|
26
|
+
defaultStartVisibleMonth?: DateValue;
|
|
27
|
+
/**
|
|
28
|
+
* Callback fired when the visible month for the start date changes.
|
|
29
|
+
* @param event - The synthetic event.
|
|
30
|
+
* @param visibleMonth - The new visible month for the start date.
|
|
31
|
+
*/
|
|
32
|
+
onStartVisibleMonthChange?: (event: SyntheticEvent, visibleMonth: DateValue) => void;
|
|
33
|
+
/**
|
|
34
|
+
* The currently visible month for the end date.
|
|
35
|
+
*/
|
|
36
|
+
endVisibleMonth?: DateValue;
|
|
37
|
+
/**
|
|
38
|
+
* The default visible month for the end date.
|
|
39
|
+
*/
|
|
40
|
+
defaultEndVisibleMonth?: DateValue;
|
|
41
|
+
/**
|
|
42
|
+
* Callback fired when the visible month for the end date changes.
|
|
43
|
+
* @param event - The synthetic event.
|
|
44
|
+
* @param visibleMonth - The new visible month for the end date.
|
|
45
|
+
*/
|
|
46
|
+
onEndVisibleMonthChange?: (event: SyntheticEvent, visibleMonth: DateValue) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Props to be passed to the start date CalendarNavigation component.
|
|
49
|
+
*/
|
|
50
|
+
StartCalendarNavigationProps?: CalendarNavigationProps;
|
|
51
|
+
/**
|
|
52
|
+
* Props to be passed to the start date calendar component.
|
|
53
|
+
*/
|
|
54
|
+
StartCalendarProps?: Partial<Omit<CalendarRangeProps | CalendarOffsetProps, "selectedDate" | "defaultSelectedDate" | "onSelectedDateChange" | "onVisibleMonthChange">>;
|
|
55
|
+
/**
|
|
56
|
+
* Props to be passed to the end date CalendarNavigation component.
|
|
57
|
+
*/
|
|
58
|
+
EndCalendarProps?: Partial<Omit<CalendarRangeProps, "selectedDate" | "defaultSelectedDate" | "onSelectedDateChange" | "onVisibleMonthChange">>;
|
|
59
|
+
/**
|
|
60
|
+
* Props to be passed to the end date CalendarNavigation component.
|
|
61
|
+
*/
|
|
62
|
+
EndCalendarNavigationProps?: CalendarNavigationProps;
|
|
63
|
+
}
|
|
64
|
+
export declare const DatePickerRangePanel: import("react").ForwardRefExoticComponent<DatePickerRangePanelProps<DateRangeSelection> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type DateInputSingleProps } from "../date-input";
|
|
2
|
+
/**
|
|
3
|
+
* Props for the DatePickerSingleInput component.
|
|
4
|
+
*/
|
|
5
|
+
export interface DatePickerSingleInputProps extends DateInputSingleProps {
|
|
6
|
+
}
|
|
7
|
+
export declare const DatePickerSingleInput: import("react").ForwardRefExoticComponent<DatePickerSingleInputProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type DateValue } from "@internationalized/date";
|
|
2
|
+
import { type ComponentPropsWithoutRef, type SyntheticEvent } from "react";
|
|
3
|
+
import { type CalendarNavigationProps, type CalendarSingleProps } from "../calendar";
|
|
4
|
+
/**
|
|
5
|
+
* Props for the DatePickerSinglePanel component.
|
|
6
|
+
* @template T - The type of the selected date.
|
|
7
|
+
*/
|
|
8
|
+
export interface DatePickerSinglePanelProps<T> extends ComponentPropsWithoutRef<"div"> {
|
|
9
|
+
/**
|
|
10
|
+
* Callback fired when a date is selected.
|
|
11
|
+
* @param event - The synthetic event.
|
|
12
|
+
* @param selectedDate - The selected date or null.
|
|
13
|
+
*/
|
|
14
|
+
onSelect?: (event: SyntheticEvent, selectedDate?: T | null) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Helper text to be displayed below the date picker.
|
|
17
|
+
*/
|
|
18
|
+
helperText?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The currently visible month.
|
|
21
|
+
*/
|
|
22
|
+
visibleMonth?: DateValue;
|
|
23
|
+
/**
|
|
24
|
+
* The default visible month.
|
|
25
|
+
*/
|
|
26
|
+
defaultVisibleMonth?: DateValue;
|
|
27
|
+
/**
|
|
28
|
+
* Callback fired when the visible month changes.
|
|
29
|
+
* @param event - The synthetic event.
|
|
30
|
+
* @param visibleMonth - The new visible month.
|
|
31
|
+
*/
|
|
32
|
+
onVisibleMonthChange?: (event: SyntheticEvent, visibleMonth: DateValue) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Props to be passed to the Calendar component.
|
|
35
|
+
*/
|
|
36
|
+
CalendarProps?: Partial<Omit<CalendarSingleProps, "selectionVariant" | "selectedDate" | "defaultSelectedDate" | "onSelectedDateChange" | "onVisibleMonthChange">>;
|
|
37
|
+
/**
|
|
38
|
+
* Props to be passed to the CalendarNavigation component.
|
|
39
|
+
*/
|
|
40
|
+
CalendarNavigationProps?: CalendarNavigationProps;
|
|
41
|
+
}
|
|
42
|
+
export declare const DatePickerSinglePanel: import("react").ForwardRefExoticComponent<DatePickerSinglePanelProps<DateValue> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1,8 @@
|
|
|
1
1
|
export * from "./DatePicker";
|
|
2
|
+
export * from "./DatePickerActions";
|
|
3
|
+
export * from "./DatePickerContext";
|
|
4
|
+
export * from "./DatePickerOverlay";
|
|
5
|
+
export * from "./DatePickerSingleInput";
|
|
6
|
+
export * from "./DatePickerSinglePanel";
|
|
7
|
+
export * from "./DatePickerRangeInput";
|
|
8
|
+
export * from "./DatePickerRangePanel";
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type DateValue } from "@internationalized/date";
|
|
2
|
+
import { type DateRangeSelection, type SingleDateSelection } from "../calendar";
|
|
3
|
+
import type { RangeDatePickerState, SingleDatePickerState } from "./DatePickerContext";
|
|
4
|
+
interface UseDatePickerBaseProps<T> {
|
|
5
|
+
/** If `true`, the component is disabled. */
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** If `true`, the component is read-only. */
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The selected date. The selected date will be controlled when this prop is provided.
|
|
11
|
+
*/
|
|
12
|
+
selectedDate?: T | null;
|
|
13
|
+
/**
|
|
14
|
+
* The initial selected date, when the selected date is uncontrolled.
|
|
15
|
+
*/
|
|
16
|
+
defaultSelectedDate?: UseDatePickerBaseProps<T>["selectedDate"];
|
|
17
|
+
/**
|
|
18
|
+
* The minimum date for the range, default is 1900.
|
|
19
|
+
*/
|
|
20
|
+
minDate?: DateValue;
|
|
21
|
+
/**
|
|
22
|
+
* The maximum date for the range, default is 2100.
|
|
23
|
+
*/
|
|
24
|
+
maxDate?: DateValue;
|
|
25
|
+
/**
|
|
26
|
+
* Handler for when the date selection is cancelled.
|
|
27
|
+
*/
|
|
28
|
+
onCancel?: () => void;
|
|
29
|
+
/**
|
|
30
|
+
* Time zone of the date selection, defaults to the current time zone of the user.
|
|
31
|
+
*/
|
|
32
|
+
timeZone?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Locale of the date selection, defaults to the current locale of the user.
|
|
35
|
+
*/
|
|
36
|
+
locale?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Props for single date selection.
|
|
40
|
+
*
|
|
41
|
+
* @typedef {UseDatePickerBaseProps<SingleDateSelection>} UseDatePickerSingleProps
|
|
42
|
+
* @property {"single"} selectionVariant - Single date selection.
|
|
43
|
+
* @property {(selectedSingleDate: SingleDateSelection | null, singleError: string | false) => void} [onSelectedDateChange] - Handler called when the selected date changes.
|
|
44
|
+
* @property {(appliedSingleDate: SingleDateSelection | null, singleError: string | false) => void} [onApply] - Handler called when the selected date is confirmed/applied.
|
|
45
|
+
*/
|
|
46
|
+
export interface UseDatePickerSingleProps extends UseDatePickerBaseProps<SingleDateSelection> {
|
|
47
|
+
/**
|
|
48
|
+
* Single date selection.
|
|
49
|
+
*/
|
|
50
|
+
selectionVariant: "single";
|
|
51
|
+
/**
|
|
52
|
+
* Handler called when the selected date changes.
|
|
53
|
+
* @param {SingleDateSelection | null} selectedSingleDate - The selected date.
|
|
54
|
+
* @param {string | false} singleError - Error returned by the parser or `false`.
|
|
55
|
+
*/
|
|
56
|
+
onSelectedDateChange?: (selectedSingleDate: SingleDateSelection | null, singleError: string | false) => void;
|
|
57
|
+
/**
|
|
58
|
+
* Handler called when the selected date is confirmed/applied.
|
|
59
|
+
* @param {SingleDateSelection | null} appliedSingleDate - The selected date.
|
|
60
|
+
* @param {string | false} singleError - Error returned by the parser or `false`.
|
|
61
|
+
*/
|
|
62
|
+
onApply?: (appliedSingleDate: SingleDateSelection | null, singleError: string | false) => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Props for date range selection.
|
|
66
|
+
*
|
|
67
|
+
* @typedef {UseDatePickerBaseProps<DateRangeSelection>} UseDatePickerRangeProps
|
|
68
|
+
* @property {"range"} selectionVariant - Date range selection.
|
|
69
|
+
* @property {(selectedRangeDate: DateRangeSelection | null, rangeError: { startDate: string | false; endDate: string | false }) => void} [onSelectedDateChange] - Handler called when the selected date changes.
|
|
70
|
+
* @property {(appliedRangeDate: DateRangeSelection | null, rangeError: { startDate: string | false; endDate: string | false }) => void} [onApply] - Handler called when the selected date is confirmed/applied.
|
|
71
|
+
*/
|
|
72
|
+
export interface UseDatePickerRangeProps extends UseDatePickerBaseProps<DateRangeSelection> {
|
|
73
|
+
/**
|
|
74
|
+
* Date range selection.
|
|
75
|
+
*/
|
|
76
|
+
selectionVariant: "range";
|
|
77
|
+
/**
|
|
78
|
+
* Handler called when the selected date changes.
|
|
79
|
+
* @param {DateRangeSelection | null} selectedRangeDate - The selected date.
|
|
80
|
+
* @param {{ startDate: string | false; endDate: string | false }} rangeError - Error returned by the parser or `false`.
|
|
81
|
+
*/
|
|
82
|
+
onSelectedDateChange?: (selectedRangeDate: DateRangeSelection | null, rangeError: {
|
|
83
|
+
startDate: string | false;
|
|
84
|
+
endDate: string | false;
|
|
85
|
+
}) => void;
|
|
86
|
+
/**
|
|
87
|
+
* Handler called when the selected date is confirmed/applied.
|
|
88
|
+
* @param {DateRangeSelection | null} appliedRangeDate - The selected date.
|
|
89
|
+
* @param {{ startDate: string | false; endDate: string | false }} rangeError - Error returned by the parser or `false`.
|
|
90
|
+
*/
|
|
91
|
+
onApply?: (appliedRangeDate: DateRangeSelection | null, rangeError: {
|
|
92
|
+
startDate: string | false;
|
|
93
|
+
endDate: string | false;
|
|
94
|
+
}) => void;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Props for the useDatePicker hook.
|
|
98
|
+
*
|
|
99
|
+
* @template SelectionVariant
|
|
100
|
+
* @typedef {SelectionVariant extends "single" ? UseDatePickerSingleProps : SelectionVariant extends "range" ? UseDatePickerRangeProps : never} UseDatePickerProps
|
|
101
|
+
*/
|
|
102
|
+
export declare type UseDatePickerProps<SelectionVariant> = SelectionVariant extends "single" ? UseDatePickerSingleProps : SelectionVariant extends "range" ? UseDatePickerRangeProps : never;
|
|
103
|
+
/**
|
|
104
|
+
* Custom hook for managing date picker state.
|
|
105
|
+
*
|
|
106
|
+
* @template SelectionVariant
|
|
107
|
+
* @param {UseDatePickerProps<SelectionVariant>} props - The props for the date picker.
|
|
108
|
+
* @param {React.ForwardedRef<HTMLDivElement>} ref - The ref for the date picker container.
|
|
109
|
+
* @returns {DatePickerState<SelectionVariant extends "single" ? SingleDateSelection : DateRangeSelection>} The date picker state and helpers.
|
|
110
|
+
*/
|
|
111
|
+
export declare function useDatePicker<SelectionVariant extends "single" | "range">(props: UseDatePickerProps<SelectionVariant>, ref: React.ForwardedRef<HTMLDivElement>): SingleDatePickerState | RangeDatePickerState;
|
|
112
|
+
export {};
|
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
import { type HTMLAttributes } from "react";
|
|
2
|
-
import { type SliderMark } from "./internal/SliderRailMarks";
|
|
3
2
|
import type { SliderChangeHandler, SliderValue } from "./types";
|
|
4
3
|
export interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
|
|
5
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Minimum slider value
|
|
6
|
+
*/
|
|
6
7
|
min?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Maximum slider value
|
|
10
|
+
*/
|
|
7
11
|
max?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Minimum interval the slider thumb can move
|
|
14
|
+
*/
|
|
8
15
|
step?: number;
|
|
9
|
-
|
|
10
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Initial value of the slider
|
|
18
|
+
*/
|
|
11
19
|
defaultValue?: SliderValue;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
/**
|
|
21
|
+
* The markings the slider is displayed with
|
|
22
|
+
*/
|
|
23
|
+
marks?: "inline" | "bottom" | "all";
|
|
24
|
+
/**
|
|
25
|
+
* Value of the slider, to be used when in a controlled state
|
|
26
|
+
*/
|
|
27
|
+
value?: SliderValue;
|
|
28
|
+
/**
|
|
29
|
+
* Change handler to be used when in a controlled state
|
|
30
|
+
*/
|
|
15
31
|
onChange?: SliderChangeHandler;
|
|
16
|
-
marks?: SliderMark[];
|
|
17
|
-
hideMarks?: boolean;
|
|
18
|
-
hideMarkLabels?: boolean;
|
|
19
32
|
}
|
|
20
33
|
export declare const Slider: import("react").ForwardRefExoticComponent<SliderProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SliderChangeHandler, SliderValue } from "../types";
|
|
2
|
+
export interface SliderContextValue {
|
|
3
|
+
min: number;
|
|
4
|
+
max: number;
|
|
5
|
+
step: number;
|
|
6
|
+
value: SliderValue;
|
|
7
|
+
onChange: SliderChangeHandler;
|
|
8
|
+
ariaLabel: string | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare const SliderContext: import("react").Context<SliderContextValue>;
|
|
11
|
+
export declare function useSliderContext(): SliderContextValue;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface SliderMarksProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
min: number;
|
|
4
|
+
max: number;
|
|
5
|
+
step: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function SliderMarks({ min, max, step, ...rest }: SliderMarksProps): JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface SliderSelectionProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
3
|
}
|
|
4
|
-
export declare function SliderSelection({
|
|
4
|
+
export declare function SliderSelection({ ...props }: SliderSelectionProps): JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
import type { ActiveThumbIndex, ThumbIndex } from "../types";
|
|
3
|
+
export interface SliderThumbProps extends ComponentPropsWithoutRef<"div"> {
|
|
4
|
+
index: ThumbIndex;
|
|
5
|
+
activeThumb: ActiveThumbIndex;
|
|
6
|
+
setActiveThumb: (index: ActiveThumbIndex) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function SliderThumb(props: SliderThumbProps): JSX.Element;
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
export declare
|
|
4
|
-
export declare
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const clampValue: (
|
|
7
|
-
export declare
|
|
8
|
-
export declare
|
|
9
|
-
export declare
|
|
10
|
-
export declare
|
|
1
|
+
import type { RefObject } from "react";
|
|
2
|
+
import type { SliderChangeHandler, SliderValue, ThumbIndex } from "../types";
|
|
3
|
+
export declare const getValue: (trackRef: RefObject<Element>, min: number, max: number, step: number, clientX: number) => number;
|
|
4
|
+
export declare const setValue: (value: SliderValue, newValue: number, index: ThumbIndex, onChange: SliderChangeHandler) => void;
|
|
5
|
+
export declare const roundToStep: (value: number, step: number) => number;
|
|
6
|
+
export declare const clampValue: (value: number, [min, max]: number[]) => number;
|
|
7
|
+
export declare const getPercentage: (min: number, max: number, value: number) => number;
|
|
8
|
+
export declare const getPercentageDifference: (min: number, max: number, value: number[]) => string;
|
|
9
|
+
export declare const getPercentageOffset: (min: number, max: number, value: number[]) => string;
|
|
10
|
+
export declare const countDecimalPlaces: (num: number) => number;
|
|
11
|
+
export declare const getMarkStyles: (min: number, max: number, step: number) => {
|
|
12
|
+
label: string;
|
|
13
|
+
value: number;
|
|
14
|
+
position: string;
|
|
15
|
+
}[];
|
|
16
|
+
export declare const getNearestIndex: (value: SliderValue, newValue: number) => ThumbIndex;
|
|
17
|
+
export declare const preventOverlappingValues: (value: SliderValue, newValue: number, index: ThumbIndex) => number;
|
|
18
|
+
export declare const parseValueProp: (value: number[] | undefined, min: number, max: number) => SliderValue | undefined;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare type SliderValue = number | number
|
|
1
|
+
export declare type SliderValue = [number] | [number, number];
|
|
2
2
|
export declare type SliderChangeHandler = (value: SliderValue) => void;
|
|
3
|
+
export declare type ThumbIndex = 0 | 1;
|
|
4
|
+
export declare type ActiveThumbIndex = ThumbIndex | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salt-ds/lab",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.52",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@floating-ui/react": "^0.26.5",
|
|
15
15
|
"@fluentui/react-overflow": "^9.0.19",
|
|
16
|
-
"@internationalized/date": "^3.
|
|
16
|
+
"@internationalized/date": "^3.5.5",
|
|
17
17
|
"@types/react-window": "^1.8.2",
|
|
18
18
|
"aria-hidden": "^1.1.1",
|
|
19
19
|
"attr-accept": "^2.0.0",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"react-window": "^1.8.6",
|
|
27
27
|
"rifm": "^0.12.0",
|
|
28
28
|
"tinycolor2": "^1.4.2",
|
|
29
|
-
"@salt-ds/core": "^1.
|
|
29
|
+
"@salt-ds/core": "^1.36.0",
|
|
30
30
|
"@salt-ds/styles": "^0.2.1",
|
|
31
31
|
"@salt-ds/window": "^0.1.1",
|
|
32
32
|
"@salt-ds/icons": "^1.12.1"
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var css_248z = ".saltCalendarNavigation {\n display: grid;\n grid-template-columns: min-content auto min-content;\n padding-bottom: var(--salt-spacing-100);\n grid-gap: 0;\n align-items: center;\n box-sizing: border-box;\n}\n\n.saltCalendarNavigation-hideYearDropdown {\n grid-template-columns: min-content auto min-content;\n grid-gap: var(--salt-spacing-300);\n}\n\n.saltCalendarNavigation-dropdowns {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: var(--salt-spacing-100);\n}\n";
|
|
4
|
-
|
|
5
|
-
module.exports = css_248z;
|
|
6
|
-
//# sourceMappingURL=CalendarNavigation.css.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarNavigation.js","sources":["../src/calendar/internal/CalendarNavigation.tsx"],"sourcesContent":["import {\n Button,\n type ButtonProps,\n Dropdown,\n type DropdownProps,\n Option,\n type OptionProps,\n Tooltip,\n makePrefixer,\n useListControlContext,\n} from \"@salt-ds/core\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithRef,\n type MouseEventHandler,\n type SyntheticEvent,\n forwardRef,\n} from \"react\";\n\nimport { useCalendarContext } from \"./CalendarContext\";\n\nimport {\n type DateValue,\n isSameMonth,\n isSameYear,\n} from \"@internationalized/date\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport calendarNavigationCss from \"./CalendarNavigation.css\";\nimport { formatDate, monthDiff, monthsForLocale } from \"./utils\";\n\ntype dateDropdownProps = DropdownProps<DateValue>;\n\nexport interface CalendarNavigationProps extends ComponentPropsWithRef<\"div\"> {\n MonthDropdownProps?: dateDropdownProps;\n YearDropdownProps?: dateDropdownProps;\n onMonthSelect?: dateDropdownProps[\"onChange\"];\n onYearSelect?: dateDropdownProps[\"onChange\"];\n borderedDropdown?: dateDropdownProps[\"bordered\"];\n onNavigateNext?: ButtonProps[\"onClick\"];\n onNavigatePrevious?: ButtonProps[\"onClick\"];\n hideYearDropdown?: boolean;\n}\n\ninterface OptionWithTooltipProps extends OptionProps {\n value: DateValue;\n tooltipContent: string;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarNavigation\");\n\nfunction useCalendarNavigation() {\n const {\n state: { visibleMonth, minDate, maxDate },\n helpers: {\n setVisibleMonth,\n isDayVisible,\n isOutsideAllowedYears,\n isOutsideAllowedMonths,\n },\n } = useCalendarContext();\n\n const moveToNextMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.add({ months: 1 }));\n };\n\n const moveToPreviousMonth = (event: SyntheticEvent) => {\n setVisibleMonth(event, visibleMonth.subtract({ months: 1 }));\n };\n\n const moveToMonth = (event: SyntheticEvent, month: DateValue) => {\n let newMonth = month;\n\n if (!isOutsideAllowedYears(newMonth)) {\n if (isOutsideAllowedMonths(newMonth)) {\n // If month is navigable we should move to the closest navigable month\n const navigableMonths = monthsForLocale(visibleMonth).filter(\n (n) => !isOutsideAllowedMonths(n),\n );\n newMonth = navigableMonths.reduce((closestMonth, currentMonth) =>\n Math.abs(monthDiff(currentMonth, newMonth)) <\n Math.abs(monthDiff(closestMonth, newMonth))\n ? currentMonth\n : closestMonth,\n );\n }\n setVisibleMonth(event, newMonth);\n }\n };\n\n const months: DateValue[] = monthsForLocale(visibleMonth);\n\n const years: DateValue[] = [-2, -1, 0, 1, 2]\n .map((delta) => visibleMonth.add({ years: delta }))\n .filter((year) => !isOutsideAllowedYears(year));\n\n const selectedMonth: DateValue | undefined = months.find((month: DateValue) =>\n isSameMonth(month, visibleMonth),\n );\n const selectedYear: DateValue | undefined = years.find((year: DateValue) =>\n isSameYear(year, visibleMonth),\n );\n\n const canNavigatePrevious = !(minDate && isDayVisible(minDate));\n const canNavigateNext = !(maxDate && isDayVisible(maxDate));\n\n return {\n moveToNextMonth,\n moveToPreviousMonth,\n moveToMonth,\n visibleMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n };\n}\n\nconst OptionWithTooltip = ({\n value,\n children,\n disabled,\n tooltipContent,\n}: OptionWithTooltipProps) => {\n const { activeState, openState } = useListControlContext();\n const open = activeState?.value === value;\n\n return (\n <Tooltip\n placement=\"right\"\n open={open && openState}\n disabled={!disabled}\n content={tooltipContent}\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Option value={value} disabled={disabled}>\n {children}\n </Option>\n </Tooltip>\n );\n};\n\nexport const CalendarNavigation = forwardRef<\n HTMLDivElement,\n CalendarNavigationProps\n>(function CalendarNavigation(props, ref) {\n const {\n className,\n MonthDropdownProps,\n YearDropdownProps,\n hideYearDropdown,\n borderedDropdown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-navigation\",\n css: calendarNavigationCss,\n window: targetWindow,\n });\n\n const {\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n months,\n years,\n canNavigateNext,\n canNavigatePrevious,\n visibleMonth,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n } = useCalendarNavigation();\n\n const handleNavigatePrevious: MouseEventHandler<HTMLButtonElement> = (\n event,\n ) => {\n moveToPreviousMonth(event);\n };\n\n const handleNavigateNext: MouseEventHandler<HTMLButtonElement> = (event) => {\n moveToNextMonth(event);\n };\n\n const handleMonthSelect = (event: SyntheticEvent, month: DateValue[]) => {\n moveToMonth(event, month[0]);\n };\n\n const handleYearSelect = (event: SyntheticEvent, year: DateValue[]) => {\n moveToMonth(event, year[0]);\n };\n\n const formatMonth = (date?: DateValue) => {\n return !date\n ? \"\"\n : formatDate(date, { month: hideYearDropdown ? \"long\" : \"short\" });\n };\n\n const formatYear = (date?: DateValue) => {\n return !date ? \"\" : formatDate(date, { year: \"numeric\" });\n };\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"hideYearDropdown\")]: hideYearDropdown },\n className,\n )}\n ref={ref}\n {...rest}\n >\n <Tooltip\n placement=\"top\"\n disabled={canNavigatePrevious}\n content=\"Past dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n disabled={!canNavigatePrevious}\n variant=\"secondary\"\n onClick={handleNavigatePrevious}\n focusableWhenDisabled={true}\n >\n <ChevronLeftIcon aria-label=\"Previous Month\" />\n </Button>\n </Tooltip>\n <div className={withBaseName(\"dropdowns\")}>\n <Dropdown\n bordered={borderedDropdown}\n aria-label=\"Month Dropdown\"\n selected={selectedMonth ? [selectedMonth] : []}\n value={formatMonth(selectedMonth)}\n onSelectionChange={handleMonthSelect}\n {...MonthDropdownProps}\n >\n {months.map((month) => (\n <OptionWithTooltip\n key={formatMonth(month)}\n value={month}\n disabled={isOutsideAllowedMonths(month)}\n tooltipContent=\"This month is out of range\"\n >\n {formatMonth(month)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n {!hideYearDropdown && (\n <Dropdown\n aria-label=\"Year Dropdown\"\n selected={selectedYear ? [selectedYear] : []}\n value={formatYear(selectedYear)}\n onSelectionChange={handleYearSelect}\n bordered={borderedDropdown}\n {...YearDropdownProps}\n >\n {years.map((year) => (\n <OptionWithTooltip\n key={formatYear(year)}\n value={year}\n tooltipContent=\"This year is out of range\"\n >\n {formatYear(year)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n )}\n </div>\n <Tooltip\n placement=\"top\"\n disabled={canNavigateNext}\n content=\"Future dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n disabled={!canNavigateNext}\n variant=\"secondary\"\n onClick={handleNavigateNext}\n focusableWhenDisabled={true}\n >\n <ChevronRightIcon aria-label=\"Next Month\" />\n </Button>\n </Tooltip>\n </div>\n );\n});\n"],"names":["makePrefixer","useCalendarContext","monthsForLocale","monthDiff","isSameMonth","isSameYear","useListControlContext","jsx","Tooltip","Option","forwardRef","CalendarNavigation","useWindow","useComponentCssInjection","calendarNavigationCss","formatDate","jsxs","clsx","Button","ChevronLeftIcon","Dropdown","ChevronRightIcon"],"mappings":"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"}
|