@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.
Files changed (686) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/css/salt-lab.css +274 -79
  3. package/dist-cjs/app-header/AppHeader.js.map +1 -1
  4. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
  5. package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
  6. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  7. package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
  8. package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
  9. package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
  10. package/dist-cjs/button-bar/ButtonBar.js.map +1 -1
  11. package/dist-cjs/button-bar/OrderedButton.js.map +1 -1
  12. package/dist-cjs/button-bar/internal/ButtonBarContext.js.map +1 -1
  13. package/dist-cjs/button-bar/internal/DescendantContext.js.map +1 -1
  14. package/dist-cjs/button-bar/internal/useDescendant.js.map +1 -1
  15. package/dist-cjs/button-bar/internal/useDescendants.js.map +1 -1
  16. package/dist-cjs/calendar/Calendar.css.js +1 -1
  17. package/dist-cjs/calendar/Calendar.js +11 -2
  18. package/dist-cjs/calendar/Calendar.js.map +1 -1
  19. package/dist-cjs/calendar/CalendarGrid.js +38 -36
  20. package/dist-cjs/calendar/CalendarGrid.js.map +1 -1
  21. package/dist-cjs/calendar/CalendarMonthHeader.js +1 -1
  22. package/dist-cjs/calendar/CalendarMonthHeader.js.map +1 -1
  23. package/dist-cjs/calendar/CalendarNavigation.css.js +1 -1
  24. package/dist-cjs/calendar/CalendarNavigation.js +20 -13
  25. package/dist-cjs/calendar/CalendarNavigation.js.map +1 -1
  26. package/dist-cjs/calendar/CalendarWeekHeader.css.js +1 -1
  27. package/dist-cjs/calendar/CalendarWeekHeader.js +1 -1
  28. package/dist-cjs/calendar/CalendarWeekHeader.js.map +1 -1
  29. package/dist-cjs/calendar/internal/CalendarContext.js.map +1 -1
  30. package/dist-cjs/calendar/internal/CalendarDay.css.js +1 -1
  31. package/dist-cjs/calendar/internal/CalendarDay.js +26 -36
  32. package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
  33. package/dist-cjs/calendar/internal/CalendarMonth.css.js +1 -1
  34. package/dist-cjs/calendar/internal/CalendarMonth.js +30 -9
  35. package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
  36. package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
  37. package/dist-cjs/calendar/internal/utils.js.map +1 -1
  38. package/dist-cjs/calendar/useCalendar.js +7 -9
  39. package/dist-cjs/calendar/useCalendar.js.map +1 -1
  40. package/dist-cjs/calendar/useCalendarDay.js +7 -11
  41. package/dist-cjs/calendar/useCalendarDay.js.map +1 -1
  42. package/dist-cjs/calendar/useCalendarSelection.js +144 -76
  43. package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
  44. package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
  45. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  46. package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
  47. package/dist-cjs/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
  48. package/dist-cjs/cascading-menu/internal/keydownHandlers.js.map +1 -1
  49. package/dist-cjs/cascading-menu/internal/menuPositioning.js.map +1 -1
  50. package/dist-cjs/cascading-menu/internal/stateUtils.js.map +1 -1
  51. package/dist-cjs/cascading-menu/internal/useClickAway.js.map +1 -1
  52. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  53. package/dist-cjs/cascading-menu/internal/useMountedRef.js.map +1 -1
  54. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  55. package/dist-cjs/cascading-menu/internal/useRefsManager.js.map +1 -1
  56. package/dist-cjs/cascading-menu/internal/useStateReducer.js.map +1 -1
  57. package/dist-cjs/cascading-menu/stateChangeTypes.js.map +1 -1
  58. package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
  59. package/dist-cjs/color-chooser/Color.js.map +1 -1
  60. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  61. package/dist-cjs/color-chooser/ColorHelpers.js.map +1 -1
  62. package/dist-cjs/color-chooser/ColorPicker.js.map +1 -1
  63. package/dist-cjs/color-chooser/DictTabs.js.map +1 -1
  64. package/dist-cjs/color-chooser/GetColorPalettes.js.map +1 -1
  65. package/dist-cjs/color-chooser/HexInput.js.map +1 -1
  66. package/dist-cjs/color-chooser/RGBAInput.js.map +1 -1
  67. package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
  68. package/dist-cjs/color-chooser/Swatch.js.map +1 -1
  69. package/dist-cjs/color-chooser/Swatches.js.map +1 -1
  70. package/dist-cjs/color-chooser/SwatchesPicker.js.map +1 -1
  71. package/dist-cjs/color-chooser/color-utils.js.map +1 -1
  72. package/dist-cjs/color-chooser/colorMap.js.map +1 -1
  73. package/dist-cjs/color-chooser/createTabsMapping.js.map +1 -1
  74. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  75. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  76. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  77. package/dist-cjs/combo-box-deprecated/filterHelpers.js.map +1 -1
  78. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  79. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  80. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  81. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  82. package/dist-cjs/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
  83. package/dist-cjs/common-hooks/calcPreferredHeight.js.map +1 -1
  84. package/dist-cjs/common-hooks/collectionProvider.js.map +1 -1
  85. package/dist-cjs/common-hooks/itemToString.js.map +1 -1
  86. package/dist-cjs/common-hooks/keyUtils.js.map +1 -1
  87. package/dist-cjs/common-hooks/list-dom-utils.js.map +1 -1
  88. package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
  89. package/dist-cjs/common-hooks/useAutoSizer.js.map +1 -1
  90. package/dist-cjs/common-hooks/useCollapsibleGroups.js.map +1 -1
  91. package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
  92. package/dist-cjs/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  93. package/dist-cjs/common-hooks/useKeyboardNavigation.js.map +1 -1
  94. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  95. package/dist-cjs/common-hooks/useSelection.js.map +1 -1
  96. package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
  97. package/dist-cjs/common-hooks/useViewportTracking.js.map +1 -1
  98. package/dist-cjs/common-hooks/utils/collection-item-utils.js.map +1 -1
  99. package/dist-cjs/common-hooks/utils/filter-utils.js.map +1 -1
  100. package/dist-cjs/common-hooks/utils/isSelected.js.map +1 -1
  101. package/dist-cjs/contact-details/ContactAction.js.map +1 -1
  102. package/dist-cjs/contact-details/ContactActions.js.map +1 -1
  103. package/dist-cjs/contact-details/ContactAvatar.js.map +1 -1
  104. package/dist-cjs/contact-details/ContactDetails.js.map +1 -1
  105. package/dist-cjs/contact-details/ContactFavoriteToggle.js.map +1 -1
  106. package/dist-cjs/contact-details/ContactMetadata.js.map +1 -1
  107. package/dist-cjs/contact-details/ContactMetadataItem.js.map +1 -1
  108. package/dist-cjs/contact-details/ContactPrimaryInfo.js.map +1 -1
  109. package/dist-cjs/contact-details/ContactSecondaryInfo.js.map +1 -1
  110. package/dist-cjs/contact-details/ContactTertiaryInfo.js.map +1 -1
  111. package/dist-cjs/contact-details/MailLinkComponent.js.map +1 -1
  112. package/dist-cjs/contact-details/internal/ContactDetailsContext.js.map +1 -1
  113. package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
  114. package/dist-cjs/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  115. package/dist-cjs/contact-details/internal/StarIcon.js.map +1 -1
  116. package/dist-cjs/contact-details/internal/StarIconContainer.js.map +1 -1
  117. package/dist-cjs/contact-details/internal/useComponentSize.js.map +1 -1
  118. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  119. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  120. package/dist-cjs/date-input/DateInputRange.js +3 -2
  121. package/dist-cjs/date-input/DateInputRange.js.map +1 -1
  122. package/dist-cjs/date-input/DateInputSingle.js +5 -2
  123. package/dist-cjs/date-input/DateInputSingle.js.map +1 -1
  124. package/dist-cjs/date-picker/DatePicker.js +0 -2
  125. package/dist-cjs/date-picker/DatePicker.js.map +1 -1
  126. package/dist-cjs/date-picker/DatePickerActions.js +1 -1
  127. package/dist-cjs/date-picker/DatePickerActions.js.map +1 -1
  128. package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
  129. package/dist-cjs/date-picker/DatePickerHelperText.js.map +1 -1
  130. package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -1
  131. package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
  132. package/dist-cjs/date-picker/DatePickerRangeGridPanel.js +2 -3
  133. package/dist-cjs/date-picker/DatePickerRangeGridPanel.js.map +1 -1
  134. package/dist-cjs/date-picker/DatePickerRangeInput.js +22 -8
  135. package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
  136. package/dist-cjs/date-picker/DatePickerRangePanel.js +2 -4
  137. package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -1
  138. package/dist-cjs/date-picker/DatePickerSingleGridPanel.js +2 -4
  139. package/dist-cjs/date-picker/DatePickerSingleGridPanel.js.map +1 -1
  140. package/dist-cjs/date-picker/DatePickerSingleInput.js +12 -7
  141. package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
  142. package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -1
  143. package/dist-cjs/date-picker/DatePickerTrigger.js.map +1 -1
  144. package/dist-cjs/date-picker/useDatePicker.js +0 -17
  145. package/dist-cjs/date-picker/useDatePicker.js.map +1 -1
  146. package/dist-cjs/date-picker/useFocusOut.js.map +1 -1
  147. package/dist-cjs/date-picker/useKeyboard.js.map +1 -1
  148. package/dist-cjs/deck-item/DeckItem.js.map +1 -1
  149. package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
  150. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  151. package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
  152. package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
  153. package/dist-cjs/dropdown/useClickAway.js.map +1 -1
  154. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  155. package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
  156. package/dist-cjs/editable-label/EditableLabel.js.map +1 -1
  157. package/dist-cjs/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
  158. package/dist-cjs/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
  159. package/dist-cjs/form-field-legacy/FormActivationIndicator.js.map +1 -1
  160. package/dist-cjs/form-field-legacy/FormFieldLegacy.js.map +1 -1
  161. package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
  162. package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
  163. package/dist-cjs/form-field-legacy/NecessityIndicator.js.map +1 -1
  164. package/dist-cjs/form-field-legacy/StatusIndicator.js.map +1 -1
  165. package/dist-cjs/form-field-legacy/constant.js.map +1 -1
  166. package/dist-cjs/form-group/FormGroup.js.map +1 -1
  167. package/dist-cjs/formatted-input/FormattedInput.js.map +1 -1
  168. package/dist-cjs/formatted-input/internal/InputWithMask.js.map +1 -1
  169. package/dist-cjs/input-legacy/InputLegacy.js.map +1 -1
  170. package/dist-cjs/input-legacy/StaticInputAdornment.js.map +1 -1
  171. package/dist-cjs/input-legacy/useCursorOnFocus.js.map +1 -1
  172. package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
  173. package/dist-cjs/list/Highlighter.js.map +1 -1
  174. package/dist-cjs/list/List.js.map +1 -1
  175. package/dist-cjs/list/ListItem.js.map +1 -1
  176. package/dist-cjs/list/ListItemGroup.js.map +1 -1
  177. package/dist-cjs/list/ListItemHeader.js.map +1 -1
  178. package/dist-cjs/list/VirtualizedList.js.map +1 -1
  179. package/dist-cjs/list/keyset.js.map +1 -1
  180. package/dist-cjs/list/useList.js.map +1 -1
  181. package/dist-cjs/list/useListHeight.js.map +1 -1
  182. package/dist-cjs/list/useVirtualization.js.map +1 -1
  183. package/dist-cjs/list-deprecated/List.js.map +1 -1
  184. package/dist-cjs/list-deprecated/ListBase.js.map +1 -1
  185. package/dist-cjs/list-deprecated/ListItem.js.map +1 -1
  186. package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
  187. package/dist-cjs/list-deprecated/ListItemContext.js.map +1 -1
  188. package/dist-cjs/list-deprecated/ListStateContext.js.map +1 -1
  189. package/dist-cjs/list-deprecated/internal/DescendantContext.js.map +1 -1
  190. package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
  191. package/dist-cjs/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
  192. package/dist-cjs/list-deprecated/internal/helpers.js.map +1 -1
  193. package/dist-cjs/list-deprecated/internal/scrollIntoView.js.map +1 -1
  194. package/dist-cjs/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  195. package/dist-cjs/list-deprecated/internal/useWidth.js.map +1 -1
  196. package/dist-cjs/list-deprecated/itemToString.js.map +1 -1
  197. package/dist-cjs/list-deprecated/useList.js.map +1 -1
  198. package/dist-cjs/list-deprecated/useListItem.js.map +1 -1
  199. package/dist-cjs/list-deprecated/useTypeSelect.js.map +1 -1
  200. package/dist-cjs/list-next/ListItemNext.js.map +1 -1
  201. package/dist-cjs/list-next/ListNext.js.map +1 -1
  202. package/dist-cjs/list-next/ListNextContext.js.map +1 -1
  203. package/dist-cjs/list-next/useList.js.map +1 -1
  204. package/dist-cjs/localization-provider/LocalizationProvider.js.map +1 -1
  205. package/dist-cjs/logo/Logo.js.map +1 -1
  206. package/dist-cjs/logo/LogoImage.js.map +1 -1
  207. package/dist-cjs/logo/LogoSeparator.js.map +1 -1
  208. package/dist-cjs/menu-button/MenuButton.js.map +1 -1
  209. package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
  210. package/dist-cjs/metric/Metric.js.map +1 -1
  211. package/dist-cjs/metric/MetricContent.js.map +1 -1
  212. package/dist-cjs/metric/MetricHeader.js.map +1 -1
  213. package/dist-cjs/metric/internal/MetricContext.js.map +1 -1
  214. package/dist-cjs/number-input/NumberInput.js.map +1 -1
  215. package/dist-cjs/number-input/internal/useActivateWhileMouseDown.js.map +1 -1
  216. package/dist-cjs/number-input/internal/useCaret.js.map +1 -1
  217. package/dist-cjs/number-input/internal/useInterval.js.map +1 -1
  218. package/dist-cjs/number-input/internal/utils.js.map +1 -1
  219. package/dist-cjs/number-input/useNumberInput.js.map +1 -1
  220. package/dist-cjs/portal/Portal.js.map +1 -1
  221. package/dist-cjs/query-input/QueryInput.js.map +1 -1
  222. package/dist-cjs/query-input/internal/CategoryList.js.map +1 -1
  223. package/dist-cjs/query-input/internal/CategoryListContext.js.map +1 -1
  224. package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
  225. package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
  226. package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
  227. package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
  228. package/dist-cjs/query-input/internal/ValueSelector.js.map +1 -1
  229. package/dist-cjs/query-input/internal/usePopperStatus.js.map +1 -1
  230. package/dist-cjs/query-input/useQueryInput.js.map +1 -1
  231. package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
  232. package/dist-cjs/responsive/overflowUtils.js.map +1 -1
  233. package/dist-cjs/responsive/useDynamicCollapse.js.map +1 -1
  234. package/dist-cjs/responsive/useInstantCollapse.js.map +1 -1
  235. package/dist-cjs/responsive/useOverflow.js.map +1 -1
  236. package/dist-cjs/responsive/useOverflowCollectionItems.js.map +1 -1
  237. package/dist-cjs/responsive/useOverflowLayout.js.map +1 -1
  238. package/dist-cjs/responsive/useReclaimSpace.js.map +1 -1
  239. package/dist-cjs/responsive/useResizeObserver.js.map +1 -1
  240. package/dist-cjs/responsive/useWidth.js.map +1 -1
  241. package/dist-cjs/responsive/utils.js.map +1 -1
  242. package/dist-cjs/search-input/SearchInput.js.map +1 -1
  243. package/dist-cjs/static-list/StaticList.js.map +1 -1
  244. package/dist-cjs/static-list/StaticListItem.js.map +1 -1
  245. package/dist-cjs/static-list/StaticListItemContent.js.map +1 -1
  246. package/dist-cjs/system-status/SystemStatus.js.map +1 -1
  247. package/dist-cjs/system-status/SystemStatusActions.js.map +1 -1
  248. package/dist-cjs/system-status/SystemStatusContent.js.map +1 -1
  249. package/dist-cjs/table/TBody.js.map +1 -1
  250. package/dist-cjs/table/TD.js +6 -2
  251. package/dist-cjs/table/TD.js.map +1 -1
  252. package/dist-cjs/table/TFoot.js.map +1 -1
  253. package/dist-cjs/table/TH.js +6 -2
  254. package/dist-cjs/table/TH.js.map +1 -1
  255. package/dist-cjs/table/THead.js.map +1 -1
  256. package/dist-cjs/table/TR.js.map +1 -1
  257. package/dist-cjs/table/Table.css.js +1 -1
  258. package/dist-cjs/table/Table.js +2 -2
  259. package/dist-cjs/table/Table.js.map +1 -1
  260. package/dist-cjs/tabs/Tab.js.map +1 -1
  261. package/dist-cjs/tabs/TabActivationIndicator.js.map +1 -1
  262. package/dist-cjs/tabs/TabPanel.js.map +1 -1
  263. package/dist-cjs/tabs/Tabs.js.map +1 -1
  264. package/dist-cjs/tabs/Tabstrip.js.map +1 -1
  265. package/dist-cjs/tabs/drag-drop/Draggable.js.map +1 -1
  266. package/dist-cjs/tabs/drag-drop/drag-utils.js.map +1 -1
  267. package/dist-cjs/tabs/drag-drop/dragDropTypes.js.map +1 -1
  268. package/dist-cjs/tabs/drag-drop/useDragDrop.js.map +1 -1
  269. package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  270. package/dist-cjs/tabs/drag-drop/useDragSpacers.js.map +1 -1
  271. package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
  272. package/dist-cjs/tabs/useEditableItem.js.map +1 -1
  273. package/dist-cjs/tabs/useItemsWithIds.js.map +1 -1
  274. package/dist-cjs/tabs/useKeyboardNavigation.js.map +1 -1
  275. package/dist-cjs/tabs/useSelection.js.map +1 -1
  276. package/dist-cjs/tabs/useTabs.js.map +1 -1
  277. package/dist-cjs/tabs/useTabstrip.js.map +1 -1
  278. package/dist-cjs/tabs-next/TabBar.js.map +1 -1
  279. package/dist-cjs/tabs-next/TabListNext.js.map +1 -1
  280. package/dist-cjs/tabs-next/TabNext.js.map +1 -1
  281. package/dist-cjs/tabs-next/TabNextAction.js.map +1 -1
  282. package/dist-cjs/tabs-next/TabNextContext.js.map +1 -1
  283. package/dist-cjs/tabs-next/TabNextPanel.js.map +1 -1
  284. package/dist-cjs/tabs-next/TabNextTrigger.css.js +1 -1
  285. package/dist-cjs/tabs-next/TabNextTrigger.js.map +1 -1
  286. package/dist-cjs/tabs-next/TabOverflowList.js.map +1 -1
  287. package/dist-cjs/tabs-next/TabsNext.js.map +1 -1
  288. package/dist-cjs/tabs-next/TabsNextContext.js.map +1 -1
  289. package/dist-cjs/tabs-next/hooks/useCollection.js.map +1 -1
  290. package/dist-cjs/tabs-next/hooks/useFocusOutside.js.map +1 -1
  291. package/dist-cjs/tabs-next/hooks/useOverflow.js.map +1 -1
  292. package/dist-cjs/tabs-next/hooks/useRestoreActiveTab.js.map +1 -1
  293. package/dist-cjs/toast-group/ToastGroup.js.map +1 -1
  294. package/dist-cjs/tokenized-input/TokenizedInput.js.map +1 -1
  295. package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
  296. package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
  297. package/dist-cjs/tokenized-input/internal/InputRuler.js.map +1 -1
  298. package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  299. package/dist-cjs/tokenized-input/internal/defaultItemToString.js.map +1 -1
  300. package/dist-cjs/tokenized-input/internal/getCursorPosition.js.map +1 -1
  301. package/dist-cjs/tokenized-input/internal/isPlainObject.js.map +1 -1
  302. package/dist-cjs/tokenized-input/internal/useResizeObserver.js.map +1 -1
  303. package/dist-cjs/tokenized-input/internal/useWidth.js.map +1 -1
  304. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  305. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  306. package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
  307. package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  308. package/dist-cjs/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
  309. package/dist-cjs/tokenized-input-next/internal/useWidth.js.map +1 -1
  310. package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  311. package/dist-cjs/toolbar/Toolbar.js.map +1 -1
  312. package/dist-cjs/toolbar/ToolbarButton.js.map +1 -1
  313. package/dist-cjs/toolbar/Tooltray.js.map +1 -1
  314. package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
  315. package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
  316. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  317. package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  318. package/dist-cjs/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  319. package/dist-cjs/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  320. package/dist-cjs/tree/Tree.js.map +1 -1
  321. package/dist-cjs/tree/TreeNode.js.map +1 -1
  322. package/dist-cjs/tree/use-tree-keyboard-navigation.js.map +1 -1
  323. package/dist-cjs/tree/useTree.js.map +1 -1
  324. package/dist-cjs/utils/escapeRegExp.js.map +1 -1
  325. package/dist-cjs/utils/forwardCallbackProps.js.map +1 -1
  326. package/dist-cjs/utils/isEmail.js.map +1 -1
  327. package/dist-cjs/utils/isPlainObject.js.map +1 -1
  328. package/dist-cjs/utils/partition.js.map +1 -1
  329. package/dist-cjs/utils/useClickOutside.js.map +1 -1
  330. package/dist-cjs/utils/useEventCallback.js.map +1 -1
  331. package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  332. package/dist-cjs/utils/useLayoutEffectOnce.js.map +1 -1
  333. package/dist-cjs/utils/useLayoutEffectSkipFirst.js.map +1 -1
  334. package/dist-cjs/utils/useOverflowDetection.js.map +1 -1
  335. package/dist-cjs/utils/useSlideSelection.js.map +1 -1
  336. package/dist-cjs/window/ElectronWindow.js.map +1 -1
  337. package/dist-cjs/window/WindowContext.js.map +1 -1
  338. package/dist-cjs/window/desktop-utils.js.map +1 -1
  339. package/dist-es/app-header/AppHeader.js.map +1 -1
  340. package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
  341. package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
  342. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  343. package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js.map +1 -1
  344. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js.map +1 -1
  345. package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js.map +1 -1
  346. package/dist-es/button-bar/ButtonBar.js.map +1 -1
  347. package/dist-es/button-bar/OrderedButton.js.map +1 -1
  348. package/dist-es/button-bar/internal/ButtonBarContext.js.map +1 -1
  349. package/dist-es/button-bar/internal/DescendantContext.js.map +1 -1
  350. package/dist-es/button-bar/internal/useDescendant.js.map +1 -1
  351. package/dist-es/button-bar/internal/useDescendants.js.map +1 -1
  352. package/dist-es/calendar/Calendar.css.js +1 -1
  353. package/dist-es/calendar/Calendar.js +12 -3
  354. package/dist-es/calendar/Calendar.js.map +1 -1
  355. package/dist-es/calendar/CalendarGrid.js +39 -37
  356. package/dist-es/calendar/CalendarGrid.js.map +1 -1
  357. package/dist-es/calendar/CalendarMonthHeader.js +1 -1
  358. package/dist-es/calendar/CalendarMonthHeader.js.map +1 -1
  359. package/dist-es/calendar/CalendarNavigation.css.js +1 -1
  360. package/dist-es/calendar/CalendarNavigation.js +21 -14
  361. package/dist-es/calendar/CalendarNavigation.js.map +1 -1
  362. package/dist-es/calendar/CalendarWeekHeader.css.js +1 -1
  363. package/dist-es/calendar/CalendarWeekHeader.js +2 -2
  364. package/dist-es/calendar/CalendarWeekHeader.js.map +1 -1
  365. package/dist-es/calendar/internal/CalendarContext.js.map +1 -1
  366. package/dist-es/calendar/internal/CalendarDay.css.js +1 -1
  367. package/dist-es/calendar/internal/CalendarDay.js +27 -37
  368. package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
  369. package/dist-es/calendar/internal/CalendarMonth.css.js +1 -1
  370. package/dist-es/calendar/internal/CalendarMonth.js +31 -10
  371. package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
  372. package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
  373. package/dist-es/calendar/internal/utils.js.map +1 -1
  374. package/dist-es/calendar/useCalendar.js +7 -9
  375. package/dist-es/calendar/useCalendar.js.map +1 -1
  376. package/dist-es/calendar/useCalendarDay.js +7 -11
  377. package/dist-es/calendar/useCalendarDay.js.map +1 -1
  378. package/dist-es/calendar/useCalendarSelection.js +144 -76
  379. package/dist-es/calendar/useCalendarSelection.js.map +1 -1
  380. package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
  381. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  382. package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
  383. package/dist-es/cascading-menu/internal/CascadingMenuAction.js.map +1 -1
  384. package/dist-es/cascading-menu/internal/keydownHandlers.js.map +1 -1
  385. package/dist-es/cascading-menu/internal/menuPositioning.js.map +1 -1
  386. package/dist-es/cascading-menu/internal/stateUtils.js.map +1 -1
  387. package/dist-es/cascading-menu/internal/useClickAway.js.map +1 -1
  388. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  389. package/dist-es/cascading-menu/internal/useMountedRef.js.map +1 -1
  390. package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  391. package/dist-es/cascading-menu/internal/useRefsManager.js.map +1 -1
  392. package/dist-es/cascading-menu/internal/useStateReducer.js.map +1 -1
  393. package/dist-es/cascading-menu/stateChangeTypes.js.map +1 -1
  394. package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
  395. package/dist-es/color-chooser/Color.js.map +1 -1
  396. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  397. package/dist-es/color-chooser/ColorHelpers.js.map +1 -1
  398. package/dist-es/color-chooser/ColorPicker.js.map +1 -1
  399. package/dist-es/color-chooser/DictTabs.js.map +1 -1
  400. package/dist-es/color-chooser/GetColorPalettes.js.map +1 -1
  401. package/dist-es/color-chooser/HexInput.js.map +1 -1
  402. package/dist-es/color-chooser/RGBAInput.js.map +1 -1
  403. package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
  404. package/dist-es/color-chooser/Swatch.js.map +1 -1
  405. package/dist-es/color-chooser/Swatches.js.map +1 -1
  406. package/dist-es/color-chooser/SwatchesPicker.js.map +1 -1
  407. package/dist-es/color-chooser/color-utils.js.map +1 -1
  408. package/dist-es/color-chooser/colorMap.js.map +1 -1
  409. package/dist-es/color-chooser/createTabsMapping.js.map +1 -1
  410. package/dist-es/combo-box/ComboBox.js.map +1 -1
  411. package/dist-es/combo-box/useCombobox.js.map +1 -1
  412. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  413. package/dist-es/combo-box-deprecated/filterHelpers.js.map +1 -1
  414. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  415. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js.map +1 -1
  416. package/dist-es/combo-box-deprecated/internal/useComboBox.js.map +1 -1
  417. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js.map +1 -1
  418. package/dist-es/combo-box-deprecated/internal/usePopperStatus.js.map +1 -1
  419. package/dist-es/common-hooks/calcPreferredHeight.js.map +1 -1
  420. package/dist-es/common-hooks/collectionProvider.js.map +1 -1
  421. package/dist-es/common-hooks/itemToString.js.map +1 -1
  422. package/dist-es/common-hooks/keyUtils.js.map +1 -1
  423. package/dist-es/common-hooks/list-dom-utils.js.map +1 -1
  424. package/dist-es/common-hooks/selectionTypes.js.map +1 -1
  425. package/dist-es/common-hooks/useAutoSizer.js.map +1 -1
  426. package/dist-es/common-hooks/useCollapsibleGroups.js.map +1 -1
  427. package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
  428. package/dist-es/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  429. package/dist-es/common-hooks/useKeyboardNavigation.js.map +1 -1
  430. package/dist-es/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  431. package/dist-es/common-hooks/useSelection.js.map +1 -1
  432. package/dist-es/common-hooks/useTypeahead.js.map +1 -1
  433. package/dist-es/common-hooks/useViewportTracking.js.map +1 -1
  434. package/dist-es/common-hooks/utils/collection-item-utils.js.map +1 -1
  435. package/dist-es/common-hooks/utils/filter-utils.js.map +1 -1
  436. package/dist-es/common-hooks/utils/isSelected.js.map +1 -1
  437. package/dist-es/contact-details/ContactAction.js.map +1 -1
  438. package/dist-es/contact-details/ContactActions.js.map +1 -1
  439. package/dist-es/contact-details/ContactAvatar.js.map +1 -1
  440. package/dist-es/contact-details/ContactDetails.js.map +1 -1
  441. package/dist-es/contact-details/ContactFavoriteToggle.js.map +1 -1
  442. package/dist-es/contact-details/ContactMetadata.js.map +1 -1
  443. package/dist-es/contact-details/ContactMetadataItem.js.map +1 -1
  444. package/dist-es/contact-details/ContactPrimaryInfo.js.map +1 -1
  445. package/dist-es/contact-details/ContactSecondaryInfo.js.map +1 -1
  446. package/dist-es/contact-details/ContactTertiaryInfo.js.map +1 -1
  447. package/dist-es/contact-details/MailLinkComponent.js.map +1 -1
  448. package/dist-es/contact-details/internal/ContactDetailsContext.js.map +1 -1
  449. package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
  450. package/dist-es/contact-details/internal/FavoriteToggleWithTooltip.js.map +1 -1
  451. package/dist-es/contact-details/internal/StarIcon.js.map +1 -1
  452. package/dist-es/contact-details/internal/StarIconContainer.js.map +1 -1
  453. package/dist-es/contact-details/internal/useComponentSize.js.map +1 -1
  454. package/dist-es/content-status/ContentStatus.js.map +1 -1
  455. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  456. package/dist-es/date-input/DateInputRange.js +3 -2
  457. package/dist-es/date-input/DateInputRange.js.map +1 -1
  458. package/dist-es/date-input/DateInputSingle.js +5 -2
  459. package/dist-es/date-input/DateInputSingle.js.map +1 -1
  460. package/dist-es/date-picker/DatePicker.js +0 -2
  461. package/dist-es/date-picker/DatePicker.js.map +1 -1
  462. package/dist-es/date-picker/DatePickerActions.js +1 -1
  463. package/dist-es/date-picker/DatePickerActions.js.map +1 -1
  464. package/dist-es/date-picker/DatePickerContext.js.map +1 -1
  465. package/dist-es/date-picker/DatePickerHelperText.js.map +1 -1
  466. package/dist-es/date-picker/DatePickerOverlay.js.map +1 -1
  467. package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
  468. package/dist-es/date-picker/DatePickerRangeGridPanel.js +2 -3
  469. package/dist-es/date-picker/DatePickerRangeGridPanel.js.map +1 -1
  470. package/dist-es/date-picker/DatePickerRangeInput.js +22 -8
  471. package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
  472. package/dist-es/date-picker/DatePickerRangePanel.js +2 -4
  473. package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -1
  474. package/dist-es/date-picker/DatePickerSingleGridPanel.js +2 -4
  475. package/dist-es/date-picker/DatePickerSingleGridPanel.js.map +1 -1
  476. package/dist-es/date-picker/DatePickerSingleInput.js +12 -7
  477. package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
  478. package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -1
  479. package/dist-es/date-picker/DatePickerTrigger.js.map +1 -1
  480. package/dist-es/date-picker/useDatePicker.js +0 -17
  481. package/dist-es/date-picker/useDatePicker.js.map +1 -1
  482. package/dist-es/date-picker/useFocusOut.js.map +1 -1
  483. package/dist-es/date-picker/useKeyboard.js.map +1 -1
  484. package/dist-es/deck-item/DeckItem.js.map +1 -1
  485. package/dist-es/deck-layout/DeckLayout.js.map +1 -1
  486. package/dist-es/dropdown/Dropdown.js.map +1 -1
  487. package/dist-es/dropdown/DropdownBase.js.map +1 -1
  488. package/dist-es/dropdown/DropdownButton.js.map +1 -1
  489. package/dist-es/dropdown/useClickAway.js.map +1 -1
  490. package/dist-es/dropdown/useDropdown.js.map +1 -1
  491. package/dist-es/dropdown/useDropdownBase.js.map +1 -1
  492. package/dist-es/editable-label/EditableLabel.js.map +1 -1
  493. package/dist-es/form-field-context-legacy/FormFieldLegacyContext.js.map +1 -1
  494. package/dist-es/form-field-context-legacy/useFormFieldLegacyProps.js.map +1 -1
  495. package/dist-es/form-field-legacy/FormActivationIndicator.js.map +1 -1
  496. package/dist-es/form-field-legacy/FormFieldLegacy.js.map +1 -1
  497. package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
  498. package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
  499. package/dist-es/form-field-legacy/NecessityIndicator.js.map +1 -1
  500. package/dist-es/form-field-legacy/StatusIndicator.js.map +1 -1
  501. package/dist-es/form-field-legacy/constant.js.map +1 -1
  502. package/dist-es/form-group/FormGroup.js.map +1 -1
  503. package/dist-es/formatted-input/FormattedInput.js.map +1 -1
  504. package/dist-es/formatted-input/internal/InputWithMask.js.map +1 -1
  505. package/dist-es/input-legacy/InputLegacy.js.map +1 -1
  506. package/dist-es/input-legacy/StaticInputAdornment.js.map +1 -1
  507. package/dist-es/input-legacy/useCursorOnFocus.js.map +1 -1
  508. package/dist-es/layer-layout/LayerLayout.js.map +1 -1
  509. package/dist-es/list/Highlighter.js.map +1 -1
  510. package/dist-es/list/List.js.map +1 -1
  511. package/dist-es/list/ListItem.js.map +1 -1
  512. package/dist-es/list/ListItemGroup.js.map +1 -1
  513. package/dist-es/list/ListItemHeader.js.map +1 -1
  514. package/dist-es/list/VirtualizedList.js.map +1 -1
  515. package/dist-es/list/keyset.js.map +1 -1
  516. package/dist-es/list/useList.js.map +1 -1
  517. package/dist-es/list/useListHeight.js.map +1 -1
  518. package/dist-es/list/useVirtualization.js.map +1 -1
  519. package/dist-es/list-deprecated/List.js.map +1 -1
  520. package/dist-es/list-deprecated/ListBase.js.map +1 -1
  521. package/dist-es/list-deprecated/ListItem.js.map +1 -1
  522. package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
  523. package/dist-es/list-deprecated/ListItemContext.js.map +1 -1
  524. package/dist-es/list-deprecated/ListStateContext.js.map +1 -1
  525. package/dist-es/list-deprecated/internal/DescendantContext.js.map +1 -1
  526. package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
  527. package/dist-es/list-deprecated/internal/calcPreferredListHeight.js.map +1 -1
  528. package/dist-es/list-deprecated/internal/helpers.js.map +1 -1
  529. package/dist-es/list-deprecated/internal/scrollIntoView.js.map +1 -1
  530. package/dist-es/list-deprecated/internal/useListAutoSizer.js.map +1 -1
  531. package/dist-es/list-deprecated/internal/useWidth.js.map +1 -1
  532. package/dist-es/list-deprecated/itemToString.js.map +1 -1
  533. package/dist-es/list-deprecated/useList.js.map +1 -1
  534. package/dist-es/list-deprecated/useListItem.js.map +1 -1
  535. package/dist-es/list-deprecated/useTypeSelect.js.map +1 -1
  536. package/dist-es/list-next/ListItemNext.js.map +1 -1
  537. package/dist-es/list-next/ListNext.js.map +1 -1
  538. package/dist-es/list-next/ListNextContext.js.map +1 -1
  539. package/dist-es/list-next/useList.js.map +1 -1
  540. package/dist-es/localization-provider/LocalizationProvider.js.map +1 -1
  541. package/dist-es/logo/Logo.js.map +1 -1
  542. package/dist-es/logo/LogoImage.js.map +1 -1
  543. package/dist-es/logo/LogoSeparator.js.map +1 -1
  544. package/dist-es/menu-button/MenuButton.js.map +1 -1
  545. package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
  546. package/dist-es/metric/Metric.js.map +1 -1
  547. package/dist-es/metric/MetricContent.js.map +1 -1
  548. package/dist-es/metric/MetricHeader.js.map +1 -1
  549. package/dist-es/metric/internal/MetricContext.js.map +1 -1
  550. package/dist-es/number-input/NumberInput.js.map +1 -1
  551. package/dist-es/number-input/internal/useActivateWhileMouseDown.js.map +1 -1
  552. package/dist-es/number-input/internal/useCaret.js.map +1 -1
  553. package/dist-es/number-input/internal/useInterval.js.map +1 -1
  554. package/dist-es/number-input/internal/utils.js.map +1 -1
  555. package/dist-es/number-input/useNumberInput.js.map +1 -1
  556. package/dist-es/portal/Portal.js.map +1 -1
  557. package/dist-es/query-input/QueryInput.js.map +1 -1
  558. package/dist-es/query-input/internal/CategoryList.js.map +1 -1
  559. package/dist-es/query-input/internal/CategoryListContext.js.map +1 -1
  560. package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
  561. package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
  562. package/dist-es/query-input/internal/SearchList.js.map +1 -1
  563. package/dist-es/query-input/internal/ValueList.js.map +1 -1
  564. package/dist-es/query-input/internal/ValueSelector.js.map +1 -1
  565. package/dist-es/query-input/internal/usePopperStatus.js.map +1 -1
  566. package/dist-es/query-input/useQueryInput.js.map +1 -1
  567. package/dist-es/responsive/OverflowReducer.js.map +1 -1
  568. package/dist-es/responsive/overflowUtils.js.map +1 -1
  569. package/dist-es/responsive/useDynamicCollapse.js.map +1 -1
  570. package/dist-es/responsive/useInstantCollapse.js.map +1 -1
  571. package/dist-es/responsive/useOverflow.js.map +1 -1
  572. package/dist-es/responsive/useOverflowCollectionItems.js.map +1 -1
  573. package/dist-es/responsive/useOverflowLayout.js.map +1 -1
  574. package/dist-es/responsive/useReclaimSpace.js.map +1 -1
  575. package/dist-es/responsive/useResizeObserver.js.map +1 -1
  576. package/dist-es/responsive/useWidth.js.map +1 -1
  577. package/dist-es/responsive/utils.js.map +1 -1
  578. package/dist-es/search-input/SearchInput.js.map +1 -1
  579. package/dist-es/static-list/StaticList.js.map +1 -1
  580. package/dist-es/static-list/StaticListItem.js.map +1 -1
  581. package/dist-es/static-list/StaticListItemContent.js.map +1 -1
  582. package/dist-es/system-status/SystemStatus.js.map +1 -1
  583. package/dist-es/system-status/SystemStatusActions.js.map +1 -1
  584. package/dist-es/system-status/SystemStatusContent.js.map +1 -1
  585. package/dist-es/table/TBody.js.map +1 -1
  586. package/dist-es/table/TD.js +6 -2
  587. package/dist-es/table/TD.js.map +1 -1
  588. package/dist-es/table/TFoot.js.map +1 -1
  589. package/dist-es/table/TH.js +6 -2
  590. package/dist-es/table/TH.js.map +1 -1
  591. package/dist-es/table/THead.js.map +1 -1
  592. package/dist-es/table/TR.js.map +1 -1
  593. package/dist-es/table/Table.css.js +1 -1
  594. package/dist-es/table/Table.js +2 -2
  595. package/dist-es/table/Table.js.map +1 -1
  596. package/dist-es/tabs/Tab.js.map +1 -1
  597. package/dist-es/tabs/TabActivationIndicator.js.map +1 -1
  598. package/dist-es/tabs/TabPanel.js.map +1 -1
  599. package/dist-es/tabs/Tabs.js.map +1 -1
  600. package/dist-es/tabs/Tabstrip.js.map +1 -1
  601. package/dist-es/tabs/drag-drop/Draggable.js.map +1 -1
  602. package/dist-es/tabs/drag-drop/drag-utils.js.map +1 -1
  603. package/dist-es/tabs/drag-drop/dragDropTypes.js.map +1 -1
  604. package/dist-es/tabs/drag-drop/useDragDrop.js.map +1 -1
  605. package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  606. package/dist-es/tabs/drag-drop/useDragSpacers.js.map +1 -1
  607. package/dist-es/tabs/useActivationIndicator.js.map +1 -1
  608. package/dist-es/tabs/useEditableItem.js.map +1 -1
  609. package/dist-es/tabs/useItemsWithIds.js.map +1 -1
  610. package/dist-es/tabs/useKeyboardNavigation.js.map +1 -1
  611. package/dist-es/tabs/useSelection.js.map +1 -1
  612. package/dist-es/tabs/useTabs.js.map +1 -1
  613. package/dist-es/tabs/useTabstrip.js.map +1 -1
  614. package/dist-es/tabs-next/TabBar.js.map +1 -1
  615. package/dist-es/tabs-next/TabListNext.js.map +1 -1
  616. package/dist-es/tabs-next/TabNext.js.map +1 -1
  617. package/dist-es/tabs-next/TabNextAction.js.map +1 -1
  618. package/dist-es/tabs-next/TabNextContext.js.map +1 -1
  619. package/dist-es/tabs-next/TabNextPanel.js.map +1 -1
  620. package/dist-es/tabs-next/TabNextTrigger.css.js +1 -1
  621. package/dist-es/tabs-next/TabNextTrigger.js.map +1 -1
  622. package/dist-es/tabs-next/TabOverflowList.js.map +1 -1
  623. package/dist-es/tabs-next/TabsNext.js.map +1 -1
  624. package/dist-es/tabs-next/TabsNextContext.js.map +1 -1
  625. package/dist-es/tabs-next/hooks/useCollection.js.map +1 -1
  626. package/dist-es/tabs-next/hooks/useFocusOutside.js.map +1 -1
  627. package/dist-es/tabs-next/hooks/useOverflow.js.map +1 -1
  628. package/dist-es/tabs-next/hooks/useRestoreActiveTab.js.map +1 -1
  629. package/dist-es/toast-group/ToastGroup.js.map +1 -1
  630. package/dist-es/tokenized-input/TokenizedInput.js.map +1 -1
  631. package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
  632. package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
  633. package/dist-es/tokenized-input/internal/InputRuler.js.map +1 -1
  634. package/dist-es/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  635. package/dist-es/tokenized-input/internal/defaultItemToString.js.map +1 -1
  636. package/dist-es/tokenized-input/internal/getCursorPosition.js.map +1 -1
  637. package/dist-es/tokenized-input/internal/isPlainObject.js.map +1 -1
  638. package/dist-es/tokenized-input/internal/useResizeObserver.js.map +1 -1
  639. package/dist-es/tokenized-input/internal/useWidth.js.map +1 -1
  640. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  641. package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  642. package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
  643. package/dist-es/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  644. package/dist-es/tokenized-input-next/internal/useResizeObserver.js.map +1 -1
  645. package/dist-es/tokenized-input-next/internal/useWidth.js.map +1 -1
  646. package/dist-es/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  647. package/dist-es/toolbar/Toolbar.js.map +1 -1
  648. package/dist-es/toolbar/ToolbarButton.js.map +1 -1
  649. package/dist-es/toolbar/Tooltray.js.map +1 -1
  650. package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
  651. package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
  652. package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  653. package/dist-es/toolbar/overflow-panel/OverflowSeparator.js.map +1 -1
  654. package/dist-es/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  655. package/dist-es/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  656. package/dist-es/tree/Tree.js.map +1 -1
  657. package/dist-es/tree/TreeNode.js.map +1 -1
  658. package/dist-es/tree/use-tree-keyboard-navigation.js.map +1 -1
  659. package/dist-es/tree/useTree.js.map +1 -1
  660. package/dist-es/utils/escapeRegExp.js.map +1 -1
  661. package/dist-es/utils/forwardCallbackProps.js.map +1 -1
  662. package/dist-es/utils/isEmail.js.map +1 -1
  663. package/dist-es/utils/isPlainObject.js.map +1 -1
  664. package/dist-es/utils/partition.js.map +1 -1
  665. package/dist-es/utils/useClickOutside.js.map +1 -1
  666. package/dist-es/utils/useEventCallback.js.map +1 -1
  667. package/dist-es/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  668. package/dist-es/utils/useLayoutEffectOnce.js.map +1 -1
  669. package/dist-es/utils/useLayoutEffectSkipFirst.js.map +1 -1
  670. package/dist-es/utils/useOverflowDetection.js.map +1 -1
  671. package/dist-es/utils/useSlideSelection.js.map +1 -1
  672. package/dist-es/window/ElectronWindow.js.map +1 -1
  673. package/dist-es/window/WindowContext.js.map +1 -1
  674. package/dist-es/window/desktop-utils.js.map +1 -1
  675. package/dist-types/calendar/useCalendar.d.ts +26 -25
  676. package/dist-types/calendar/useCalendarDay.d.ts +1 -5
  677. package/dist-types/calendar/useCalendarSelection.d.ts +14 -11
  678. package/dist-types/date-picker/DatePickerContext.d.ts +0 -6
  679. package/dist-types/date-picker/DatePickerRangeGridPanel.d.ts +2 -2
  680. package/dist-types/date-picker/DatePickerRangePanel.d.ts +4 -4
  681. package/dist-types/date-picker/DatePickerSingleGridPanel.d.ts +2 -2
  682. package/dist-types/date-picker/useDatePicker.d.ts +0 -6
  683. package/dist-types/table/TD.d.ts +6 -0
  684. package/dist-types/table/TH.d.ts +6 -0
  685. package/dist-types/table/Table.d.ts +3 -3
  686. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltCalendarDay {\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n font-size: var(--salt-text-fontSize);\n width: var(--salt-size-base);\n height: var(--salt-size-base);\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n cursor: var(--salt-cursor-hover);\n border: none;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n overflow: hidden;\n}\n.saltCalendarDay-content {\n margin: 0 var(--salt-spacing-50);\n width: 100%;\n}\n\n.saltCalendarDay-focused,\n.saltCalendarDay.saltCalendarDay:focus-visible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(0px - var(--salt-focused-outlineWidth));\n}\n\n.saltCalendarDay-outOfRange {\n color: var(--salt-content-secondary-foreground);\n}\n.saltCalendarDay-outOfRange:hover {\n color: var(--salt-content-primary-foreground);\n}\n.saltCalendarDay-outOfRange .saltCalendarDay-today > span:last-of-type {\n border-bottom: var(--salt-size-indicator) var(--salt-borderStyle-solid) var(--salt-content-secondary-foreground);\n}\n\n.saltCalendarDay-outOfRange.saltCalendarDay-highlighted:before {\n background: var(--salt-content-secondary-foreground);\n}\n.saltCalendarDay:hover,\n.saltCalendarDay-hoveredOffset,\n.saltCalendarDay-hoveredOffset:hover {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltCalendarDay-selected {\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selectedStart {\n z-index: var(--salt-zIndex-default);\n\n border-top-left-radius: var(--salt-palette-corner-weak, 0);\n border-bottom-left-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selectedEnd {\n border-top-right-radius: var(--salt-palette-corner-weak, 0);\n border-bottom-right-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selected,\n.saltCalendarDay-selected:hover,\n.saltCalendarDay-selectedStart,\n.saltCalendarDay-selectedStart:hover,\n.saltCalendarDay-selectedEnd,\n.saltCalendarDay-selectedEnd:hover {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background-selected);\n box-shadow: 0 0 0 var(--salt-size-fixed-100) var(--salt-selectable-borderColor-selected);\n}\n\n.saltCalendarDay-hoveredSpan,\n.saltCalendarDay-hoveredSpan:hover,\n.saltCalendarDay-selectedSpan,\n.saltCalendarDay-selectedSpan:hover {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background-hover);\n box-shadow:\n calc(var(--salt-size-fixed-100) * -2) 0 0 0 var(--salt-selectable-background-hover),\n calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-size-fixed-100) var(--salt-selectable-borderColor-selected),\n 0 calc(var(--salt-size-fixed-100) * -1) 0 var(--salt-selectable-borderColor-selected);\n}\n\n.saltCalendarDay-disabled,\n.saltCalendarDay-disabled:hover,\n.saltCalendarDay-unselectable,\n.saltCalendarDay-unselectable:hover {\n background: var(--salt-selectable-background-disabled);\n cursor: var(--salt-cursor-disabled);\n}\n\n.saltCalendarDay-highlighted:before,\n.saltCalendarDay-highlighted:hover:before {\n content: \"\";\n height: var(--salt-spacing-200); /* TODO: change for size-modifier when available */\n width: var(--salt-spacing-200);\n top: calc(var(--salt-spacing-100) * -1);\n right: calc(var(--salt-spacing-100) * -1);\n transform: rotate(45deg);\n background: var(--salt-accent-background);\n position: absolute;\n}\n\n.saltCalendarDay-unselectable:after {\n content: \"\";\n height: var(--salt-size-fixed-100);\n width: calc(100% - var(--salt-spacing-100));\n background: var(--salt-content-secondary-foreground);\n position: absolute;\n}\n\n.saltCalendarDay-today > span:last-of-type::after {\n content: \"\";\n display: block;\n width: calc(100% - calc(var(--salt-spacing-50) * 2));\n height: var(--salt-size-indicator);\n background-color: var(--salt-accent-borderColor);\n border-radius: var(--salt-palette-corner-weak);\n position: absolute;\n bottom: var(--salt-spacing-50);\n left: var(--salt-spacing-50);\n right: var(--salt-spacing-50);\n}\n\n.saltCalendarDay-disabled,\n.saltCalendarDay-disabled:hover {\n color: var(--salt-content-secondary-foreground-disabled);\n}\n\n.saltCalendarDay-hidden {\n visibility: hidden;\n}\n";
1
+ var css_248z = ".salt-density-touch {\n --calendar-day-highlight-size: 14px;\n}\n.salt-density-low {\n --calendar-day-highlight-size: 12px;\n}\n.salt-density-medium {\n --calendar-day-highlight-size: 10px;\n}\n.salt-density-high {\n --calendar-day-highlight-size: 8px;\n}\n\n.saltCalendarDay {\n --calendar-day-zIndex-content: calc(var(--salt-zIndex-default) + 1);\n --calendar-day-zIndex-highlight: calc(var(--calendar-day-zIndex-content) + 2);\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n font-size: var(--salt-text-fontSize);\n width: var(--salt-size-base);\n height: var(--salt-size-base);\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n cursor: var(--salt-cursor-hover);\n border: none;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n}\n\n.saltCalendarDay-content {\n margin: 0 var(--salt-spacing-50);\n width: 100%;\n z-index: var(--calendar-day-zIndex-content);\n}\n\n.saltCalendarDay:hover {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background-hover);\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-hoveredSpan:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd),\n.saltCalendarDay-hoveredSpan:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd)::before,\n.saltCalendarDay-selectedSpan:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd),\n.saltCalendarDay-selectedSpan:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd)::before {\n border-radius: 0;\n}\n\n.saltCalendarDay-focused,\n.saltCalendarDay:focus,\n.saltCalendarDay:focus-visible {\n outline: none;\n z-index: var(--calendar-day-zIndex-content);\n}\n\n.saltCalendarDay-focused:focus-visible::before {\n content: \"\";\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-focused-outlineWidth) * -1);\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selected .saltCalendarDay-content,\n.saltCalendarDay-selected:hover .saltCalendarDay-content,\n.saltCalendarDay-selectedStart .saltCalendarDay-content,\n.saltCalendarDay-hoveredStart .saltCalendarDay-content,\n.saltCalendarDay-selectedSpan .saltCalendarDay-content,\n.saltCalendarDay-hoveredSpan .saltCalendarDay-content,\n.saltCalendarDay-selectedEnd .saltCalendarDay-content,\n.saltCalendarDay-hoveredEnd .saltCalendarDay-content {\n color: var(--salt-content-primary-foreground);\n}\n\n.saltCalendarDay-selectedSpan:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd)::before,\n.saltCalendarDay-hoveredSpan:not(.saltCalendarDay-selectedSpan):not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd)::before {\n content: \"\";\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: calc(var(--calendar-gap) * -1);\n right: calc(var(--calendar-gap) * -1);\n bottom: 0;\n background: var(--salt-selectable-background-hover);\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n}\n\n.saltCalendarDay-selectedStart::before,\n.saltCalendarDay-selectedEnd::before {\n content: \"\";\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--salt-selectable-background-selected);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n}\n\n.saltCalendarDay-selectedStart,\n.saltCalendarDay-selectedStart::before,\n.saltCalendarDay-focused.saltCalendarDay-selectedStart,\n.saltCalendarDay-focused.saltCalendarDay-selectedStart::before {\n border-radius: var(--salt-palette-corner-weak, 0) 0 0 var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-focused.saltCalendarDay-selectedEnd:not(.saltCalendarDay-selectedStart),\n.saltCalendarDay-focused.saltCalendarDay-selectedEnd:not(.saltCalendarDay-selectedStart)::before,\n.saltCalendarDay-selectedEnd:not(.saltCalendarDay-selectedStart),\n.saltCalendarDay-selectedEnd:not(.saltCalendarDay-selectedStart)::before {\n border-radius: 0 var(--salt-palette-corner-weak, 0) var(--salt-palette-corner-weak, 0) 0;\n}\n\n.saltCalendarDay-focused.saltCalendarDay-selectedSameDay,\n.saltCalendarDay-focused.saltCalendarDay-selectedSameDay::before,\n.saltCalendarDay-selectedSameDay,\n.saltCalendarDay-selectedSameDay::before {\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n/** Single selection styles */\n\n.saltCalendarMonth-single .saltCalendarDay:hover:not(.saltCalendarDay-selected) {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background-hover);\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarMonth-single .saltCalendarDay-selected::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background-selected);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n/** Range selection styles */\n.saltCalendarMonth-range .saltCalendarDay-focused.saltCalendarDay-selectedSpan,\n.saltCalendarMonth-range .saltCalendarDay-focused.saltCalendarDay-hoveredSpan {\n outline-offset: calc(calc(var(--salt-focused-outlineWidth) * -1));\n}\n\n.saltCalendarMonth-range .saltCalendarDay:hover:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedSpan):not(.saltCalendarDay-selectedEnd) {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background-hover);\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarMonth-range .saltCalendarDay:hover.saltCalendarDay-selectedSpan::before,\n.saltCalendarMonth-range .saltCalendarDay:hover.saltCalendarDay-hoveredSpan::before,\n.saltCalendarMonth-range .saltCalendarDay-focused.saltCalendarDay-hoveredEnd:not(.saltCalendarDay-selectedEnd):not(.saltCalendarDay-selectedStart)::before,\n.saltCalendarMonth-range .saltCalendarDay-focused.saltCalendarDay-hoveredEnd:not(.saltCalendarDay-selectedEnd):not(.saltCalendarDay-selectedStart)::before {\n border-radius: 0;\n}\n\n.saltCalendarMonth-range .saltCalendarDay-hoveredEnd:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd) {\n border-radius: 0;\n}\n\n.saltCalendarMonth-range .saltCalendarDay-hoveredEnd:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedEnd):not(.saltCalendarDay-unselectable)::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: calc(var(--calendar-gap) * -1);\n right: 0;\n bottom: 0;\n background: var(--salt-selectable-background-hover);\n border-radius: 0;\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n}\n\n/** Offset range styles */\n\n.saltCalendarMonth-offset .saltCalendarDay-hoveredSpan,\n.saltCalendarMonth-offset .saltCalendarDay-hoveredSpan::before {\n border-radius: 0;\n}\n\n.saltCalendarMonth-offset .saltCalendarDay-focused.saltCalendarDay-hoveredStart:not(.saltCalendarDay-selectedStart),\n.saltCalendarMonth-offset .saltCalendarDay-focused.saltCalendarDay-hoveredStart:not(.saltCalendarDay-selectedStart)::before {\n border-radius: var(--salt-palette-corner-weak, 0) 0 0 var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarMonth-offset .saltCalendarDay:hover:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedSpan):not(.saltCalendarDay-selectedEnd),\n.saltCalendarMonth-offset .saltCalendarDay-hoveredStart:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedSpan):not(.saltCalendarDay-selectedEnd),\n.saltCalendarMonth-offset .saltCalendarDay-hoveredSpan:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedSpan):not(.saltCalendarDay-selectedEnd),\n.saltCalendarMonth-offset .saltCalendarDay-hoveredEnd:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedSpan):not(.saltCalendarDay-selectedEnd) {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background-hover);\n}\n\n.saltCalendarMonth-offset .saltCalendarDay-hoveredSpan:not(.saltCalendarDay-selectedStart):not(.saltCalendarDay-selectedSpan):not(.saltCalendarDay-selectedEnd)::before {\n border-top: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-background-hover);\n border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-background-hover);\n}\n\n.saltCalendarMonth-offset .saltCalendarDay-hoveredStart,\n.saltCalendarMonth-offset .saltCalendarDay-selectedStart {\n border-radius: var(--salt-palette-corner-weak, 0) 0 0 var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarMonth-offset .saltCalendarDay.saltCalendarDay-hoveredEnd,\n.saltCalendarMonth-offset .saltCalendarDay-selectedEnd {\n border-radius: 0 var(--salt-palette-corner-weak, 0) var(--salt-palette-corner-weak, 0) 0;\n}\n\n.saltCalendarMonth-offset .saltCalendarDay-hoveredSpan,\n.saltCalendarMonth-offset .saltCalendarDay-selectedSpan {\n border-radius: 0;\n}\n\n.saltCalendarMonth-offset .saltCalendarDay-selectedStart.saltCalendarDay-selectedEnd {\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-outOfRange {\n color: var(--salt-content-secondary-foreground);\n}\n.saltCalendarDay-outOfRange:hover {\n color: var(--salt-content-primary-foreground);\n}\n\n.saltCalendarDay-outOfRange .saltCalendarDay-today > span:last-of-type {\n border-bottom: var(--salt-size-indicator) var(--salt-borderStyle-solid) var(--salt-content-secondary-foreground);\n}\n\n.saltCalendarDay-outOfRange .saltCalendarDay-highlighted::after {\n background: var(--salt-content-secondary-foreground);\n}\n\n.saltCalendarDay-unselectable,\n.saltCalendarDay-unselectable:hover {\n background: var(--salt-selectable-background-disabled);\n cursor: var(--salt-cursor-disabled);\n}\n\n.saltCalendarDay-highlighted {\n position: absolute;\n left: 0;\n right: 0;\n height: 100%;\n overflow: hidden;\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selectedEnd .saltCalendarDay-highlighted {\n right: 1px;\n}\n.saltCalendarDay-selectedSpan .saltCalendarDay-highlighted {\n right: -1px;\n}\n\n.saltCalendarDay-selectedStart .saltCalendarDay-highlighted,\n.saltCalendarDay-hoveredEnd:not(.saltCalendarDay-selectedEnd) .saltCalendarDay-highlighted,\n.saltCalendarDay-hoveredSpan .saltCalendarDay-highlighted,\n.saltCalendarDay-selectedSpan .saltCalendarDay-highlighted {\n border-radius: 0;\n}\n\n.saltCalendarDay-selectedSameDay .saltCalendarDay-highlighted {\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-highlighted::after {\n content: \"\";\n top: 0;\n right: 0;\n box-sizing: border-box;\n height: var(--calendar-day-highlight-size); /* TODO: change for size-modifier when available */\n width: var(--calendar-day-highlight-size);\n background: var(--salt-accent-background);\n position: absolute;\n clip-path: polygon(100% 0, 100% 100%, 0 0);\n z-index: var(--calendar-day-zIndex-highlight);\n}\n.saltCalendarDay-focused:focus-visible .saltCalendarDay-highlighted::after {\n border: var(--salt-focused-outline);\n}\n\n.saltCalendarDay-unselectable::after {\n content: \"\";\n height: var(--salt-size-fixed-100);\n width: calc(100% - var(--salt-spacing-100));\n background: var(--salt-content-secondary-foreground);\n position: absolute;\n}\n\n.saltCalendarDay-today > span:last-of-type::after {\n content: \"\";\n display: block;\n width: calc(100% - calc(var(--salt-spacing-50) * 2));\n height: var(--salt-size-indicator);\n background: var(--salt-accent-borderColor);\n border-radius: var(--salt-palette-corner-weak);\n position: absolute;\n bottom: var(--salt-spacing-50);\n left: var(--salt-spacing-50);\n right: var(--salt-spacing-50);\n}\n\n.saltCalendarDay-hidden {\n visibility: hidden;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CalendarDay.css.js.map
@@ -1,4 +1,4 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { makePrefixer, useForkRef, renderProps, Tooltip } from '@salt-ds/core';
3
3
  import { useComponentCssInjection } from '@salt-ds/styles';
4
4
  import { useWindow } from '@salt-ds/window';
@@ -10,7 +10,6 @@ import css_248z from './CalendarDay.css.js';
10
10
 
11
11
  const withBaseName = makePrefixer("saltCalendarDay");
12
12
  const CalendarDay = forwardRef(function CalendarDay2(props, ref) {
13
- var _a;
14
13
  const {
15
14
  className,
16
15
  date,
@@ -37,26 +36,20 @@ const CalendarDay = forwardRef(function CalendarDay2(props, ref) {
37
36
  date,
38
37
  month
39
38
  });
40
- const {
41
- focused,
42
- outOfRange,
43
- today,
44
- unselectable,
45
- highlighted,
46
- hidden,
47
- disabled
48
- } = status;
39
+ const { focused, today, unselectable, highlighted, hidden, outOfRange } = status;
49
40
  const buttonRef = useForkRef(ref, focusedDateRef);
50
41
  useLayoutEffect(() => {
51
- var _a2;
42
+ var _a;
52
43
  if (focused) {
53
- (_a2 = focusedDateRef == null ? void 0 : focusedDateRef.current) == null ? void 0 : _a2.focus({ preventScroll: true });
44
+ (_a = focusedDateRef == null ? void 0 : focusedDateRef.current) == null ? void 0 : _a.focus({ preventScroll: true });
54
45
  }
55
- }, [focused, (_a = focusedDateRef == null ? void 0 : focusedDateRef.current) == null ? void 0 : _a.focus]);
46
+ }, [focused]);
56
47
  const defaultButtonProps = {
57
48
  "aria-label": dateAdapter.format(date, "DD MMMM YYYY"),
58
- children: /* @__PURE__ */ jsx("span", { className: withBaseName("content"), children: dateAdapter.format(date, format) }),
59
- disabled,
49
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
50
+ highlighted ? /* @__PURE__ */ jsx("div", { className: withBaseName("highlighted") }) : null,
51
+ /* @__PURE__ */ jsx("span", { className: withBaseName("content"), children: dateAdapter.format(date, format) })
52
+ ] }),
60
53
  ...dayProps,
61
54
  ref: buttonRef,
62
55
  ...rest,
@@ -64,10 +57,8 @@ const CalendarDay = forwardRef(function CalendarDay2(props, ref) {
64
57
  withBaseName(),
65
58
  {
66
59
  [withBaseName("hidden")]: hidden,
67
- [withBaseName("outOfRange")]: outOfRange,
68
- [withBaseName("disabled")]: disabled,
69
60
  [withBaseName("unselectable")]: !!unselectable,
70
- [withBaseName("highlighted")]: !!highlighted,
61
+ [withBaseName("outOfRange")]: outOfRange,
71
62
  [withBaseName("focused")]: !!focused,
72
63
  [withBaseName("today")]: today
73
64
  },
@@ -75,30 +66,29 @@ const CalendarDay = forwardRef(function CalendarDay2(props, ref) {
75
66
  className
76
67
  )
77
68
  };
78
- const defaultButtonElement = /* @__PURE__ */ jsx("button", { type: "button", ...defaultButtonProps });
79
69
  const buttonElement = render ? renderProps("button", {
80
70
  render,
81
71
  ...defaultButtonProps,
82
72
  status,
83
73
  date
84
- }) : defaultButtonElement;
85
- const hasTooltip = unselectableReason || highlightedReason;
86
- if (!hasTooltip) {
87
- return buttonElement;
74
+ }) : /* @__PURE__ */ jsx("button", { type: "button", ...defaultButtonProps });
75
+ const tooltipContent = unselectableReason || highlightedReason;
76
+ if (tooltipContent && (tooltipContent == null ? void 0 : tooltipContent.length)) {
77
+ return /* @__PURE__ */ jsx(
78
+ Tooltip,
79
+ {
80
+ hideIcon: true,
81
+ status: "info",
82
+ content: tooltipContent,
83
+ placement: "top",
84
+ enterDelay: 0,
85
+ leaveDelay: 0,
86
+ ...TooltipProps,
87
+ children: buttonElement
88
+ }
89
+ );
88
90
  }
89
- return /* @__PURE__ */ jsx(
90
- Tooltip,
91
- {
92
- hideIcon: true,
93
- status: unselectableReason ? "error" : "info",
94
- content: unselectableReason || highlightedReason || "Date is out of range",
95
- placement: "top",
96
- enterDelay: 0,
97
- leaveDelay: 0,
98
- ...TooltipProps,
99
- children: buttonElement
100
- }
101
- );
91
+ return buttonElement;
102
92
  });
