@salt-ds/lab 1.0.0-alpha.76 → 1.0.0-alpha.78
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/CHANGELOG.md +52 -0
- package/css/salt-lab.css +274 -79
- package/dist-cjs/app-header/AppHeader.js.map +1 -1
- package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
- package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
- package/dist-cjs/button-bar/ButtonBar.js.map +1 -1
- package/dist-cjs/button-bar/OrderedButton.js.map +1 -1
- package/dist-cjs/button-bar/internal/ButtonBarContext.js.map +1 -1
- package/dist-cjs/button-bar/internal/DescendantContext.js.map +1 -1
- package/dist-cjs/button-bar/internal/useDescendant.js.map +1 -1
- package/dist-cjs/button-bar/internal/useDescendants.js.map +1 -1
- package/dist-cjs/calendar/Calendar.css.js +1 -1
- package/dist-cjs/calendar/Calendar.js +11 -2
- package/dist-cjs/calendar/Calendar.js.map +1 -1
- package/dist-cjs/calendar/CalendarGrid.js +38 -36
- package/dist-cjs/calendar/CalendarGrid.js.map +1 -1
- package/dist-cjs/calendar/CalendarMonthHeader.js +1 -1
- package/dist-cjs/calendar/CalendarMonthHeader.js.map +1 -1
- package/dist-cjs/calendar/CalendarNavigation.css.js +1 -1
- package/dist-cjs/calendar/CalendarNavigation.js +20 -13
- package/dist-cjs/calendar/CalendarNavigation.js.map +1 -1
- package/dist-cjs/calendar/CalendarWeekHeader.css.js +1 -1
- package/dist-cjs/calendar/CalendarWeekHeader.js +1 -1
- package/dist-cjs/calendar/CalendarWeekHeader.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarContext.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-cjs/calendar/internal/CalendarDay.js +26 -36
- package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-cjs/calendar/internal/CalendarMonth.css.js +1 -1
- package/dist-cjs/calendar/internal/CalendarMonth.js +30 -9
- package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
- package/dist-cjs/calendar/internal/utils.js.map +1 -1
- package/dist-cjs/calendar/useCalendar.js +7 -9
- package/dist-cjs/calendar/useCalendar.js.map +1 -1
- package/dist-cjs/calendar/useCalendarDay.js +7 -11
- package/dist-cjs/calendar/useCalendarDay.js.map +1 -1
- package/dist-cjs/calendar/useCalendarSelection.js +144 -76
- package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/keydownHandlers.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/menuPositioning.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/stateUtils.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useMountedRef.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useRefsManager.js.map +1 -1
- package/dist-cjs/cascading-menu/internal/useStateReducer.js.map +1 -1
- package/dist-cjs/cascading-menu/stateChangeTypes.js.map +1 -1
- package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-cjs/color-chooser/Color.js.map +1 -1
- package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
- package/dist-cjs/color-chooser/ColorHelpers.js.map +1 -1
- package/dist-cjs/color-chooser/ColorPicker.js.map +1 -1
- package/dist-cjs/color-chooser/DictTabs.js.map +1 -1
- package/dist-cjs/color-chooser/GetColorPalettes.js.map +1 -1
- package/dist-cjs/color-chooser/HexInput.js.map +1 -1
- package/dist-cjs/color-chooser/RGBAInput.js.map +1 -1
- package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-cjs/color-chooser/Swatch.js.map +1 -1
- package/dist-cjs/color-chooser/Swatches.js.map +1 -1
- package/dist-cjs/color-chooser/SwatchesPicker.js.map +1 -1
- package/dist-cjs/color-chooser/color-utils.js.map +1 -1
- package/dist-cjs/color-chooser/colorMap.js.map +1 -1
- package/dist-cjs/color-chooser/createTabsMapping.js.map +1 -1
- package/dist-cjs/combo-box/ComboBox.js.map +1 -1
- package/dist-cjs/combo-box/useCombobox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
- package/dist-cjs/common-hooks/calcPreferredHeight.js.map +1 -1
- package/dist-cjs/common-hooks/collectionProvider.js.map +1 -1
- package/dist-cjs/common-hooks/itemToString.js.map +1 -1
- package/dist-cjs/common-hooks/keyUtils.js.map +1 -1
- package/dist-cjs/common-hooks/list-dom-utils.js.map +1 -1
- package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
- package/dist-cjs/common-hooks/useAutoSizer.js.map +1 -1
- package/dist-cjs/common-hooks/useCollapsibleGroups.js.map +1 -1
- package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
- package/dist-cjs/common-hooks/useImperativeScrollingAPI.js.map +1 -1
- package/dist-cjs/common-hooks/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
- package/dist-cjs/common-hooks/useSelection.js.map +1 -1
- package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
- package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-cjs/common-hooks/utils/collection-item-utils.js.map +1 -1
- package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-cjs/common-hooks/utils/isSelected.js.map +1 -1
- package/dist-cjs/contact-details/ContactAction.js.map +1 -1
- package/dist-cjs/contact-details/ContactActions.js.map +1 -1
- package/dist-cjs/contact-details/ContactAvatar.js.map +1 -1
- package/dist-cjs/contact-details/ContactDetails.js.map +1 -1
- package/dist-cjs/contact-details/ContactFavoriteToggle.js.map +1 -1
- package/dist-cjs/contact-details/ContactMetadata.js.map +1 -1
- package/dist-cjs/contact-details/ContactMetadataItem.js.map +1 -1
- package/dist-cjs/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-cjs/contact-details/ContactSecondaryInfo.js.map +1 -1
- package/dist-cjs/contact-details/ContactTertiaryInfo.js.map +1 -1
- package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-cjs/contact-details/internal/ContactDetailsContext.js.map +1 -1
- package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
- package/dist-cjs/contact-details/internal/StarIcon.js.map +1 -1
- package/dist-cjs/contact-details/internal/StarIconContainer.js.map +1 -1
- package/dist-cjs/contact-details/internal/useComponentSize.js.map +1 -1
- package/dist-cjs/content-status/ContentStatus.js.map +1 -1
- package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-cjs/date-input/DateInputRange.js +3 -2
- package/dist-cjs/date-input/DateInputRange.js.map +1 -1
- package/dist-cjs/date-input/DateInputSingle.js +5 -2
- package/dist-cjs/date-input/DateInputSingle.js.map +1 -1
- package/dist-cjs/date-picker/DatePicker.js +0 -2
- package/dist-cjs/date-picker/DatePicker.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerActions.js +1 -1
- package/dist-cjs/date-picker/DatePickerActions.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerHelperText.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerRangeGridPanel.js +2 -3
- package/dist-cjs/date-picker/DatePickerRangeGridPanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerRangeInput.js +22 -8
- package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerRangePanel.js +2 -4
- package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSingleGridPanel.js +2 -4
- package/dist-cjs/date-picker/DatePickerSingleGridPanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSingleInput.js +12 -7
- package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -1
- package/dist-cjs/date-picker/DatePickerTrigger.js.map +1 -1
- package/dist-cjs/date-picker/useDatePicker.js +0 -17
- package/dist-cjs/date-picker/useDatePicker.js.map +1 -1
- package/dist-cjs/date-picker/useFocusOut.js.map +1 -1
- package/dist-cjs/date-picker/useKeyboard.js.map +1 -1
- package/dist-cjs/deck-item/DeckItem.js.map +1 -1
- package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
- package/dist-cjs/dropdown/Dropdown.js.map +1 -1
- package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
- package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
- package/dist-cjs/dropdown/useClickAway.js.map +1 -1
- package/dist-cjs/dropdown/useDropdown.js.map +1 -1
- package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
- package/dist-cjs/editable-label/EditableLabel.js.map +1 -1
- package/dist-cjs/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
- package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormActivationIndicator.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormFieldLegacy.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
- package/dist-cjs/form-field-legacy/NecessityIndicator.js.map +1 -1
- package/dist-cjs/form-field-legacy/StatusIndicator.js.map +1 -1
- package/dist-cjs/form-field-legacy/constant.js.map +1 -1
- package/dist-cjs/form-group/FormGroup.js.map +1 -1
- package/dist-cjs/formatted-input/FormattedInput.js.map +1 -1
- package/dist-cjs/formatted-input/internal/InputWithMask.js.map +1 -1
- package/dist-cjs/input-legacy/InputLegacy.js.map +1 -1
- package/dist-cjs/input-legacy/StaticInputAdornment.js.map +1 -1
- package/dist-cjs/input-legacy/useCursorOnFocus.js.map +1 -1
- package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
- package/dist-cjs/list/Highlighter.js.map +1 -1
- package/dist-cjs/list/List.js.map +1 -1
- package/dist-cjs/list/ListItem.js.map +1 -1
- package/dist-cjs/list/ListItemGroup.js.map +1 -1
- package/dist-cjs/list/ListItemHeader.js.map +1 -1
- package/dist-cjs/list/VirtualizedList.js.map +1 -1
- package/dist-cjs/list/keyset.js.map +1 -1
- package/dist-cjs/list/useList.js.map +1 -1
- package/dist-cjs/list/useListHeight.js.map +1 -1
- package/dist-cjs/list/useVirtualization.js.map +1 -1
- package/dist-cjs/list-deprecated/List.js.map +1 -1
- package/dist-cjs/list-deprecated/ListBase.js.map +1 -1
- package/dist-cjs/list-deprecated/ListItem.js.map +1 -1
- package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-cjs/list-deprecated/ListItemContext.js.map +1 -1
- package/dist-cjs/list-deprecated/ListStateContext.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/DescendantContext.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/helpers.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/scrollIntoView.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/useListAutoSizer.js.map +1 -1
- package/dist-cjs/list-deprecated/internal/useWidth.js.map +1 -1
- package/dist-cjs/list-deprecated/itemToString.js.map +1 -1
- package/dist-cjs/list-deprecated/useList.js.map +1 -1
- package/dist-cjs/list-deprecated/useListItem.js.map +1 -1
- package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-cjs/list-next/ListItemNext.js.map +1 -1
- package/dist-cjs/list-next/ListNext.js.map +1 -1
- package/dist-cjs/list-next/ListNextContext.js.map +1 -1
- package/dist-cjs/list-next/useList.js.map +1 -1
- package/dist-cjs/localization-provider/LocalizationProvider.js.map +1 -1
- package/dist-cjs/logo/Logo.js.map +1 -1
- package/dist-cjs/logo/LogoImage.js.map +1 -1
- package/dist-cjs/logo/LogoSeparator.js.map +1 -1
- package/dist-cjs/menu-button/MenuButton.js.map +1 -1
- package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-cjs/metric/Metric.js.map +1 -1
- package/dist-cjs/metric/MetricContent.js.map +1 -1
- package/dist-cjs/metric/MetricHeader.js.map +1 -1
- package/dist-cjs/metric/internal/MetricContext.js.map +1 -1
- package/dist-cjs/number-input/NumberInput.js.map +1 -1
- package/dist-cjs/number-input/internal/useActivateWhileMouseDown.js.map +1 -1
- package/dist-cjs/number-input/internal/useCaret.js.map +1 -1
- package/dist-cjs/number-input/internal/useInterval.js.map +1 -1
- package/dist-cjs/number-input/internal/utils.js.map +1 -1
- package/dist-cjs/number-input/useNumberInput.js.map +1 -1
- package/dist-cjs/portal/Portal.js.map +1 -1
- package/dist-cjs/query-input/QueryInput.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryListContext.js.map +1 -1
- package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
- package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
- package/dist-cjs/query-input/internal/ValueSelector.js.map +1 -1
- package/dist-cjs/query-input/internal/usePopperStatus.js.map +1 -1
- package/dist-cjs/query-input/useQueryInput.js.map +1 -1
- package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
- package/dist-cjs/responsive/overflowUtils.js.map +1 -1
- package/dist-cjs/responsive/useDynamicCollapse.js.map +1 -1
- package/dist-cjs/responsive/useInstantCollapse.js.map +1 -1
- package/dist-cjs/responsive/useOverflow.js.map +1 -1
- package/dist-cjs/responsive/useOverflowCollectionItems.js.map +1 -1
- package/dist-cjs/responsive/useOverflowLayout.js.map +1 -1
- package/dist-cjs/responsive/useReclaimSpace.js.map +1 -1
- package/dist-cjs/responsive/useResizeObserver.js.map +1 -1
- package/dist-cjs/responsive/useWidth.js.map +1 -1
- package/dist-cjs/responsive/utils.js.map +1 -1
- package/dist-cjs/search-input/SearchInput.js.map +1 -1
- package/dist-cjs/static-list/StaticList.js.map +1 -1
- package/dist-cjs/static-list/StaticListItem.js.map +1 -1
- package/dist-cjs/static-list/StaticListItemContent.js.map +1 -1
- package/dist-cjs/system-status/SystemStatus.js.map +1 -1
- package/dist-cjs/system-status/SystemStatusActions.js.map +1 -1
- package/dist-cjs/system-status/SystemStatusContent.js.map +1 -1
- package/dist-cjs/table/TBody.js.map +1 -1
- package/dist-cjs/table/TD.js +6 -2
- package/dist-cjs/table/TD.js.map +1 -1
- package/dist-cjs/table/TFoot.js.map +1 -1
- package/dist-cjs/table/TH.js +6 -2
- package/dist-cjs/table/TH.js.map +1 -1
- package/dist-cjs/table/THead.js.map +1 -1
- package/dist-cjs/table/TR.js.map +1 -1
- package/dist-cjs/table/Table.css.js +1 -1
- package/dist-cjs/table/Table.js +2 -2
- package/dist-cjs/table/Table.js.map +1 -1
- package/dist-cjs/tabs/Tab.js.map +1 -1
- package/dist-cjs/tabs/TabActivationIndicator.js.map +1 -1
- package/dist-cjs/tabs/TabPanel.js.map +1 -1
- package/dist-cjs/tabs/Tabs.js.map +1 -1
- package/dist-cjs/tabs/Tabstrip.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/Draggable.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/drag-utils.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/dragDropTypes.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/useDragDrop.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
- package/dist-cjs/tabs/drag-drop/useDragSpacers.js.map +1 -1
- package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
- package/dist-cjs/tabs/useEditableItem.js.map +1 -1
- package/dist-cjs/tabs/useItemsWithIds.js.map +1 -1
- package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/tabs/useSelection.js.map +1 -1
- package/dist-cjs/tabs/useTabs.js.map +1 -1
- package/dist-cjs/tabs/useTabstrip.js.map +1 -1
- package/dist-cjs/tabs-next/TabBar.js.map +1 -1
- package/dist-cjs/tabs-next/TabListNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextAction.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextContext.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextPanel.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextTrigger.css.js +1 -1
- package/dist-cjs/tabs-next/TabNextTrigger.js.map +1 -1
- package/dist-cjs/tabs-next/TabOverflowList.js.map +1 -1
- package/dist-cjs/tabs-next/TabsNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabsNextContext.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useCollection.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useFocusOutside.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useOverflow.js.map +1 -1
- package/dist-cjs/tabs-next/hooks/useRestoreActiveTab.js.map +1 -1
- package/dist-cjs/toast-group/ToastGroup.js.map +1 -1
- package/dist-cjs/tokenized-input/TokenizedInput.js.map +1 -1
- package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/InputRuler.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/defaultItemToString.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/getCursorPosition.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/isPlainObject.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/useResizeObserver.js.map +1 -1
- package/dist-cjs/tokenized-input/internal/useWidth.js.map +1 -1
- package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
- package/dist-cjs/tokenized-input-next/internal/useWidth.js.map +1 -1
- package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
- package/dist-cjs/toolbar/Toolbar.js.map +1 -1
- package/dist-cjs/toolbar/ToolbarButton.js.map +1 -1
- package/dist-cjs/toolbar/Tooltray.js.map +1 -1
- package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
- package/dist-cjs/toolbar/toolbar-field/ToolbarField.js.map +1 -1
- package/dist-cjs/toolbar/toolbar-field/useToolbarField.js.map +1 -1
- package/dist-cjs/tree/Tree.js.map +1 -1
- package/dist-cjs/tree/TreeNode.js.map +1 -1
- package/dist-cjs/tree/use-tree-keyboard-navigation.js.map +1 -1
- package/dist-cjs/tree/useTree.js.map +1 -1
- package/dist-cjs/utils/escapeRegExp.js.map +1 -1
- package/dist-cjs/utils/forwardCallbackProps.js.map +1 -1
- package/dist-cjs/utils/isEmail.js.map +1 -1
- package/dist-cjs/utils/isPlainObject.js.map +1 -1
- package/dist-cjs/utils/partition.js.map +1 -1
- package/dist-cjs/utils/useClickOutside.js.map +1 -1
- package/dist-cjs/utils/useEventCallback.js.map +1 -1
- package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
- package/dist-cjs/utils/useLayoutEffectOnce.js.map +1 -1
- package/dist-cjs/utils/useLayoutEffectSkipFirst.js.map +1 -1
- package/dist-cjs/utils/useOverflowDetection.js.map +1 -1
- package/dist-cjs/utils/useSlideSelection.js.map +1 -1
- package/dist-cjs/window/ElectronWindow.js.map +1 -1
- package/dist-cjs/window/WindowContext.js.map +1 -1
- package/dist-cjs/window/desktop-utils.js.map +1 -1
- package/dist-es/app-header/AppHeader.js.map +1 -1
- package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
- package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
- package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
- package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
- package/dist-es/button-bar/ButtonBar.js.map +1 -1
- package/dist-es/button-bar/OrderedButton.js.map +1 -1
- package/dist-es/button-bar/internal/ButtonBarContext.js.map +1 -1
- package/dist-es/button-bar/internal/DescendantContext.js.map +1 -1
- package/dist-es/button-bar/internal/useDescendant.js.map +1 -1
- package/dist-es/button-bar/internal/useDescendants.js.map +1 -1
- package/dist-es/calendar/Calendar.css.js +1 -1
- package/dist-es/calendar/Calendar.js +12 -3
- package/dist-es/calendar/Calendar.js.map +1 -1
- package/dist-es/calendar/CalendarGrid.js +39 -37
- package/dist-es/calendar/CalendarGrid.js.map +1 -1
- package/dist-es/calendar/CalendarMonthHeader.js +1 -1
- package/dist-es/calendar/CalendarMonthHeader.js.map +1 -1
- package/dist-es/calendar/CalendarNavigation.css.js +1 -1
- package/dist-es/calendar/CalendarNavigation.js +21 -14
- package/dist-es/calendar/CalendarNavigation.js.map +1 -1
- package/dist-es/calendar/CalendarWeekHeader.css.js +1 -1
- package/dist-es/calendar/CalendarWeekHeader.js +2 -2
- package/dist-es/calendar/CalendarWeekHeader.js.map +1 -1
- package/dist-es/calendar/internal/CalendarContext.js.map +1 -1
- package/dist-es/calendar/internal/CalendarDay.css.js +1 -1
- package/dist-es/calendar/internal/CalendarDay.js +27 -37
- package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
- package/dist-es/calendar/internal/CalendarMonth.css.js +1 -1
- package/dist-es/calendar/internal/CalendarMonth.js +31 -10
- package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
- package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
- package/dist-es/calendar/internal/utils.js.map +1 -1
- package/dist-es/calendar/useCalendar.js +7 -9
- package/dist-es/calendar/useCalendar.js.map +1 -1
- package/dist-es/calendar/useCalendarDay.js +7 -11
- package/dist-es/calendar/useCalendarDay.js.map +1 -1
- package/dist-es/calendar/useCalendarSelection.js +144 -76
- package/dist-es/calendar/useCalendarSelection.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
- package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
- package/dist-es/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
- package/dist-es/cascading-menu/internal/keydownHandlers.js.map +1 -1
- package/dist-es/cascading-menu/internal/menuPositioning.js.map +1 -1
- package/dist-es/cascading-menu/internal/stateUtils.js.map +1 -1
- package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
- package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
- package/dist-es/cascading-menu/internal/useMountedRef.js.map +1 -1
- package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
- package/dist-es/cascading-menu/internal/useRefsManager.js.map +1 -1
- package/dist-es/cascading-menu/internal/useStateReducer.js.map +1 -1
- package/dist-es/cascading-menu/stateChangeTypes.js.map +1 -1
- package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
- package/dist-es/color-chooser/Color.js.map +1 -1
- package/dist-es/color-chooser/ColorChooser.js.map +1 -1
- package/dist-es/color-chooser/ColorHelpers.js.map +1 -1
- package/dist-es/color-chooser/ColorPicker.js.map +1 -1
- package/dist-es/color-chooser/DictTabs.js.map +1 -1
- package/dist-es/color-chooser/GetColorPalettes.js.map +1 -1
- package/dist-es/color-chooser/HexInput.js.map +1 -1
- package/dist-es/color-chooser/RGBAInput.js.map +1 -1
- package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
- package/dist-es/color-chooser/Swatch.js.map +1 -1
- package/dist-es/color-chooser/Swatches.js.map +1 -1
- package/dist-es/color-chooser/SwatchesPicker.js.map +1 -1
- package/dist-es/color-chooser/color-utils.js.map +1 -1
- package/dist-es/color-chooser/colorMap.js.map +1 -1
- package/dist-es/color-chooser/createTabsMapping.js.map +1 -1
- package/dist-es/combo-box/ComboBox.js.map +1 -1
- package/dist-es/combo-box/useCombobox.js.map +1 -1
- package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
- package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
- package/dist-es/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
- package/dist-es/common-hooks/calcPreferredHeight.js.map +1 -1
- package/dist-es/common-hooks/collectionProvider.js.map +1 -1
- package/dist-es/common-hooks/itemToString.js.map +1 -1
- package/dist-es/common-hooks/keyUtils.js.map +1 -1
- package/dist-es/common-hooks/list-dom-utils.js.map +1 -1
- package/dist-es/common-hooks/selectionTypes.js.map +1 -1
- package/dist-es/common-hooks/useAutoSizer.js.map +1 -1
- package/dist-es/common-hooks/useCollapsibleGroups.js.map +1 -1
- package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
- package/dist-es/common-hooks/useImperativeScrollingAPI.js.map +1 -1
- package/dist-es/common-hooks/useKeyboardNavigation.js.map +1 -1
- package/dist-es/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
- package/dist-es/common-hooks/useSelection.js.map +1 -1
- package/dist-es/common-hooks/useTypeahead.js.map +1 -1
- package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
- package/dist-es/common-hooks/utils/collection-item-utils.js.map +1 -1
- package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
- package/dist-es/common-hooks/utils/isSelected.js.map +1 -1
- package/dist-es/contact-details/ContactAction.js.map +1 -1
- package/dist-es/contact-details/ContactActions.js.map +1 -1
- package/dist-es/contact-details/ContactAvatar.js.map +1 -1
- package/dist-es/contact-details/ContactDetails.js.map +1 -1
- package/dist-es/contact-details/ContactFavoriteToggle.js.map +1 -1
- package/dist-es/contact-details/ContactMetadata.js.map +1 -1
- package/dist-es/contact-details/ContactMetadataItem.js.map +1 -1
- package/dist-es/contact-details/ContactPrimaryInfo.js.map +1 -1
- package/dist-es/contact-details/ContactSecondaryInfo.js.map +1 -1
- package/dist-es/contact-details/ContactTertiaryInfo.js.map +1 -1
- package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
- package/dist-es/contact-details/internal/ContactDetailsContext.js.map +1 -1
- package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
- package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
- package/dist-es/contact-details/internal/StarIcon.js.map +1 -1
- package/dist-es/contact-details/internal/StarIconContainer.js.map +1 -1
- package/dist-es/contact-details/internal/useComponentSize.js.map +1 -1
- package/dist-es/content-status/ContentStatus.js.map +1 -1
- package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
- package/dist-es/date-input/DateInputRange.js +3 -2
- package/dist-es/date-input/DateInputRange.js.map +1 -1
- package/dist-es/date-input/DateInputSingle.js +5 -2
- package/dist-es/date-input/DateInputSingle.js.map +1 -1
- package/dist-es/date-picker/DatePicker.js +0 -2
- package/dist-es/date-picker/DatePicker.js.map +1 -1
- package/dist-es/date-picker/DatePickerActions.js +1 -1
- package/dist-es/date-picker/DatePickerActions.js.map +1 -1
- package/dist-es/date-picker/DatePickerContext.js.map +1 -1
- package/dist-es/date-picker/DatePickerHelperText.js.map +1 -1
- package/dist-es/date-picker/DatePickerOverlay.js.map +1 -1
- package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
- package/dist-es/date-picker/DatePickerRangeGridPanel.js +2 -3
- package/dist-es/date-picker/DatePickerRangeGridPanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerRangeInput.js +22 -8
- package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
- package/dist-es/date-picker/DatePickerRangePanel.js +2 -4
- package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerSingleGridPanel.js +2 -4
- package/dist-es/date-picker/DatePickerSingleGridPanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerSingleInput.js +12 -7
- package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
- package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -1
- package/dist-es/date-picker/DatePickerTrigger.js.map +1 -1
- package/dist-es/date-picker/useDatePicker.js +0 -17
- package/dist-es/date-picker/useDatePicker.js.map +1 -1
- package/dist-es/date-picker/useFocusOut.js.map +1 -1
- package/dist-es/date-picker/useKeyboard.js.map +1 -1
- package/dist-es/deck-item/DeckItem.js.map +1 -1
- package/dist-es/deck-layout/DeckLayout.js.map +1 -1
- package/dist-es/dropdown/Dropdown.js.map +1 -1
- package/dist-es/dropdown/DropdownBase.js.map +1 -1
- package/dist-es/dropdown/DropdownButton.js.map +1 -1
- package/dist-es/dropdown/useClickAway.js.map +1 -1
- package/dist-es/dropdown/useDropdown.js.map +1 -1
- package/dist-es/dropdown/useDropdownBase.js.map +1 -1
- package/dist-es/editable-label/EditableLabel.js.map +1 -1
- package/dist-es/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
- package/dist-es/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
- package/dist-es/form-field-legacy/FormActivationIndicator.js.map +1 -1
- package/dist-es/form-field-legacy/FormFieldLegacy.js.map +1 -1
- package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
- package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
- package/dist-es/form-field-legacy/NecessityIndicator.js.map +1 -1
- package/dist-es/form-field-legacy/StatusIndicator.js.map +1 -1
- package/dist-es/form-field-legacy/constant.js.map +1 -1
- package/dist-es/form-group/FormGroup.js.map +1 -1
- package/dist-es/formatted-input/FormattedInput.js.map +1 -1
- package/dist-es/formatted-input/internal/InputWithMask.js.map +1 -1
- package/dist-es/input-legacy/InputLegacy.js.map +1 -1
- package/dist-es/input-legacy/StaticInputAdornment.js.map +1 -1
- package/dist-es/input-legacy/useCursorOnFocus.js.map +1 -1
- package/dist-es/layer-layout/LayerLayout.js.map +1 -1
- package/dist-es/list/Highlighter.js.map +1 -1
- package/dist-es/list/List.js.map +1 -1
- package/dist-es/list/ListItem.js.map +1 -1
- package/dist-es/list/ListItemGroup.js.map +1 -1
- package/dist-es/list/ListItemHeader.js.map +1 -1
- package/dist-es/list/VirtualizedList.js.map +1 -1
- package/dist-es/list/keyset.js.map +1 -1
- package/dist-es/list/useList.js.map +1 -1
- package/dist-es/list/useListHeight.js.map +1 -1
- package/dist-es/list/useVirtualization.js.map +1 -1
- package/dist-es/list-deprecated/List.js.map +1 -1
- package/dist-es/list-deprecated/ListBase.js.map +1 -1
- package/dist-es/list-deprecated/ListItem.js.map +1 -1
- package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
- package/dist-es/list-deprecated/ListItemContext.js.map +1 -1
- package/dist-es/list-deprecated/ListStateContext.js.map +1 -1
- package/dist-es/list-deprecated/internal/DescendantContext.js.map +1 -1
- package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
- package/dist-es/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
- package/dist-es/list-deprecated/internal/helpers.js.map +1 -1
- package/dist-es/list-deprecated/internal/scrollIntoView.js.map +1 -1
- package/dist-es/list-deprecated/internal/useListAutoSizer.js.map +1 -1
- package/dist-es/list-deprecated/internal/useWidth.js.map +1 -1
- package/dist-es/list-deprecated/itemToString.js.map +1 -1
- package/dist-es/list-deprecated/useList.js.map +1 -1
- package/dist-es/list-deprecated/useListItem.js.map +1 -1
- package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
- package/dist-es/list-next/ListItemNext.js.map +1 -1
- package/dist-es/list-next/ListNext.js.map +1 -1
- package/dist-es/list-next/ListNextContext.js.map +1 -1
- package/dist-es/list-next/useList.js.map +1 -1
- package/dist-es/localization-provider/LocalizationProvider.js.map +1 -1
- package/dist-es/logo/Logo.js.map +1 -1
- package/dist-es/logo/LogoImage.js.map +1 -1
- package/dist-es/logo/LogoSeparator.js.map +1 -1
- package/dist-es/menu-button/MenuButton.js.map +1 -1
- package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
- package/dist-es/metric/Metric.js.map +1 -1
- package/dist-es/metric/MetricContent.js.map +1 -1
- package/dist-es/metric/MetricHeader.js.map +1 -1
- package/dist-es/metric/internal/MetricContext.js.map +1 -1
- package/dist-es/number-input/NumberInput.js.map +1 -1
- package/dist-es/number-input/internal/useActivateWhileMouseDown.js.map +1 -1
- package/dist-es/number-input/internal/useCaret.js.map +1 -1
- package/dist-es/number-input/internal/useInterval.js.map +1 -1
- package/dist-es/number-input/internal/utils.js.map +1 -1
- package/dist-es/number-input/useNumberInput.js.map +1 -1
- package/dist-es/portal/Portal.js.map +1 -1
- package/dist-es/query-input/QueryInput.js.map +1 -1
- package/dist-es/query-input/internal/CategoryList.js.map +1 -1
- package/dist-es/query-input/internal/CategoryListContext.js.map +1 -1
- package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
- package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-es/query-input/internal/SearchList.js.map +1 -1
- package/dist-es/query-input/internal/ValueList.js.map +1 -1
- package/dist-es/query-input/internal/ValueSelector.js.map +1 -1
- package/dist-es/query-input/internal/usePopperStatus.js.map +1 -1
- package/dist-es/query-input/useQueryInput.js.map +1 -1
- package/dist-es/responsive/OverflowReducer.js.map +1 -1
- package/dist-es/responsive/overflowUtils.js.map +1 -1
- package/dist-es/responsive/useDynamicCollapse.js.map +1 -1
- package/dist-es/responsive/useInstantCollapse.js.map +1 -1
- package/dist-es/responsive/useOverflow.js.map +1 -1
- package/dist-es/responsive/useOverflowCollectionItems.js.map +1 -1
- package/dist-es/responsive/useOverflowLayout.js.map +1 -1
- package/dist-es/responsive/useReclaimSpace.js.map +1 -1
- package/dist-es/responsive/useResizeObserver.js.map +1 -1
- package/dist-es/responsive/useWidth.js.map +1 -1
- package/dist-es/responsive/utils.js.map +1 -1
- package/dist-es/search-input/SearchInput.js.map +1 -1
- package/dist-es/static-list/StaticList.js.map +1 -1
- package/dist-es/static-list/StaticListItem.js.map +1 -1
- package/dist-es/static-list/StaticListItemContent.js.map +1 -1
- package/dist-es/system-status/SystemStatus.js.map +1 -1
- package/dist-es/system-status/SystemStatusActions.js.map +1 -1
- package/dist-es/system-status/SystemStatusContent.js.map +1 -1
- package/dist-es/table/TBody.js.map +1 -1
- package/dist-es/table/TD.js +6 -2
- package/dist-es/table/TD.js.map +1 -1
- package/dist-es/table/TFoot.js.map +1 -1
- package/dist-es/table/TH.js +6 -2
- package/dist-es/table/TH.js.map +1 -1
- package/dist-es/table/THead.js.map +1 -1
- package/dist-es/table/TR.js.map +1 -1
- package/dist-es/table/Table.css.js +1 -1
- package/dist-es/table/Table.js +2 -2
- package/dist-es/table/Table.js.map +1 -1
- package/dist-es/tabs/Tab.js.map +1 -1
- package/dist-es/tabs/TabActivationIndicator.js.map +1 -1
- package/dist-es/tabs/TabPanel.js.map +1 -1
- package/dist-es/tabs/Tabs.js.map +1 -1
- package/dist-es/tabs/Tabstrip.js.map +1 -1
- package/dist-es/tabs/drag-drop/Draggable.js.map +1 -1
- package/dist-es/tabs/drag-drop/drag-utils.js.map +1 -1
- package/dist-es/tabs/drag-drop/dragDropTypes.js.map +1 -1
- package/dist-es/tabs/drag-drop/useDragDrop.js.map +1 -1
- package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
- package/dist-es/tabs/drag-drop/useDragSpacers.js.map +1 -1
- package/dist-es/tabs/useActivationIndicator.js.map +1 -1
- package/dist-es/tabs/useEditableItem.js.map +1 -1
- package/dist-es/tabs/useItemsWithIds.js.map +1 -1
- package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
- package/dist-es/tabs/useSelection.js.map +1 -1
- package/dist-es/tabs/useTabs.js.map +1 -1
- package/dist-es/tabs/useTabstrip.js.map +1 -1
- package/dist-es/tabs-next/TabBar.js.map +1 -1
- package/dist-es/tabs-next/TabListNext.js.map +1 -1
- package/dist-es/tabs-next/TabNext.js.map +1 -1
- package/dist-es/tabs-next/TabNextAction.js.map +1 -1
- package/dist-es/tabs-next/TabNextContext.js.map +1 -1
- package/dist-es/tabs-next/TabNextPanel.js.map +1 -1
- package/dist-es/tabs-next/TabNextTrigger.css.js +1 -1
- package/dist-es/tabs-next/TabNextTrigger.js.map +1 -1
- package/dist-es/tabs-next/TabOverflowList.js.map +1 -1
- package/dist-es/tabs-next/TabsNext.js.map +1 -1
- package/dist-es/tabs-next/TabsNextContext.js.map +1 -1
- package/dist-es/tabs-next/hooks/useCollection.js.map +1 -1
- package/dist-es/tabs-next/hooks/useFocusOutside.js.map +1 -1
- package/dist-es/tabs-next/hooks/useOverflow.js.map +1 -1
- package/dist-es/tabs-next/hooks/useRestoreActiveTab.js.map +1 -1
- package/dist-es/toast-group/ToastGroup.js.map +1 -1
- package/dist-es/tokenized-input/TokenizedInput.js.map +1 -1
- package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
- package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
- package/dist-es/tokenized-input/internal/InputRuler.js.map +1 -1
- package/dist-es/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-es/tokenized-input/internal/defaultItemToString.js.map +1 -1
- package/dist-es/tokenized-input/internal/getCursorPosition.js.map +1 -1
- package/dist-es/tokenized-input/internal/isPlainObject.js.map +1 -1
- package/dist-es/tokenized-input/internal/useResizeObserver.js.map +1 -1
- package/dist-es/tokenized-input/internal/useWidth.js.map +1 -1
- package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
- package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
- package/dist-es/tokenized-input-next/internal/useWidth.js.map +1 -1
- package/dist-es/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
- package/dist-es/toolbar/Toolbar.js.map +1 -1
- package/dist-es/toolbar/ToolbarButton.js.map +1 -1
- package/dist-es/toolbar/Tooltray.js.map +1 -1
- package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
- package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
- package/dist-es/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
- package/dist-es/toolbar/toolbar-field/ToolbarField.js.map +1 -1
- package/dist-es/toolbar/toolbar-field/useToolbarField.js.map +1 -1
- package/dist-es/tree/Tree.js.map +1 -1
- package/dist-es/tree/TreeNode.js.map +1 -1
- package/dist-es/tree/use-tree-keyboard-navigation.js.map +1 -1
- package/dist-es/tree/useTree.js.map +1 -1
- package/dist-es/utils/escapeRegExp.js.map +1 -1
- package/dist-es/utils/forwardCallbackProps.js.map +1 -1
- package/dist-es/utils/isEmail.js.map +1 -1
- package/dist-es/utils/isPlainObject.js.map +1 -1
- package/dist-es/utils/partition.js.map +1 -1
- package/dist-es/utils/useClickOutside.js.map +1 -1
- package/dist-es/utils/useEventCallback.js.map +1 -1
- package/dist-es/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
- package/dist-es/utils/useLayoutEffectOnce.js.map +1 -1
- package/dist-es/utils/useLayoutEffectSkipFirst.js.map +1 -1
- package/dist-es/utils/useOverflowDetection.js.map +1 -1
- package/dist-es/utils/useSlideSelection.js.map +1 -1
- package/dist-es/window/ElectronWindow.js.map +1 -1
- package/dist-es/window/WindowContext.js.map +1 -1
- package/dist-es/window/desktop-utils.js.map +1 -1
- package/dist-types/calendar/useCalendar.d.ts +26 -25
- package/dist-types/calendar/useCalendarDay.d.ts +1 -5
- package/dist-types/calendar/useCalendarSelection.d.ts +14 -11
- package/dist-types/date-picker/DatePickerContext.d.ts +0 -6
- package/dist-types/date-picker/DatePickerRangeGridPanel.d.ts +2 -2
- package/dist-types/date-picker/DatePickerRangePanel.d.ts +4 -4
- package/dist-types/date-picker/DatePickerSingleGridPanel.d.ts +2 -2
- package/dist-types/date-picker/useDatePicker.d.ts +0 -6
- package/dist-types/table/TD.d.ts +6 -0
- package/dist-types/table/TH.d.ts +6 -0
- package/dist-types/table/Table.d.ts +3 -3
- package/package.json +2 -2
|
@@ -7,7 +7,6 @@ var useCalendarSelection = require('./useCalendarSelection.js');
|
|
|
7
7
|
|
|
8
8
|
const defaultIsDayUnselectable = () => false;
|
|
9
9
|
const defaultIsDayHighlighted = () => false;
|
|
10
|
-
const defaultIsDayDisabled = () => false;
|
|
11
10
|
function useCalendar(props) {
|
|
12
11
|
var _a;
|
|
13
12
|
const {
|
|
@@ -22,7 +21,6 @@ function useCalendar(props) {
|
|
|
22
21
|
hoveredDate,
|
|
23
22
|
focusedDate: focusedDateProp,
|
|
24
23
|
focusedDateRef,
|
|
25
|
-
isDayDisabled = defaultIsDayDisabled,
|
|
26
24
|
isDayHighlighted = defaultIsDayHighlighted,
|
|
27
25
|
isDayUnselectable = defaultIsDayUnselectable,
|
|
28
26
|
multiselect,
|
|
@@ -43,7 +41,10 @@ function useCalendar(props) {
|
|
|
43
41
|
const { matchedBreakpoints } = core.useBreakpoint();
|
|
44
42
|
const responsiveNumberOfVisibleMonths = core.resolveResponsiveValue(numberOfVisibleMonths, matchedBreakpoints) ?? 1;
|
|
45
43
|
const [visibleMonth, setVisibleMonthState] = core.useControlled({
|
|
46
|
-
controlled:
|
|
44
|
+
controlled: react.useMemo(
|
|
45
|
+
() => visibleMonthProp ? dateAdapter.startOf(visibleMonthProp, "month") : void 0,
|
|
46
|
+
[visibleMonthProp]
|
|
47
|
+
),
|
|
47
48
|
// biome-ignore lint/correctness/useExhaustiveDependencies: just on mount
|
|
48
49
|
default: react.useMemo(
|
|
49
50
|
() => dateAdapter.startOf(defaultVisibleMonth, "month"),
|
|
@@ -75,8 +76,8 @@ function useCalendar(props) {
|
|
|
75
76
|
[dateAdapter, minDate, maxDate]
|
|
76
77
|
);
|
|
77
78
|
const isDaySelectable = react.useCallback(
|
|
78
|
-
(date) => !(date && (isDayUnselectable(date) ||
|
|
79
|
-
[isDayUnselectable,
|
|
79
|
+
(date) => !(date && (isDayUnselectable(date) || isOutsideAllowedDates(date))),
|
|
80
|
+
[isDayUnselectable, isOutsideAllowedDates]
|
|
80
81
|
);
|
|
81
82
|
const isDayVisible = react.useCallback(
|
|
82
83
|
(date) => {
|
|
@@ -116,7 +117,7 @@ function useCalendar(props) {
|
|
|
116
117
|
react.useEffect(() => {
|
|
117
118
|
var _a2;
|
|
118
119
|
const focusedDate = (_a2 = selectionManager == null ? void 0 : selectionManager.state) == null ? void 0 : _a2.focusedDate;
|
|
119
|
-
const shouldTransition = focusedDate && !focusedDateProp !== void 0 && !isDayVisible(focusedDate) &&
|
|
120
|
+
const shouldTransition = focusedDate && !focusedDateProp !== void 0 && !isDayVisible(focusedDate) && !isOutsideAllowedDates(focusedDate);
|
|
120
121
|
if (shouldTransition) {
|
|
121
122
|
setVisibleMonth(null, dateAdapter.startOf(focusedDate, "month"));
|
|
122
123
|
}
|
|
@@ -124,7 +125,6 @@ function useCalendar(props) {
|
|
|
124
125
|
dateAdapter,
|
|
125
126
|
focusedDateProp,
|
|
126
127
|
isOutsideAllowedDates,
|
|
127
|
-
isDaySelectable,
|
|
128
128
|
(_a = selectionManager == null ? void 0 : selectionManager.state) == null ? void 0 : _a.focusedDate
|
|
129
129
|
]);
|
|
130
130
|
const setVisibleMonth = react.useCallback(
|
|
@@ -151,7 +151,6 @@ function useCalendar(props) {
|
|
|
151
151
|
setVisibleMonth,
|
|
152
152
|
isDayUnselectable,
|
|
153
153
|
isDayHighlighted,
|
|
154
|
-
isDayDisabled,
|
|
155
154
|
isDayVisible,
|
|
156
155
|
isOutsideAllowedDates,
|
|
157
156
|
isOutsideAllowedMonths,
|
|
@@ -170,7 +169,6 @@ function useCalendar(props) {
|
|
|
170
169
|
setVisibleMonth,
|
|
171
170
|
isDayUnselectable,
|
|
172
171
|
isDayHighlighted,
|
|
173
|
-
isDayDisabled,
|
|
174
172
|
isDayVisible,
|
|
175
173
|
isOutsideAllowedDates,
|
|
176
174
|
isOutsideAllowedMonths,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCalendar.js","sources":["../src/calendar/useCalendar.ts"],"sourcesContent":["import {\n type ResponsiveProp,\n resolveResponsiveValue,\n useBreakpoint,\n useControlled,\n} from \"@salt-ds/core\";\nimport type { DateFrameworkType, Timezone } from \"@salt-ds/date-adapters\";\nimport { type SyntheticEvent, useCallback, useEffect, useMemo } from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport {\n type UseCalendarSelectionBaseProps,\n type UseCalendarSelectionMultiselectOffsetProps,\n type UseCalendarSelectionMultiselectRangeProps,\n type UseCalendarSelectionMultiselectSingleProps,\n type UseCalendarSelectionOffsetProps,\n type UseCalendarSelectionProps,\n type UseCalendarSelectionRangeProps,\n type UseCalendarSelectionSingleProps,\n useCalendarSelection,\n} from \"./useCalendarSelection\";\n\n/**\n * Base properties for the UseCalendar hook.\n * @template TDate - The type of the date object.\n */\ninterface UseCalendarBaseProps<TDate>\n extends UseCalendarSelectionBaseProps<TDate> {\n /**\n * The default visible month.\n */\n defaultVisibleMonth?: TDate;\n /**\n * Callback fired when the visible month changes.\n * @param event - The synthetic event or null if triggered by code.\n * @param visibleMonth - The new visible month.\n */\n onVisibleMonthChange?: (\n event: SyntheticEvent | null,\n visibleMonth: TDate,\n ) => void;\n /**\n * Function to determine if a day is unselectable.\n * @param date - The date to check.\n * @returns A string reason if the day is unselectable, otherwise `false` or `undefined`.\n */\n isDayUnselectable?: (date: TDate) => string | false | undefined;\n /**\n * Function to determine if a day is highlighted.\n * @param date - The date to check.\n * @returns A string reason if the day is highlighted, otherwise `false` or `undefined`.\n */\n isDayHighlighted?: (date: TDate) => string | false | undefined;\n /**\n * Function to determine if a day is disabled.\n * @param date - The date to check.\n * @returns A string reason if the day is disabled, otherwise `false` or `undefined`.\n */\n isDayDisabled?: (date: TDate) => string | false | undefined;\n /**\n * If `true`, hides dates that are out of the selectable range.\n */\n hideOutOfRangeDates?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: TDate;\n /**\n * The maximum selectable date.\n */\n maxDate?: TDate;\n /**\n * Number of visible months, maximum 12, defaults to 1.\n */\n numberOfVisibleMonths?: ResponsiveProp<\n 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12\n >;\n /**\n * If `true`, the calendar will be multiselect.\n */\n multiselect?: boolean;\n}\n\n/**\n * UseCalendar hook props for a single date selection.\n */\nexport interface UseCalendarSingleProps<TDate extends DateFrameworkType>\n extends UseCalendarSelectionSingleProps<TDate>,\n UseCalendarBaseProps<TDate> {}\n\n/**\n * UseCalendar hook props for a multi-select, single date selection.\n */\nexport interface UseCalendarMultiselectSingleProps<\n TDate extends DateFrameworkType,\n> extends UseCalendarSelectionMultiselectSingleProps<TDate>,\n Omit<UseCalendarBaseProps<TDate>, \"multiselect\"> {}\n\n/**\n * UseCalendar hook props for a date range selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarRangeProps<TDate extends DateFrameworkType>\n extends UseCalendarSelectionRangeProps<TDate>,\n UseCalendarBaseProps<TDate> {}\n\n/**\n * UseCalendar hook props for a multi-select, date range selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarMultiselectRangeProps<\n TDate extends DateFrameworkType,\n> extends UseCalendarSelectionMultiselectRangeProps<TDate>,\n Omit<UseCalendarBaseProps<TDate>, \"multiselect\"> {}\n\n/**\n * UseCalendar hook props for an offset date selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarOffsetProps<TDate extends DateFrameworkType>\n extends UseCalendarSelectionOffsetProps<TDate>,\n UseCalendarBaseProps<TDate> {}\n\n/**\n * UseCalendar hook props for a multi-select, offset selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarMultiselectOffsetProps<\n TDate extends DateFrameworkType,\n> extends UseCalendarSelectionMultiselectOffsetProps<TDate>,\n Omit<UseCalendarBaseProps<TDate>, \"multiselect\"> {}\n\n/**\n * UseCalendar hook props, wth the selection variant determining the return type of the date selection\n * @template TDate - The type of the date object.\n */\nexport type UseCalendarProps<TDate extends DateFrameworkType> =\n | UseCalendarSingleProps<TDate>\n | UseCalendarMultiselectSingleProps<TDate>\n | UseCalendarRangeProps<TDate>\n | UseCalendarMultiselectRangeProps<TDate>\n | UseCalendarOffsetProps<TDate>\n | UseCalendarMultiselectOffsetProps<TDate>;\n\n/**\n * Default function to determine if a day is unselectable.\n * @returns `false` indicating the day is selectable.\n */\nconst defaultIsDayUnselectable = (): string | false => false;\n\n/**\n * Default function to determine if a day is highlighted.\n * @returns `false` indicating the day is not highlighted.\n */\nconst defaultIsDayHighlighted = (): string | false => false;\n\n/**\n * Default function to determine if a day is disabled.\n * @returns `false` indicating the day is not disabled.\n */\nconst defaultIsDayDisabled = (): false => false;\n\n/**\n * Represents the return type of the useCalendar hook.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarReturn<TDate extends DateFrameworkType> {\n /**\n * The state of the calendar.\n */\n state: {\n /**\n * The currently visible month in the calendar.\n */\n visibleMonth: TDate;\n\n /**\n * The currently focused date in the calendar, or null if no date is focused.\n */\n focusedDate: TDate | null;\n\n /**\n * Focusable dates based on current state\n */\n focusableDates: TDate[];\n\n /**\n * The minimum selectable date in the calendar.\n */\n minDate: TDate;\n\n /**\n * The maximum selectable date in the calendar.\n */\n maxDate: TDate;\n\n /**\n * The selection variant of the calendar, indicating the type of selection allowed.\n */\n selectionVariant: \"single\" | \"range\" | \"offset\";\n\n /**\n * Whether to hide dates that are out of the selectable range.\n */\n hideOutOfRangeDates?: boolean;\n\n /**\n * Number of visible months\n */\n numberOfVisibleMonths: number;\n /**\n * Specifies the timezone behavior:\n * - If undefined, the timezone will be derived from the passed date, or from `defaultSelectedDate`/`selectedDate`.\n * - If set to \"default\", the default timezone of the date library will be used.\n * - If set to \"system\", the local system's timezone will be applied.\n * - If set to \"UTC\", the time will be returned in UTC.\n * - If set to a valid IANA timezone identifier, the time will be returned for that specific timezone.\n */\n timezone?: Timezone;\n /**\n * Additional state properties from selectionManager.state.\n */\n // biome-ignore lint/suspicious/noExplicitAny: user defined\n [key: string]: any; // Use a more specific type if possible\n };\n\n /**\n * Helper functions for interacting with the calendar.\n */\n helpers: {\n /**\n * Sets the visible month in the calendar.\n *\n * @param event - The synthetic event or null if triggered by code.\n * @param newVisibleMonth - The new visible month to set.\n */\n setVisibleMonth: (\n event: SyntheticEvent | null,\n newVisibleMonth: TDate,\n ) => void;\n\n /**\n * Sets the focused date in the calendar.\n *\n * @param event - The synthetic event or null if triggered by code.\n * @param date - The new date to focus.\n */\n setFocusedDate: (event: SyntheticEvent | null, date: TDate | null) => void;\n\n /**\n * Determines if a day is unselectable.\n *\n * @param date - The date to check.\n * @returns A string reason if the day is unselectable, otherwise `false` or `undefined`.\n */\n isDayUnselectable: (date: TDate) => string | false | undefined;\n\n /**\n * Determines if a day is highlighted.\n *\n * @param date - The date to check.\n * @returns A string reason if the day is highlighted, otherwise `false` or `undefined`.\n */\n isDayHighlighted: (date: TDate) => string | false | undefined;\n\n /**\n * Determines if a day is disabled.\n *\n * @param date - The date to check.\n * @returns A string reason if the day is disabled, otherwise `false` or `undefined`.\n */\n isDayDisabled: (date: TDate) => string | false | undefined;\n\n /**\n * Determines if a day is visible in the calendar.\n *\n * @param date - The date to check.\n * @returns `true` if the day is visible, otherwise `false`.\n */\n isDayVisible: (date: TDate) => boolean;\n\n /**\n * Determines if a date is outside the allowed date range.\n *\n * @param date - The date to check.\n * @returns `true` if the date is outside the allowed range, otherwise `false`.\n */\n isOutsideAllowedDates: (date: TDate) => boolean;\n\n /**\n * Determines if a month is outside the allowed range.\n *\n * @param date - The date to check.\n * @returns `true` if the month is outside the allowed range, otherwise `false`.\n */\n isOutsideAllowedMonths: (date: TDate) => boolean;\n\n /**\n * Determines if a year is outside the allowed range.\n *\n * @param date - The date to check.\n * @returns `true` if the year is outside the allowed range, otherwise `false`.\n */\n isOutsideAllowedYears: (date: TDate) => boolean;\n\n /**\n * Sets the selected date in the calendar.\n *\n * @param event - The event triggering the change.\n * @param newSelectedDate - The new date to select.\n */\n setSelectedDate: (\n event:\n | React.KeyboardEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLButtonElement, MouseEvent>,\n newSelectedDate: TDate,\n ) => void;\n\n /**\n * Determines if a date is selected.\n *\n * @param date - The date to check.\n * @returns `true` if the date is selected, otherwise `false`.\n */\n isSelected: (date: TDate) => boolean;\n\n /**\n * Sets the hovered date in the calendar.\n *\n * @param event - The event triggering the change.\n * @param newHoveredDate - The new date to hover.\n */\n setHoveredDate: (\n event: SyntheticEvent,\n newHoveredDate: TDate | null,\n ) => void;\n\n /**\n * Determines if a date is part of a selected span.\n *\n * @param date - The date to check.\n * @returns `true` if the date is part of a selected span, otherwise `false`.\n */\n isSelectedSpan: (date: TDate) => boolean;\n\n /**\n * Determines if a date is part of a hovered span.\n *\n * @param date - The date to check.\n * @returns `true` if the date is part of a hovered span, otherwise `false`.\n */\n isHoveredSpan: (date: TDate) => boolean;\n\n /**\n * Determines if a date is the start of a selected range.\n *\n * @param date - The date to check.\n * @returns `true` if the date is the start of a selected range, otherwise `false`.\n */\n isSelectedStart: (date: TDate) => boolean;\n\n /**\n * Determines if a date is the end of a selected range.\n *\n * @param date - The date to check.\n * @returns `true` if the date is the end of a selected range, otherwise `false`.\n */\n isSelectedEnd: (date: TDate) => boolean;\n\n /**\n * Determines if a date is hovered.\n *\n * @param date - The date to check.\n * @returns `true` if the date is hovered, otherwise `false`.\n */\n isHovered: (date: TDate) => boolean;\n\n /**\n * Determines if a date is part of a hovered offset.\n *\n * @param date - The date to check.\n * @returns `true` if the date is part of a hovered offset, otherwise `false`.\n */\n isHoveredOffset: (date: TDate) => boolean;\n\n /**\n * Determines if a day is selectable.\n *\n * @param date - The date to check.\n * @returns `true` if the day is selectable, otherwise `false`.\n */\n isDaySelectable: (date: TDate) => boolean;\n };\n}\n\nexport function useCalendar<TDate extends DateFrameworkType>(\n props: UseCalendarProps<TDate>,\n): UseCalendarReturn<TDate> {\n const {\n dateAdapter,\n defaultDates: { minDate: defaultMinDate, maxDate: defaultMaxDate },\n } = useLocalization<TDate>();\n const {\n timezone,\n defaultSelectedDate,\n defaultVisibleMonth = dateAdapter.today(timezone),\n hideOutOfRangeDates,\n hoveredDate,\n focusedDate: focusedDateProp,\n focusedDateRef,\n isDayDisabled = defaultIsDayDisabled,\n isDayHighlighted = defaultIsDayHighlighted,\n isDayUnselectable = defaultIsDayUnselectable,\n multiselect,\n maxDate = defaultMaxDate,\n minDate = defaultMinDate,\n numberOfVisibleMonths = 1,\n onHoveredDateChange,\n onSelectionChange,\n onVisibleMonthChange,\n onFocusedDateChange,\n select,\n selectedDate,\n selectionVariant,\n visibleMonth: visibleMonthProp,\n // startDateOffset,\n // endDateOffset,\n } = props;\n const { matchedBreakpoints } = useBreakpoint();\n\n const responsiveNumberOfVisibleMonths =\n resolveResponsiveValue(numberOfVisibleMonths, matchedBreakpoints) ?? 1;\n\n const [visibleMonth, setVisibleMonthState] = useControlled({\n controlled: visibleMonthProp\n ? dateAdapter.startOf(visibleMonthProp, \"month\")\n : undefined,\n // biome-ignore lint/correctness/useExhaustiveDependencies: just on mount\n default: useMemo(\n () => dateAdapter.startOf(defaultVisibleMonth, \"month\"),\n [],\n ),\n name: \"Calendar\",\n state: \"visibleMonth\",\n });\n\n const isOutsideAllowedDates = useCallback(\n (date: TDate) => {\n return (\n dateAdapter.compare(date, minDate) < 0 ||\n dateAdapter.compare(date, maxDate) > 0\n );\n },\n [dateAdapter, maxDate, minDate],\n );\n\n const isOutsideAllowedMonths = useCallback(\n (date: TDate) => {\n const startOfMonth = dateAdapter.startOf(date, \"month\");\n const endOfMonth = dateAdapter.endOf(date, \"month\");\n return (\n dateAdapter.compare(endOfMonth, minDate) < 0 ||\n dateAdapter.compare(startOfMonth, maxDate) > 0\n );\n },\n [dateAdapter, minDate, maxDate],\n );\n\n const isOutsideAllowedYears = useCallback(\n (date: TDate) => {\n const startOfYear = dateAdapter.startOf(date, \"year\");\n const endOfYear = dateAdapter.endOf(date, \"year\");\n return (\n dateAdapter.compare(endOfYear, minDate) < 0 ||\n dateAdapter.compare(startOfYear, maxDate) > 0\n );\n },\n [dateAdapter, minDate, maxDate],\n );\n\n const isDaySelectable = useCallback(\n (date?: TDate) =>\n !(\n date &&\n (isDayUnselectable(date) ||\n isDayDisabled(date) ||\n isOutsideAllowedDates(date))\n ),\n [isDayUnselectable, isDayDisabled, isOutsideAllowedDates],\n );\n\n const isDayVisible = useCallback(\n (date?: TDate | null) => {\n if (!date) {\n return false;\n }\n const startInsideDays = dateAdapter.startOf(visibleMonth, \"month\");\n\n if (dateAdapter.compare(date, startInsideDays) < 0) return false;\n\n const endVisibleMonth = dateAdapter.add(visibleMonth, {\n months: responsiveNumberOfVisibleMonths - 1,\n });\n const endInsideDays = dateAdapter.endOf(endVisibleMonth, \"month\");\n\n return !(dateAdapter.compare(date, endInsideDays) > 0);\n },\n [dateAdapter, responsiveNumberOfVisibleMonths, visibleMonth],\n );\n\n const selectionManager = useCalendarSelection<TDate>({\n defaultSelectedDate,\n selectedDate,\n onSelectionChange,\n startDateOffset:\n props.selectionVariant === \"offset\" ? props.startDateOffset : undefined,\n endDateOffset:\n props.selectionVariant === \"offset\" ? props.endDateOffset : undefined,\n isOutsideAllowedDates,\n isDaySelectable,\n isDayVisible,\n focusedDate: focusedDateProp,\n focusedDateRef,\n multiselect,\n onFocusedDateChange,\n select,\n selectionVariant,\n onHoveredDateChange,\n hoveredDate,\n timezone,\n visibleMonth,\n } as UseCalendarSelectionProps<TDate>);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: isDayVisible ignored (due to dependency on visibleMonth)\n useEffect(() => {\n const focusedDate = selectionManager?.state?.focusedDate;\n const shouldTransition =\n focusedDate &&\n !focusedDateProp !== undefined &&\n !isDayVisible(focusedDate) &&\n isDaySelectable(focusedDate) &&\n !isOutsideAllowedDates(focusedDate);\n\n if (shouldTransition) {\n setVisibleMonth(null, dateAdapter.startOf(focusedDate, \"month\"));\n }\n }, [\n dateAdapter,\n focusedDateProp,\n isOutsideAllowedDates,\n isDaySelectable,\n selectionManager?.state?.focusedDate,\n ]);\n\n const setVisibleMonth = useCallback(\n (event: SyntheticEvent | null, newVisibleMonth: TDate) => {\n setVisibleMonthState(newVisibleMonth);\n onVisibleMonthChange?.(event, newVisibleMonth);\n },\n [onVisibleMonthChange],\n );\n\n return useMemo(\n () =>\n ({\n state: {\n visibleMonth,\n timezone,\n multiselect,\n minDate,\n maxDate,\n numberOfVisibleMonths: responsiveNumberOfVisibleMonths,\n selectionVariant,\n hideOutOfRangeDates,\n ...selectionManager.state,\n },\n helpers: {\n setVisibleMonth,\n isDayUnselectable,\n isDayHighlighted,\n isDayDisabled,\n isDayVisible,\n isOutsideAllowedDates,\n isOutsideAllowedMonths,\n isOutsideAllowedYears,\n ...selectionManager.helpers,\n },\n }) as UseCalendarReturn<TDate>,\n [\n visibleMonth,\n timezone,\n multiselect,\n minDate,\n maxDate,\n selectionVariant,\n hideOutOfRangeDates,\n setVisibleMonth,\n isDayUnselectable,\n isDayHighlighted,\n isDayDisabled,\n isDayVisible,\n isOutsideAllowedDates,\n isOutsideAllowedMonths,\n isOutsideAllowedYears,\n responsiveNumberOfVisibleMonths,\n selectionManager,\n ],\n );\n}\n"],"names":["useLocalization","useBreakpoint","resolveResponsiveValue","useControlled","useMemo","useCallback","useCalendarSelection","useEffect","_a"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useCalendar.js","sources":["../src/calendar/useCalendar.ts"],"sourcesContent":["import {\n type ResponsiveProp,\n resolveResponsiveValue,\n useBreakpoint,\n useControlled,\n} from \"@salt-ds/core\";\nimport type { DateFrameworkType, Timezone } from \"@salt-ds/date-adapters\";\nimport { type SyntheticEvent, useCallback, useEffect, useMemo } from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport {\n type UseCalendarSelectionBaseProps,\n type UseCalendarSelectionMultiselectOffsetProps,\n type UseCalendarSelectionMultiselectRangeProps,\n type UseCalendarSelectionMultiselectSingleProps,\n type UseCalendarSelectionOffsetProps,\n type UseCalendarSelectionProps,\n type UseCalendarSelectionRangeProps,\n type UseCalendarSelectionSingleProps,\n useCalendarSelection,\n} from \"./useCalendarSelection\";\n\n/**\n * Base properties for the UseCalendar hook.\n * @template TDate - The type of the date object.\n */\ninterface UseCalendarBaseProps<TDate>\n extends UseCalendarSelectionBaseProps<TDate> {\n /**\n * The default visible month.\n */\n defaultVisibleMonth?: TDate;\n /**\n * Callback fired when the visible month changes.\n * @param event - The synthetic event or null if triggered by code.\n * @param visibleMonth - The new visible month.\n */\n onVisibleMonthChange?: (\n event: SyntheticEvent | null,\n visibleMonth: TDate,\n ) => void;\n /**\n * Function to determine if a day is unselectable.\n * @param date - The date to check.\n * @returns A string reason if the day is unselectable, otherwise `false` or `undefined`.\n */\n isDayUnselectable?: (date: TDate) => string | false | undefined;\n /**\n * Function to determine if a day is highlighted.\n * @param date - The date to check.\n * @returns A string reason if the day is highlighted, otherwise `false` or `undefined`.\n */\n isDayHighlighted?: (date: TDate) => string | false | undefined;\n /**\n * If `true`, hides dates that are out of the selectable range.\n */\n hideOutOfRangeDates?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: TDate;\n /**\n * The maximum selectable date.\n */\n maxDate?: TDate;\n /**\n * Number of visible months, maximum 12, defaults to 1.\n */\n numberOfVisibleMonths?: ResponsiveProp<\n 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12\n >;\n /**\n * If `true`, the calendar will be multiselect.\n */\n multiselect?: boolean;\n}\n\n/**\n * UseCalendar hook props for a single date selection.\n */\nexport interface UseCalendarSingleProps<TDate extends DateFrameworkType>\n extends UseCalendarSelectionSingleProps<TDate>,\n UseCalendarBaseProps<TDate> {}\n\n/**\n * UseCalendar hook props for a multi-select, single date selection.\n */\nexport interface UseCalendarMultiselectSingleProps<\n TDate extends DateFrameworkType,\n> extends UseCalendarSelectionMultiselectSingleProps<TDate>,\n Omit<UseCalendarBaseProps<TDate>, \"multiselect\"> {}\n\n/**\n * UseCalendar hook props for a date range selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarRangeProps<TDate extends DateFrameworkType>\n extends UseCalendarSelectionRangeProps<TDate>,\n UseCalendarBaseProps<TDate> {}\n\n/**\n * UseCalendar hook props for a multi-select, date range selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarMultiselectRangeProps<\n TDate extends DateFrameworkType,\n> extends UseCalendarSelectionMultiselectRangeProps<TDate>,\n Omit<UseCalendarBaseProps<TDate>, \"multiselect\"> {}\n\n/**\n * UseCalendar hook props for an offset date selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarOffsetProps<TDate extends DateFrameworkType>\n extends UseCalendarSelectionOffsetProps<TDate>,\n UseCalendarBaseProps<TDate> {}\n\n/**\n * UseCalendar hook props for a multi-select, offset selection.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarMultiselectOffsetProps<\n TDate extends DateFrameworkType,\n> extends UseCalendarSelectionMultiselectOffsetProps<TDate>,\n Omit<UseCalendarBaseProps<TDate>, \"multiselect\"> {}\n\n/**\n * UseCalendar hook props, wth the selection variant determining the return type of the date selection\n * @template TDate - The type of the date object.\n */\nexport type UseCalendarProps<TDate extends DateFrameworkType> =\n | UseCalendarSingleProps<TDate>\n | UseCalendarMultiselectSingleProps<TDate>\n | UseCalendarRangeProps<TDate>\n | UseCalendarMultiselectRangeProps<TDate>\n | UseCalendarOffsetProps<TDate>\n | UseCalendarMultiselectOffsetProps<TDate>;\n\n/**\n * Default function to determine if a day is unselectable.\n * @returns `false` indicating the day is selectable.\n */\nconst defaultIsDayUnselectable = (): string | false => false;\n\n/**\n * Default function to determine if a day is highlighted.\n * @returns `false` indicating the day is not highlighted.\n */\nconst defaultIsDayHighlighted = (): string | false => false;\n\n/**\n * Represents the return type of the useCalendar hook.\n * @template TDate - The type of the date object.\n */\nexport interface UseCalendarReturn<TDate extends DateFrameworkType> {\n /**\n * The state of the calendar.\n */\n state: {\n /**\n * The currently visible month in the calendar.\n */\n visibleMonth: TDate;\n\n /**\n * The currently focused date in the calendar, or null if no date is focused.\n */\n focusedDate: TDate | null;\n\n /**\n * Focusable dates based on current state\n */\n focusableDates: TDate[];\n\n /**\n * The minimum selectable date in the calendar.\n */\n minDate: TDate;\n\n /**\n * The maximum selectable date in the calendar.\n */\n maxDate: TDate;\n\n /**\n * The selection variant of the calendar, indicating the type of selection allowed.\n */\n selectionVariant: \"single\" | \"range\" | \"offset\";\n\n /**\n * Whether to hide dates that are out of the selectable range.\n */\n hideOutOfRangeDates?: boolean;\n\n /**\n * Number of visible months\n */\n numberOfVisibleMonths: number;\n /**\n * Specifies the timezone behavior:\n * - If undefined, the timezone will be derived from the passed date, or from `defaultSelectedDate`/`selectedDate`.\n * - If set to \"default\", the default timezone of the date library will be used.\n * - If set to \"system\", the local system's timezone will be applied.\n * - If set to \"UTC\", the time will be returned in UTC.\n * - If set to a valid IANA timezone identifier, the time will be returned for that specific timezone.\n */\n timezone?: Timezone;\n /**\n * Additional state properties from selectionManager.state.\n */\n // biome-ignore lint/suspicious/noExplicitAny: user defined\n [key: string]: any; // Use a more specific type if possible\n };\n\n /**\n * Helper functions for interacting with the calendar.\n */\n helpers: {\n /**\n * Sets the visible month in the calendar.\n *\n * @param event - The synthetic event or null if triggered by code.\n * @param newVisibleMonth - The new visible month to set.\n */\n setVisibleMonth: (\n event: SyntheticEvent | null,\n newVisibleMonth: TDate,\n ) => void;\n\n /**\n * Sets the focused date in the calendar.\n *\n * @param event - The synthetic event or null if triggered by code.\n * @param date - The new date to focus.\n */\n setFocusedDate: (event: SyntheticEvent | null, date: TDate | null) => void;\n\n /**\n * Determines if a day is unselectable.\n *\n * @param date - The date to check.\n * @returns A string reason if the day is unselectable, otherwise `false` or `undefined`.\n */\n isDayUnselectable: (date: TDate) => string | false | undefined;\n\n /**\n * Determines if a day is highlighted.\n *\n * @param date - The date to check.\n * @returns A string reason if the day is highlighted, otherwise `false` or `undefined`.\n */\n isDayHighlighted: (date: TDate) => string | false | undefined;\n\n /**\n * Determines if a day is visible in the calendar.\n *\n * @param date - The date to check.\n * @returns `true` if the day is visible, otherwise `false`.\n */\n isDayVisible: (date: TDate) => boolean;\n\n /**\n * Determines if a date is outside the allowed date range.\n *\n * @param date - The date to check.\n * @returns `true` if the date is outside the allowed range, otherwise `false`.\n */\n isOutsideAllowedDates: (date: TDate) => boolean;\n\n /**\n * Determines if a month is outside the allowed range.\n *\n * @param date - The date to check.\n * @returns `true` if the month is outside the allowed range, otherwise `false`.\n */\n isOutsideAllowedMonths: (date: TDate) => boolean;\n\n /**\n * Determines if a year is outside the allowed range.\n *\n * @param date - The date to check.\n * @returns `true` if the year is outside the allowed range, otherwise `false`.\n */\n isOutsideAllowedYears: (date: TDate) => boolean;\n\n /**\n * Determines if the date range is on the same day\n *\n * @param date - The range to check.\n * @returns `true` if the range start and end date are the same\n */\n isSameDay: (date: TDate) => boolean;\n\n /**\n * Sets the selected date in the calendar.\n *\n * @param event - The event triggering the change.\n * @param newSelectedDate - The new date to select.\n */\n setSelectedDate: (\n event:\n | React.KeyboardEvent<HTMLButtonElement>\n | React.MouseEvent<HTMLButtonElement, MouseEvent>,\n newSelectedDate: TDate,\n ) => void;\n\n /**\n * Determines if a date is selected.\n *\n * @param date - The date to check.\n * @returns `true` if the date is selected, otherwise `false`.\n */\n isSelected: (date: TDate) => boolean;\n\n /**\n * Determines if a date is hovered.\n *\n * @param date - The date to check.\n * @returns `true` if the date is hovered, otherwise `false`.\n */\n isHovered: (date: TDate) => boolean;\n\n /**\n * Sets the hovered date in the calendar.\n *\n * @param event - The event triggering the change.\n * @param newHoveredDate - The new date to hover.\n */\n setHoveredDate: (\n event: SyntheticEvent,\n newHoveredDate: TDate | null,\n ) => void;\n\n /**\n * Determines if a date is part of a selected span.\n *\n * @param date - The date to check.\n * @returns `true` if the date is part of a selected span, otherwise `false`.\n */\n isSelectedSpan: (date: TDate) => boolean;\n\n /**\n * Determines if a date is the start of a selected range.\n *\n * @param date - The date to check.\n * @returns `true` if the date is the start of a selected range, otherwise `false`.\n */\n isSelectedStart: (date: TDate) => boolean;\n\n /**\n * Determines if a date is the end of a selected range.\n *\n * @param date - The date to check.\n * @returns `true` if the date is the end of a selected range, otherwise `false`.\n */\n isSelectedEnd: (date: TDate) => boolean;\n\n /**\n * Determines if the hovered and a new date range would be created, if selected.\n *\n * @param date - The date to check.\n * @returns `true` if the date is the start of a hovered offset, otherwise `false`.\n */\n isHoveredStart: (date: TDate) => boolean;\n\n /**\n * Determines if a date is part of a hovered range.\n *\n * @param date - The date to check.\n * @returns `true` if the date is part of a hovered offset, otherwise `false`.\n */\n isHoveredSpan: (date: TDate) => boolean;\n\n /**\n * Determines if the hovered and a date range would be completed, if selected.\n *\n * @param date - The date to check.\n * @returns `true` if the date is the end of a hovered offset, otherwise `false`.\n */\n isHoveredEnd: (date: TDate) => boolean;\n\n /**\n * Determines if a day is selectable.\n *\n * @param date - The date to check.\n * @returns `true` if the day is selectable, otherwise `false`.\n */\n isDaySelectable: (date: TDate) => boolean;\n };\n}\n\nexport function useCalendar<TDate extends DateFrameworkType>(\n props: UseCalendarProps<TDate>,\n): UseCalendarReturn<TDate> {\n const {\n dateAdapter,\n defaultDates: { minDate: defaultMinDate, maxDate: defaultMaxDate },\n } = useLocalization<TDate>();\n const {\n timezone,\n defaultSelectedDate,\n defaultVisibleMonth = dateAdapter.today(timezone),\n hideOutOfRangeDates,\n hoveredDate,\n focusedDate: focusedDateProp,\n focusedDateRef,\n isDayHighlighted = defaultIsDayHighlighted,\n isDayUnselectable = defaultIsDayUnselectable,\n multiselect,\n maxDate = defaultMaxDate,\n minDate = defaultMinDate,\n numberOfVisibleMonths = 1,\n onHoveredDateChange,\n onSelectionChange,\n onVisibleMonthChange,\n onFocusedDateChange,\n select,\n selectedDate,\n selectionVariant,\n visibleMonth: visibleMonthProp,\n // startDateOffset,\n // endDateOffset,\n } = props;\n const { matchedBreakpoints } = useBreakpoint();\n\n const responsiveNumberOfVisibleMonths =\n resolveResponsiveValue(numberOfVisibleMonths, matchedBreakpoints) ?? 1;\n\n const [visibleMonth, setVisibleMonthState] = useControlled({\n controlled: useMemo(\n () =>\n visibleMonthProp\n ? dateAdapter.startOf(visibleMonthProp, \"month\")\n : undefined,\n [visibleMonthProp],\n ),\n // biome-ignore lint/correctness/useExhaustiveDependencies: just on mount\n default: useMemo(\n () => dateAdapter.startOf(defaultVisibleMonth, \"month\"),\n [],\n ),\n name: \"Calendar\",\n state: \"visibleMonth\",\n });\n\n const isOutsideAllowedDates = useCallback(\n (date: TDate) => {\n return (\n dateAdapter.compare(date, minDate) < 0 ||\n dateAdapter.compare(date, maxDate) > 0\n );\n },\n [dateAdapter, maxDate, minDate],\n );\n\n const isOutsideAllowedMonths = useCallback(\n (date: TDate) => {\n const startOfMonth = dateAdapter.startOf(date, \"month\");\n const endOfMonth = dateAdapter.endOf(date, \"month\");\n return (\n dateAdapter.compare(endOfMonth, minDate) < 0 ||\n dateAdapter.compare(startOfMonth, maxDate) > 0\n );\n },\n [dateAdapter, minDate, maxDate],\n );\n\n const isOutsideAllowedYears = useCallback(\n (date: TDate) => {\n const startOfYear = dateAdapter.startOf(date, \"year\");\n const endOfYear = dateAdapter.endOf(date, \"year\");\n return (\n dateAdapter.compare(endOfYear, minDate) < 0 ||\n dateAdapter.compare(startOfYear, maxDate) > 0\n );\n },\n [dateAdapter, minDate, maxDate],\n );\n\n const isDaySelectable = useCallback(\n (date?: TDate) =>\n !(date && (isDayUnselectable(date) || isOutsideAllowedDates(date))),\n [isDayUnselectable, isOutsideAllowedDates],\n );\n\n const isDayVisible = useCallback(\n (date?: TDate | null) => {\n if (!date) {\n return false;\n }\n const startInsideDays = dateAdapter.startOf(visibleMonth, \"month\");\n\n if (dateAdapter.compare(date, startInsideDays) < 0) return false;\n\n const endVisibleMonth = dateAdapter.add(visibleMonth, {\n months: responsiveNumberOfVisibleMonths - 1,\n });\n const endInsideDays = dateAdapter.endOf(endVisibleMonth, \"month\");\n\n return !(dateAdapter.compare(date, endInsideDays) > 0);\n },\n [dateAdapter, responsiveNumberOfVisibleMonths, visibleMonth],\n );\n\n const selectionManager = useCalendarSelection<TDate>({\n defaultSelectedDate,\n selectedDate,\n onSelectionChange,\n startDateOffset:\n props.selectionVariant === \"offset\" ? props.startDateOffset : undefined,\n endDateOffset:\n props.selectionVariant === \"offset\" ? props.endDateOffset : undefined,\n isOutsideAllowedDates,\n isDaySelectable,\n isDayVisible,\n focusedDate: focusedDateProp,\n focusedDateRef,\n multiselect,\n onFocusedDateChange,\n select,\n selectionVariant,\n onHoveredDateChange,\n hoveredDate,\n timezone,\n visibleMonth,\n } as UseCalendarSelectionProps<TDate>);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: isDayVisible ignored (due to dependency on visibleMonth)\n useEffect(() => {\n const focusedDate = selectionManager?.state?.focusedDate;\n const shouldTransition =\n focusedDate &&\n !focusedDateProp !== undefined &&\n !isDayVisible(focusedDate) &&\n !isOutsideAllowedDates(focusedDate);\n\n if (shouldTransition) {\n setVisibleMonth(null, dateAdapter.startOf(focusedDate, \"month\"));\n }\n }, [\n dateAdapter,\n focusedDateProp,\n isOutsideAllowedDates,\n selectionManager?.state?.focusedDate,\n ]);\n\n const setVisibleMonth = useCallback(\n (event: SyntheticEvent | null, newVisibleMonth: TDate) => {\n setVisibleMonthState(newVisibleMonth);\n onVisibleMonthChange?.(event, newVisibleMonth);\n },\n [onVisibleMonthChange],\n );\n\n return useMemo(\n () =>\n ({\n state: {\n visibleMonth,\n timezone,\n multiselect,\n minDate,\n maxDate,\n numberOfVisibleMonths: responsiveNumberOfVisibleMonths,\n selectionVariant,\n hideOutOfRangeDates,\n ...selectionManager.state,\n },\n helpers: {\n setVisibleMonth,\n isDayUnselectable,\n isDayHighlighted,\n isDayVisible,\n isOutsideAllowedDates,\n isOutsideAllowedMonths,\n isOutsideAllowedYears,\n ...selectionManager.helpers,\n },\n }) as UseCalendarReturn<TDate>,\n [\n visibleMonth,\n timezone,\n multiselect,\n minDate,\n maxDate,\n selectionVariant,\n hideOutOfRangeDates,\n setVisibleMonth,\n isDayUnselectable,\n isDayHighlighted,\n isDayVisible,\n isOutsideAllowedDates,\n isOutsideAllowedMonths,\n isOutsideAllowedYears,\n responsiveNumberOfVisibleMonths,\n selectionManager,\n ],\n );\n}\n"],"names":["useLocalization","useBreakpoint","resolveResponsiveValue","useControlled","useMemo","useCallback","useCalendarSelection","useEffect","_a"],"mappings":"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"}
|
|
@@ -19,45 +19,42 @@ function useCalendarDay(props) {
|
|
|
19
19
|
helpers: {
|
|
20
20
|
setHoveredDate,
|
|
21
21
|
isDayUnselectable,
|
|
22
|
-
isDaySelectable,
|
|
23
22
|
isDayHighlighted,
|
|
24
|
-
isDayDisabled,
|
|
25
23
|
isOutsideAllowedMonths
|
|
26
24
|
}
|
|
27
25
|
} = CalendarContext.useCalendarContext();
|
|
28
26
|
const selectionManager = useCalendarSelection.useCalendarSelectionDay({ date });
|
|
29
27
|
const focusManager = useFocusManagement.useFocusManagement({ date });
|
|
30
28
|
const handleClick = (event) => {
|
|
31
|
-
selectionManager
|
|
29
|
+
selectionManager.handleClick(event);
|
|
32
30
|
focusManager.handleClick(event);
|
|
33
31
|
};
|
|
34
32
|
const handleKeyDown = (event) => {
|
|
35
33
|
focusManager.handleKeyDown(event);
|
|
36
|
-
selectionManager
|
|
34
|
+
selectionManager.handleKeyDown(event);
|
|
37
35
|
};
|
|
38
36
|
const handleFocus = (event) => {
|
|
39
37
|
focusManager.handleFocus(event);
|
|
40
38
|
setHoveredDate(event, date);
|
|
41
39
|
};
|
|
42
|
-
const
|
|
40
|
+
const handleMouseMove = (event) => {
|
|
43
41
|
setHoveredDate(event, date);
|
|
44
42
|
};
|
|
45
43
|
const eventHandlers = {
|
|
46
44
|
onClick: handleClick,
|
|
47
45
|
onKeyDown: handleKeyDown,
|
|
48
46
|
onFocus: handleFocus,
|
|
49
|
-
|
|
47
|
+
onMouseMove: handleMouseMove
|
|
50
48
|
};
|
|
51
|
-
const
|
|
52
|
-
const focused = focusedDate && dateAdapter.isSame(date, focusedDate, "day") && !outOfRange;
|
|
49
|
+
const focused = focusedDate && dateAdapter.isSame(date, focusedDate, "day");
|
|
53
50
|
const tabIndex = focusableDates.find(
|
|
54
51
|
(tabbableDate) => dateAdapter.isSame(date, tabbableDate, "day")
|
|
55
52
|
) ? 0 : -1;
|
|
56
53
|
const today = dateAdapter.isSame(dateAdapter.today(timezone), date, "day");
|
|
57
54
|
const unselectableReason = isDayUnselectable(date);
|
|
58
55
|
const highlightedReason = isDayHighlighted(date);
|
|
59
|
-
const
|
|
60
|
-
const unselectable = Boolean(unselectableReason);
|
|
56
|
+
const outOfRange = !dateAdapter.isSame(date, month, "month");
|
|
57
|
+
const unselectable = Boolean(unselectableReason) || isOutsideAllowedMonths(date);
|
|
61
58
|
const highlighted = Boolean(highlightedReason);
|
|
62
59
|
const hidden = hideOutOfRangeDates ? outOfRange : false;
|
|
63
60
|
return {
|
|
@@ -67,7 +64,6 @@ function useCalendarDay(props) {
|
|
|
67
64
|
unselectable,
|
|
68
65
|
focused,
|
|
69
66
|
hidden,
|
|
70
|
-
disabled,
|
|
71
67
|
highlighted,
|
|
72
68
|
...selectionManager.status
|
|
73
69
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCalendarDay.js","sources":["../src/calendar/useCalendarDay.ts"],"sourcesContent":["import type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport type {\n ComponentPropsWithoutRef,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n} from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport { useFocusManagement } from \"./internal/useFocusManagement\";\nimport { useCalendarSelectionDay } from \"./useCalendarSelection\";\n\n/**\n * Interface representing the status of a day in the Calendar.\n */\nexport interface DayStatus {\n /**\n * If `true`, the day is
|
|
1
|
+
{"version":3,"file":"useCalendarDay.js","sources":["../src/calendar/useCalendarDay.ts"],"sourcesContent":["import type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport type {\n ComponentPropsWithoutRef,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n} from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport { useFocusManagement } from \"./internal/useFocusManagement\";\nimport { useCalendarSelectionDay } from \"./useCalendarSelection\";\n\n/**\n * Interface representing the status of a day in the Calendar.\n */\nexport interface DayStatus {\n /**\n * If `true`, the day is selectable but outside of current month.\n */\n outOfRange?: boolean;\n /**\n * If `true`, the day is selected.\n */\n selected?: boolean;\n /**\n * If `true`, the day is today.\n */\n today?: boolean;\n /**\n * If set, the day is unselectable with a reason.\n */\n unselectable?: string | false;\n /**\n * If set, the day is highlighted with a reason.\n */\n highlighted?: string | false;\n /**\n * If `true`, the day is focused.\n */\n focused?: boolean;\n /**\n * If `true`, the day is hidden.\n */\n hidden?: boolean;\n}\n\n/**\n * UseCalendar hook props to return a calendar day's status\n * @template TDate - The type of the date object.\n */\nexport interface useCalendarDayProps<TDate> {\n /**\n * The date of the calendar day.\n */\n date: TDate;\n /**\n * The month of the calendar day.\n */\n month: TDate;\n}\n\nexport function useCalendarDay<TDate extends DateFrameworkType>(\n props: useCalendarDayProps<TDate>,\n) {\n const { date, month } = props;\n const { dateAdapter } = useLocalization<TDate>();\n const {\n state: {\n focusedDate,\n focusedDateRef,\n hideOutOfRangeDates,\n timezone,\n focusableDates,\n },\n helpers: {\n setHoveredDate,\n isDayUnselectable,\n isDayHighlighted,\n isOutsideAllowedMonths,\n },\n } = useCalendarContext<TDate>();\n const selectionManager = useCalendarSelectionDay<TDate>({ date });\n const focusManager = useFocusManagement<TDate>({ date });\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n selectionManager.handleClick(event);\n focusManager.handleClick(event);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n focusManager.handleKeyDown(event);\n selectionManager.handleKeyDown(event);\n };\n\n const handleFocus: FocusEventHandler<HTMLButtonElement> = (event) => {\n focusManager.handleFocus(event);\n setHoveredDate(event, date);\n };\n\n const handleMouseMove: MouseEventHandler<HTMLButtonElement> = (event) => {\n setHoveredDate(event, date);\n };\n\n const eventHandlers = {\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n onFocus: handleFocus,\n onMouseMove: handleMouseMove,\n };\n\n const focused = focusedDate && dateAdapter.isSame(date, focusedDate, \"day\");\n const tabIndex = focusableDates.find((tabbableDate) =>\n dateAdapter.isSame(date, tabbableDate, \"day\"),\n )\n ? 0\n : -1;\n const today = dateAdapter.isSame(dateAdapter.today(timezone), date, \"day\");\n\n const unselectableReason = isDayUnselectable(date);\n const highlightedReason = isDayHighlighted(date);\n\n const outOfRange = !dateAdapter.isSame(date, month, \"month\");\n const unselectable =\n Boolean(unselectableReason) || isOutsideAllowedMonths(date);\n const highlighted = Boolean(highlightedReason);\n const hidden = hideOutOfRangeDates ? outOfRange : false;\n\n return {\n status: {\n outOfRange,\n today,\n unselectable,\n focused,\n hidden,\n highlighted,\n ...selectionManager.status,\n } as DayStatus,\n dayProps: {\n tabIndex,\n \"aria-current\": today ? \"date\" : undefined,\n \"aria-hidden\": hidden ? \"true\" : undefined,\n ...eventHandlers,\n ...selectionManager.dayProps,\n } as ComponentPropsWithoutRef<\"button\">,\n focusedDateRef: focused ? focusedDateRef : null,\n unselectableReason,\n highlightedReason,\n };\n}\n"],"names":["useLocalization","useCalendarContext","useCalendarSelectionDay","useFocusManagement"],"mappings":";;;;;;;AA6DO,SAAS,eACd,KAAA,EACA;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,EAAM,GAAI,KAAA;AACxB,EAAA,MAAM,EAAE,WAAA,EAAY,GAAIA,oCAAA,EAAuB;AAC/C,EAAA,MAAM;AAAA,IACJ,KAAA,EAAO;AAAA,MACL,WAAA;AAAA,MACA,cAAA;AAAA,MACA,mBAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA,EAAS;AAAA,MACP,cAAA;AAAA,MACA,iBAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA;AACF,MACEC,kCAAA,EAA0B;AAC9B,EAAA,MAAM,gBAAA,GAAmBC,4CAAA,CAA+B,EAAE,IAAA,EAAM,CAAA;AAChE,EAAA,MAAM,YAAA,GAAeC,qCAAA,CAA0B,EAAE,IAAA,EAAM,CAAA;AAEvD,EAAA,MAAM,WAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,IAAA,gBAAA,CAAiB,YAAY,KAAK,CAAA;AAClC,IAAA,YAAA,CAAa,YAAY,KAAK,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,MAAM,aAAA,GAAyD,CAAC,KAAA,KAAU;AACxE,IAAA,YAAA,CAAa,cAAc,KAAK,CAAA;AAChC,IAAA,gBAAA,CAAiB,cAAc,KAAK,CAAA;AAAA,EACtC,CAAA;AAEA,EAAA,MAAM,WAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,IAAA,YAAA,CAAa,YAAY,KAAK,CAAA;AAC9B,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,MAAM,eAAA,GAAwD,CAAC,KAAA,KAAU;AACvE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,OAAA,EAAS,WAAA;AAAA,IACT,SAAA,EAAW,aAAA;AAAA,IACX,OAAA,EAAS,WAAA;AAAA,IACT,WAAA,EAAa;AAAA,GACf;AAEA,EAAA,MAAM,UAAU,WAAA,IAAe,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,aAAa,KAAK,CAAA;AAC1E,EAAA,MAAM,WAAW,cAAA,CAAe,IAAA;AAAA,IAAK,CAAC,YAAA,KACpC,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,cAAc,KAAK;AAAA,MAE1C,CAAA,GACA,EAAA;AACJ,EAAA,MAAM,KAAA,GAAQ,YAAY,MAAA,CAAO,WAAA,CAAY,MAAM,QAAQ,CAAA,EAAG,MAAM,KAAK,CAAA;AAEzE,EAAA,MAAM,kBAAA,GAAqB,kBAAkB,IAAI,CAAA;AACjD,EAAA,MAAM,iBAAA,GAAoB,iBAAiB,IAAI,CAAA;AAE/C,EAAA,MAAM,aAAa,CAAC,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,OAAO,OAAO,CAAA;AAC3D,EAAA,MAAM,YAAA,GACJ,OAAA,CAAQ,kBAAkB,CAAA,IAAK,uBAAuB,IAAI,CAAA;AAC5D,EAAA,MAAM,WAAA,GAAc,QAAQ,iBAAiB,CAAA;AAC7C,EAAA,MAAM,MAAA,GAAS,sBAAsB,UAAA,GAAa,KAAA;AAElD,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ;AAAA,MACN,UAAA;AAAA,MACA,KAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,WAAA;AAAA,MACA,GAAG,gBAAA,CAAiB;AAAA,KACtB;AAAA,IACA,QAAA,EAAU;AAAA,MACR,QAAA;AAAA,MACA,cAAA,EAAgB,QAAQ,MAAA,GAAS,MAAA;AAAA,MACjC,aAAA,EAAe,SAAS,MAAA,GAAS,MAAA;AAAA,MACjC,GAAG,aAAA;AAAA,MACH,GAAG,gBAAA,CAAiB;AAAA,KACtB;AAAA,IACA,cAAA,EAAgB,UAAU,cAAA,GAAiB,IAAA;AAAA,IAC3C,kBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -189,24 +189,13 @@ function useCalendarSelection(props) {
|
|
|
189
189
|
if (!selectedDate) {
|
|
190
190
|
return false;
|
|
191
191
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
(element) => isDateRangeSelection(element) ? isDateRangeSelected(element) : isSingleDateSelected(element)
|
|
192
|
+
if (selectionVariant === "single") {
|
|
193
|
+
const singleDates = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
194
|
+
return singleDates.some(
|
|
195
|
+
(singleDate) => dateAdapter.isSame(singleDate, date, "day")
|
|
197
196
|
);
|
|
198
197
|
}
|
|
199
|
-
|
|
200
|
-
case "single":
|
|
201
|
-
return isSingleDateSelected(
|
|
202
|
-
selectedDate
|
|
203
|
-
);
|
|
204
|
-
case "range":
|
|
205
|
-
case "offset":
|
|
206
|
-
return isDateRangeSelected(selectedDate);
|
|
207
|
-
default:
|
|
208
|
-
return false;
|
|
209
|
-
}
|
|
198
|
+
return false;
|
|
210
199
|
},
|
|
211
200
|
[dateAdapter, selectedDate, selectionVariant]
|
|
212
201
|
);
|
|
@@ -344,29 +333,56 @@ function useCalendarSelection(props) {
|
|
|
344
333
|
timezone,
|
|
345
334
|
visibleMonth
|
|
346
335
|
]);
|
|
347
|
-
const
|
|
336
|
+
const isHoveredStart = react.useCallback(
|
|
348
337
|
(date) => {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
338
|
+
if (selectionVariant === "range" && hoveredDate && dateAdapter.isSame(date, hoveredDate, "day")) {
|
|
339
|
+
const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
340
|
+
const allDatesPopulated = dateRanges.every(
|
|
341
|
+
(range) => (range == null ? void 0 : range.startDate) && (range == null ? void 0 : range.endDate)
|
|
342
|
+
);
|
|
343
|
+
const startDateMatches = dateRanges.some(
|
|
344
|
+
(range) => (range == null ? void 0 : range.startDate) && dateAdapter.isSame(date, range.startDate, "day")
|
|
345
|
+
);
|
|
346
|
+
const firstIncompleteRange = dateRanges.find(
|
|
347
|
+
(range) => (range == null ? void 0 : range.startDate) && !(range == null ? void 0 : range.endDate)
|
|
348
|
+
);
|
|
349
|
+
const newDateRangeRequired = (firstIncompleteRange == null ? void 0 : firstIncompleteRange.startDate) && dateAdapter.compare(date, firstIncompleteRange.startDate) < 0;
|
|
350
|
+
return allDatesPopulated || startDateMatches || newDateRangeRequired;
|
|
351
|
+
}
|
|
352
|
+
if (selectionVariant === "offset" && hoveredDate) {
|
|
353
|
+
const startDate = getStartDateOffset(hoveredDate);
|
|
354
|
+
return dateAdapter.isSame(date, startDate, "day") && (!isDaySelectable || isDaySelectable(date));
|
|
355
|
+
}
|
|
356
|
+
return false;
|
|
356
357
|
},
|
|
357
|
-
[
|
|
358
|
+
[
|
|
359
|
+
dateAdapter,
|
|
360
|
+
getStartDateOffset,
|
|
361
|
+
selectionVariant,
|
|
362
|
+
selectedDate,
|
|
363
|
+
hoveredDate,
|
|
364
|
+
isDaySelectable
|
|
365
|
+
]
|
|
358
366
|
);
|
|
359
367
|
const isHoveredSpan = react.useCallback(
|
|
360
368
|
(date) => {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
369
|
+
if (selectionVariant === "range") {
|
|
370
|
+
const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
371
|
+
return dateRanges.some((range) => {
|
|
372
|
+
if (isDateRangeSelection(range) && dateAdapter.isValid(range.startDate) && !dateAdapter.isValid(range.endDate) && !isOutsideAllowedDates(range.startDate) && hoveredDate) {
|
|
373
|
+
const isForwardRange = dateAdapter.compare(hoveredDate, range.startDate) > 0 && dateAdapter.compare(date, range.startDate) > 0 && dateAdapter.compare(date, hoveredDate) < 0;
|
|
374
|
+
const isValidDayHovered = !isDaySelectable || isDaySelectable(hoveredDate);
|
|
375
|
+
return isForwardRange && isValidDayHovered;
|
|
376
|
+
}
|
|
377
|
+
return false;
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
if (selectionVariant === "offset" && hoveredDate) {
|
|
381
|
+
const startDate = getStartDateOffset(hoveredDate);
|
|
382
|
+
const endDate = getEndDateOffset(hoveredDate);
|
|
383
|
+
return dateAdapter.compare(date, startDate) > 0 && dateAdapter.compare(date, endDate) < 0 && (!isDaySelectable || isDaySelectable(date));
|
|
384
|
+
}
|
|
385
|
+
return false;
|
|
370
386
|
},
|
|
371
387
|
[
|
|
372
388
|
dateAdapter,
|
|
@@ -377,8 +393,50 @@ function useCalendarSelection(props) {
|
|
|
377
393
|
isDaySelectable
|
|
378
394
|
]
|
|
379
395
|
);
|
|
396
|
+
const isHoveredEnd = react.useCallback(
|
|
397
|
+
(date) => {
|
|
398
|
+
if (selectionVariant === "range" && hoveredDate && dateAdapter.isSame(date, hoveredDate, "day")) {
|
|
399
|
+
const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
400
|
+
const isIncompleteRange = dateRanges.some(
|
|
401
|
+
(range) => (range == null ? void 0 : range.startDate) && !(range == null ? void 0 : range.endDate) && hoveredDate && dateAdapter.compare(hoveredDate, range.startDate) >= 0
|
|
402
|
+
);
|
|
403
|
+
const endDateMatches = dateRanges.some(
|
|
404
|
+
(range) => (range == null ? void 0 : range.endDate) && dateAdapter.isSame(range.endDate, date, "day")
|
|
405
|
+
);
|
|
406
|
+
return endDateMatches || isIncompleteRange;
|
|
407
|
+
}
|
|
408
|
+
if (selectionVariant === "offset" && hoveredDate) {
|
|
409
|
+
const endDate = getEndDateOffset(hoveredDate);
|
|
410
|
+
return dateAdapter.isSame(date, endDate, "day") && (!isDaySelectable || isDaySelectable(date));
|
|
411
|
+
}
|
|
412
|
+
return false;
|
|
413
|
+
},
|
|
414
|
+
[
|
|
415
|
+
dateAdapter,
|
|
416
|
+
getEndDateOffset,
|
|
417
|
+
selectionVariant,
|
|
418
|
+
selectedDate,
|
|
419
|
+
hoveredDate,
|
|
420
|
+
isDaySelectable
|
|
421
|
+
]
|
|
422
|
+
);
|
|
423
|
+
const isSameDay = react.useCallback(
|
|
424
|
+
(date) => {
|
|
425
|
+
const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
426
|
+
return dateRanges.some((range) => {
|
|
427
|
+
if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && (range == null ? void 0 : range.startDate) && (range == null ? void 0 : range.endDate) && dateAdapter.isSame(range == null ? void 0 : range.startDate, date, "day")) {
|
|
428
|
+
return dateAdapter.isSame(range == null ? void 0 : range.startDate, range == null ? void 0 : range.endDate, "day");
|
|
429
|
+
}
|
|
430
|
+
return false;
|
|
431
|
+
});
|
|
432
|
+
},
|
|
433
|
+
[dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
|
|
434
|
+
);
|
|
380
435
|
const isSelectedStart = react.useCallback(
|
|
381
436
|
(date) => {
|
|
437
|
+
if (selectionVariant === "single") {
|
|
438
|
+
return false;
|
|
439
|
+
}
|
|
382
440
|
const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
383
441
|
return dateRanges.some((range) => {
|
|
384
442
|
if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && dateAdapter.isValid(range.startDate) && !isOutsideAllowedDates(range.startDate)) {
|
|
@@ -389,35 +447,35 @@ function useCalendarSelection(props) {
|
|
|
389
447
|
},
|
|
390
448
|
[dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
|
|
391
449
|
);
|
|
392
|
-
const
|
|
450
|
+
const isSelectedSpan = react.useCallback(
|
|
393
451
|
(date) => {
|
|
452
|
+
if (selectionVariant === "single") {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
394
455
|
const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
395
456
|
return dateRanges.some((range) => {
|
|
396
|
-
if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && dateAdapter.isValid(range.endDate) && !isOutsideAllowedDates(range.endDate)) {
|
|
397
|
-
return dateAdapter.
|
|
457
|
+
if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && dateAdapter.isValid(range.startDate) && dateAdapter.isValid(range.endDate) && !isOutsideAllowedDates(range.startDate) && !isOutsideAllowedDates(range.endDate)) {
|
|
458
|
+
return dateAdapter.compare(date, range.startDate) > 0 && dateAdapter.compare(date, range.endDate) < 0;
|
|
398
459
|
}
|
|
399
460
|
return false;
|
|
400
461
|
});
|
|
401
462
|
},
|
|
402
463
|
[dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
|
|
403
464
|
);
|
|
404
|
-
const
|
|
465
|
+
const isSelectedEnd = react.useCallback(
|
|
405
466
|
(date) => {
|
|
406
|
-
if (
|
|
407
|
-
|
|
408
|
-
const endDate = getEndDateOffset(hoveredDate);
|
|
409
|
-
return dateAdapter.compare(date, startDate) >= 0 && dateAdapter.compare(date, endDate) <= 0 && (!isDaySelectable || isDaySelectable(date));
|
|
467
|
+
if (selectionVariant === "single") {
|
|
468
|
+
return false;
|
|
410
469
|
}
|
|
411
|
-
|
|
470
|
+
const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
|
|
471
|
+
return dateRanges.some((range) => {
|
|
472
|
+
if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && dateAdapter.isValid(range.endDate) && !isOutsideAllowedDates(range.endDate)) {
|
|
473
|
+
return dateAdapter.isSame(range.endDate, date, "day");
|
|
474
|
+
}
|
|
475
|
+
return false;
|
|
476
|
+
});
|
|
412
477
|
},
|
|
413
|
-
[
|
|
414
|
-
dateAdapter,
|
|
415
|
-
getStartDateOffset,
|
|
416
|
-
getEndDateOffset,
|
|
417
|
-
hoveredDate,
|
|
418
|
-
isDaySelectable,
|
|
419
|
-
selectionVariant
|
|
420
|
-
]
|
|
478
|
+
[dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
|
|
421
479
|
);
|
|
422
480
|
return react.useMemo(
|
|
423
481
|
() => ({
|
|
@@ -429,15 +487,17 @@ function useCalendarSelection(props) {
|
|
|
429
487
|
focusableDates: getFocusableDates()
|
|
430
488
|
},
|
|
431
489
|
helpers: {
|
|
432
|
-
isSelected,
|
|
433
|
-
setSelectedDate,
|
|
434
490
|
isHovered,
|
|
491
|
+
isSelected,
|
|
435
492
|
setHoveredDate,
|
|
436
|
-
|
|
437
|
-
|
|
493
|
+
isSameDay,
|
|
494
|
+
setSelectedDate,
|
|
438
495
|
isSelectedStart,
|
|
496
|
+
isSelectedSpan,
|
|
439
497
|
isSelectedEnd,
|
|
440
|
-
|
|
498
|
+
isHoveredStart,
|
|
499
|
+
isHoveredSpan,
|
|
500
|
+
isHoveredEnd,
|
|
441
501
|
isDaySelectable,
|
|
442
502
|
setFocusedDate
|
|
443
503
|
}
|
|
@@ -449,12 +509,13 @@ function useCalendarSelection(props) {
|
|
|
449
509
|
getFocusableDates,
|
|
450
510
|
hoveredDate,
|
|
451
511
|
isSelected,
|
|
452
|
-
|
|
453
|
-
isSelectedSpan,
|
|
512
|
+
isHoveredStart,
|
|
454
513
|
isHoveredSpan,
|
|
514
|
+
isHoveredEnd,
|
|
515
|
+
isSameDay,
|
|
455
516
|
isSelectedStart,
|
|
517
|
+
isSelectedSpan,
|
|
456
518
|
isSelectedEnd,
|
|
457
|
-
isHoveredOffset,
|
|
458
519
|
isDaySelectable,
|
|
459
520
|
setFocusedDate,
|
|
460
521
|
setHoveredDate,
|
|
@@ -466,15 +527,18 @@ function useCalendarSelectionDay({
|
|
|
466
527
|
date
|
|
467
528
|
}) {
|
|
468
529
|
const {
|
|
530
|
+
state: { selectionVariant },
|
|
469
531
|
helpers: {
|
|
470
532
|
setSelectedDate,
|
|
533
|
+
isSameDay,
|
|
471
534
|
isSelected,
|
|
472
|
-
isSelectedSpan,
|
|
473
|
-
isHoveredSpan,
|
|
474
535
|
isSelectedStart,
|
|
536
|
+
isSelectedSpan,
|
|
475
537
|
isSelectedEnd,
|
|
476
538
|
isHovered,
|
|
477
|
-
|
|
539
|
+
isHoveredStart,
|
|
540
|
+
isHoveredSpan,
|
|
541
|
+
isHoveredEnd,
|
|
478
542
|
isDaySelectable
|
|
479
543
|
}
|
|
480
544
|
} = CalendarContext.useCalendarContext();
|
|
@@ -496,33 +560,37 @@ function useCalendarSelectionDay({
|
|
|
496
560
|
[date, setSelectedDate]
|
|
497
561
|
);
|
|
498
562
|
const selected = isSelected(date);
|
|
499
|
-
const selectedSpan = isSelectedSpan(date);
|
|
500
|
-
const hoveredSpan = isHoveredSpan(date);
|
|
501
563
|
const selectedStart = isSelectedStart(date);
|
|
564
|
+
const selectedSpan = isSelectedSpan(date);
|
|
502
565
|
const selectedEnd = isSelectedEnd(date);
|
|
566
|
+
const selectedOnSameDay = isSameDay(date);
|
|
503
567
|
const hovered = isHovered(date);
|
|
504
|
-
const
|
|
568
|
+
const hoveredStart = isHoveredStart(date);
|
|
569
|
+
const hoveredSpan = isHoveredSpan(date);
|
|
570
|
+
const hoveredEnd = isHoveredEnd(date);
|
|
505
571
|
return {
|
|
506
572
|
handleClick,
|
|
507
573
|
handleKeyDown,
|
|
508
574
|
status: {
|
|
575
|
+
hovered,
|
|
509
576
|
selected,
|
|
510
|
-
selectedSpan,
|
|
511
|
-
hoveredSpan,
|
|
512
577
|
selectedStart,
|
|
578
|
+
selectedSpan,
|
|
513
579
|
selectedEnd,
|
|
514
|
-
|
|
515
|
-
|
|
580
|
+
hoveredStart,
|
|
581
|
+
hoveredSpan,
|
|
582
|
+
hoveredEnd
|
|
516
583
|
},
|
|
517
584
|
dayProps: {
|
|
518
585
|
className: clsx.clsx({
|
|
519
|
-
[withBaseName("selected")]: selected,
|
|
520
|
-
[withBaseName("
|
|
521
|
-
[withBaseName("
|
|
522
|
-
[withBaseName("
|
|
523
|
-
[withBaseName("
|
|
524
|
-
[withBaseName("
|
|
525
|
-
[withBaseName("
|
|
586
|
+
[withBaseName("selected")]: selectionVariant === "single" ? selected : void 0,
|
|
587
|
+
[withBaseName("selectedStart")]: selectionVariant !== "single" ? selectedStart : void 0,
|
|
588
|
+
[withBaseName("selectedSpan")]: selectionVariant !== "single" ? selectedSpan : void 0,
|
|
589
|
+
[withBaseName("selectedEnd")]: selectionVariant !== "single" ? selectedEnd : void 0,
|
|
590
|
+
[withBaseName("selectedSameDay")]: selectionVariant !== "single" && selectedOnSameDay,
|
|
591
|
+
[withBaseName("hoveredStart")]: selectionVariant !== "single" && hoveredStart,
|
|
592
|
+
[withBaseName("hoveredSpan")]: selectionVariant !== "single" && hoveredSpan,
|
|
593
|
+
[withBaseName("hoveredEnd")]: selectionVariant !== "single" && hoveredEnd
|
|
526
594
|
}),
|
|
527
595
|
"aria-pressed": selected || selectedEnd || selectedStart || selectedSpan ? "true" : void 0,
|
|
528
596
|
"aria-disabled": isDaySelectable && !isDaySelectable(date) ? "true" : void 0
|