@salt-ds/lab 1.0.0-alpha.51 → 1.0.0-alpha.53
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 +532 -303
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +3 -2
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
- package/dist-cjs/calendar/Calendar.css.js +1 -1
- package/dist-cjs/calendar/Calendar.js +57 -39
- package/dist-cjs/calendar/Calendar.js.map +1 -1
- package/dist-cjs/calendar/CalendarDateGrid.css.js +6 -0
- package/dist-cjs/calendar/CalendarDateGrid.css.js.map +1 -0
- package/dist-cjs/calendar/{internal/CalendarCarousel.js → CalendarDateGrid.js} +39 -16
- package/dist-cjs/calendar/CalendarDateGrid.js.map +1 -0
- package/dist-cjs/calendar/CalendarNavigation.css.js +6 -0
- package/dist-cjs/calendar/CalendarNavigation.js +314 -0
- package/dist-cjs/calendar/CalendarNavigation.js.map +1 -0
- package/dist-cjs/calendar/{internal/CalendarWeekHeader.js → CalendarWeekHeader.js} +6 -5
- package/dist-cjs/calendar/CalendarWeekHeader.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/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/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 +90 -43
- 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 +333 -0
- package/dist-cjs/calendar/useCalendarSelection.js.map +1 -0
- package/dist-cjs/carousel/Carousel.js +5 -5
- package/dist-cjs/carousel/Carousel.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuItem.js +2 -2
- package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
- 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/contact-details/ContactMetadata.js +2 -2
- package/dist-cjs/contact-details/ContactMetadata.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 +357 -0
- package/dist-cjs/date-input/DateInputRange.js.map +1 -0
- package/dist-cjs/date-input/DateInputSingle.js +231 -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 +74 -149
- 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 +106 -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 +119 -0
- package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerRangePanel.js +230 -0
- package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerSingleInput.js +98 -0
- package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -0
- package/dist-cjs/date-picker/DatePickerSinglePanel.js +152 -0
- package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -0
- package/dist-cjs/date-picker/useDatePicker.js +207 -0
- package/dist-cjs/date-picker/useDatePicker.js.map +1 -0
- package/dist-cjs/dropdown/DropdownButton.js +4 -2
- package/dist-cjs/dropdown/DropdownButton.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 +53 -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/menu-button/MenuButtonTrigger.js +2 -2
- package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-cjs/query-input/QueryInput.css.js +1 -1
- package/dist-cjs/query-input/internal/CategoryListItem.js +2 -2
- package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-cjs/query-input/internal/ValueList.js +2 -2
- package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
- package/dist-cjs/search-input/SearchInput.js +2 -1
- package/dist-cjs/search-input/SearchInput.js.map +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/static-list/StaticList.css.js +6 -0
- package/dist-cjs/static-list/StaticList.css.js.map +1 -0
- package/dist-cjs/static-list/StaticList.js +32 -0
- package/dist-cjs/static-list/StaticList.js.map +1 -0
- package/dist-cjs/static-list/StaticListItem.css.js +6 -0
- package/dist-cjs/static-list/StaticListItem.css.js.map +1 -0
- package/dist-cjs/static-list/StaticListItem.js +33 -0
- package/dist-cjs/static-list/StaticListItem.js.map +1 -0
- package/dist-cjs/static-list/StaticListItemContent.css.js +6 -0
- package/dist-cjs/static-list/StaticListItemContent.css.js.map +1 -0
- package/dist-cjs/static-list/StaticListItemContent.js +30 -0
- package/dist-cjs/static-list/StaticListItemContent.js.map +1 -0
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +8 -8
- package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
- package/dist-cjs/stepper-input/StepperInput.css.js +1 -1
- package/dist-cjs/stepper-input/StepperInput.js +214 -29
- package/dist-cjs/stepper-input/StepperInput.js.map +1 -1
- package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js +54 -0
- package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -0
- package/dist-cjs/stepper-input/internal/utils.js +43 -0
- package/dist-cjs/stepper-input/internal/utils.js.map +1 -0
- package/dist-cjs/stepper-input/useStepperInput.js +88 -172
- package/dist-cjs/stepper-input/useStepperInput.js.map +1 -1
- package/dist-cjs/tabs/Tab.js +14 -12
- package/dist-cjs/tabs/Tab.js.map +1 -1
- package/dist-cjs/tabs/TabActivationIndicator.css.js +1 -1
- package/dist-cjs/tabs/Tabstrip.js +2 -1
- package/dist-cjs/tabs/Tabstrip.js.map +1 -1
- package/dist-cjs/tabs/useTabs.js.map +1 -1
- package/dist-cjs/tabs-next/OverflowMenu.js +2 -2
- package/dist-cjs/tabs-next/OverflowMenu.js.map +1 -1
- package/dist-cjs/tokenized-input/TokenizedInputBase.js +3 -3
- package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/InputPill.js +2 -2
- package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-cjs/tokenized-input-next/TokenizedInputNext.js +3 -3
- package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/InputPill.js +2 -2
- package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +2 -2
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js +3 -2
- package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
- package/dist-es/calendar/Calendar.css.js +1 -1
- package/dist-es/calendar/Calendar.js +60 -42
- package/dist-es/calendar/Calendar.js.map +1 -1
- package/dist-es/calendar/CalendarDateGrid.css.js +4 -0
- package/dist-es/calendar/CalendarDateGrid.css.js.map +1 -0
- package/dist-es/calendar/{internal/CalendarCarousel.js → CalendarDateGrid.js} +39 -16
- package/dist-es/calendar/CalendarDateGrid.js.map +1 -0
- package/dist-es/calendar/CalendarNavigation.css.js +4 -0
- package/dist-es/calendar/CalendarNavigation.js +310 -0
- package/dist-es/calendar/CalendarNavigation.js.map +1 -0
- package/dist-es/calendar/{internal/CalendarWeekHeader.js → CalendarWeekHeader.js} +6 -5
- package/dist-es/calendar/CalendarWeekHeader.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/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/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 +92 -45
- 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 +323 -0
- package/dist-es/calendar/useCalendarSelection.js.map +1 -0
- package/dist-es/carousel/Carousel.js +6 -6
- package/dist-es/carousel/Carousel.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuItem.js +3 -3
- package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
- 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/contact-details/ContactMetadata.js +3 -3
- package/dist-es/contact-details/ContactMetadata.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 +353 -0
- package/dist-es/date-input/DateInputRange.js.map +1 -0
- package/dist-es/date-input/DateInputSingle.js +227 -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 +77 -153
- 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 +102 -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 +115 -0
- package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -0
- package/dist-es/date-picker/DatePickerRangePanel.js +222 -0
- package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -0
- package/dist-es/date-picker/DatePickerSingleInput.js +94 -0
- package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -0
- package/dist-es/date-picker/DatePickerSinglePanel.js +144 -0
- package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -0
- package/dist-es/date-picker/useDatePicker.js +203 -0
- package/dist-es/date-picker/useDatePicker.js.map +1 -0
- package/dist-es/dropdown/DropdownButton.js +6 -4
- package/dist-es/dropdown/DropdownButton.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 +19 -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/menu-button/MenuButtonTrigger.js +3 -3
- package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-es/query-input/QueryInput.css.js +1 -1
- package/dist-es/query-input/internal/CategoryListItem.js +3 -3
- package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-es/query-input/internal/ValueList.js +3 -3
- package/dist-es/query-input/internal/ValueList.js.map +1 -1
- package/dist-es/search-input/SearchInput.js +3 -2
- package/dist-es/search-input/SearchInput.js.map +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/static-list/StaticList.css.js +4 -0
- package/dist-es/static-list/StaticList.css.js.map +1 -0
- package/dist-es/static-list/StaticList.js +28 -0
- package/dist-es/static-list/StaticList.js.map +1 -0
- package/dist-es/static-list/StaticListItem.css.js +4 -0
- package/dist-es/static-list/StaticListItem.css.js.map +1 -0
- package/dist-es/static-list/StaticListItem.js +29 -0
- package/dist-es/static-list/StaticListItem.js.map +1 -0
- package/dist-es/static-list/StaticListItemContent.css.js +4 -0
- package/dist-es/static-list/StaticListItemContent.css.js.map +1 -0
- package/dist-es/static-list/StaticListItemContent.js +26 -0
- package/dist-es/static-list/StaticListItemContent.js.map +1 -0
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +9 -9
- package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
- package/dist-es/stepper-input/StepperInput.css.js +1 -1
- package/dist-es/stepper-input/StepperInput.js +216 -31
- package/dist-es/stepper-input/StepperInput.js.map +1 -1
- package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js +50 -0
- package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -0
- package/dist-es/stepper-input/internal/utils.js +32 -0
- package/dist-es/stepper-input/internal/utils.js.map +1 -0
- package/dist-es/stepper-input/useStepperInput.js +88 -172
- package/dist-es/stepper-input/useStepperInput.js.map +1 -1
- package/dist-es/tabs/Tab.js +15 -13
- package/dist-es/tabs/Tab.js.map +1 -1
- package/dist-es/tabs/TabActivationIndicator.css.js +1 -1
- package/dist-es/tabs/Tabstrip.js +4 -3
- package/dist-es/tabs/Tabstrip.js.map +1 -1
- package/dist-es/tabs/useTabs.js.map +1 -1
- package/dist-es/tabs-next/OverflowMenu.js +3 -3
- package/dist-es/tabs-next/OverflowMenu.js.map +1 -1
- package/dist-es/tokenized-input/TokenizedInputBase.js +3 -3
- package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-es/tokenized-input/internal/InputPill.js +2 -2
- package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-es/tokenized-input-next/TokenizedInputNext.js +3 -3
- package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/InputPill.js +2 -2
- package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js +3 -3
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-types/calendar/Calendar.d.ts +55 -11
- package/dist-types/calendar/CalendarDateGrid.d.ts +10 -0
- package/dist-types/calendar/CalendarNavigation.d.ts +57 -0
- package/dist-types/calendar/CalendarWeekHeader.d.ts +5 -0
- package/dist-types/calendar/formatDate.d.ts +14 -0
- package/dist-types/calendar/index.d.ts +5 -1
- package/dist-types/calendar/internal/CalendarDay.d.ts +2 -1
- package/dist-types/calendar/internal/CalendarMonth.d.ts +9 -1
- 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 +182 -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 +80 -0
- package/dist-types/date-picker/DatePickerSingleInput.d.ts +7 -0
- package/dist-types/date-picker/DatePickerSinglePanel.d.ts +50 -0
- package/dist-types/date-picker/index.d.ts +7 -0
- package/dist-types/date-picker/useDatePicker.d.ts +112 -0
- package/dist-types/index.d.ts +1 -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/static-list/StaticList.d.ts +8 -0
- package/dist-types/static-list/StaticListItem.d.ts +4 -0
- package/dist-types/static-list/StaticListItemContent.d.ts +8 -0
- package/dist-types/static-list/index.d.ts +3 -0
- package/dist-types/stepper-input/StepperInput.d.ts +66 -19
- package/dist-types/stepper-input/internal/useActivateWhileMouseDown.d.ts +5 -0
- package/dist-types/stepper-input/internal/utils.d.ts +8 -0
- package/dist-types/stepper-input/useStepperInput.d.ts +21 -8
- package/package.json +3 -3
- package/dist-cjs/calendar/internal/CalendarCarousel.css.js +0 -6
- package/dist-cjs/calendar/internal/CalendarCarousel.css.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarCarousel.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarNavigation.css.js +0 -6
- package/dist-cjs/calendar/internal/CalendarNavigation.js +0 -218
- package/dist-cjs/calendar/internal/CalendarNavigation.js.map +0 -1
- package/dist-cjs/calendar/internal/CalendarWeekHeader.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-cjs/stepper-input/internal/useSpinner.js +0 -33
- package/dist-cjs/stepper-input/internal/useSpinner.js.map +0 -1
- package/dist-es/calendar/internal/CalendarCarousel.css.js +0 -4
- package/dist-es/calendar/internal/CalendarCarousel.css.js.map +0 -1
- package/dist-es/calendar/internal/CalendarCarousel.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/internal/CalendarWeekHeader.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-es/stepper-input/internal/useSpinner.js +0 -29
- package/dist-es/stepper-input/internal/useSpinner.js.map +0 -1
- package/dist-types/calendar/internal/CalendarCarousel.d.ts +0 -3
- package/dist-types/calendar/internal/CalendarNavigation.d.ts +0 -16
- package/dist-types/calendar/internal/CalendarWeekHeader.d.ts +0 -5
- 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-types/stepper-input/internal/useSpinner.d.ts +0 -5
- /package/dist-cjs/calendar/{internal/CalendarNavigation.css.js.map → CalendarNavigation.css.js.map} +0 -0
- /package/dist-cjs/calendar/{internal/CalendarWeekHeader.css.js → CalendarWeekHeader.css.js} +0 -0
- /package/dist-cjs/calendar/{internal/CalendarWeekHeader.css.js.map → CalendarWeekHeader.css.js.map} +0 -0
- /package/dist-es/calendar/{internal/CalendarNavigation.css.js.map → CalendarNavigation.css.js.map} +0 -0
- /package/dist-es/calendar/{internal/CalendarWeekHeader.css.js → CalendarWeekHeader.css.js} +0 -0
- /package/dist-es/calendar/{internal/CalendarWeekHeader.css.js.map → CalendarWeekHeader.css.js.map} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var css_248z = ".saltDatePickerOverlay {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n position: relative;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n display: flex;\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = css_248z;
|
|
6
|
+
//# sourceMappingURL=DatePickerOverlay.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerOverlay.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 styles = require('@salt-ds/styles');
|
|
8
|
+
var window = require('@salt-ds/window');
|
|
9
|
+
var clsx = require('clsx');
|
|
10
|
+
var react = require('react');
|
|
11
|
+
var DatePickerOverlay$1 = require('./DatePickerOverlay.css.js');
|
|
12
|
+
var DatePickerOverlayProvider = require('./DatePickerOverlayProvider.js');
|
|
13
|
+
|
|
14
|
+
const withBaseName = core.makePrefixer("saltDatePickerOverlay");
|
|
15
|
+
const DatePickerOverlay = react.forwardRef(function DatePickerOverlay2({ className, children, ...rest }, ref) {
|
|
16
|
+
const targetWindow = window.useWindow();
|
|
17
|
+
styles.useComponentCssInjection({
|
|
18
|
+
testId: "salt-date-picker-overlay",
|
|
19
|
+
css: DatePickerOverlay$1,
|
|
20
|
+
window: targetWindow
|
|
21
|
+
});
|
|
22
|
+
const { Component: FloatingComponent } = core.useFloatingComponent();
|
|
23
|
+
const { a11yProps } = core.useFormFieldProps();
|
|
24
|
+
const {
|
|
25
|
+
state: { open, floatingUIResult },
|
|
26
|
+
helpers: { getFloatingProps }
|
|
27
|
+
} = DatePickerOverlayProvider.useDatePickerOverlay();
|
|
28
|
+
const floatingRef = core.useForkRef(
|
|
29
|
+
ref,
|
|
30
|
+
floatingUIResult == null ? void 0 : floatingUIResult.floating
|
|
31
|
+
);
|
|
32
|
+
return /* @__PURE__ */ jsxRuntime.jsx(FloatingComponent, {
|
|
33
|
+
className: clsx.clsx(withBaseName(), className),
|
|
34
|
+
open: open || false,
|
|
35
|
+
"aria-modal": "true",
|
|
36
|
+
ref: floatingRef,
|
|
37
|
+
focusManagerProps: (floatingUIResult == null ? void 0 : floatingUIResult.context) ? {
|
|
38
|
+
context: floatingUIResult.context,
|
|
39
|
+
initialFocus: 4
|
|
40
|
+
} : void 0,
|
|
41
|
+
...getFloatingProps ? getFloatingProps({
|
|
42
|
+
...a11yProps,
|
|
43
|
+
...rest
|
|
44
|
+
}) : rest,
|
|
45
|
+
children
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
exports.DatePickerOverlay = DatePickerOverlay;
|
|
50
|
+
//# sourceMappingURL=DatePickerOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerOverlay.js","sources":["../src/date-picker/DatePickerOverlay.tsx"],"sourcesContent":["import {\n makePrefixer,\n useFloatingComponent,\n useForkRef,\n useFormFieldProps,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type ReactNode,\n forwardRef,\n} from \"react\";\nimport datePickerOverlayCss from \"./DatePickerOverlay.css\";\nimport { useDatePickerOverlay } from \"./DatePickerOverlayProvider\";\n\nconst withBaseName = makePrefixer(\"saltDatePickerOverlay\");\n\n/**\n * Props for the DatePickerOverlay component.\n */\nexport interface DatePickerOverlayProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content to be rendered inside the overlay.\n */\n children: ReactNode;\n}\n\nexport const DatePickerOverlay = forwardRef<\n HTMLDivElement,\n DatePickerOverlayProps\n>(function DatePickerOverlay({ className, children, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-date-picker-overlay\",\n css: datePickerOverlayCss,\n window: targetWindow,\n });\n\n const { Component: FloatingComponent } = useFloatingComponent();\n\n const { a11yProps } = useFormFieldProps();\n\n const {\n state: { open, floatingUIResult },\n helpers: { getFloatingProps },\n } = useDatePickerOverlay();\n\n const floatingRef = useForkRef<HTMLDivElement>(\n ref,\n floatingUIResult?.floating,\n );\n\n return (\n <FloatingComponent\n className={clsx(withBaseName(), className)}\n open={open || false}\n aria-modal=\"true\"\n ref={floatingRef}\n focusManagerProps={\n floatingUIResult?.context\n ? {\n context: floatingUIResult.context,\n initialFocus: 4,\n }\n : undefined\n }\n {...(getFloatingProps\n ? getFloatingProps({\n ...a11yProps,\n ...rest,\n })\n : rest)}\n >\n {children}\n </FloatingComponent>\n );\n});\n"],"names":["makePrefixer","forwardRef","DatePickerOverlay","useWindow","useComponentCssInjection","datePickerOverlayCss","useFloatingComponent","useFormFieldProps","useDatePickerOverlay","useForkRef","jsx","clsx"],"mappings":";;;;;;;;;;;;;AAiBA,MAAM,YAAA,GAAeA,kBAAa,uBAAuB,CAAA,CAAA;AAa5C,MAAA,iBAAA,GAAoBC,iBAG/B,SAASC,kBAAAA,CAAkB,EAAE,SAAW,EAAA,QAAA,EAAA,GAAa,IAAK,EAAA,EAAG,GAAK,EAAA;AAClE,EAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,mBAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,SAAA,EAAW,iBAAkB,EAAA,GAAIC,yBAAqB,EAAA,CAAA;AAE9D,EAAM,MAAA,EAAE,SAAU,EAAA,GAAIC,sBAAkB,EAAA,CAAA;AAExC,EAAM,MAAA;AAAA,IACJ,KAAA,EAAO,EAAE,IAAA,EAAM,gBAAiB,EAAA;AAAA,IAChC,OAAA,EAAS,EAAE,gBAAiB,EAAA;AAAA,MAC1BC,8CAAqB,EAAA,CAAA;AAEzB,EAAA,MAAM,WAAc,GAAAC,eAAA;AAAA,IAClB,GAAA;AAAA,IACA,gBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,QAAA;AAAA,GACpB,CAAA;AAEA,EAAA,uBACGC,cAAA,CAAA,iBAAA,EAAA;AAAA,IACC,SAAW,EAAAC,SAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,MAAM,IAAQ,IAAA,KAAA;AAAA,IACd,YAAW,EAAA,MAAA;AAAA,IACX,GAAK,EAAA,WAAA;AAAA,IACL,iBAAA,EAAA,CACE,qDAAkB,OACd,IAAA;AAAA,MACE,SAAS,gBAAiB,CAAA,OAAA;AAAA,MAC1B,YAAc,EAAA,CAAA;AAAA,KAEhB,GAAA,KAAA,CAAA;AAAA,IAEL,GAAI,mBACD,gBAAiB,CAAA;AAAA,MACf,GAAG,SAAA;AAAA,MACH,GAAG,IAAA;AAAA,KACJ,CACD,GAAA,IAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA,CAAA;AAEJ,CAAC;;;;"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var react$1 = require('@floating-ui/react');
|
|
7
|
+
var core = require('@salt-ds/core');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
|
|
10
|
+
const DatePickerOverlayContext = core.createContext("DatePickerOverlayContext", void 0);
|
|
11
|
+
const DatePickerOverlayProvider = ({ open: openProp, defaultOpen, children }) => {
|
|
12
|
+
const [open, setOpenState] = core.useControlled({
|
|
13
|
+
controlled: openProp,
|
|
14
|
+
default: Boolean(defaultOpen),
|
|
15
|
+
name: "DatePicker",
|
|
16
|
+
state: "openDatePickerOverlay"
|
|
17
|
+
});
|
|
18
|
+
const triggeringElement = react.useRef(null);
|
|
19
|
+
react.useEffect(() => {
|
|
20
|
+
if (!open) {
|
|
21
|
+
const trigger = triggeringElement.current;
|
|
22
|
+
if (trigger) {
|
|
23
|
+
trigger.focus();
|
|
24
|
+
}
|
|
25
|
+
if (trigger instanceof HTMLInputElement) {
|
|
26
|
+
setTimeout(() => {
|
|
27
|
+
trigger.setSelectionRange(0, trigger.value.length);
|
|
28
|
+
}, 0);
|
|
29
|
+
}
|
|
30
|
+
triggeringElement.current = null;
|
|
31
|
+
}
|
|
32
|
+
}, [open]);
|
|
33
|
+
const setOpen = react.useCallback((newOpen) => {
|
|
34
|
+
if (newOpen) {
|
|
35
|
+
triggeringElement.current = document.activeElement;
|
|
36
|
+
}
|
|
37
|
+
setOpenState(newOpen);
|
|
38
|
+
}, []);
|
|
39
|
+
const floatingUIResult = core.useFloatingUI({
|
|
40
|
+
open,
|
|
41
|
+
onOpenChange: setOpen,
|
|
42
|
+
placement: "bottom-start",
|
|
43
|
+
middleware: [react$1.flip({ fallbackStrategy: "initialPlacement" })]
|
|
44
|
+
});
|
|
45
|
+
const {
|
|
46
|
+
getFloatingProps: _getFloatingPropsCallback,
|
|
47
|
+
getReferenceProps: _getReferenceProps
|
|
48
|
+
} = react$1.useInteractions([react$1.useDismiss(floatingUIResult.context)]);
|
|
49
|
+
const getFloatingPropsCallback = react.useMemo(
|
|
50
|
+
() => _getFloatingPropsCallback,
|
|
51
|
+
[_getFloatingPropsCallback]
|
|
52
|
+
);
|
|
53
|
+
const getReferenceProps = react.useMemo(
|
|
54
|
+
() => _getReferenceProps,
|
|
55
|
+
[_getReferenceProps]
|
|
56
|
+
);
|
|
57
|
+
const getFloatingProps = react.useCallback(
|
|
58
|
+
(userProps) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
const { x, y, strategy, elements } = floatingUIResult;
|
|
61
|
+
return {
|
|
62
|
+
top: y != null ? y : 0,
|
|
63
|
+
left: x != null ? x : 0,
|
|
64
|
+
position: strategy,
|
|
65
|
+
width: (_a = elements.floating) == null ? void 0 : _a.offsetWidth,
|
|
66
|
+
height: (_b = elements.floating) == null ? void 0 : _b.offsetHeight,
|
|
67
|
+
...getFloatingPropsCallback(userProps)
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
[getFloatingPropsCallback, floatingUIResult]
|
|
71
|
+
);
|
|
72
|
+
const state = react.useMemo(
|
|
73
|
+
() => ({
|
|
74
|
+
open,
|
|
75
|
+
floatingUIResult
|
|
76
|
+
}),
|
|
77
|
+
[open, floatingUIResult]
|
|
78
|
+
);
|
|
79
|
+
const helpers = react.useMemo(
|
|
80
|
+
() => ({
|
|
81
|
+
getFloatingProps,
|
|
82
|
+
getReferenceProps,
|
|
83
|
+
setOpen
|
|
84
|
+
}),
|
|
85
|
+
[getFloatingProps, getReferenceProps, setOpen]
|
|
86
|
+
);
|
|
87
|
+
const contextValue = react.useMemo(() => ({ state, helpers }), [state, helpers]);
|
|
88
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DatePickerOverlayContext.Provider, {
|
|
89
|
+
value: contextValue,
|
|
90
|
+
children
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
const useDatePickerOverlay = () => {
|
|
94
|
+
const context = react.useContext(DatePickerOverlayContext);
|
|
95
|
+
if (!context) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
"useDatePickerOverlay must be used within a DatePickerOverlayProvider"
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
return context;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
exports.DatePickerOverlayProvider = DatePickerOverlayProvider;
|
|
104
|
+
exports.useDatePickerOverlay = useDatePickerOverlay;
|
|
105
|
+
//# sourceMappingURL=DatePickerOverlayProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerOverlayProvider.js","sources":["../src/date-picker/DatePickerOverlayProvider.tsx"],"sourcesContent":["import { flip, useDismiss, useInteractions } from \"@floating-ui/react\";\nimport { createContext, useControlled, useFloatingUI } from \"@salt-ds/core\";\nimport {\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\n\n/**\n * Interface representing the state for a DatePicker overlay.\n */\ninterface DatePickerOverlayState {\n /**\n * If `true`, the overlay is open.\n */\n open: boolean;\n /**\n * The result of the floating UI calculations.\n */\n floatingUIResult: ReturnType<typeof useFloatingUI>;\n}\n\n/**\n * Interface representing the helper functions for a DatePicker overlay.\n */\ninterface DatePickerOverlayHelpers {\n /**\n * Function to get the props for the floating element.\n */\n getFloatingProps: ReturnType<typeof useInteractions>[\"getFloatingProps\"];\n /**\n * Function to get the props for the reference element.\n */\n getReferenceProps: ReturnType<typeof useInteractions>[\"getReferenceProps\"];\n /**\n * Sets the open state of the overlay.\n * @param newOpen - The new value for the open state.\n */\n setOpen: (newOpen: boolean) => void;\n}\n\n/**\n * Interface representing the context type for a DatePicker overlay.\n */\ninterface DatePickerOverlayContextType {\n /**\n * The state of the DatePicker overlay.\n */\n state: DatePickerOverlayState;\n /**\n * The helper functions for the DatePicker overlay.\n */\n helpers: DatePickerOverlayHelpers;\n}\n\n/**\n * Context for the DatePicker overlay.\n */\nconst DatePickerOverlayContext = createContext<\n DatePickerOverlayContextType | undefined\n>(\"DatePickerOverlayContext\", undefined);\n\n/**\n * Props for the DatePickerOverlayProvider component.\n */\ninterface DatePickerOverlayProviderProps {\n /**\n * If `true`, the overlay is open.\n */\n open?: boolean;\n /**\n * The default open state of the overlay.\n */\n defaultOpen?: boolean;\n /**\n * The content to be rendered inside the overlay provider.\n */\n children: ReactNode;\n}\n\nexport const DatePickerOverlayProvider: React.FC<\n DatePickerOverlayProviderProps\n> = ({ open: openProp, defaultOpen, children }) => {\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: Boolean(defaultOpen),\n name: \"DatePicker\",\n state: \"openDatePickerOverlay\",\n });\n const triggeringElement = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!open) {\n const trigger = triggeringElement.current as HTMLElement;\n if (trigger) {\n trigger.focus();\n }\n if (trigger instanceof HTMLInputElement) {\n setTimeout(() => {\n trigger.setSelectionRange(0, trigger.value.length);\n }, 0);\n }\n triggeringElement.current = null;\n }\n }, [open]);\n\n const setOpen = useCallback((newOpen: boolean) => {\n if (newOpen) {\n triggeringElement.current = document.activeElement as HTMLElement;\n }\n setOpenState(newOpen);\n }, []);\n\n const floatingUIResult = useFloatingUI({\n open,\n onOpenChange: setOpen,\n placement: \"bottom-start\",\n middleware: [flip({ fallbackStrategy: \"initialPlacement\" })],\n });\n\n const {\n getFloatingProps: _getFloatingPropsCallback,\n getReferenceProps: _getReferenceProps,\n } = useInteractions([useDismiss(floatingUIResult.context)]);\n const getFloatingPropsCallback = useMemo(\n () => _getFloatingPropsCallback,\n [_getFloatingPropsCallback],\n );\n const getReferenceProps = useMemo(\n () => _getReferenceProps,\n [_getReferenceProps],\n );\n\n const getFloatingProps = useCallback(\n (userProps: React.HTMLProps<HTMLElement> | undefined) => {\n const { x, y, strategy, elements } = floatingUIResult;\n return {\n top: y ?? 0,\n left: x ?? 0,\n position: strategy,\n width: elements.floating?.offsetWidth,\n height: elements.floating?.offsetHeight,\n ...getFloatingPropsCallback(userProps),\n };\n },\n [getFloatingPropsCallback, floatingUIResult],\n );\n\n const state: DatePickerOverlayState = useMemo(\n () => ({\n open,\n floatingUIResult,\n }),\n [open, floatingUIResult],\n );\n\n const helpers: DatePickerOverlayHelpers = useMemo(\n () => ({\n getFloatingProps,\n getReferenceProps,\n setOpen,\n }),\n [getFloatingProps, getReferenceProps, setOpen],\n );\n const contextValue = useMemo(() => ({ state, helpers }), [state, helpers]);\n\n return (\n <DatePickerOverlayContext.Provider value={contextValue}>\n {children}\n </DatePickerOverlayContext.Provider>\n );\n};\n\nexport const useDatePickerOverlay = (): DatePickerOverlayContextType => {\n const context = useContext(DatePickerOverlayContext);\n if (!context) {\n throw new Error(\n \"useDatePickerOverlay must be used within a DatePickerOverlayProvider\",\n );\n }\n return context;\n};\n"],"names":["createContext","useControlled","useRef","useEffect","useCallback","useFloatingUI","flip","useInteractions","useDismiss","useMemo","jsx","useContext"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var css_248z = ".
|
|
3
|
+
var css_248z = ".saltDatePickerOverlay {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-border) var(--salt-selectable-borderStyle-selected) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n position: relative;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n display: flex;\n}\n\n.saltDatePickerPanel-container {\n width: min-content;\n gap: 1px;\n}\n\n.saltDatePickerPanel-header {\n padding: var(--salt-spacing-100);\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = css_248z;
|
|
6
6
|
//# sourceMappingURL=DatePickerPanel.css.js.map
|
|
@@ -0,0 +1,119 @@
|
|
|
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
|
+
require('../date-input/DateInputSingle.js');
|
|
10
|
+
var DateInputRange = require('../date-input/DateInputRange.js');
|
|
11
|
+
require('@internationalized/date');
|
|
12
|
+
var DatePickerContext = require('./DatePickerContext.js');
|
|
13
|
+
var DatePickerOverlayProvider = require('./DatePickerOverlayProvider.js');
|
|
14
|
+
|
|
15
|
+
const withBaseName = core.makePrefixer("saltDatePickerRangeInput");
|
|
16
|
+
const DatePickerRangeInput = react.forwardRef(function DatePickerRangeInput2(props, ref) {
|
|
17
|
+
const {
|
|
18
|
+
className,
|
|
19
|
+
endInputProps: endInputPropsProp,
|
|
20
|
+
startInputProps: startInputPropsProp,
|
|
21
|
+
onKeyDown,
|
|
22
|
+
defaultValue,
|
|
23
|
+
value: valueProp,
|
|
24
|
+
onChange,
|
|
25
|
+
onDateValueChange,
|
|
26
|
+
...rest
|
|
27
|
+
} = props;
|
|
28
|
+
const { CalendarIcon } = core.useIcon();
|
|
29
|
+
const {
|
|
30
|
+
state: { selectedDate, disabled, readOnly, cancelled, locale, timeZone },
|
|
31
|
+
helpers: { setSelectedDate }
|
|
32
|
+
} = DatePickerContext.useDatePickerContext({ selectionVariant: "range" });
|
|
33
|
+
const {
|
|
34
|
+
state: { open, floatingUIResult },
|
|
35
|
+
helpers: { getReferenceProps, setOpen }
|
|
36
|
+
} = DatePickerOverlayProvider.useDatePickerOverlay();
|
|
37
|
+
const inputRef = core.useForkRef(ref, floatingUIResult == null ? void 0 : floatingUIResult.reference);
|
|
38
|
+
const prevState = react.useRef();
|
|
39
|
+
const [value, setValue] = core.useControlled({
|
|
40
|
+
controlled: valueProp,
|
|
41
|
+
default: defaultValue,
|
|
42
|
+
name: "DatePickerRangeInput",
|
|
43
|
+
state: "dateValue"
|
|
44
|
+
});
|
|
45
|
+
const handleCalendarButton = react.useCallback(() => {
|
|
46
|
+
setOpen(!open);
|
|
47
|
+
}, [open, setOpen]);
|
|
48
|
+
const handleDateChange = react.useCallback(
|
|
49
|
+
(_event, newDate, error) => {
|
|
50
|
+
setSelectedDate(newDate, error);
|
|
51
|
+
},
|
|
52
|
+
[setSelectedDate]
|
|
53
|
+
);
|
|
54
|
+
const handleDateValueChange = (newDateValue, isFormatted) => {
|
|
55
|
+
setValue(newDateValue);
|
|
56
|
+
onDateValueChange == null ? void 0 : onDateValueChange(newDateValue, isFormatted);
|
|
57
|
+
};
|
|
58
|
+
react.useEffect(() => {
|
|
59
|
+
if (open) {
|
|
60
|
+
prevState.current = { date: selectedDate, value };
|
|
61
|
+
}
|
|
62
|
+
}, [open]);
|
|
63
|
+
react.useEffect(() => {
|
|
64
|
+
var _a, _b;
|
|
65
|
+
if (cancelled) {
|
|
66
|
+
setValue((_a = prevState == null ? void 0 : prevState.current) == null ? void 0 : _a.value);
|
|
67
|
+
setSelectedDate(((_b = prevState == null ? void 0 : prevState.current) == null ? void 0 : _b.date) || null, {
|
|
68
|
+
startDate: false,
|
|
69
|
+
endDate: false
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}, [cancelled]);
|
|
73
|
+
const startInputProps = {
|
|
74
|
+
onKeyDown: (event) => {
|
|
75
|
+
var _a;
|
|
76
|
+
if (event.key === "ArrowDown") {
|
|
77
|
+
setOpen(true);
|
|
78
|
+
}
|
|
79
|
+
(_a = startInputPropsProp == null ? void 0 : startInputPropsProp.onKeyDown) == null ? void 0 : _a.call(startInputPropsProp, event);
|
|
80
|
+
},
|
|
81
|
+
...startInputPropsProp
|
|
82
|
+
};
|
|
83
|
+
const endInputProps = {
|
|
84
|
+
onKeyDown: (event) => {
|
|
85
|
+
var _a;
|
|
86
|
+
if (event.key === "ArrowDown") {
|
|
87
|
+
setOpen(true);
|
|
88
|
+
}
|
|
89
|
+
(_a = endInputPropsProp == null ? void 0 : endInputPropsProp.onKeyDown) == null ? void 0 : _a.call(endInputPropsProp, event);
|
|
90
|
+
},
|
|
91
|
+
...endInputPropsProp
|
|
92
|
+
};
|
|
93
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DateInputRange.DateInputRange, {
|
|
94
|
+
value: value || { startDate: "", endDate: "" },
|
|
95
|
+
locale,
|
|
96
|
+
timeZone,
|
|
97
|
+
className: clsx.clsx(withBaseName(), className),
|
|
98
|
+
ref: inputRef,
|
|
99
|
+
date: selectedDate,
|
|
100
|
+
startInputProps: getReferenceProps(startInputProps),
|
|
101
|
+
endInputProps: getReferenceProps(endInputProps),
|
|
102
|
+
readOnly,
|
|
103
|
+
onDateChange: handleDateChange,
|
|
104
|
+
onDateValueChange: handleDateValueChange,
|
|
105
|
+
onChange,
|
|
106
|
+
endAdornment: /* @__PURE__ */ jsxRuntime.jsx(core.Button, {
|
|
107
|
+
appearance: "transparent",
|
|
108
|
+
sentiment: "neutral",
|
|
109
|
+
onClick: handleCalendarButton,
|
|
110
|
+
disabled,
|
|
111
|
+
"aria-label": "Open Calendar",
|
|
112
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(CalendarIcon, {})
|
|
113
|
+
}),
|
|
114
|
+
...rest
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
exports.DatePickerRangeInput = DatePickerRangeInput;
|
|
119
|
+
//# sourceMappingURL=DatePickerRangeInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerRangeInput.js","sources":["../src/date-picker/DatePickerRangeInput.tsx"],"sourcesContent":["import {\n Button,\n makePrefixer,\n useControlled,\n useForkRef,\n useIcon,\n} from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type KeyboardEvent,\n type KeyboardEventHandler,\n type SyntheticEvent,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport type { DateRangeSelection } from \"../calendar\";\nimport {\n DateInputRange,\n type DateInputRangeError,\n type DateInputRangeProps,\n type DateInputRangeValue,\n} from \"../date-input\";\nimport { useDatePickerContext } from \"./DatePickerContext\";\nimport { useDatePickerOverlay } from \"./DatePickerOverlayProvider\";\n\nconst withBaseName = makePrefixer(\"saltDatePickerRangeInput\");\n\n/**\n * Props for the DatePickerRangeInput component.\n */\nexport interface DatePickerRangeInputProps extends DateInputRangeProps {}\n\nexport const DatePickerRangeInput = forwardRef<\n HTMLDivElement,\n DatePickerRangeInputProps\n>(function DatePickerRangeInput(props, ref) {\n const {\n className,\n endInputProps: endInputPropsProp,\n startInputProps: startInputPropsProp,\n onKeyDown,\n defaultValue,\n value: valueProp,\n onChange,\n onDateValueChange,\n ...rest\n } = props;\n\n const { CalendarIcon } = useIcon();\n\n const {\n state: { selectedDate, disabled, readOnly, cancelled, locale, timeZone },\n helpers: { setSelectedDate },\n } = useDatePickerContext({ selectionVariant: \"range\" });\n const {\n state: { open, floatingUIResult },\n helpers: { getReferenceProps, setOpen },\n } = useDatePickerOverlay();\n\n const inputRef = useForkRef<HTMLDivElement>(ref, floatingUIResult?.reference);\n const prevState = useRef<\n { date: typeof selectedDate; value: typeof valueProp } | undefined\n >();\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: \"DatePickerRangeInput\",\n state: \"dateValue\",\n });\n\n const handleCalendarButton = useCallback(() => {\n setOpen(!open);\n }, [open, setOpen]);\n\n const handleDateChange = useCallback(\n (\n _event: SyntheticEvent,\n newDate: DateRangeSelection | null,\n error: DateInputRangeError,\n ) => {\n setSelectedDate(newDate, error);\n },\n [setSelectedDate],\n );\n\n const handleDateValueChange = (\n newDateValue: DateInputRangeValue,\n isFormatted: boolean,\n ) => {\n setValue(newDateValue);\n onDateValueChange?.(newDateValue, isFormatted);\n };\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: should run when open changes and not selected date or value\n useEffect(() => {\n if (open) {\n prevState.current = { date: selectedDate, value };\n }\n }, [open]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: avoid excessive re-rendering\n useEffect(() => {\n if (cancelled) {\n setValue(prevState?.current?.value);\n setSelectedDate(prevState?.current?.date || null, {\n startDate: false,\n endDate: false,\n });\n }\n }, [cancelled]);\n\n const startInputProps: {\n onKeyDown: KeyboardEventHandler<HTMLInputElement>;\n } = {\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"ArrowDown\") {\n setOpen(true);\n }\n startInputPropsProp?.onKeyDown?.(event);\n },\n ...startInputPropsProp,\n };\n const endInputProps: {\n onKeyDown: KeyboardEventHandler<HTMLInputElement>;\n } = {\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"ArrowDown\") {\n setOpen(true);\n }\n endInputPropsProp?.onKeyDown?.(event);\n },\n ...endInputPropsProp,\n };\n\n return (\n <DateInputRange\n value={value || { startDate: \"\", endDate: \"\" }}\n locale={locale}\n timeZone={timeZone}\n className={clsx(withBaseName(), className)}\n ref={inputRef}\n date={selectedDate}\n startInputProps={getReferenceProps(startInputProps)}\n endInputProps={getReferenceProps(endInputProps)}\n readOnly={readOnly}\n onDateChange={handleDateChange}\n onDateValueChange={handleDateValueChange}\n onChange={onChange}\n endAdornment={\n <Button\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleCalendarButton}\n disabled={disabled}\n aria-label=\"Open Calendar\"\n >\n <CalendarIcon />\n </Button>\n }\n {...rest}\n />\n );\n});\n"],"names":["makePrefixer","forwardRef","DatePickerRangeInput","useIcon","useDatePickerContext","useDatePickerOverlay","useForkRef","useRef","useControlled","useCallback","useEffect","jsx","DateInputRange","clsx","Button"],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var date = require('@internationalized/date');
|
|
7
|
+
var core = require('@salt-ds/core');
|
|
8
|
+
var styles = require('@salt-ds/styles');
|
|
9
|
+
var window = require('@salt-ds/window');
|
|
10
|
+
var clsx = require('clsx');
|
|
11
|
+
var react = require('react');
|
|
12
|
+
var Calendar = require('../calendar/Calendar.js');
|
|
13
|
+
var CalendarNavigation = require('../calendar/CalendarNavigation.js');
|
|
14
|
+
var CalendarWeekHeader = require('../calendar/CalendarWeekHeader.js');
|
|
15
|
+
var CalendarDateGrid = require('../calendar/CalendarDateGrid.js');
|
|
16
|
+
require('../calendar/internal/CalendarContext.js');
|
|
17
|
+
var formatDate = require('../calendar/formatDate.js');
|
|
18
|
+
require('../calendar/useCalendarSelection.js');
|
|
19
|
+
var DatePickerContext = require('./DatePickerContext.js');
|
|
20
|
+
var DatePickerPanel = require('./DatePickerPanel.css.js');
|
|
21
|
+
|
|
22
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
23
|
+
|
|
24
|
+
var clsx__default = /*#__PURE__*/_interopDefaultLegacy(clsx);
|
|
25
|
+
|
|
26
|
+
function getFallbackVisibleMonths(selectedDate, timeZone) {
|
|
27
|
+
const createConsecutiveRange = (date$1) => [
|
|
28
|
+
date.startOfMonth(date$1),
|
|
29
|
+
date.startOfMonth(date$1).add({ months: 1 })
|
|
30
|
+
];
|
|
31
|
+
if (selectedDate == null ? void 0 : selectedDate.startDate) {
|
|
32
|
+
const { startDate, endDate } = selectedDate;
|
|
33
|
+
if (endDate) {
|
|
34
|
+
return date.isSameMonth(startDate, endDate) ? createConsecutiveRange(startDate) : [date.startOfMonth(startDate), date.startOfMonth(endDate)];
|
|
35
|
+
}
|
|
36
|
+
return createConsecutiveRange(startDate);
|
|
37
|
+
}
|
|
38
|
+
const currentMonth = date.startOfMonth(date.today(timeZone));
|
|
39
|
+
return [currentMonth, currentMonth.add({ months: 1 })];
|
|
40
|
+
}
|
|
41
|
+
const withBaseName = core.makePrefixer("saltDatePickerPanel");
|
|
42
|
+
const DatePickerRangePanel = react.forwardRef(function DatePickerRangePanel2(props, ref) {
|
|
43
|
+
const {
|
|
44
|
+
className,
|
|
45
|
+
defaultStartVisibleMonth: defaultStartVisibleMonthProp,
|
|
46
|
+
startVisibleMonth: startVisibleMonthProp,
|
|
47
|
+
onStartVisibleMonthChange,
|
|
48
|
+
defaultEndVisibleMonth: defaultEndVisibleMonthProp,
|
|
49
|
+
endVisibleMonth: endVisibleMonthProp,
|
|
50
|
+
onEndVisibleMonthChange,
|
|
51
|
+
helperText,
|
|
52
|
+
onSelect,
|
|
53
|
+
StartCalendarProps: StartCalendarPropsProp,
|
|
54
|
+
StartCalendarNavigationProps,
|
|
55
|
+
StartCalendarWeekHeaderProps,
|
|
56
|
+
StartCalendarDataGridProps,
|
|
57
|
+
EndCalendarProps: EndCalendarPropsProp,
|
|
58
|
+
EndCalendarNavigationProps,
|
|
59
|
+
EndCalendarWeekHeaderProps,
|
|
60
|
+
EndCalendarDataGridProps,
|
|
61
|
+
...rest
|
|
62
|
+
} = props;
|
|
63
|
+
const targetWindow = window.useWindow();
|
|
64
|
+
styles.useComponentCssInjection({
|
|
65
|
+
testId: "salt-date-picker-range-panel",
|
|
66
|
+
css: DatePickerPanel,
|
|
67
|
+
window: targetWindow
|
|
68
|
+
});
|
|
69
|
+
const {
|
|
70
|
+
state: {
|
|
71
|
+
selectedDate,
|
|
72
|
+
timeZone = date.getLocalTimeZone(),
|
|
73
|
+
minDate = date.startOfMonth(date.today(timeZone)),
|
|
74
|
+
maxDate = minDate.add({ months: 1 }),
|
|
75
|
+
locale = formatDate.getCurrentLocale()
|
|
76
|
+
},
|
|
77
|
+
helpers: { setSelectedDate }
|
|
78
|
+
} = DatePickerContext.useDatePickerContext({ selectionVariant: "range" });
|
|
79
|
+
const [hoveredDate, setHoveredDate] = react.useState(null);
|
|
80
|
+
const [[fallbackStartVisibleMonth, fallbackEndVisibleMonth]] = react.useState(
|
|
81
|
+
() => getFallbackVisibleMonths(selectedDate, timeZone)
|
|
82
|
+
);
|
|
83
|
+
const [startVisibleMonth, setStartVisibleMonth] = core.useControlled({
|
|
84
|
+
controlled: startVisibleMonthProp,
|
|
85
|
+
default: defaultStartVisibleMonthProp || fallbackStartVisibleMonth,
|
|
86
|
+
name: "DatePickerRangePanel",
|
|
87
|
+
state: "startVisibleMonth"
|
|
88
|
+
});
|
|
89
|
+
const [endVisibleMonth, setEndVisibleMonth] = core.useControlled({
|
|
90
|
+
controlled: endVisibleMonthProp,
|
|
91
|
+
default: defaultEndVisibleMonthProp || fallbackEndVisibleMonth,
|
|
92
|
+
name: "DatePickerRangePanel",
|
|
93
|
+
state: "endVisibleMonth"
|
|
94
|
+
});
|
|
95
|
+
const handleSelectedDateChange = react.useCallback(
|
|
96
|
+
(event, newDate) => {
|
|
97
|
+
setSelectedDate(newDate, { startDate: false, endDate: false });
|
|
98
|
+
onSelect == null ? void 0 : onSelect(event, newDate);
|
|
99
|
+
},
|
|
100
|
+
[onSelect, setSelectedDate]
|
|
101
|
+
);
|
|
102
|
+
const handleHoveredStartDateChange = react.useCallback(
|
|
103
|
+
(event, newHoveredDate) => {
|
|
104
|
+
var _a;
|
|
105
|
+
setHoveredDate(newHoveredDate);
|
|
106
|
+
if (newHoveredDate && (StartCalendarPropsProp == null ? void 0 : StartCalendarPropsProp.onHoveredDateChange)) {
|
|
107
|
+
(_a = StartCalendarPropsProp.onHoveredDateChange) == null ? void 0 : _a.call(StartCalendarPropsProp, event, newHoveredDate);
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
[StartCalendarPropsProp == null ? void 0 : StartCalendarPropsProp.onHoveredDateChange]
|
|
111
|
+
);
|
|
112
|
+
const handleHoveredEndDateChange = react.useCallback(
|
|
113
|
+
(event, newHoveredDate) => {
|
|
114
|
+
setHoveredDate(newHoveredDate);
|
|
115
|
+
if (newHoveredDate && (EndCalendarPropsProp == null ? void 0 : EndCalendarPropsProp.onHoveredDateChange)) {
|
|
116
|
+
EndCalendarPropsProp.onHoveredDateChange(event, newHoveredDate);
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
[EndCalendarPropsProp == null ? void 0 : EndCalendarPropsProp.onHoveredDateChange]
|
|
120
|
+
);
|
|
121
|
+
const handleStartVisibleMonthChange = react.useCallback(
|
|
122
|
+
(event, newVisibleMonth) => {
|
|
123
|
+
setStartVisibleMonth(newVisibleMonth);
|
|
124
|
+
if (newVisibleMonth.compare(endVisibleMonth) >= 0) {
|
|
125
|
+
setEndVisibleMonth(newVisibleMonth.add({ months: 1 }));
|
|
126
|
+
}
|
|
127
|
+
onStartVisibleMonthChange == null ? void 0 : onStartVisibleMonthChange(event, newVisibleMonth);
|
|
128
|
+
},
|
|
129
|
+
[endVisibleMonth, onStartVisibleMonthChange]
|
|
130
|
+
);
|
|
131
|
+
const handleEndVisibleMonthChange = react.useCallback(
|
|
132
|
+
(event, newVisibleMonth) => {
|
|
133
|
+
setEndVisibleMonth(newVisibleMonth);
|
|
134
|
+
if (newVisibleMonth.compare(startVisibleMonth) <= 0) {
|
|
135
|
+
setStartVisibleMonth(
|
|
136
|
+
date.startOfMonth(newVisibleMonth.subtract({ months: 1 }))
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
onEndVisibleMonthChange == null ? void 0 : onEndVisibleMonthChange(event, newVisibleMonth);
|
|
140
|
+
},
|
|
141
|
+
[startVisibleMonth, onEndVisibleMonthChange]
|
|
142
|
+
);
|
|
143
|
+
function getHoveredDate(date$1, hoveredDate2) {
|
|
144
|
+
return date$1 && hoveredDate2 && (hoveredDate2 == null ? void 0 : hoveredDate2.compare(date.endOfMonth(date$1))) > 0 ? date.endOfMonth(date$1) : hoveredDate2;
|
|
145
|
+
}
|
|
146
|
+
const StartCalendarProps = {
|
|
147
|
+
visibleMonth: startVisibleMonth,
|
|
148
|
+
hoveredDate: getHoveredDate(selectedDate == null ? void 0 : selectedDate.startDate, hoveredDate),
|
|
149
|
+
selectedDate,
|
|
150
|
+
onHoveredDateChange: handleHoveredStartDateChange,
|
|
151
|
+
onVisibleMonthChange: handleStartVisibleMonthChange,
|
|
152
|
+
onSelectedDateChange: handleSelectedDateChange,
|
|
153
|
+
hideOutOfRangeDates: true,
|
|
154
|
+
minDate,
|
|
155
|
+
maxDate,
|
|
156
|
+
locale,
|
|
157
|
+
timeZone,
|
|
158
|
+
...StartCalendarPropsProp
|
|
159
|
+
};
|
|
160
|
+
const EndCalendarProps = {
|
|
161
|
+
visibleMonth: endVisibleMonth,
|
|
162
|
+
hoveredDate,
|
|
163
|
+
selectedDate,
|
|
164
|
+
onHoveredDateChange: handleHoveredEndDateChange,
|
|
165
|
+
onVisibleMonthChange: handleEndVisibleMonthChange,
|
|
166
|
+
onSelectedDateChange: handleSelectedDateChange,
|
|
167
|
+
hideOutOfRangeDates: true,
|
|
168
|
+
minDate,
|
|
169
|
+
maxDate,
|
|
170
|
+
locale,
|
|
171
|
+
timeZone,
|
|
172
|
+
...EndCalendarPropsProp
|
|
173
|
+
};
|
|
174
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(core.StackLayout, {
|
|
175
|
+
separators: true,
|
|
176
|
+
gap: 0,
|
|
177
|
+
className: clsx__default["default"](className, withBaseName("container")),
|
|
178
|
+
ref,
|
|
179
|
+
...rest,
|
|
180
|
+
children: [
|
|
181
|
+
helperText && /* @__PURE__ */ jsxRuntime.jsx(core.FlexItem, {
|
|
182
|
+
className: withBaseName("header"),
|
|
183
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(core.FormFieldHelperText, {
|
|
184
|
+
children: helperText
|
|
185
|
+
})
|
|
186
|
+
}),
|
|
187
|
+
/* @__PURE__ */ jsxRuntime.jsx(core.FlexLayout, {
|
|
188
|
+
gap: 0,
|
|
189
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(core.FormFieldContext.Provider, {
|
|
190
|
+
value: {},
|
|
191
|
+
children: [
|
|
192
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Calendar.Calendar, {
|
|
193
|
+
selectionVariant: "range",
|
|
194
|
+
...StartCalendarProps,
|
|
195
|
+
children: [
|
|
196
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarNavigation.CalendarNavigation, {
|
|
197
|
+
...StartCalendarNavigationProps
|
|
198
|
+
}),
|
|
199
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarWeekHeader.CalendarWeekHeader, {
|
|
200
|
+
...StartCalendarWeekHeaderProps
|
|
201
|
+
}),
|
|
202
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarDateGrid.CalendarDateGrid, {
|
|
203
|
+
...StartCalendarDataGridProps
|
|
204
|
+
})
|
|
205
|
+
]
|
|
206
|
+
}),
|
|
207
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Calendar.Calendar, {
|
|
208
|
+
selectionVariant: "range",
|
|
209
|
+
...EndCalendarProps,
|
|
210
|
+
children: [
|
|
211
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarNavigation.CalendarNavigation, {
|
|
212
|
+
...EndCalendarNavigationProps
|
|
213
|
+
}),
|
|
214
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarWeekHeader.CalendarWeekHeader, {
|
|
215
|
+
...EndCalendarWeekHeaderProps
|
|
216
|
+
}),
|
|
217
|
+
/* @__PURE__ */ jsxRuntime.jsx(CalendarDateGrid.CalendarDateGrid, {
|
|
218
|
+
...EndCalendarDataGridProps
|
|
219
|
+
})
|
|
220
|
+
]
|
|
221
|
+
})
|
|
222
|
+
]
|
|
223
|
+
})
|
|
224
|
+
})
|
|
225
|
+
]
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
exports.DatePickerRangePanel = DatePickerRangePanel;
|
|
230
|
+
//# sourceMappingURL=DatePickerRangePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePickerRangePanel.js","sources":["../src/date-picker/DatePickerRangePanel.tsx"],"sourcesContent":["import {\n type DateValue,\n endOfMonth,\n getLocalTimeZone,\n isSameMonth,\n startOfMonth,\n today,\n} from \"@internationalized/date\";\nimport {\n FlexItem,\n FlexLayout,\n FormFieldContext,\n type FormFieldContextValue,\n FormFieldHelperText,\n StackLayout,\n makePrefixer,\n useControlled,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport clsx from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type SyntheticEvent,\n forwardRef,\n useCallback,\n useState,\n} from \"react\";\nimport {\n Calendar,\n CalendarDateGrid,\n type CalendarDateGridProps,\n CalendarNavigation,\n type CalendarNavigationProps,\n type CalendarOffsetProps,\n type CalendarProps,\n type CalendarRangeProps,\n CalendarWeekHeader,\n type CalendarWeekHeaderProps,\n type DateRangeSelection,\n type UseCalendarSelectionRangeProps,\n getCurrentLocale,\n} from \"../calendar\";\nimport { useDatePickerContext } from \"./DatePickerContext\";\nimport datePickerPanelCss from \"./DatePickerPanel.css\";\n\n/**\n * Props for the DatePickerRangePanel component.\n * @template T - The type of the selected date range.\n */\nexport interface DatePickerRangePanelProps<T>\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Callback fired when a date range is selected.\n * @param event - The synthetic event.\n * @param selectedDate - The selected date range or null.\n */\n onSelect?: (event: SyntheticEvent, selectedDate?: T | null) => void;\n\n /**\n * Helper text to be displayed below the date picker.\n */\n helperText?: string;\n\n /**\n * The currently visible month for the start date.\n */\n startVisibleMonth?: DateValue;\n\n /**\n * The default visible month for the start date.\n */\n defaultStartVisibleMonth?: DateValue;\n\n /**\n * Callback fired when the visible month for the start date changes.\n * @param event - The synthetic event.\n * @param visibleMonth - The new visible month for the start date.\n */\n onStartVisibleMonthChange?: (\n event: SyntheticEvent,\n visibleMonth: DateValue,\n ) => void;\n\n /**\n * The currently visible month for the end date.\n */\n endVisibleMonth?: DateValue;\n\n /**\n * The default visible month for the end date.\n */\n defaultEndVisibleMonth?: DateValue;\n\n /**\n * Callback fired when the visible month for the end date changes.\n * @param event - The synthetic event.\n * @param visibleMonth - The new visible month for the end date.\n */\n onEndVisibleMonthChange?: (\n event: SyntheticEvent,\n visibleMonth: DateValue,\n ) => void;\n\n /**\n * Props to be passed to the start date CalendarNavigation component.\n */\n StartCalendarNavigationProps?: CalendarNavigationProps;\n\n /**\n * Props to be passed to the start date calendar component.\n */\n StartCalendarProps?: Partial<\n Omit<\n CalendarRangeProps | CalendarOffsetProps,\n | \"selectedDate\"\n | \"defaultSelectedDate\"\n | \"onSelectedDateChange\"\n | \"onVisibleMonthChange\"\n >\n >;\n /**\n * Props to be passed to the start date CalendarWeekHeader component.\n */\n StartCalendarWeekHeaderProps?: CalendarWeekHeaderProps;\n /**\n * Props to be passed to the start date CalendarDataGrid component.\n */\n StartCalendarDataGridProps?: CalendarDateGridProps;\n\n /**\n * Props to be passed to the end date CalendarNavigation component.\n */\n EndCalendarProps?: Partial<\n Omit<\n CalendarRangeProps,\n | \"selectedDate\"\n | \"defaultSelectedDate\"\n | \"onSelectedDateChange\"\n | \"onVisibleMonthChange\"\n >\n >;\n\n /**\n * Props to be passed to the end date CalendarNavigation component.\n */\n EndCalendarNavigationProps?: CalendarNavigationProps;\n /**\n * Props to be passed to the end date CalendarWeekHeader component.\n */\n EndCalendarWeekHeaderProps?: CalendarWeekHeaderProps;\n /**\n * Props to be passed to the end date CalendarDataGrid component.\n */\n EndCalendarDataGridProps?: CalendarDateGridProps;\n}\n\nfunction getFallbackVisibleMonths(\n selectedDate: DateRangeSelection | null,\n timeZone: string,\n) {\n const createConsecutiveRange = (date: DateValue) => [\n startOfMonth(date),\n startOfMonth(date).add({ months: 1 }),\n ];\n\n if (selectedDate?.startDate) {\n const { startDate, endDate } = selectedDate;\n if (endDate) {\n return isSameMonth(startDate, endDate)\n ? createConsecutiveRange(startDate)\n : [startOfMonth(startDate), startOfMonth(endDate)];\n }\n return createConsecutiveRange(startDate);\n }\n\n const currentMonth = startOfMonth(today(timeZone));\n return [currentMonth, currentMonth.add({ months: 1 })];\n}\n\nconst withBaseName = makePrefixer(\"saltDatePickerPanel\");\n\nexport const DatePickerRangePanel = forwardRef<\n HTMLDivElement,\n DatePickerRangePanelProps<DateRangeSelection>\n>(function DatePickerRangePanel(props, ref) {\n const {\n className,\n defaultStartVisibleMonth: defaultStartVisibleMonthProp,\n startVisibleMonth: startVisibleMonthProp,\n onStartVisibleMonthChange,\n defaultEndVisibleMonth: defaultEndVisibleMonthProp,\n endVisibleMonth: endVisibleMonthProp,\n onEndVisibleMonthChange,\n helperText,\n onSelect,\n StartCalendarProps: StartCalendarPropsProp,\n StartCalendarNavigationProps,\n StartCalendarWeekHeaderProps,\n StartCalendarDataGridProps,\n EndCalendarProps: EndCalendarPropsProp,\n EndCalendarNavigationProps,\n EndCalendarWeekHeaderProps,\n EndCalendarDataGridProps,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-date-picker-range-panel\",\n css: datePickerPanelCss,\n window: targetWindow,\n });\n\n const {\n state: {\n selectedDate,\n timeZone = getLocalTimeZone(),\n minDate = startOfMonth(today(timeZone)),\n maxDate = minDate.add({ months: 1 }),\n locale = getCurrentLocale(),\n },\n helpers: { setSelectedDate },\n } = useDatePickerContext({ selectionVariant: \"range\" });\n\n const [hoveredDate, setHoveredDate] = useState<DateValue | null>(null);\n\n const [[fallbackStartVisibleMonth, fallbackEndVisibleMonth]] = useState(() =>\n getFallbackVisibleMonths(selectedDate, timeZone),\n );\n\n const [startVisibleMonth, setStartVisibleMonth] = useControlled({\n controlled: startVisibleMonthProp,\n default: defaultStartVisibleMonthProp || fallbackStartVisibleMonth,\n name: \"DatePickerRangePanel\",\n state: \"startVisibleMonth\",\n });\n\n const [endVisibleMonth, setEndVisibleMonth] = useControlled({\n controlled: endVisibleMonthProp,\n default: defaultEndVisibleMonthProp || fallbackEndVisibleMonth,\n name: \"DatePickerRangePanel\",\n state: \"endVisibleMonth\",\n });\n\n const handleSelectedDateChange = useCallback(\n (event: SyntheticEvent, newDate: DateRangeSelection | null) => {\n setSelectedDate(newDate, { startDate: false, endDate: false });\n onSelect?.(event, newDate);\n },\n [onSelect, setSelectedDate],\n );\n\n const handleHoveredStartDateChange: CalendarProps[\"onHoveredDateChange\"] =\n useCallback(\n (event: SyntheticEvent, newHoveredDate: DateValue | null) => {\n setHoveredDate(newHoveredDate);\n if (newHoveredDate && StartCalendarPropsProp?.onHoveredDateChange) {\n StartCalendarPropsProp.onHoveredDateChange?.(event, newHoveredDate);\n }\n },\n [StartCalendarPropsProp?.onHoveredDateChange],\n );\n const handleHoveredEndDateChange = useCallback(\n (event: SyntheticEvent, newHoveredDate: DateValue | null) => {\n setHoveredDate(newHoveredDate);\n if (newHoveredDate && EndCalendarPropsProp?.onHoveredDateChange) {\n EndCalendarPropsProp.onHoveredDateChange(event, newHoveredDate);\n }\n },\n [EndCalendarPropsProp?.onHoveredDateChange],\n );\n\n const handleStartVisibleMonthChange = useCallback(\n (event: SyntheticEvent, newVisibleMonth: DateValue) => {\n setStartVisibleMonth(newVisibleMonth);\n if (newVisibleMonth.compare(endVisibleMonth) >= 0) {\n setEndVisibleMonth(newVisibleMonth.add({ months: 1 }));\n }\n onStartVisibleMonthChange?.(event, newVisibleMonth);\n },\n [endVisibleMonth, onStartVisibleMonthChange],\n );\n\n const handleEndVisibleMonthChange = useCallback(\n (event: SyntheticEvent, newVisibleMonth: DateValue) => {\n setEndVisibleMonth(newVisibleMonth);\n if (newVisibleMonth.compare(startVisibleMonth) <= 0) {\n setStartVisibleMonth(\n startOfMonth(newVisibleMonth.subtract({ months: 1 })),\n );\n }\n onEndVisibleMonthChange?.(event, newVisibleMonth);\n },\n [startVisibleMonth, onEndVisibleMonthChange],\n );\n\n function getHoveredDate(\n date?: DateValue | null,\n hoveredDate?: DateValue | null,\n ) {\n return date && hoveredDate && hoveredDate?.compare(endOfMonth(date)) > 0\n ? endOfMonth(date)\n : hoveredDate;\n }\n\n const StartCalendarProps = {\n visibleMonth: startVisibleMonth,\n hoveredDate: getHoveredDate(selectedDate?.startDate, hoveredDate),\n selectedDate: selectedDate as DateRangeSelection,\n onHoveredDateChange: handleHoveredStartDateChange,\n onVisibleMonthChange: handleStartVisibleMonthChange,\n onSelectedDateChange: handleSelectedDateChange,\n hideOutOfRangeDates: true,\n minDate,\n maxDate,\n locale,\n timeZone,\n ...StartCalendarPropsProp,\n } as Partial<UseCalendarSelectionRangeProps>;\n const EndCalendarProps = {\n visibleMonth: endVisibleMonth,\n hoveredDate,\n selectedDate: selectedDate as DateRangeSelection,\n onHoveredDateChange: handleHoveredEndDateChange,\n onVisibleMonthChange: handleEndVisibleMonthChange,\n onSelectedDateChange: handleSelectedDateChange,\n hideOutOfRangeDates: true,\n minDate,\n maxDate,\n locale,\n timeZone,\n ...EndCalendarPropsProp,\n } as Partial<UseCalendarSelectionRangeProps>;\n\n return (\n <StackLayout\n separators\n gap={0}\n className={clsx(className, withBaseName(\"container\"))}\n ref={ref}\n {...rest}\n >\n {helperText && (\n <FlexItem className={withBaseName(\"header\")}>\n <FormFieldHelperText>{helperText}</FormFieldHelperText>\n </FlexItem>\n )}\n <FlexLayout gap={0}>\n {/* Avoid Dropdowns in Calendar inheriting the FormField's state */}\n <FormFieldContext.Provider value={{} as FormFieldContextValue}>\n <Calendar selectionVariant={\"range\"} {...StartCalendarProps}>\n <CalendarNavigation {...StartCalendarNavigationProps} />\n <CalendarWeekHeader {...StartCalendarWeekHeaderProps} />\n <CalendarDateGrid {...StartCalendarDataGridProps} />\n </Calendar>\n <Calendar selectionVariant={\"range\"} {...EndCalendarProps}>\n <CalendarNavigation {...EndCalendarNavigationProps} />\n <CalendarWeekHeader {...EndCalendarWeekHeaderProps} />\n <CalendarDateGrid {...EndCalendarDataGridProps} />\n </Calendar>\n </FormFieldContext.Provider>\n </FlexLayout>\n </StackLayout>\n );\n});\n"],"names":["date","startOfMonth","isSameMonth","today","makePrefixer","forwardRef","DatePickerRangePanel","useWindow","useComponentCssInjection","datePickerPanelCss","getLocalTimeZone","getCurrentLocale","useDatePickerContext","useState","useControlled","useCallback","hoveredDate","endOfMonth","jsxs","StackLayout","clsx","jsx","FlexItem","FormFieldHelperText","FlexLayout","FormFieldContext","Calendar","CalendarNavigation","CalendarWeekHeader","CalendarDateGrid"],"mappings":"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"}
|