103
93
 
104
94
  export { CalendarDay };
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDay.js","sources":["../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import {\n makePrefixer,\n type RenderPropsType,\n renderProps,\n Tooltip,\n type TooltipProps,\n useForkRef,\n} from \"@salt-ds/core\";\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithRef, forwardRef, useLayoutEffect } from \"react\";\nimport { useLocalization } from \"../../localization-provider\";\nimport { type DayStatus, useCalendarDay } from \"../useCalendarDay\";\nimport calendarDayCss from \"./CalendarDay.css\";\n\nexport interface CalendarDayProps<TDate>\n extends Omit<ComponentPropsWithRef<\"button\">, \"children\"> {\n /**\n * Day date\n */\n date: TDate;\n /**\n * Format of date\n */\n format?: string;\n /**\n * Render prop to enable customisation of day button.\n */\n render?: RenderPropsType[\"render\"];\n /**\n * Month being rendered\n */\n month: TDate;\n /**\n * Additional Tooltip props\n */\n TooltipProps?: Partial<TooltipProps>;\n}\nexport interface renderCalendarDayProps<TDate> extends CalendarDayProps<TDate> {\n /**\n * Status of day\n */\n status: DayStatus;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport const CalendarDay = forwardRef<\n HTMLButtonElement,\n CalendarDayProps<DateFrameworkType>\n>(function CalendarDay<TDate extends DateFrameworkType>(\n props: CalendarDayProps<TDate>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n className,\n date,\n render,\n month,\n TooltipProps,\n format = \"DD\",\n ...rest\n } = props;\n const { dateAdapter } = useLocalization<TDate>();\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-day\",\n css: calendarDayCss,\n window: targetWindow,\n });\n\n const {\n status,\n focusedDateRef = null,\n dayProps,\n unselectableReason,\n highlightedReason,\n } = useCalendarDay({\n date,\n month,\n });\n const {\n focused,\n outOfRange,\n today,\n unselectable,\n highlighted,\n hidden,\n disabled,\n } = status;\n const buttonRef = useForkRef(ref, focusedDateRef);\n\n useLayoutEffect(() => {\n if (focused) {\n focusedDateRef?.current?.focus({ preventScroll: true });\n }\n }, [focused, focusedDateRef?.current?.focus]);\n\n const defaultButtonProps = {\n \"aria-label\": dateAdapter.format(date, \"DD MMMM YYYY\"),\n children: (\n <span className={withBaseName(\"content\")}>\n {dateAdapter.format(date, format)}\n </span>\n ),\n disabled,\n ...dayProps,\n ref: buttonRef,\n ...rest,\n className: clsx(\n withBaseName(),\n {\n [withBaseName(\"hidden\")]: hidden,\n [withBaseName(\"outOfRange\")]: outOfRange,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"unselectable\")]: !!unselectable,\n [withBaseName(\"highlighted\")]: !!highlighted,\n [withBaseName(\"focused\")]: !!focused,\n [withBaseName(\"today\")]: today,\n },\n dayProps.className,\n className,\n ),\n };\n\n const defaultButtonElement = (\n <button type={\"button\"} {...defaultButtonProps} />\n );\n\n const buttonElement = render\n ? renderProps<React.ElementType<renderCalendarDayProps<TDate>>>(\"button\", {\n render,\n ...defaultButtonProps,\n status,\n date,\n })\n : defaultButtonElement;\n\n const hasTooltip = unselectableReason || highlightedReason;\n if (!hasTooltip) {\n return buttonElement;\n }\n return (\n <Tooltip\n hideIcon\n status={unselectableReason ? \"error\" : \"info\"}\n content={\n unselectableReason || highlightedReason || \"Date is out of range\"\n }\n placement=\"top\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n {...TooltipProps}\n >\n {buttonElement}\n </Tooltip>\n );\n});\n"],"names":["CalendarDay","calendarDayCss","_a"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarDay.js","sources":["../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import {\n makePrefixer,\n type RenderPropsType,\n renderProps,\n Tooltip,\n type TooltipProps,\n useForkRef,\n} from \"@salt-ds/core\";\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithRef, forwardRef, useLayoutEffect } from \"react\";\nimport { useLocalization } from \"../../localization-provider\";\nimport { type DayStatus, useCalendarDay } from \"../useCalendarDay\";\nimport calendarDayCss from \"./CalendarDay.css\";\n\nexport interface CalendarDayProps<TDate>\n extends Omit<ComponentPropsWithRef<\"button\">, \"children\"> {\n /**\n * Day date\n */\n date: TDate;\n /**\n * Format of date\n */\n format?: string;\n /**\n * Render prop to enable customisation of day button.\n */\n render?: RenderPropsType[\"render\"];\n /**\n * Month being rendered\n */\n month: TDate;\n /**\n * Additional Tooltip props\n */\n TooltipProps?: Partial<TooltipProps>;\n}\nexport interface renderCalendarDayProps<TDate> extends CalendarDayProps<TDate> {\n /**\n * Status of day\n */\n status: DayStatus;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport const CalendarDay = forwardRef<\n HTMLButtonElement,\n CalendarDayProps<DateFrameworkType>\n>(function CalendarDay<TDate extends DateFrameworkType>(\n props: CalendarDayProps<TDate>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n className,\n date,\n render,\n month,\n TooltipProps,\n format = \"DD\",\n ...rest\n } = props;\n const { dateAdapter } = useLocalization<TDate>();\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-day\",\n css: calendarDayCss,\n window: targetWindow,\n });\n\n const {\n status,\n focusedDateRef = null,\n dayProps,\n unselectableReason,\n highlightedReason,\n } = useCalendarDay({\n date,\n month,\n });\n const { focused, today, unselectable, highlighted, hidden, outOfRange } =\n status;\n const buttonRef = useForkRef(ref, focusedDateRef);\n\n useLayoutEffect(() => {\n if (focused) {\n focusedDateRef?.current?.focus({ preventScroll: true });\n }\n }, [focused]);\n\n const defaultButtonProps = {\n \"aria-label\": dateAdapter.format(date, \"DD MMMM YYYY\"),\n children: (\n <>\n {highlighted ? <div className={withBaseName(\"highlighted\")} /> : null}\n <span className={withBaseName(\"content\")}>\n {dateAdapter.format(date, format)}\n </span>\n </>\n ),\n ...dayProps,\n ref: buttonRef,\n ...rest,\n className: clsx(\n withBaseName(),\n {\n [withBaseName(\"hidden\")]: hidden,\n [withBaseName(\"unselectable\")]: !!unselectable,\n [withBaseName(\"outOfRange\")]: outOfRange,\n [withBaseName(\"focused\")]: !!focused,\n [withBaseName(\"today\")]: today,\n },\n dayProps.className,\n className,\n ),\n };\n\n const buttonElement = render ? (\n renderProps<React.ElementType<renderCalendarDayProps<TDate>>>(\"button\", {\n render,\n ...defaultButtonProps,\n status,\n date,\n })\n ) : (\n <button type={\"button\"} {...defaultButtonProps} />\n );\n\n const tooltipContent = unselectableReason || highlightedReason;\n if (tooltipContent && tooltipContent?.length) {\n return (\n <Tooltip\n hideIcon\n status=\"info\"\n content={tooltipContent}\n placement=\"top\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n {...TooltipProps}\n >\n {buttonElement}\n </Tooltip>\n );\n }\n return buttonElement;\n});\n"],"names":["CalendarDay","calendarDayCss"],"mappings":";;;;;;;;;;AA+CA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA;AAE5C,MAAM,WAAA,GAAc,UAAA,CAGzB,SAASA,YAAAA,CACT,OACA,GAAA,EACA;AACA,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAA,GAAS,IAAA;AAAA,IACT,GAAG;AAAA,GACL,GAAI,KAAA;AACJ,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,eAAA,EAAuB;AAC/C,EAAA,MAAM,eAAe,SAAA,EAAU;AAC/B,EAAA,wBAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,mBAAA;AAAA,IACR,GAAA,EAAKC,QAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,cAAA,GAAiB,IAAA;AAAA,IACjB,QAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,MACE,cAAA,CAAe;AAAA,IACjB,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,cAAc,WAAA,EAAa,MAAA,EAAQ,YAAW,GACpE,MAAA;AACF,EAAA,MAAM,SAAA,GAAY,UAAA,CAAW,GAAA,EAAK,cAAc,CAAA;AAEhD,EAAA,eAAA,CAAgB,MAAM;AAvFxB,IAAA,IAAA,EAAA;AAwFI,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,CAAA,EAAA,GAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,OAAA,KAAhB,IAAA,GAAA,MAAA,GAAA,EAAA,CAAyB,KAAA,CAAM,EAAE,eAAe,IAAA,EAAK,CAAA;AAAA,IACvD;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,MAAM,kBAAA,GAAqB;AAAA,IACzB,YAAA,EAAc,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,cAAc,CAAA;AAAA,IACrD,0BACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,WAAA,uBAAe,KAAA,EAAA,EAAI,SAAA,EAAW,YAAA,CAAa,aAAa,GAAG,CAAA,GAAK,IAAA;AAAA,sBACjE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,YAAA,CAAa,SAAS,GACpC,QAAA,EAAA,WAAA,CAAY,MAAA,CAAO,IAAA,EAAM,MAAM,CAAA,EAClC;AAAA,KAAA,EACF,CAAA;AAAA,IAEF,GAAG,QAAA;AAAA,IACH,GAAA,EAAK,SAAA;AAAA,IACL,GAAG,IAAA;AAAA,IACH,SAAA,EAAW,IAAA;AAAA,MACT,YAAA,EAAa;AAAA,MACb;AAAA,QACE,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG,MAAA;AAAA,QAC1B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG,CAAC,CAAC,YAAA;AAAA,QAClC,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,UAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG,CAAC,CAAC,OAAA;AAAA,QAC7B,CAAC,YAAA,CAAa,OAAO,CAAC,GAAG;AAAA,OAC3B;AAAA,MACA,QAAA,CAAS,SAAA;AAAA,MACT;AAAA;AACF,GACF;AAEA,EAAA,MAAM,aAAA,GAAgB,MAAA,GACpB,WAAA,CAA8D,QAAA,EAAU;AAAA,IACtE,MAAA;AAAA,IACA,GAAG,kBAAA;AAAA,IACH,MAAA;AAAA,IACA;AAAA,GACD,CAAA,mBAED,GAAA,CAAC,YAAO,IAAA,EAAM,QAAA,EAAW,GAAG,kBAAA,EAAoB,CAAA;AAGlD,EAAA,MAAM,iBAAiB,kBAAA,IAAsB,iBAAA;AAC7C,EAAA,IAAI,cAAA,KAAkB,iDAAgB,MAAA,CAAA,EAAQ;AAC5C,IAAA,uBACE,GAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,QAAA,EAAQ,IAAA;AAAA,QACR,MAAA,EAAO,MAAA;AAAA,QACP,OAAA,EAAS,cAAA;AAAA,QACT,SAAA,EAAU,KAAA;AAAA,QACV,UAAA,EAAY,CAAA;AAAA,QACZ,UAAA,EAAY,CAAA;AAAA,QACX,GAAG,YAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACA,EAAA,OAAO,aAAA;AACT,CAAC;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltCalendarMonth-grid {\n display: grid;\n gap: var(--salt-spacing-fixed-100);\n grid-template-columns: repeat(7, var(--salt-size-base));\n grid-template-rows: repeat(6, var(--salt-size-base));\n text-align: center;\n margin: var(--salt-spacing-fixed-100);\n}\n";
1
+ var css_248z = ".saltCalendarMonth-grid {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: calc(var(--calendar-day-size) * 7 + var(--calendar-gap) * 6);\n text-align: center;\n gap: var(--calendar-gap);\n}\n\n.saltCalendarMonth-grid > .saltCalendarMonth-week {\n display: flex;\n justify-content: flex-start;\n gap: var(--calendar-gap);\n width: 100%;\n}\n\n.saltCalendarMonth-grid > .saltCalendarMonth-week > .saltCalendarDay:last-child::before {\n right: 0;\n}\n\n.saltCalendarMonth-grid > .saltCalendarMonth-week > .saltCalendarDay:first-child::before {\n left: 0;\n}\n\n.saltCalendarMonth-grid > .saltCalendarMonth-week > * {\n width: var(--calendar-day-size);\n height: var(--calendar-day-size);\n box-sizing: border-box;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CalendarMonth.css.js.map
@@ -1,5 +1,5 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { forwardRef, createElement } from 'react';
2
+ import { forwardRef, useMemo, createElement } from 'react';
3
3
  import { makePrefixer } from '@salt-ds/core';
