@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,48 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var core = require('@salt-ds/core');
|
|
7
|
-
var clsx = require('clsx');
|
|
8
|
-
var react = require('react');
|
|
9
|
-
var styles$1 = require('./styles.js');
|
|
10
|
-
var utils = require('./utils.js');
|
|
11
|
-
var styles = require('@salt-ds/styles');
|
|
12
|
-
var window = require('@salt-ds/window');
|
|
13
|
-
var Slider = require('../Slider.css.js');
|
|
14
|
-
|
|
15
|
-
const withBaseName = core.makePrefixer("saltSliderRailMarks");
|
|
16
|
-
function SliderRailMarks(props) {
|
|
17
|
-
const { min, max, marks } = props;
|
|
18
|
-
const targetWindow = window.useWindow();
|
|
19
|
-
styles.useComponentCssInjection({
|
|
20
|
-
testId: "salt-slider",
|
|
21
|
-
css: Slider,
|
|
22
|
-
window: targetWindow
|
|
23
|
-
});
|
|
24
|
-
const style = react.useMemo(
|
|
25
|
-
() => styles$1.createSliderRailMarksStyle(min, max, marks),
|
|
26
|
-
[min, max, marks]
|
|
27
|
-
);
|
|
28
|
-
const marksLength = marks.length;
|
|
29
|
-
const markStyles = react.useMemo(
|
|
30
|
-
() => styles$1.createHandleStyles(marksLength),
|
|
31
|
-
[marksLength]
|
|
32
|
-
);
|
|
33
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
34
|
-
className: withBaseName(),
|
|
35
|
-
style,
|
|
36
|
-
children: marks.map((mark, i) => {
|
|
37
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
38
|
-
className: clsx.clsx(withBaseName("mark"), {
|
|
39
|
-
[withBaseName("max")]: utils.isMarkAtMax(max, mark)
|
|
40
|
-
}),
|
|
41
|
-
style: markStyles[i]
|
|
42
|
-
}, utils.isLabeledMark(mark) ? mark.value : mark);
|
|
43
|
-
})
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
exports.SliderRailMarks = SliderRailMarks;
|
|
48
|
-
//# sourceMappingURL=SliderRailMarks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SliderRailMarks.js","sources":["../src/slider/internal/SliderRailMarks.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type ReactNode, useMemo } from \"react\";\nimport { createHandleStyles, createSliderRailMarksStyle } from \"./styles\";\nimport { isLabeledMark, isMarkAtMax } from \"./utils\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport sliderCss from \"../Slider.css\";\n\nconst withBaseName = makePrefixer(\"saltSliderRailMarks\");\n\nexport interface LabeledMark {\n value: number;\n label: ReactNode;\n}\n\nexport type SliderMark = number | LabeledMark;\n\nexport interface SliderRailMarksProps {\n min: number;\n max: number;\n marks: SliderMark[];\n}\n\nexport function SliderRailMarks(props: SliderRailMarksProps) {\n const { min, max, marks } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-slider\",\n css: sliderCss,\n window: targetWindow,\n });\n\n const style = useMemo(\n () => createSliderRailMarksStyle(min, max, marks),\n [min, max, marks],\n );\n const marksLength = marks.length;\n const markStyles = useMemo(\n () => createHandleStyles(marksLength),\n [marksLength],\n );\n\n return (\n <div className={withBaseName()} style={style}>\n {marks.map((mark, i) => {\n return (\n <div\n key={isLabeledMark(mark) ? mark.value : mark}\n className={clsx(withBaseName(\"mark\"), {\n [withBaseName(\"max\")]: isMarkAtMax(max, mark),\n })}\n style={markStyles[i]}\n />\n );\n })}\n </div>\n );\n}\n"],"names":["makePrefixer","useWindow","useComponentCssInjection","sliderCss","useMemo","createSliderRailMarksStyle","createHandleStyles","jsx","clsx","isMarkAtMax","isLabeledMark"],"mappings":";;;;;;;;;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,qBAAqB,CAAA,CAAA;AAehD,SAAS,gBAAgB,KAA6B,EAAA;AAC3D,EAAA,MAAM,EAAE,GAAA,EAAK,GAAK,EAAA,KAAA,EAAU,GAAA,KAAA,CAAA;AAE5B,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,aAAA;AAAA,IACR,GAAK,EAAAC,MAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,KAAQ,GAAAC,aAAA;AAAA,IACZ,MAAMC,mCAAA,CAA2B,GAAK,EAAA,GAAA,EAAK,KAAK,CAAA;AAAA,IAChD,CAAC,GAAK,EAAA,GAAA,EAAK,KAAK,CAAA;AAAA,GAClB,CAAA;AACA,EAAA,MAAM,cAAc,KAAM,CAAA,MAAA,CAAA;AAC1B,EAAA,MAAM,UAAa,GAAAD,aAAA;AAAA,IACjB,MAAME,4BAAmB,WAAW,CAAA;AAAA,IACpC,CAAC,WAAW,CAAA;AAAA,GACd,CAAA;AAEA,EAAA,uBACGC,cAAA,CAAA,KAAA,EAAA;AAAA,IAAI,WAAW,YAAa,EAAA;AAAA,IAAG,KAAA;AAAA,IAC7B,QAAM,EAAA,KAAA,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,CAAM,KAAA;AACtB,MAAA,uBACGA,cAAA,CAAA,KAAA,EAAA;AAAA,QAEC,SAAW,EAAAC,SAAA,CAAK,YAAa,CAAA,MAAM,CAAG,EAAA;AAAA,UACpC,CAAC,YAAa,CAAA,KAAK,CAAI,GAAAC,iBAAA,CAAY,KAAK,IAAI,CAAA;AAAA,SAC7C,CAAA;AAAA,QACD,OAAO,UAAW,CAAA,CAAA,CAAA;AAAA,OAAA,EAJbC,mBAAc,CAAA,IAAI,CAAI,GAAA,IAAA,CAAK,QAAQ,IAK1C,CAAA,CAAA;AAAA,KAEH,CAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var utils = require('./utils.js');
|
|
6
|
-
|
|
7
|
-
function widthToPercentage(w, range) {
|
|
8
|
-
return `${Math.round(1e3 * w / range) * 0.1}%`;
|
|
9
|
-
}
|
|
10
|
-
function createGridTemplateColumns(min, max, values) {
|
|
11
|
-
const range = max - min;
|
|
12
|
-
const colWidths = [];
|
|
13
|
-
let prev = min;
|
|
14
|
-
for (const v of values) {
|
|
15
|
-
colWidths.push(v - prev);
|
|
16
|
-
prev = v;
|
|
17
|
-
}
|
|
18
|
-
colWidths.push(max - prev);
|
|
19
|
-
let auto = false;
|
|
20
|
-
const colTemplates = colWidths.map((w) => {
|
|
21
|
-
if (w === 0) {
|
|
22
|
-
return "0";
|
|
23
|
-
}
|
|
24
|
-
if (!auto) {
|
|
25
|
-
auto = true;
|
|
26
|
-
return "auto";
|
|
27
|
-
}
|
|
28
|
-
return widthToPercentage(w, range);
|
|
29
|
-
});
|
|
30
|
-
return colTemplates.join(" ");
|
|
31
|
-
}
|
|
32
|
-
function createTrackStyle(min, max, value) {
|
|
33
|
-
const values = Array.isArray(value) ? value : [value];
|
|
34
|
-
return {
|
|
35
|
-
gridTemplateColumns: createGridTemplateColumns(min, max, values)
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function createHandleStyles(count) {
|
|
39
|
-
return [...Array(count).keys()].map((i) => ({
|
|
40
|
-
gridColumnStart: `${i + 2}`
|
|
41
|
-
}));
|
|
42
|
-
}
|
|
43
|
-
function createSliderRailMarksStyle(min, max, marks) {
|
|
44
|
-
return {
|
|
45
|
-
gridTemplateColumns: createGridTemplateColumns(
|
|
46
|
-
min,
|
|
47
|
-
max,
|
|
48
|
-
marks.map((mark) => utils.isLabeledMark(mark) ? mark.value : mark)
|
|
49
|
-
)
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function createSliderMarkLabelsStyle(min, max, marks) {
|
|
53
|
-
const range = max - min;
|
|
54
|
-
const colWidths = [];
|
|
55
|
-
let prev = min;
|
|
56
|
-
for (const m of marks) {
|
|
57
|
-
const w = utils.isLabeledMark(m) ? m.value : m;
|
|
58
|
-
colWidths.push(w - prev);
|
|
59
|
-
colWidths.push(0);
|
|
60
|
-
prev = w;
|
|
61
|
-
}
|
|
62
|
-
colWidths.push(max - prev);
|
|
63
|
-
let auto = false;
|
|
64
|
-
const colTemplates = colWidths.map((w) => {
|
|
65
|
-
if (w === 0) {
|
|
66
|
-
return "0";
|
|
67
|
-
}
|
|
68
|
-
if (!auto) {
|
|
69
|
-
auto = true;
|
|
70
|
-
return "auto";
|
|
71
|
-
}
|
|
72
|
-
return widthToPercentage(w, range);
|
|
73
|
-
});
|
|
74
|
-
return {
|
|
75
|
-
gridTemplateColumns: colTemplates.join(" ")
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
function createSliderMarkLabelStyles(marks) {
|
|
79
|
-
const styles = [];
|
|
80
|
-
marks.forEach((mark, i) => {
|
|
81
|
-
styles.push({
|
|
82
|
-
gridColumnStart: 2 * i + 2
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
if (marks.length > 0) {
|
|
86
|
-
styles[0].justifySelf = "left";
|
|
87
|
-
}
|
|
88
|
-
if (marks.length > 1) {
|
|
89
|
-
styles[marks.length - 1].justifySelf = "right";
|
|
90
|
-
}
|
|
91
|
-
return styles;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
exports.createHandleStyles = createHandleStyles;
|
|
95
|
-
exports.createSliderMarkLabelStyles = createSliderMarkLabelStyles;
|
|
96
|
-
exports.createSliderMarkLabelsStyle = createSliderMarkLabelsStyle;
|
|
97
|
-
exports.createSliderRailMarksStyle = createSliderRailMarksStyle;
|
|
98
|
-
exports.createTrackStyle = createTrackStyle;
|
|
99
|
-
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../src/slider/internal/styles.ts"],"sourcesContent":["import type { CSSProperties } from \"react\";\nimport type { SliderValue } from \"../types\";\nimport type { SliderMark } from \"./SliderRailMarks\";\nimport { isLabeledMark } from \"./utils\";\n\nfunction widthToPercentage(w: number, range: number) {\n return `${Math.round((1000 * w) / range) * 0.1}%`;\n}\n\nfunction createGridTemplateColumns(\n min: number,\n max: number,\n values: number[],\n): string {\n const range = max - min;\n const colWidths: number[] = [];\n let prev = min;\n for (const v of values) {\n colWidths.push(v - prev);\n prev = v;\n }\n colWidths.push(max - prev);\n let auto = false;\n const colTemplates = colWidths.map((w) => {\n if (w === 0) {\n return \"0\";\n }\n if (!auto) {\n auto = true;\n return \"auto\";\n }\n return widthToPercentage(w, range);\n });\n return colTemplates.join(\" \");\n}\n\nexport function createTrackStyle(\n min: number,\n max: number,\n value: SliderValue,\n): CSSProperties {\n const values = Array.isArray(value) ? value : [value];\n return {\n gridTemplateColumns: createGridTemplateColumns(min, max, values),\n };\n}\n\nexport function createHandleStyles(count: number) {\n return [...Array(count).keys()].map((i) => ({\n gridColumnStart: `${i + 2}`,\n }));\n}\n\nexport function createSliderRailMarksStyle(\n min: number,\n max: number,\n marks: SliderMark[],\n): CSSProperties {\n return {\n gridTemplateColumns: createGridTemplateColumns(\n min,\n max,\n marks.map((mark) => (isLabeledMark(mark) ? mark.value : mark)),\n ),\n };\n}\n\nexport function createSliderMarkLabelsStyle(\n min: number,\n max: number,\n marks: SliderMark[],\n): CSSProperties {\n const range = max - min;\n const colWidths: number[] = [];\n let prev = min;\n for (const m of marks) {\n const w = isLabeledMark(m) ? m.value : m;\n colWidths.push(w - prev);\n colWidths.push(0);\n prev = w;\n }\n colWidths.push(max - prev);\n let auto = false;\n const colTemplates = colWidths.map((w) => {\n if (w === 0) {\n return \"0\";\n }\n if (!auto) {\n auto = true;\n return \"auto\";\n }\n return widthToPercentage(w, range);\n });\n\n return {\n gridTemplateColumns: colTemplates.join(\" \"),\n };\n}\n\nexport function createSliderMarkLabelStyles(\n marks: SliderMark[],\n): CSSProperties[] {\n const styles: CSSProperties[] = [];\n marks.forEach((mark, i) => {\n styles.push({\n gridColumnStart: 2 * i + 2,\n });\n });\n if (marks.length > 0) {\n styles[0].justifySelf = \"left\";\n }\n if (marks.length > 1) {\n styles[marks.length - 1].justifySelf = \"right\";\n }\n return styles;\n}\n"],"names":["isLabeledMark"],"mappings":"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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var utils = require('./utils.js');
|
|
6
|
-
|
|
7
|
-
function useSliderKeyDown(value, min, max, pageStep, step, updateValueItem, setValue, onChange) {
|
|
8
|
-
return (event) => {
|
|
9
|
-
const handleElement = event.target;
|
|
10
|
-
const handleIndex = utils.getHandleIndex(handleElement);
|
|
11
|
-
let valueItem = Array.isArray(value) ? value[handleIndex] : value;
|
|
12
|
-
switch (event.key) {
|
|
13
|
-
case "Home":
|
|
14
|
-
valueItem = min;
|
|
15
|
-
break;
|
|
16
|
-
case "End":
|
|
17
|
-
valueItem = max;
|
|
18
|
-
break;
|
|
19
|
-
case "PageUp":
|
|
20
|
-
valueItem += pageStep;
|
|
21
|
-
break;
|
|
22
|
-
case "PageDown":
|
|
23
|
-
valueItem -= pageStep;
|
|
24
|
-
break;
|
|
25
|
-
case "ArrowUp":
|
|
26
|
-
case "ArrowRight":
|
|
27
|
-
valueItem += step;
|
|
28
|
-
break;
|
|
29
|
-
case "ArrowDown":
|
|
30
|
-
case "ArrowLeft":
|
|
31
|
-
valueItem -= step;
|
|
32
|
-
break;
|
|
33
|
-
default:
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
event.preventDefault();
|
|
37
|
-
valueItem = utils.roundValue(valueItem, step);
|
|
38
|
-
valueItem = utils.clampValue(valueItem, min, max);
|
|
39
|
-
const newValue = updateValueItem(value, handleIndex, valueItem);
|
|
40
|
-
if (newValue !== value) {
|
|
41
|
-
setValue(newValue);
|
|
42
|
-
if (onChange) {
|
|
43
|
-
onChange(newValue);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
exports.useSliderKeyDown = useSliderKeyDown;
|
|
50
|
-
//# sourceMappingURL=useSliderKeyDown.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSliderKeyDown.js","sources":["../src/slider/internal/useSliderKeyDown.ts"],"sourcesContent":["import type { KeyboardEvent } from \"react\";\nimport type { SliderChangeHandler, SliderValue } from \"../types\";\nimport {\n type UpdateValueItem,\n clampValue,\n getHandleIndex,\n roundValue,\n} from \"./utils\";\n\nexport function useSliderKeyDown(\n value: SliderValue,\n min: number,\n max: number,\n pageStep: number,\n step: number,\n updateValueItem: UpdateValueItem,\n setValue: SliderChangeHandler,\n onChange?: SliderChangeHandler,\n) {\n return (event: KeyboardEvent) => {\n const handleElement = event.target as HTMLDivElement;\n const handleIndex = getHandleIndex(handleElement);\n let valueItem: number = Array.isArray(value) ? value[handleIndex] : value;\n switch (event.key) {\n case \"Home\":\n valueItem = min;\n break;\n case \"End\":\n valueItem = max;\n break;\n case \"PageUp\":\n valueItem += pageStep;\n break;\n case \"PageDown\":\n valueItem -= pageStep;\n break;\n case \"ArrowUp\":\n case \"ArrowRight\":\n valueItem += step;\n break;\n case \"ArrowDown\":\n case \"ArrowLeft\":\n valueItem -= step;\n break;\n default:\n return;\n }\n event.preventDefault();\n valueItem = roundValue(valueItem, step);\n valueItem = clampValue(valueItem, min, max);\n const newValue = updateValueItem(value, handleIndex, valueItem);\n if (newValue !== value) {\n setValue(newValue);\n if (onChange) {\n onChange(newValue);\n }\n }\n };\n}\n"],"names":["getHandleIndex","roundValue","clampValue"],"mappings":";;;;;;AASgB,SAAA,gBAAA,CACd,OACA,GACA,EAAA,GAAA,EACA,UACA,IACA,EAAA,eAAA,EACA,UACA,QACA,EAAA;AACA,EAAA,OAAO,CAAC,KAAyB,KAAA;AAC/B,IAAA,MAAM,gBAAgB,KAAM,CAAA,MAAA,CAAA;AAC5B,IAAM,MAAA,WAAA,GAAcA,qBAAe,aAAa,CAAA,CAAA;AAChD,IAAA,IAAI,YAAoB,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,MAAM,WAAe,CAAA,GAAA,KAAA,CAAA;AACpE,IAAA,QAAQ,KAAM,CAAA,GAAA;AAAA,MACP,KAAA,MAAA;AACH,QAAY,SAAA,GAAA,GAAA,CAAA;AACZ,QAAA,MAAA;AAAA,MACG,KAAA,KAAA;AACH,QAAY,SAAA,GAAA,GAAA,CAAA;AACZ,QAAA,MAAA;AAAA,MACG,KAAA,QAAA;AACH,QAAa,SAAA,IAAA,QAAA,CAAA;AACb,QAAA,MAAA;AAAA,MACG,KAAA,UAAA;AACH,QAAa,SAAA,IAAA,QAAA,CAAA;AACb,QAAA,MAAA;AAAA,MACG,KAAA,SAAA,CAAA;AAAA,MACA,KAAA,YAAA;AACH,QAAa,SAAA,IAAA,IAAA,CAAA;AACb,QAAA,MAAA;AAAA,MACG,KAAA,WAAA,CAAA;AAAA,MACA,KAAA,WAAA;AACH,QAAa,SAAA,IAAA,IAAA,CAAA;AACb,QAAA,MAAA;AAAA,MAAA;AAEA,QAAA,OAAA;AAAA,KAAA;AAEJ,IAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,IAAY,SAAA,GAAAC,gBAAA,CAAW,WAAW,IAAI,CAAA,CAAA;AACtC,IAAY,SAAA,GAAAC,gBAAA,CAAW,SAAW,EAAA,GAAA,EAAK,GAAG,CAAA,CAAA;AAC1C,IAAA,MAAM,QAAW,GAAA,eAAA,CAAgB,KAAO,EAAA,WAAA,EAAa,SAAS,CAAA,CAAA;AAC9D,IAAA,IAAI,aAAa,KAAO,EAAA;AACtB,MAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AACjB,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AAAA,OACnB;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var react = require('react');
|
|
6
|
-
var utils = require('./utils.js');
|
|
7
|
-
|
|
8
|
-
const valueFromClientX = (context, x) => {
|
|
9
|
-
const { min, max, step, trackRef } = context;
|
|
10
|
-
const rect = trackRef.current.getBoundingClientRect();
|
|
11
|
-
const localX = x - rect.x;
|
|
12
|
-
let v = localX / rect.width * (max - min) + min;
|
|
13
|
-
v = utils.roundValue(v, step);
|
|
14
|
-
v = utils.clampValue(v, min, max);
|
|
15
|
-
return v;
|
|
16
|
-
};
|
|
17
|
-
function getNearestHandle(value, clickValue) {
|
|
18
|
-
if (!Array.isArray(value)) {
|
|
19
|
-
return 0;
|
|
20
|
-
}
|
|
21
|
-
let minDistance = Number.MAX_VALUE;
|
|
22
|
-
let handleIndex = -1;
|
|
23
|
-
value.forEach((v, i) => {
|
|
24
|
-
const d = Math.abs(clickValue - v);
|
|
25
|
-
if (d < minDistance) {
|
|
26
|
-
minDistance = d;
|
|
27
|
-
handleIndex = i;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
return handleIndex;
|
|
31
|
-
}
|
|
32
|
-
function useSliderMouseDown(trackRef, value, min, max, step, updateValueItem, setValue, onChange) {
|
|
33
|
-
const mouseContext = react.useRef({
|
|
34
|
-
min,
|
|
35
|
-
max,
|
|
36
|
-
step,
|
|
37
|
-
value,
|
|
38
|
-
trackRef,
|
|
39
|
-
updateValueItem,
|
|
40
|
-
setValue,
|
|
41
|
-
onChange
|
|
42
|
-
});
|
|
43
|
-
react.useEffect(() => {
|
|
44
|
-
const c = mouseContext.current;
|
|
45
|
-
c.min = min;
|
|
46
|
-
c.max = max;
|
|
47
|
-
c.step = step;
|
|
48
|
-
c.value = value;
|
|
49
|
-
c.updateValueItem = updateValueItem;
|
|
50
|
-
c.onChange = onChange;
|
|
51
|
-
c.setValue = setValue;
|
|
52
|
-
}, [min, max, step, value, setValue, updateValueItem, onChange]);
|
|
53
|
-
const onMouseMove = react.useCallback((event) => {
|
|
54
|
-
const { handleIndex, value: value2, updateValueItem: updateValueItem2, setValue: setValue2, onChange: onChange2 } = mouseContext.current;
|
|
55
|
-
if (handleIndex === void 0) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
const { clientX } = event;
|
|
59
|
-
const clickValue = valueFromClientX(mouseContext.current, clientX);
|
|
60
|
-
const newValue = updateValueItem2(value2, handleIndex, clickValue);
|
|
61
|
-
if (newValue !== value2) {
|
|
62
|
-
setValue2(newValue);
|
|
63
|
-
if (onChange2) {
|
|
64
|
-
onChange2(newValue);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}, []);
|
|
68
|
-
const onMouseUp = react.useCallback(() => {
|
|
69
|
-
document.removeEventListener("mouseup", onMouseUp);
|
|
70
|
-
document.removeEventListener("mousemove", onMouseMove);
|
|
71
|
-
mouseContext.current.handleIndex = void 0;
|
|
72
|
-
}, [onMouseMove]);
|
|
73
|
-
return react.useCallback(
|
|
74
|
-
(event) => {
|
|
75
|
-
const { value: value2, setValue: setValue2, onChange: onChange2 } = mouseContext.current;
|
|
76
|
-
document.addEventListener("mouseup", onMouseUp);
|
|
77
|
-
document.addEventListener("mousemove", onMouseMove);
|
|
78
|
-
const { clientX } = event;
|
|
79
|
-
const clickValue = valueFromClientX(mouseContext.current, clientX);
|
|
80
|
-
const handleIndex = getNearestHandle(value2, clickValue);
|
|
81
|
-
mouseContext.current.handleIndex = handleIndex;
|
|
82
|
-
const newValue = updateValueItem(value2, handleIndex, clickValue);
|
|
83
|
-
if (newValue !== value2) {
|
|
84
|
-
setValue2(newValue);
|
|
85
|
-
if (onChange2) {
|
|
86
|
-
onChange2(newValue);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
event.preventDefault();
|
|
90
|
-
},
|
|
91
|
-
[onMouseMove, onMouseUp]
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
exports.useSliderMouseDown = useSliderMouseDown;
|
|
96
|
-
//# sourceMappingURL=useSliderMouseDown.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSliderMouseDown.js","sources":["../src/slider/internal/useSliderMouseDown.ts"],"sourcesContent":["import {\n type MouseEvent as ReactMouseEvent,\n type RefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport type { SliderChangeHandler, SliderValue } from \"../types\";\nimport { type UpdateValueItem, clampValue, roundValue } from \"./utils\";\n\ninterface MouseContext {\n min: number;\n max: number;\n step: number;\n value: SliderValue;\n trackRef: RefObject<HTMLDivElement>;\n handleIndex?: number;\n updateValueItem: UpdateValueItem;\n setValue: SliderChangeHandler;\n onChange?: SliderChangeHandler;\n}\n\nconst valueFromClientX = (context: MouseContext, x: number) => {\n const { min, max, step, trackRef } = context;\n const rect = trackRef.current!.getBoundingClientRect();\n const localX = x - rect.x;\n let v = (localX / rect.width) * (max - min) + min;\n v = roundValue(v, step);\n v = clampValue(v, min, max);\n return v;\n};\n\nfunction getNearestHandle(value: SliderValue, clickValue: number): number {\n if (!Array.isArray(value)) {\n return 0;\n }\n let minDistance = Number.MAX_VALUE;\n let handleIndex = -1;\n value.forEach((v, i) => {\n const d = Math.abs(clickValue - v);\n if (d < minDistance) {\n minDistance = d;\n handleIndex = i;\n }\n });\n return handleIndex;\n}\n\nexport function useSliderMouseDown(\n trackRef: RefObject<HTMLDivElement>,\n value: SliderValue,\n min: number,\n max: number,\n step: number,\n updateValueItem: UpdateValueItem,\n setValue: SliderChangeHandler,\n onChange?: SliderChangeHandler,\n) {\n const mouseContext = useRef<MouseContext>({\n min,\n max,\n step,\n value,\n trackRef,\n updateValueItem,\n setValue,\n onChange,\n });\n\n useEffect(() => {\n const c = mouseContext.current;\n c.min = min;\n c.max = max;\n c.step = step;\n c.value = value;\n c.updateValueItem = updateValueItem;\n c.onChange = onChange;\n c.setValue = setValue;\n }, [min, max, step, value, setValue, updateValueItem, onChange]);\n\n const onMouseMove = useCallback((event: MouseEvent) => {\n const { handleIndex, value, updateValueItem, setValue, onChange } =\n mouseContext.current;\n if (handleIndex === undefined) {\n return;\n }\n const { clientX } = event;\n const clickValue = valueFromClientX(mouseContext.current, clientX);\n const newValue = updateValueItem(value, handleIndex, clickValue);\n if (newValue !== value) {\n setValue(newValue);\n if (onChange) {\n onChange(newValue);\n }\n }\n }, []);\n\n const onMouseUp = useCallback(() => {\n document.removeEventListener(\"mouseup\", onMouseUp);\n document.removeEventListener(\"mousemove\", onMouseMove);\n mouseContext.current.handleIndex = undefined;\n }, [onMouseMove]);\n\n return useCallback(\n (event: ReactMouseEvent) => {\n const { value, setValue, onChange } = mouseContext.current;\n document.addEventListener(\"mouseup\", onMouseUp);\n document.addEventListener(\"mousemove\", onMouseMove);\n\n const { clientX } = event;\n const clickValue = valueFromClientX(mouseContext.current, clientX);\n\n const handleIndex = getNearestHandle(value, clickValue);\n mouseContext.current.handleIndex = handleIndex;\n const newValue = updateValueItem(value, handleIndex, clickValue);\n\n if (newValue !== value) {\n setValue(newValue);\n if (onChange) {\n onChange(newValue);\n }\n }\n\n event.preventDefault();\n },\n [onMouseMove, onMouseUp],\n );\n}\n"],"names":["roundValue","clampValue","useRef","useEffect","useCallback","value","updateValueItem","setValue","onChange"],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
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";
|
|
2
|
-
|
|
3
|
-
export { css_248z as default };
|
|
4
|
-
//# sourceMappingURL=CalendarNavigation.css.js.map
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { makePrefixer, Tooltip, Button, Dropdown, useListControlContext, Option } from '@salt-ds/core';
|
|
3
|
-
import { ChevronLeftIcon, ChevronRightIcon } from '@salt-ds/icons';
|
|
4
|
-
import { clsx } from 'clsx';
|
|
5
|
-
import { forwardRef } from 'react';
|
|
6
|
-
import { useCalendarContext } from './CalendarContext.js';
|
|
7
|
-
import { isSameMonth, isSameYear } from '@internationalized/date';
|
|
8
|
-
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
9
|
-
import { useWindow } from '@salt-ds/window';
|
|
10
|
-
import css_248z from './CalendarNavigation.css.js';
|
|
11
|
-
import { monthsForLocale, formatDate, monthDiff } from './utils.js';
|
|
12
|
-
|
|
13
|
-
const withBaseName = makePrefixer("saltCalendarNavigation");
|
|
14
|
-
function useCalendarNavigation() {
|
|
15
|
-
const {
|
|
16
|
-
state: { visibleMonth, minDate, maxDate },
|
|
17
|
-
helpers: {
|
|
18
|
-
setVisibleMonth,
|
|
19
|
-
isDayVisible,
|
|
20
|
-
isOutsideAllowedYears,
|
|
21
|
-
isOutsideAllowedMonths
|
|
22
|
-
}
|
|
23
|
-
} = useCalendarContext();
|
|
24
|
-
const moveToNextMonth = (event) => {
|
|
25
|
-
setVisibleMonth(event, visibleMonth.add({ months: 1 }));
|
|
26
|
-
};
|
|
27
|
-
const moveToPreviousMonth = (event) => {
|
|
28
|
-
setVisibleMonth(event, visibleMonth.subtract({ months: 1 }));
|
|
29
|
-
};
|
|
30
|
-
const moveToMonth = (event, month) => {
|
|
31
|
-
let newMonth = month;
|
|
32
|
-
if (!isOutsideAllowedYears(newMonth)) {
|
|
33
|
-
if (isOutsideAllowedMonths(newMonth)) {
|
|
34
|
-
const navigableMonths = monthsForLocale(visibleMonth).filter(
|
|
35
|
-
(n) => !isOutsideAllowedMonths(n)
|
|
36
|
-
);
|
|
37
|
-
newMonth = navigableMonths.reduce(
|
|
38
|
-
(closestMonth, currentMonth) => Math.abs(monthDiff(currentMonth, newMonth)) < Math.abs(monthDiff(closestMonth, newMonth)) ? currentMonth : closestMonth
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
setVisibleMonth(event, newMonth);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
const months = monthsForLocale(visibleMonth);
|
|
45
|
-
const years = [-2, -1, 0, 1, 2].map((delta) => visibleMonth.add({ years: delta })).filter((year) => !isOutsideAllowedYears(year));
|
|
46
|
-
const selectedMonth = months.find(
|
|
47
|
-
(month) => isSameMonth(month, visibleMonth)
|
|
48
|
-
);
|
|
49
|
-
const selectedYear = years.find(
|
|
50
|
-
(year) => isSameYear(year, visibleMonth)
|
|
51
|
-
);
|
|
52
|
-
const canNavigatePrevious = !(minDate && isDayVisible(minDate));
|
|
53
|
-
const canNavigateNext = !(maxDate && isDayVisible(maxDate));
|
|
54
|
-
return {
|
|
55
|
-
moveToNextMonth,
|
|
56
|
-
moveToPreviousMonth,
|
|
57
|
-
moveToMonth,
|
|
58
|
-
visibleMonth,
|
|
59
|
-
months,
|
|
60
|
-
years,
|
|
61
|
-
canNavigateNext,
|
|
62
|
-
canNavigatePrevious,
|
|
63
|
-
selectedMonth,
|
|
64
|
-
selectedYear,
|
|
65
|
-
isOutsideAllowedMonths
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
const OptionWithTooltip = ({
|
|
69
|
-
value,
|
|
70
|
-
children,
|
|
71
|
-
disabled,
|
|
72
|
-
tooltipContent
|
|
73
|
-
}) => {
|
|
74
|
-
const { activeState, openState } = useListControlContext();
|
|
75
|
-
const open = (activeState == null ? void 0 : activeState.value) === value;
|
|
76
|
-
return /* @__PURE__ */ jsx(Tooltip, {
|
|
77
|
-
placement: "right",
|
|
78
|
-
open: open && openState,
|
|
79
|
-
disabled: !disabled,
|
|
80
|
-
content: tooltipContent,
|
|
81
|
-
enterDelay: 0,
|
|
82
|
-
leaveDelay: 0,
|
|
83
|
-
children: /* @__PURE__ */ jsx(Option, {
|
|
84
|
-
value,
|
|
85
|
-
disabled,
|
|
86
|
-
children
|
|
87
|
-
})
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
const CalendarNavigation = forwardRef(function CalendarNavigation2(props, ref) {
|
|
91
|
-
const {
|
|
92
|
-
className,
|
|
93
|
-
MonthDropdownProps,
|
|
94
|
-
YearDropdownProps,
|
|
95
|
-
hideYearDropdown,
|
|
96
|
-
...rest
|
|
97
|
-
} = props;
|
|
98
|
-
const targetWindow = useWindow();
|
|
99
|
-
useComponentCssInjection({
|
|
100
|
-
testId: "salt-calendar-navigation",
|
|
101
|
-
css: css_248z,
|
|
102
|
-
window: targetWindow
|
|
103
|
-
});
|
|
104
|
-
const {
|
|
105
|
-
moveToPreviousMonth,
|
|
106
|
-
moveToNextMonth,
|
|
107
|
-
moveToMonth,
|
|
108
|
-
months,
|
|
109
|
-
years,
|
|
110
|
-
canNavigateNext,
|
|
111
|
-
canNavigatePrevious,
|
|
112
|
-
visibleMonth,
|
|
113
|
-
selectedMonth,
|
|
114
|
-
selectedYear,
|
|
115
|
-
isOutsideAllowedMonths
|
|
116
|
-
} = useCalendarNavigation();
|
|
117
|
-
const handleNavigatePrevious = (event) => {
|
|
118
|
-
moveToPreviousMonth(event);
|
|
119
|
-
};
|
|
120
|
-
const handleNavigateNext = (event) => {
|
|
121
|
-
moveToNextMonth(event);
|
|
122
|
-
};
|
|
123
|
-
const handleMonthSelect = (event, month) => {
|
|
124
|
-
moveToMonth(event, month[0]);
|
|
125
|
-
};
|
|
126
|
-
const handleYearSelect = (event, year) => {
|
|
127
|
-
moveToMonth(event, year[0]);
|
|
128
|
-
};
|
|
129
|
-
const formatMonth = (date) => {
|
|
130
|
-
return !date ? "" : formatDate(date, { month: hideYearDropdown ? "long" : "short" });
|
|
131
|
-
};
|
|
132
|
-
const formatYear = (date) => {
|
|
133
|
-
return !date ? "" : formatDate(date, { year: "numeric" });
|
|
134
|
-
};
|
|
135
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
136
|
-
className: clsx(
|
|
137
|
-
withBaseName(),
|
|
138
|
-
{ [withBaseName("hideYearDropdown")]: hideYearDropdown },
|
|
139
|
-
className
|
|
140
|
-
),
|
|
141
|
-
ref,
|
|
142
|
-
...rest,
|
|
143
|
-
children: [
|
|
144
|
-
/* @__PURE__ */ jsx(Tooltip, {
|
|
145
|
-
placement: "top",
|
|
146
|
-
disabled: canNavigatePrevious,
|
|
147
|
-
content: "Past dates are out of range",
|
|
148
|
-
enterDelay: 0,
|
|
149
|
-
leaveDelay: 0,
|
|
150
|
-
children: /* @__PURE__ */ jsx(Button, {
|
|
151
|
-
disabled: !canNavigatePrevious,
|
|
152
|
-
variant: "secondary",
|
|
153
|
-
onClick: handleNavigatePrevious,
|
|
154
|
-
focusableWhenDisabled: true,
|
|
155
|
-
children: /* @__PURE__ */ jsx(ChevronLeftIcon, {
|
|
156
|
-
"aria-label": "Previous Month"
|
|
157
|
-
})
|
|
158
|
-
})
|
|
159
|
-
}),
|
|
160
|
-
/* @__PURE__ */ jsxs("div", {
|
|
161
|
-
className: withBaseName("dropdowns"),
|
|
162
|
-
children: [
|
|
163
|
-
/* @__PURE__ */ jsx(Dropdown, {
|
|
164
|
-
"aria-label": "Month Dropdown",
|
|
165
|
-
selected: selectedMonth ? [selectedMonth] : [],
|
|
166
|
-
value: formatMonth(selectedMonth),
|
|
167
|
-
onSelectionChange: handleMonthSelect,
|
|
168
|
-
...MonthDropdownProps,
|
|
169
|
-
children: months.map((month) => /* @__PURE__ */ jsx(OptionWithTooltip, {
|
|
170
|
-
value: month,
|
|
171
|
-
disabled: isOutsideAllowedMonths(month),
|
|
172
|
-
tooltipContent: "This month is out of range",
|
|
173
|
-
children: formatMonth(month)
|
|
174
|
-
}, formatMonth(month)))
|
|
175
|
-
}),
|
|
176
|
-
!hideYearDropdown && /* @__PURE__ */ jsx(Dropdown, {
|
|
177
|
-
"aria-label": "Year Dropdown",
|
|
178
|
-
selected: selectedYear ? [selectedYear] : [],
|
|
179
|
-
value: formatYear(selectedYear),
|
|
180
|
-
onSelectionChange: handleYearSelect,
|
|
181
|
-
...YearDropdownProps,
|
|
182
|
-
children: years.map((year) => /* @__PURE__ */ jsx(OptionWithTooltip, {
|
|
183
|
-
value: year,
|
|
184
|
-
tooltipContent: "This year is out of range",
|
|
185
|
-
children: formatYear(year)
|
|
186
|
-
}, formatYear(year)))
|
|
187
|
-
})
|
|
188
|
-
]
|
|
189
|
-
}),
|
|
190
|
-
/* @__PURE__ */ jsx(Tooltip, {
|
|
191
|
-
placement: "top",
|
|
192
|
-
disabled: canNavigateNext,
|
|
193
|
-
content: "Future dates are out of range",
|
|
194
|
-
enterDelay: 0,
|
|
195
|
-
leaveDelay: 0,
|
|
196
|
-
children: /* @__PURE__ */ jsx(Button, {
|
|
197
|
-
disabled: !canNavigateNext,
|
|
198
|
-
variant: "secondary",
|
|
199
|
-
onClick: handleNavigateNext,
|
|
200
|
-
focusableWhenDisabled: true,
|
|
201
|
-
children: /* @__PURE__ */ jsx(ChevronRightIcon, {
|
|
202
|
-
"aria-label": "Next Month"
|
|
203
|
-
})
|
|
204
|
-
})
|
|
205
|
-
})
|
|
206
|
-
]
|
|
207
|
-
});
|
|
208
|
-
});
|
|
209
|
-
|
|
210
|
-
export { CalendarNavigation };
|
|
211
|
-
//# sourceMappingURL=CalendarNavigation.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 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 ...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 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 {...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":["CalendarNavigation","calendarNavigationCss"],"mappings":"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"}
|