4
4
  import { useComponentCssInjection } from '@salt-ds/styles';
5
5
  import { useWindow } from '@salt-ds/window';
@@ -10,6 +10,13 @@ import { CalendarDay } from './CalendarDay.js';
10
10
  import css_248z from './CalendarMonth.css.js';
11
11
  import { generateVisibleDays } from './utils.js';
12
12
 
13
+ const chunkArray = (array, chunkSize) => {
14
+ const result = [];
15
+ for (let chunkIndex = 0; chunkIndex < array.length; chunkIndex += chunkSize) {
16
+ result.push(array.slice(chunkIndex, chunkIndex + chunkSize));
17
+ }
18
+ return result;
19
+ };
13
20
  const withBaseName = makePrefixer("saltCalendarMonth");
14
21
  const CalendarMonth = forwardRef(function CalendarMonth2(props, ref) {
15
22
  const { className, date, onMouseLeave, CalendarDayProps, ...rest } = props;
@@ -21,14 +28,21 @@ const CalendarMonth = forwardRef(function CalendarMonth2(props, ref) {
21
28
  window: targetWindow
22
29
  });
23
30
  const {
24
- state: { timezone = "default" },
31
+ state: { selectionVariant, timezone = "default" },
25
32
  helpers: { setHoveredDate }
26
33
  } = useCalendarContext();
27
- const days = generateVisibleDays(dateAdapter, date, timezone);
34
+ useMemo(
35
+ () => generateVisibleDays(dateAdapter, date, timezone),
36
+ [dateAdapter, date, timezone]
37
+ );
28
38
  const handleMouseLeave = (event) => {
29
39
  setHoveredDate(event, null);
30
40
  onMouseLeave == null ? void 0 : onMouseLeave(event);
31
41
  };
42
+ const weeks = useMemo(() => {
43
+ const days2 = generateVisibleDays(dateAdapter, date, timezone);
44
+ return chunkArray(days2, 7);
45
+ }, [dateAdapter, date, timezone]);
32
46
  return /* @__PURE__ */ jsx(
33
47
  "div",
34
48
  {
@@ -36,15 +50,22 @@ const CalendarMonth = forwardRef(function CalendarMonth2(props, ref) {
36
50
  ref,
37
51
  onMouseLeave: handleMouseLeave,
38
52
  ...rest,
39
- children: /* @__PURE__ */ jsx("div", { "data-testid": "CalendarGrid", className: withBaseName("grid"), children: days.map((day) => /* @__PURE__ */ createElement(
40
- CalendarDay,
53
+ children: /* @__PURE__ */ jsx(
54
+ "div",
41
55
  {
42
- ...CalendarDayProps,
43
- key: dateAdapter.format(day, "DD MMM YYYY"),
44
- date: day,
45
- month: date
56
+ "data-testid": "CalendarGrid",
57
+ className: clsx(withBaseName("grid"), withBaseName(selectionVariant)),
58
+ children: weeks.map((week, index) => /* @__PURE__ */ jsx("div", { className: withBaseName("week"), children: week.map((day) => /* @__PURE__ */ createElement(
59
+ CalendarDay,
60
+ {
61
+ ...CalendarDayProps,
62
+ key: dateAdapter.format(day, "DD MMM YYYY"),
63
+ date: day,
64
+ month: date
65
+ }
66
+ )) }, `row-${index}`))
46
67
  }
47
- )) })
68
+ )
48
69
  }
49
70
  );
50
71
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMonth.js","sources":["../src/calendar/internal/CalendarMonth.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithRef,\n forwardRef,\n type MouseEvent,\n type SyntheticEvent,\n} from \"react\";\nimport { useLocalization } from \"../../localization-provider\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport { CalendarDay, type CalendarDayProps } from \"./CalendarDay\";\nimport calendarMonthCss from \"./CalendarMonth.css\";\nimport { generateVisibleDays } from \"./utils\";\n\nexport interface CalendarMonthProps<TDate>\n extends ComponentPropsWithRef<\"div\"> {\n /**\n * Month to render as selectable dates\n */\n date: TDate;\n /**\n * Props for the CalendarDay component.\n */\n CalendarDayProps?: Partial<CalendarDayProps<TDate>>;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarMonth\");\n\nexport const CalendarMonth = forwardRef<\n HTMLDivElement,\n CalendarMonthProps<DateFrameworkType>\n>(function CalendarMonth<TDate extends DateFrameworkType>(\n props: CalendarMonthProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const { className, date, onMouseLeave, CalendarDayProps, ...rest } = props;\n const { dateAdapter } = useLocalization<TDate>();\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month\",\n css: calendarMonthCss,\n window: targetWindow,\n });\n\n const {\n state: { timezone = \"default\" },\n helpers: { setHoveredDate },\n } = useCalendarContext<TDate>();\n const days = generateVisibleDays<TDate>(dateAdapter, date, timezone);\n const handleMouseLeave = (event: SyntheticEvent) => {\n setHoveredDate(event, null);\n onMouseLeave?.(event as MouseEvent<HTMLDivElement>);\n };\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n onMouseLeave={handleMouseLeave}\n {...rest}\n >\n <div data-testid=\"CalendarGrid\" className={withBaseName(\"grid\")}>\n {days.map((day) => (\n <CalendarDay\n {...CalendarDayProps}\n key={dateAdapter.format(day, \"DD MMM YYYY\")}\n date={day}\n month={date}\n />\n ))}\n </div>\n </div>\n );\n});\n"],"names":["CalendarMonth","calendarMonthCss"],"mappings":";;;;;;;;;;;;AA6BA,MAAM,YAAA,GAAe,aAAa,mBAAmB,CAAA;AAE9C,MAAM,aAAgB,GAAA,UAAA,CAG3B,SAASA,cAAAA,CACT,OACA,GACA,EAAA;AACA,EAAA,MAAM,EAAE,SAAW,EAAA,IAAA,EAAM,cAAc,gBAAkB,EAAA,GAAG,MAAS,GAAA,KAAA;AACrE,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAC/C,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,qBAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA;AAAA,IACJ,KAAA,EAAO,EAAE,QAAA,GAAW,SAAU,EAAA;AAAA,IAC9B,OAAA,EAAS,EAAE,cAAe;AAAA,MACxB,kBAA0B,EAAA;AAC9B,EAAA,MAAM,IAAO,GAAA,mBAAA,CAA2B,WAAa,EAAA,IAAA,EAAM,QAAQ,CAAA;AACnE,EAAM,MAAA,gBAAA,GAAmB,CAAC,KAA0B,KAAA;AAClD,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAC1B,IAAe,YAAA,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAA,KAAA,CAAA;AAAA,GACjB;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACA,YAAc,EAAA,gBAAA;AAAA,MACb,GAAG,IAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,aAAA,EAAY,cAAe,EAAA,SAAA,EAAW,YAAa,CAAA,MAAM,CAC3D,EAAA,QAAA,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GACT,qBAAA,aAAA;AAAA,QAAC,WAAA;AAAA,QAAA;AAAA,UACE,GAAG,gBAAA;AAAA,UACJ,GAAK,EAAA,WAAA,CAAY,MAAO,CAAA,GAAA,EAAK,aAAa,CAAA;AAAA,UAC1C,IAAM,EAAA,GAAA;AAAA,UACN,KAAO,EAAA;AAAA;AAAA,OAEV,CACH,EAAA;AAAA;AAAA,GACF;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"CalendarMonth.js","sources":["../src/calendar/internal/CalendarMonth.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithRef,\n forwardRef,\n type MouseEvent,\n type SyntheticEvent,\n useMemo,\n} from \"react\";\nimport { useLocalization } from \"../../localization-provider\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport { CalendarDay, type CalendarDayProps } from \"./CalendarDay\";\nimport calendarMonthCss from \"./CalendarMonth.css\";\nimport { generateVisibleDays } from \"./utils\";\n\nexport interface CalendarMonthProps<TDate>\n extends ComponentPropsWithRef<\"div\"> {\n /**\n * Month to render as selectable dates\n */\n date: TDate;\n /**\n * Props for the CalendarDay component.\n */\n CalendarDayProps?: Partial<CalendarDayProps<TDate>>;\n}\n\nconst chunkArray = (array: DateFrameworkType[], chunkSize: number) => {\n const result = [];\n for (let chunkIndex = 0; chunkIndex < array.length; chunkIndex += chunkSize) {\n result.push(array.slice(chunkIndex, chunkIndex + chunkSize));\n }\n return result;\n};\n\nconst withBaseName = makePrefixer(\"saltCalendarMonth\");\n\nexport const CalendarMonth = forwardRef<\n HTMLDivElement,\n CalendarMonthProps<DateFrameworkType>\n>(function CalendarMonth<TDate extends DateFrameworkType>(\n props: CalendarMonthProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const { className, date, onMouseLeave, CalendarDayProps, ...rest } = props;\n const { dateAdapter } = useLocalization<TDate>();\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month\",\n css: calendarMonthCss,\n window: targetWindow,\n });\n\n const {\n state: { selectionVariant, timezone = \"default\" },\n helpers: { setHoveredDate },\n } = useCalendarContext<TDate>();\n const days = useMemo(\n () => generateVisibleDays<TDate>(dateAdapter, date, timezone),\n [dateAdapter, date, timezone],\n );\n const handleMouseLeave = (event: SyntheticEvent) => {\n setHoveredDate(event, null);\n onMouseLeave?.(event as MouseEvent<HTMLDivElement>);\n };\n\n const weeks = useMemo(() => {\n const days = generateVisibleDays<TDate>(dateAdapter, date, timezone);\n return chunkArray(days, 7);\n }, [dateAdapter, date, timezone]);\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n onMouseLeave={handleMouseLeave}\n {...rest}\n >\n <div\n data-testid=\"CalendarGrid\"\n className={clsx(withBaseName(\"grid\"), withBaseName(selectionVariant))}\n >\n {weeks.map((week, index) => (\n <div key={`row-${index}`} className={withBaseName(\"week\")}>\n {week.map((day: TDate) => (\n <CalendarDay\n {...CalendarDayProps}\n key={dateAdapter.format(day, \"DD MMM YYYY\")}\n date={day}\n month={date}\n />\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n});\n"],"names":["CalendarMonth","calendarMonthCss","days"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusManagement.js","sources":["../src/calendar/internal/useFocusManagement.ts"],"sourcesContent":["import type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport type {\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n} from \"react\";\nimport { useLocalization } from \"../../localization-provider\";\nimport { useCalendarContext } from \"./CalendarContext\";\n\nexport function useFocusManagement<TDate extends DateFrameworkType>({\n date,\n}: {\n date: TDate;\n}) {\n const { dateAdapter } = useLocalization<TDate>();\n const {\n helpers: { setFocusedDate },\n } = useCalendarContext<TDate>();\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n setFocusedDate(event, date);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n let newDate: TDate | undefined;\n switch (event.key) {\n case \"ArrowUp\":\n newDate = dateAdapter.subtract(date, { weeks: 1 });\n break;\n case \"ArrowDown\":\n newDate = dateAdapter.add(date, { weeks: 1 });\n break;\n case \"ArrowLeft\":\n newDate = dateAdapter.subtract(date, { days: 1 });\n break;\n case \"ArrowRight\":\n newDate = dateAdapter.add(date, { days: 1 });\n break;\n case \"Home\":\n newDate = dateAdapter.startOf(date, \"week\");\n break;\n case \"End\":\n newDate = dateAdapter.endOf(date, \"week\");\n break;\n case \"PageUp\":\n if (event.shiftKey) {\n newDate = dateAdapter.subtract(date, { years: 1 });\n } else {\n newDate = dateAdapter.subtract(date, { months: 1 });\n }\n break;\n case \"PageDown\":\n if (event.shiftKey) {\n newDate = dateAdapter.add(date, { years: 1 });\n } else {\n newDate = dateAdapter.add(date, { months: 1 });\n }\n break;\n default:\n }\n if (newDate && dateAdapter.compare(newDate, date) !== 0) {\n event.preventDefault();\n setFocusedDate(event, newDate);\n }\n };\n\n const handleFocus: FocusEventHandler<HTMLButtonElement> = (event) => {\n setFocusedDate(event, date);\n };\n\n return {\n handleClick,\n handleKeyDown,\n handleFocus,\n };\n}\n"],"names":[],"mappings":";;;AASO,SAAS,kBAAoD,CAAA;AAAA,EAClE;AACF,CAEG,EAAA;AACD,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAC/C,EAAM,MAAA;AAAA,IACJ,OAAA,EAAS,EAAE,cAAe;AAAA,MACxB,kBAA0B,EAAA;AAC9B,EAAM,MAAA,WAAA,GAAoD,CAAC,KAAU,KAAA;AACnE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,GAC5B;AAEA,EAAM,MAAA,aAAA,GAAyD,CAAC,KAAU,KAAA;AACxE,IAAI,IAAA,OAAA;AACJ,IAAA,QAAQ,MAAM,GAAK;AAAA,MACjB,KAAK,SAAA;AACH,QAAA,OAAA,GAAU,YAAY,QAAS,CAAA,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AACjD,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,GAAU,YAAY,GAAI,CAAA,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AAC5C,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,GAAU,YAAY,QAAS,CAAA,IAAA,EAAM,EAAE,IAAA,EAAM,GAAG,CAAA;AAChD,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,OAAA,GAAU,YAAY,GAAI,CAAA,IAAA,EAAM,EAAE,IAAA,EAAM,GAAG,CAAA;AAC3C,QAAA;AAAA,MACF,KAAK,MAAA;AACH,QAAU,OAAA,GAAA,WAAA,CAAY,OAAQ,CAAA,IAAA,EAAM,MAAM,CAAA;AAC1C,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAU,OAAA,GAAA,WAAA,CAAY,KAAM,CAAA,IAAA,EAAM,MAAM,CAAA;AACxC,QAAA;AAAA,MACF,KAAK,QAAA;AACH,QAAA,IAAI,MAAM,QAAU,EAAA;AAClB,UAAA,OAAA,GAAU,YAAY,QAAS,CAAA,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,SAC5C,MAAA;AACL,UAAA,OAAA,GAAU,YAAY,QAAS,CAAA,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA;AAEpD,QAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,IAAI,MAAM,QAAU,EAAA;AAClB,UAAA,OAAA,GAAU,YAAY,GAAI,CAAA,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,SACvC,MAAA;AACL,UAAA,OAAA,GAAU,YAAY,GAAI,CAAA,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA;AAE/C,QAAA;AACF;AAEF,IAAA,IAAI,WAAW,WAAY,CAAA,OAAA,CAAQ,OAAS,EAAA,IAAI,MAAM,CAAG,EAAA;AACvD,MAAA,KAAA,CAAM,cAAe,EAAA;AACrB,MAAA,cAAA,CAAe,OAAO,OAAO,CAAA;AAAA;AAC/B,GACF;AAEA,EAAM,MAAA,WAAA,GAAoD,CAAC,KAAU,KAAA;AACnE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,GAC5B;AAEA,EAAO,OAAA;AAAA,IACL,WAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
1
+ {"version":3,"file":"useFocusManagement.js","sources":["../src/calendar/internal/useFocusManagement.ts"],"sourcesContent":["import type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport type {\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n} from \"react\";\nimport { useLocalization } from \"../../localization-provider\";\nimport { useCalendarContext } from \"./CalendarContext\";\n\nexport function useFocusManagement<TDate extends DateFrameworkType>({\n date,\n}: {\n date: TDate;\n}) {\n const { dateAdapter } = useLocalization<TDate>();\n const {\n helpers: { setFocusedDate },\n } = useCalendarContext<TDate>();\n const handleClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n setFocusedDate(event, date);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLButtonElement> = (event) => {\n let newDate: TDate | undefined;\n switch (event.key) {\n case \"ArrowUp\":\n newDate = dateAdapter.subtract(date, { weeks: 1 });\n break;\n case \"ArrowDown\":\n newDate = dateAdapter.add(date, { weeks: 1 });\n break;\n case \"ArrowLeft\":\n newDate = dateAdapter.subtract(date, { days: 1 });\n break;\n case \"ArrowRight\":\n newDate = dateAdapter.add(date, { days: 1 });\n break;\n case \"Home\":\n newDate = dateAdapter.startOf(date, \"week\");\n break;\n case \"End\":\n newDate = dateAdapter.endOf(date, \"week\");\n break;\n case \"PageUp\":\n if (event.shiftKey) {\n newDate = dateAdapter.subtract(date, { years: 1 });\n } else {\n newDate = dateAdapter.subtract(date, { months: 1 });\n }\n break;\n case \"PageDown\":\n if (event.shiftKey) {\n newDate = dateAdapter.add(date, { years: 1 });\n } else {\n newDate = dateAdapter.add(date, { months: 1 });\n }\n break;\n default:\n }\n if (newDate && dateAdapter.compare(newDate, date) !== 0) {\n event.preventDefault();\n setFocusedDate(event, newDate);\n }\n };\n\n const handleFocus: FocusEventHandler<HTMLButtonElement> = (event) => {\n setFocusedDate(event, date);\n };\n\n return {\n handleClick,\n handleKeyDown,\n handleFocus,\n };\n}\n"],"names":[],"mappings":";;;AASO,SAAS,kBAAA,CAAoD;AAAA,EAClE;AACF,CAAA,EAEG;AACD,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,eAAA,EAAuB;AAC/C,EAAA,MAAM;AAAA,IACJ,OAAA,EAAS,EAAE,cAAA;AAAe,MACxB,kBAAA,EAA0B;AAC9B,EAAA,MAAM,WAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,MAAM,aAAA,GAAyD,CAAC,KAAA,KAAU;AACxE,IAAA,IAAI,OAAA;AACJ,IAAA,QAAQ,MAAM,GAAA;AAAK,MACjB,KAAK,SAAA;AACH,QAAA,OAAA,GAAU,YAAY,QAAA,CAAS,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AACjD,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,GAAU,YAAY,GAAA,CAAI,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AAC5C,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,GAAU,YAAY,QAAA,CAAS,IAAA,EAAM,EAAE,IAAA,EAAM,GAAG,CAAA;AAChD,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,OAAA,GAAU,YAAY,GAAA,CAAI,IAAA,EAAM,EAAE,IAAA,EAAM,GAAG,CAAA;AAC3C,QAAA;AAAA,MACF,KAAK,MAAA;AACH,QAAA,OAAA,GAAU,WAAA,CAAY,OAAA,CAAQ,IAAA,EAAM,MAAM,CAAA;AAC1C,QAAA;AAAA,MACF,KAAK,KAAA;AACH,QAAA,OAAA,GAAU,WAAA,CAAY,KAAA,CAAM,IAAA,EAAM,MAAM,CAAA;AACxC,QAAA;AAAA,MACF,KAAK,QAAA;AACH,QAAA,IAAI,MAAM,QAAA,EAAU;AAClB,UAAA,OAAA,GAAU,YAAY,QAAA,CAAS,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,QACnD,CAAA,MAAO;AACL,UAAA,OAAA,GAAU,YAAY,QAAA,CAAS,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,QACpD;AACA,QAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,IAAI,MAAM,QAAA,EAAU;AAClB,UAAA,OAAA,GAAU,YAAY,GAAA,CAAI,IAAA,EAAM,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,QAC9C,CAAA,MAAO;AACL,UAAA,OAAA,GAAU,YAAY,GAAA,CAAI,IAAA,EAAM,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,QAC/C;AACA,QAAA;AACF;AAEF,IAAA,IAAI,WAAW,WAAA,CAAY,OAAA,CAAQ,OAAA,EAAS,IAAI,MAAM,CAAA,EAAG;AACvD,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,cAAA,CAAe,OAAO,OAAO,CAAA;AAAA,IAC/B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,IAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,WAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../src/calendar/internal/utils.ts"],"sourcesContent":["import type {\n DateFrameworkType,\n SaltDateAdapter,\n Timezone,\n} from \"@salt-ds/date-adapters\";\n\nexport function daysOfWeek<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n format: \"long\" | \"short\" | \"narrow\",\n) {\n return Array.from({ length: 7 }, (_, day) =>\n dateAdapter.getDayOfWeekName(day, format),\n );\n}\n\nexport function generateMonthsForYear<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n currentYear: TDate,\n) {\n const startOfYear = dateAdapter.startOf(currentYear, \"year\");\n return Array.from({ length: 12 }, (_, month) =>\n dateAdapter.add(startOfYear, { months: month }),\n );\n}\n\nexport function generateVisibleDays<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n currentMonth: TDate,\n timezone: Timezone,\n) {\n const totalDays = 6 * 7;\n const startDate = dateAdapter.startOf(\n dateAdapter.startOf(currentMonth, \"month\"),\n \"week\",\n );\n return [...Array(totalDays).keys()].map((dayDelta) => {\n let day = dateAdapter.add(startDate, { days: dayDelta });\n day = dateAdapter.setTimezone(day, timezone);\n return day;\n });\n}\n\nexport function monthDiff<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n a: TDate,\n b: TDate,\n) {\n const aMonth = dateAdapter.getMonth(a);\n const aYear = dateAdapter.getYear(a);\n const bMonth = dateAdapter.getMonth(b);\n const bYear = dateAdapter.getYear(b);\n\n return bMonth - aMonth + 12 * (bYear - aYear);\n}\n\nexport function generateDatesForMonth<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n date: TDate,\n): TDate[] {\n const startDate = dateAdapter.startOf(date, \"month\");\n const endDate = dateAdapter.endOf(date, \"month\");\n const dates: TDate[] = [];\n for (\n let currentDate = startDate;\n dateAdapter.compare(currentDate, endDate) <= 0;\n currentDate = dateAdapter.add(currentDate, { days: 1 })\n ) {\n dates.push(currentDate);\n }\n return dates;\n}\n"],"names":[],"mappings":"AAMgB,SAAA,UAAA,CACd,aACA,MACA,EAAA;AACA,EAAA,OAAO,KAAM,CAAA,IAAA;AAAA,IAAK,EAAE,QAAQ,CAAE,EAAA;AAAA,IAAG,CAAC,CAAG,EAAA,GAAA,KACnC,WAAY,CAAA,gBAAA,CAAiB,KAAK,MAAM;AAAA,GAC1C;AACF;AAEgB,SAAA,qBAAA,CACd,aACA,WACA,EAAA;AACA,EAAA,MAAM,WAAc,GAAA,WAAA,CAAY,OAAQ,CAAA,WAAA,EAAa,MAAM,CAAA;AAC3D,EAAA,OAAO,KAAM,CAAA,IAAA;AAAA,IAAK,EAAE,QAAQ,EAAG,EAAA;AAAA,IAAG,CAAC,GAAG,KACpC,KAAA,WAAA,CAAY,IAAI,WAAa,EAAA,EAAE,MAAQ,EAAA,KAAA,EAAO;AAAA,GAChD;AACF;AAEgB,SAAA,mBAAA,CACd,WACA,EAAA,YAAA,EACA,QACA,EAAA;AACA,EAAA,MAAM,YAAY,CAAI,GAAA,CAAA;AACtB,EAAA,MAAM,YAAY,WAAY,CAAA,OAAA;AAAA,IAC5B,WAAA,CAAY,OAAQ,CAAA,YAAA,EAAc,OAAO,CAAA;AAAA,IACzC;AAAA,GACF;AACA,EAAO,OAAA,CAAC,GAAG,KAAA,CAAM,SAAS,CAAA,CAAE,MAAM,CAAA,CAAE,GAAI,CAAA,CAAC,QAAa,KAAA;AACpD,IAAA,IAAI,MAAM,WAAY,CAAA,GAAA,CAAI,WAAW,EAAE,IAAA,EAAM,UAAU,CAAA;AACvD,IAAM,GAAA,GAAA,WAAA,CAAY,WAAY,CAAA,GAAA,EAAK,QAAQ,CAAA;AAC3C,IAAO,OAAA,GAAA;AAAA,GACR,CAAA;AACH;AAEgB,SAAA,SAAA,CACd,WACA,EAAA,CAAA,EACA,CACA,EAAA;AACA,EAAM,MAAA,MAAA,GAAS,WAAY,CAAA,QAAA,CAAS,CAAC,CAAA;AACrC,EAAM,MAAA,KAAA,GAAQ,WAAY,CAAA,OAAA,CAAQ,CAAC,CAAA;AACnC,EAAM,MAAA,MAAA,GAAS,WAAY,CAAA,QAAA,CAAS,CAAC,CAAA;AACrC,EAAM,MAAA,KAAA,GAAQ,WAAY,CAAA,OAAA,CAAQ,CAAC,CAAA;AAEnC,EAAO,OAAA,MAAA,GAAS,MAAS,GAAA,EAAA,IAAM,KAAQ,GAAA,KAAA,CAAA;AACzC;AAEgB,SAAA,qBAAA,CACd,aACA,IACS,EAAA;AACT,EAAA,MAAM,SAAY,GAAA,WAAA,CAAY,OAAQ,CAAA,IAAA,EAAM,OAAO,CAAA;AACnD,EAAA,MAAM,OAAU,GAAA,WAAA,CAAY,KAAM,CAAA,IAAA,EAAM,OAAO,CAAA;AAC/C,EAAA,MAAM,QAAiB,EAAC;AACxB,EAAA,KAAA,IACM,cAAc,SAClB,EAAA,WAAA,CAAY,OAAQ,CAAA,WAAA,EAAa,OAAO,CAAK,IAAA,CAAA,EAC7C,WAAc,GAAA,WAAA,CAAY,IAAI,WAAa,EAAA,EAAE,IAAM,EAAA,CAAA,EAAG,CACtD,EAAA;AACA,IAAA,KAAA,CAAM,KAAK,WAAW,CAAA;AAAA;AAExB,EAAO,OAAA,KAAA;AACT;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../src/calendar/internal/utils.ts"],"sourcesContent":["import type {\n DateFrameworkType,\n SaltDateAdapter,\n Timezone,\n} from \"@salt-ds/date-adapters\";\n\nexport function daysOfWeek<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n format: \"long\" | \"short\" | \"narrow\",\n) {\n return Array.from({ length: 7 }, (_, day) =>\n dateAdapter.getDayOfWeekName(day, format),\n );\n}\n\nexport function generateMonthsForYear<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n currentYear: TDate,\n) {\n const startOfYear = dateAdapter.startOf(currentYear, \"year\");\n return Array.from({ length: 12 }, (_, month) =>\n dateAdapter.add(startOfYear, { months: month }),\n );\n}\n\nexport function generateVisibleDays<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n currentMonth: TDate,\n timezone: Timezone,\n) {\n const totalDays = 6 * 7;\n const startDate = dateAdapter.startOf(\n dateAdapter.startOf(currentMonth, \"month\"),\n \"week\",\n );\n return [...Array(totalDays).keys()].map((dayDelta) => {\n let day = dateAdapter.add(startDate, { days: dayDelta });\n day = dateAdapter.setTimezone(day, timezone);\n return day;\n });\n}\n\nexport function monthDiff<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n a: TDate,\n b: TDate,\n) {\n const aMonth = dateAdapter.getMonth(a);\n const aYear = dateAdapter.getYear(a);\n const bMonth = dateAdapter.getMonth(b);\n const bYear = dateAdapter.getYear(b);\n\n return bMonth - aMonth + 12 * (bYear - aYear);\n}\n\nexport function generateDatesForMonth<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n date: TDate,\n): TDate[] {\n const startDate = dateAdapter.startOf(date, \"month\");\n const endDate = dateAdapter.endOf(date, \"month\");\n const dates: TDate[] = [];\n for (\n let currentDate = startDate;\n dateAdapter.compare(currentDate, endDate) <= 0;\n currentDate = dateAdapter.add(currentDate, { days: 1 })\n ) {\n dates.push(currentDate);\n }\n return dates;\n}\n"],"names":[],"mappings":"AAMO,SAAS,UAAA,CACd,aACA,MAAA,EACA;AACA,EAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IAAK,EAAE,QAAQ,CAAA,EAAE;AAAA,IAAG,CAAC,CAAA,EAAG,GAAA,KACnC,WAAA,CAAY,gBAAA,CAAiB,KAAK,MAAM;AAAA,GAC1C;AACF;AAEO,SAAS,qBAAA,CACd,aACA,WAAA,EACA;AACA,EAAA,MAAM,WAAA,GAAc,WAAA,CAAY,OAAA,CAAQ,WAAA,EAAa,MAAM,CAAA;AAC3D,EAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IAAK,EAAE,QAAQ,EAAA,EAAG;AAAA,IAAG,CAAC,GAAG,KAAA,KACpC,WAAA,CAAY,IAAI,WAAA,EAAa,EAAE,MAAA,EAAQ,KAAA,EAAO;AAAA,GAChD;AACF;AAEO,SAAS,mBAAA,CACd,WAAA,EACA,YAAA,EACA,QAAA,EACA;AACA,EAAA,MAAM,YAAY,CAAA,GAAI,CAAA;AACtB,EAAA,MAAM,YAAY,WAAA,CAAY,OAAA;AAAA,IAC5B,WAAA,CAAY,OAAA,CAAQ,YAAA,EAAc,OAAO,CAAA;AAAA,IACzC;AAAA,GACF;AACA,EAAA,OAAO,CAAC,GAAG,KAAA,CAAM,SAAS,CAAA,CAAE,MAAM,CAAA,CAAE,GAAA,CAAI,CAAC,QAAA,KAAa;AACpD,IAAA,IAAI,MAAM,WAAA,CAAY,GAAA,CAAI,WAAW,EAAE,IAAA,EAAM,UAAU,CAAA;AACvD,IAAA,GAAA,GAAM,WAAA,CAAY,WAAA,CAAY,GAAA,EAAK,QAAQ,CAAA;AAC3C,IAAA,OAAO,GAAA;AAAA,EACT,CAAC,CAAA;AACH;AAEO,SAAS,SAAA,CACd,WAAA,EACA,CAAA,EACA,CAAA,EACA;AACA,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,QAAA,CAAS,CAAC,CAAA;AACrC,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,OAAA,CAAQ,CAAC,CAAA;AACnC,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,QAAA,CAAS,CAAC,CAAA;AACrC,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,OAAA,CAAQ,CAAC,CAAA;AAEnC,EAAA,OAAO,MAAA,GAAS,MAAA,GAAS,EAAA,IAAM,KAAA,GAAQ,KAAA,CAAA;AACzC;AAEO,SAAS,qBAAA,CACd,aACA,IAAA,EACS;AACT,EAAA,MAAM,SAAA,GAAY,WAAA,CAAY,OAAA,CAAQ,IAAA,EAAM,OAAO,CAAA;AACnD,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAC/C,EAAA,MAAM,QAAiB,EAAC;AACxB,EAAA,KAAA,IACM,cAAc,SAAA,EAClB,WAAA,CAAY,OAAA,CAAQ,WAAA,EAAa,OAAO,CAAA,IAAK,CAAA,EAC7C,WAAA,GAAc,WAAA,CAAY,IAAI,WAAA,EAAa,EAAE,IAAA,EAAM,CAAA,EAAG,CAAA,EACtD;AACA,IAAA,KAAA,CAAM,KAAK,WAAW,CAAA;AAAA,EACxB;AACA,EAAA,OAAO,KAAA;AACT;;;;"}
@@ -5,7 +5,6 @@ import { useCalendarSelection } from './useCalendarSelection.js';
5
5
 
6
6
  const defaultIsDayUnselectable = () => false;
7
7
  const defaultIsDayHighlighted = () => false;
8
- const defaultIsDayDisabled = () => false;
9
8
  function useCalendar(props) {
10
9
  var _a;
11
10
  const {
@@ -20,7 +19,6 @@ function useCalendar(props) {
20
19
  hoveredDate,
21
20
  focusedDate: focusedDateProp,
22
21
  focusedDateRef,
23
- isDayDisabled = defaultIsDayDisabled,
24
22
  isDayHighlighted = defaultIsDayHighlighted,
25
23
  isDayUnselectable = defaultIsDayUnselectable,
26
24
  multiselect,
@@ -41,7 +39,10 @@ function useCalendar(props) {
41
39
  const { matchedBreakpoints } = useBreakpoint();
42
40
  const responsiveNumberOfVisibleMonths = resolveResponsiveValue(numberOfVisibleMonths, matchedBreakpoints) ?? 1;
43
41
  const [visibleMonth, setVisibleMonthState] = useControlled({
44
- controlled: visibleMonthProp ? dateAdapter.startOf(visibleMonthProp, "month") : void 0,
42
+ controlled: useMemo(
43
+ () => visibleMonthProp ? dateAdapter.startOf(visibleMonthProp, "month") : void 0,
44
+ [visibleMonthProp]
45
+ ),
45
46
  // biome-ignore lint/correctness/useExhaustiveDependencies: just on mount
46
47
  default: useMemo(
47
48
  () => dateAdapter.startOf(defaultVisibleMonth, "month"),
@@ -73,8 +74,8 @@ function useCalendar(props) {
73
74
  [dateAdapter, minDate, maxDate]
74
75
  );
75
76
  const isDaySelectable = useCallback(
76
- (date) => !(date && (isDayUnselectable(date) || isDayDisabled(date) || isOutsideAllowedDates(date))),
77
- [isDayUnselectable, isDayDisabled, isOutsideAllowedDates]
77
+ (date) => !(date && (isDayUnselectable(date) || isOutsideAllowedDates(date))),
78
+ [isDayUnselectable, isOutsideAllowedDates]
78
79
  );
79
80
  const isDayVisible = useCallback(
80
81
  (date) => {
@@ -114,7 +115,7 @@ function useCalendar(props) {
114
115
  useEffect(() => {
115
116
  var _a2;
116
117
  const focusedDate = (_a2 = selectionManager == null ? void 0 : selectionManager.state) == null ? void 0 : _a2.focusedDate;
117
- const shouldTransition = focusedDate && !focusedDateProp !== void 0 && !isDayVisible(focusedDate) && isDaySelectable(focusedDate) && !isOutsideAllowedDates(focusedDate);
118
+ const shouldTransition = focusedDate && !focusedDateProp !== void 0 && !isDayVisible(focusedDate) && !isOutsideAllowedDates(focusedDate);
118
119
  if (shouldTransition) {
119
120
  setVisibleMonth(null, dateAdapter.startOf(focusedDate, "month"));
120
121
  }
@@ -122,7 +123,6 @@ function useCalendar(props) {
122
123
  dateAdapter,
123
124
  focusedDateProp,
124
125
  isOutsideAllowedDates,
125
- isDaySelectable,
126
126
  (_a = selectionManager == null ? void 0 : selectionManager.state) == null ? void 0 : _a.focusedDate
127
127
  ]);
128
128
  const setVisibleMonth = useCallback(
@@ -149,7 +149,6 @@ function useCalendar(props) {
149
149
  setVisibleMonth,
150
150
  isDayUnselectable,
151
151
  isDayHighlighted,
152
- isDayDisabled,
153
152
  isDayVisible,
154
153
  isOutsideAllowedDates,
155
154
  isOutsideAllowedMonths,
@@ -168,7 +167,6 @@ function useCalendar(props) {
168
167
  setVisibleMonth,
169
168
  isDayUnselectable,
170
169
  isDayHighlighted,
171
- isDayDisabled,
172
170
  isDayVisible,
173
171
  isOutsideAllowedDates,
174
172
  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":["_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":["_a"],"mappings":"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"}
@@ -17,45 +17,42 @@ function useCalendarDay(props) {
17
17
  helpers: {
18
18
  setHoveredDate,
19
19
  isDayUnselectable,
20
- isDaySelectable,
21
20
  isDayHighlighted,
22
- isDayDisabled,
23
21
  isOutsideAllowedMonths
24
22
  }
25
23
  } = useCalendarContext();
26
24
  const selectionManager = useCalendarSelectionDay({ date });
27
25
  const focusManager = useFocusManagement({ date });
28
26
  const handleClick = (event) => {
29
- selectionManager == null ? void 0 : selectionManager.handleClick(event);
27
+ selectionManager.handleClick(event);
30
28
  focusManager.handleClick(event);
31
29
  };
32
30
  const handleKeyDown = (event) => {
33
31
  focusManager.handleKeyDown(event);
34
- selectionManager == null ? void 0 : selectionManager.handleKeyDown(event);
32
+ selectionManager.handleKeyDown(event);
35
33
  };
36
34
  const handleFocus = (event) => {
37
35
  focusManager.handleFocus(event);
38
36
  setHoveredDate(event, date);
39
37
  };
40
- const handleMouseEnter = (event) => {
38
+ const handleMouseMove = (event) => {
41
39
  setHoveredDate(event, date);
42
40
  };
43
41
  const eventHandlers = {
44
42
  onClick: handleClick,
45
43
  onKeyDown: handleKeyDown,
46
44
  onFocus: handleFocus,
47
- onMouseEnter: handleMouseEnter
45
+ onMouseMove: handleMouseMove
48
46
  };
49
- const outOfRange = !dateAdapter.isSame(date, month, "month");
50
- const focused = focusedDate && dateAdapter.isSame(date, focusedDate, "day") && !outOfRange;
47
+ const focused = focusedDate && dateAdapter.isSame(date, focusedDate, "day");
51
48
  const tabIndex = focusableDates.find(
52
49
  (tabbableDate) => dateAdapter.isSame(date, tabbableDate, "day")
53
50
  ) ? 0 : -1;
54
51
  const today = dateAdapter.isSame(dateAdapter.today(timezone), date, "day");
55
52
  const unselectableReason = isDayUnselectable(date);
56
53
  const highlightedReason = isDayHighlighted(date);
57
- const disabled = isDayDisabled(date) || outOfRange && isOutsideAllowedMonths(date) || isDaySelectable && !isDaySelectable(date);
58
- const unselectable = Boolean(unselectableReason);
54
+ const outOfRange = !dateAdapter.isSame(date, month, "month");
55
+ const unselectable = Boolean(unselectableReason) || isOutsideAllowedMonths(date);
59
56
  const highlighted = Boolean(highlightedReason);
60
57
  const hidden = hideOutOfRangeDates ? outOfRange : false;
61
58
  return {
@@ -65,7 +62,6 @@ function useCalendarDay(props) {
65
62
  unselectable,
66
63
  focused,
67
64
  hidden,
68
- disabled,
69
65
  highlighted,
70
66
  ...selectionManager.status
71
67
  },