@salt-ds/lab 1.0.0-alpha.70 → 1.0.0-alpha.72

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 (861) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/css/salt-lab.css +239 -346
  3. package/dist-cjs/app-header/AppHeader.css.js +1 -1
  4. package/dist-cjs/app-header/AppHeader.js +5 -5
  5. package/dist-cjs/app-header/AppHeader.js.map +1 -1
  6. package/dist-cjs/breadcrumbs/Breadcrumb.js +3 -3
  7. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +1 -1
  8. package/dist-cjs/breadcrumbs/Breadcrumbs.js +3 -3
  9. package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +1 -1
  10. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  11. package/dist-cjs/button-bar/ButtonBar.js +4 -4
  12. package/dist-cjs/button-bar/ButtonBar.js.map +1 -1
  13. package/dist-cjs/button-bar/OrderedButton.js +3 -3
  14. package/dist-cjs/button-bar/OrderedButton.js.map +1 -1
  15. package/dist-cjs/button-bar/internal/DescendantContext.js.map +1 -1
  16. package/dist-cjs/calendar/Calendar.js +35 -10
  17. package/dist-cjs/calendar/Calendar.js.map +1 -1
  18. package/dist-cjs/calendar/CalendarGrid.js +2 -2
  19. package/dist-cjs/calendar/CalendarGrid.js.map +1 -1
  20. package/dist-cjs/calendar/CalendarMonthHeader.js +2 -2
  21. package/dist-cjs/calendar/CalendarMonthHeader.js.map +1 -1
  22. package/dist-cjs/calendar/CalendarNavigation.js.map +1 -1
  23. package/dist-cjs/calendar/CalendarWeekHeader.css.js +1 -1
  24. package/dist-cjs/calendar/CalendarWeekHeader.js +3 -3
  25. package/dist-cjs/calendar/CalendarWeekHeader.js.map +1 -1
  26. package/dist-cjs/calendar/internal/CalendarDay.css.js +1 -1
  27. package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
  28. package/dist-cjs/calendar/internal/CalendarMonth.css.js +1 -1
  29. package/dist-cjs/calendar/internal/CalendarMonth.js +3 -3
  30. package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
  31. package/dist-cjs/calendar/internal/useFocusManagement.js +1 -1
  32. package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
  33. package/dist-cjs/calendar/useCalendar.js +6 -0
  34. package/dist-cjs/calendar/useCalendar.js.map +1 -1
  35. package/dist-cjs/calendar/useCalendarSelection.js +185 -103
  36. package/dist-cjs/calendar/useCalendarSelection.js.map +1 -1
  37. package/dist-cjs/cascading-menu/CascadingMenu.js.map +1 -1
  38. package/dist-cjs/cascading-menu/CascadingMenuItem.css.js +1 -1
  39. package/dist-cjs/cascading-menu/CascadingMenuItem.js +3 -3
  40. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  41. package/dist-cjs/cascading-menu/CascadingMenuList.js +5 -5
  42. package/dist-cjs/cascading-menu/CascadingMenuList.js.map +1 -1
  43. package/dist-cjs/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  44. package/dist-cjs/color-chooser/AlphaInputField.js +2 -2
  45. package/dist-cjs/color-chooser/AlphaInputField.js.map +1 -1
  46. package/dist-cjs/color-chooser/ColorChooser.css.js +1 -1
  47. package/dist-cjs/color-chooser/ColorChooser.js +38 -40
  48. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  49. package/dist-cjs/color-chooser/ColorPicker.css.js +1 -1
  50. package/dist-cjs/color-chooser/ColorPicker.js +3 -3
  51. package/dist-cjs/color-chooser/ColorPicker.js.map +1 -1
  52. package/dist-cjs/color-chooser/DictTabs.js +2 -2
  53. package/dist-cjs/color-chooser/HexInput.css.js +1 -1
  54. package/dist-cjs/color-chooser/HexInput.js +2 -2
  55. package/dist-cjs/color-chooser/HexInput.js.map +1 -1
  56. package/dist-cjs/color-chooser/RGBAInput.css.js +1 -1
  57. package/dist-cjs/color-chooser/RGBAInput.js +3 -3
  58. package/dist-cjs/color-chooser/RGBAInput.js.map +1 -1
  59. package/dist-cjs/color-chooser/RGBAInputField.js +2 -2
  60. package/dist-cjs/color-chooser/RGBAInputField.js.map +1 -1
  61. package/dist-cjs/color-chooser/Swatch.css.js +1 -1
  62. package/dist-cjs/color-chooser/Swatches.js +3 -3
  63. package/dist-cjs/color-chooser/Swatches.js.map +1 -1
  64. package/dist-cjs/color-chooser/SwatchesPicker.js +3 -3
  65. package/dist-cjs/color-chooser/SwatchesPicker.js.map +1 -1
  66. package/dist-cjs/combo-box/ComboBox.js +6 -6
  67. package/dist-cjs/combo-box/ComboBox.js.map +1 -1
  68. package/dist-cjs/combo-box/useCombobox.js +1 -1
  69. package/dist-cjs/combo-box/useCombobox.js.map +1 -1
  70. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js +3 -3
  71. package/dist-cjs/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  72. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js +2 -2
  73. package/dist-cjs/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  74. package/dist-cjs/combo-box-deprecated/internal/MultiSelectComboBox.js +2 -2
  75. package/dist-cjs/combo-box-deprecated/internal/useComboBox.js +1 -1
  76. package/dist-cjs/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -1
  77. package/dist-cjs/common-hooks/collectionProvider.js.map +1 -1
  78. package/dist-cjs/common-hooks/itemToString.js +1 -1
  79. package/dist-cjs/common-hooks/itemToString.js.map +1 -1
  80. package/dist-cjs/common-hooks/selectionTypes.js.map +1 -1
  81. package/dist-cjs/common-hooks/useCollapsibleGroups.js.map +1 -1
  82. package/dist-cjs/common-hooks/useCollectionItems.js +1 -1
  83. package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
  84. package/dist-cjs/common-hooks/useImperativeScrollingAPI.js +6 -10
  85. package/dist-cjs/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  86. package/dist-cjs/common-hooks/useKeyboardNavigation.js.map +1 -1
  87. package/dist-cjs/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  88. package/dist-cjs/common-hooks/useTypeahead.js.map +1 -1
  89. package/dist-cjs/common-hooks/utils/collection-item-utils.js +2 -2
  90. package/dist-cjs/common-hooks/utils/collection-item-utils.js.map +1 -1
  91. package/dist-cjs/contact-details/ContactActions.js +1 -1
  92. package/dist-cjs/contact-details/ContactActions.js.map +1 -1
  93. package/dist-cjs/contact-details/ContactAvatar.js +1 -1
  94. package/dist-cjs/contact-details/ContactDetails.js +4 -4
  95. package/dist-cjs/contact-details/ContactDetails.js.map +1 -1
  96. package/dist-cjs/contact-details/ContactFavoriteToggle.js +1 -1
  97. package/dist-cjs/contact-details/ContactMetadata.js +2 -2
  98. package/dist-cjs/contact-details/ContactMetadata.js.map +1 -1
  99. package/dist-cjs/contact-details/ContactMetadataItem.js.map +1 -1
  100. package/dist-cjs/contact-details/ContactPrimaryInfo.js +1 -1
  101. package/dist-cjs/contact-details/ContactPrimaryInfo.js.map +1 -1
  102. package/dist-cjs/contact-details/ContactSecondaryInfo.js +1 -1
  103. package/dist-cjs/contact-details/ContactSecondaryInfo.js.map +1 -1
  104. package/dist-cjs/contact-details/ContactTertiaryInfo.js +1 -1
  105. package/dist-cjs/contact-details/ContactTertiaryInfo.js.map +1 -1
  106. package/dist-cjs/contact-details/internal/FavoriteToggle.js.map +1 -1
  107. package/dist-cjs/contact-details/internal/StarIconContainer.js.map +1 -1
  108. package/dist-cjs/content-status/ContentStatus.js +3 -3
  109. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  110. package/dist-cjs/content-status/internal/StatusIndicator.js.map +1 -1
  111. package/dist-cjs/date-input/DateInput.css.js +1 -1
  112. package/dist-cjs/date-input/DateInputRange.js.map +1 -1
  113. package/dist-cjs/date-input/DateInputSingle.js.map +1 -1
  114. package/dist-cjs/date-picker/DatePicker.js.map +1 -1
  115. package/dist-cjs/date-picker/DatePickerActions.js.map +1 -1
  116. package/dist-cjs/date-picker/DatePickerContext.js +10 -10
  117. package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
  118. package/dist-cjs/date-picker/DatePickerOverlay.css.js +1 -1
  119. package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -1
  120. package/dist-cjs/date-picker/DatePickerOverlayProvider.js +4 -0
  121. package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -1
  122. package/dist-cjs/date-picker/DatePickerPanel.css.js +1 -1
  123. package/dist-cjs/date-picker/DatePickerRangeGridPanel.js +3 -3
  124. package/dist-cjs/date-picker/DatePickerRangeGridPanel.js.map +1 -1
  125. package/dist-cjs/date-picker/DatePickerRangeInput.js +1 -1
  126. package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -1
  127. package/dist-cjs/date-picker/DatePickerRangePanel.js +3 -3
  128. package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -1
  129. package/dist-cjs/date-picker/DatePickerSingleGridPanel.js +3 -3
  130. package/dist-cjs/date-picker/DatePickerSingleGridPanel.js.map +1 -1
  131. package/dist-cjs/date-picker/DatePickerSingleInput.js +1 -1
  132. package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -1
  133. package/dist-cjs/date-picker/DatePickerTrigger.js.map +1 -1
  134. package/dist-cjs/deck-item/DeckItem.js +2 -2
  135. package/dist-cjs/deck-item/DeckItem.js.map +1 -1
  136. package/dist-cjs/deck-layout/DeckLayout.js +3 -3
  137. package/dist-cjs/deck-layout/DeckLayout.js.map +1 -1
  138. package/dist-cjs/dropdown/Dropdown.js +1 -1
  139. package/dist-cjs/dropdown/Dropdown.js.map +1 -1
  140. package/dist-cjs/dropdown/DropdownBase.js +3 -3
  141. package/dist-cjs/dropdown/DropdownBase.js.map +1 -1
  142. package/dist-cjs/dropdown/DropdownButton.js +2 -2
  143. package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
  144. package/dist-cjs/dropdown/useDropdown.js +1 -1
  145. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  146. package/dist-cjs/dropdown/useDropdownBase.js.map +1 -1
  147. package/dist-cjs/editable-label/EditableLabel.js +2 -2
  148. package/dist-cjs/editable-label/EditableLabel.js.map +1 -1
  149. package/dist-cjs/form-field-legacy/FormActivationIndicator.js.map +1 -1
  150. package/dist-cjs/form-field-legacy/FormFieldLegacy.css.js +1 -1
  151. package/dist-cjs/form-field-legacy/FormFieldLegacy.js +4 -4
  152. package/dist-cjs/form-field-legacy/FormFieldLegacy.js.map +1 -1
  153. package/dist-cjs/form-field-legacy/FormHelperText.js.map +1 -1
  154. package/dist-cjs/form-field-legacy/FormLabel.css.js +1 -1
  155. package/dist-cjs/form-field-legacy/FormLabel.js +3 -3
  156. package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
  157. package/dist-cjs/form-field-legacy/StatusIndicator.js.map +1 -1
  158. package/dist-cjs/form-group/FormGroup.js +2 -2
  159. package/dist-cjs/form-group/FormGroup.js.map +1 -1
  160. package/dist-cjs/formatted-input/FormattedInput.js +3 -3
  161. package/dist-cjs/formatted-input/FormattedInput.js.map +1 -1
  162. package/dist-cjs/formatted-input/internal/InputWithMask.js.map +1 -1
  163. package/dist-cjs/index.js +105 -115
  164. package/dist-cjs/index.js.map +1 -1
  165. package/dist-cjs/input-legacy/InputLegacy.css.js +1 -1
  166. package/dist-cjs/input-legacy/InputLegacy.js +3 -3
  167. package/dist-cjs/input-legacy/InputLegacy.js.map +1 -1
  168. package/dist-cjs/input-legacy/StaticInputAdornment.js +2 -2
  169. package/dist-cjs/input-legacy/StaticInputAdornment.js.map +1 -1
  170. package/dist-cjs/layer-layout/LayerLayout.js.map +1 -1
  171. package/dist-cjs/list/Highlighter.js +2 -2
  172. package/dist-cjs/list/Highlighter.js.map +1 -1
  173. package/dist-cjs/list/List.css.js +1 -1
  174. package/dist-cjs/list/List.js +3 -3
  175. package/dist-cjs/list/List.js.map +1 -1
  176. package/dist-cjs/list/ListItem.css.js +1 -1
  177. package/dist-cjs/list/ListItem.js +2 -2
  178. package/dist-cjs/list/ListItem.js.map +1 -1
  179. package/dist-cjs/list/VirtualizedList.js +4 -4
  180. package/dist-cjs/list/VirtualizedList.js.map +1 -1
  181. package/dist-cjs/list/useList.js +2 -2
  182. package/dist-cjs/list/useList.js.map +1 -1
  183. package/dist-cjs/list/useListHeight.js +1 -1
  184. package/dist-cjs/list-deprecated/List.css.js +1 -1
  185. package/dist-cjs/list-deprecated/List.js +2 -2
  186. package/dist-cjs/list-deprecated/List.js.map +1 -1
  187. package/dist-cjs/list-deprecated/ListBase.js +15 -19
  188. package/dist-cjs/list-deprecated/ListBase.js.map +1 -1
  189. package/dist-cjs/list-deprecated/ListItem.css.js +1 -1
  190. package/dist-cjs/list-deprecated/ListItem.js +1 -1
  191. package/dist-cjs/list-deprecated/ListItem.js.map +1 -1
  192. package/dist-cjs/list-deprecated/ListItemBase.js +2 -2
  193. package/dist-cjs/list-deprecated/ListItemBase.js.map +1 -1
  194. package/dist-cjs/list-deprecated/internal/DescendantContext.js +7 -4
  195. package/dist-cjs/list-deprecated/internal/DescendantContext.js.map +1 -1
  196. package/dist-cjs/list-deprecated/internal/Highlighter.js +2 -2
  197. package/dist-cjs/list-deprecated/internal/Highlighter.js.map +1 -1
  198. package/dist-cjs/list-deprecated/itemToString.js +1 -1
  199. package/dist-cjs/list-deprecated/itemToString.js.map +1 -1
  200. package/dist-cjs/list-deprecated/useList.js.map +1 -1
  201. package/dist-cjs/list-next/ListItemNext.css.js +1 -1
  202. package/dist-cjs/list-next/ListItemNext.js +2 -2
  203. package/dist-cjs/list-next/ListItemNext.js.map +1 -1
  204. package/dist-cjs/list-next/ListNext.css.js +1 -1
  205. package/dist-cjs/list-next/ListNext.js.map +1 -1
  206. package/dist-cjs/logo/Logo.js +2 -2
  207. package/dist-cjs/logo/Logo.js.map +1 -1
  208. package/dist-cjs/logo/LogoSeparator.css.js +1 -1
  209. package/dist-cjs/logo/LogoSeparator.js +2 -2
  210. package/dist-cjs/logo/LogoSeparator.js.map +1 -1
  211. package/dist-cjs/menu-button/MenuButton.js +1 -1
  212. package/dist-cjs/menu-button/MenuButton.js.map +1 -1
  213. package/dist-cjs/menu-button/MenuButtonTrigger.js +2 -2
  214. package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
  215. package/dist-cjs/metric/Metric.js +2 -2
  216. package/dist-cjs/metric/Metric.js.map +1 -1
  217. package/dist-cjs/metric/MetricContent.css.js +1 -1
  218. package/dist-cjs/metric/MetricContent.js +2 -2
  219. package/dist-cjs/metric/MetricContent.js.map +1 -1
  220. package/dist-cjs/metric/MetricHeader.js +2 -2
  221. package/dist-cjs/metric/MetricHeader.js.map +1 -1
  222. package/dist-cjs/number-input/NumberInput.css.js +1 -1
  223. package/dist-cjs/number-input/NumberInput.js +146 -79
  224. package/dist-cjs/number-input/NumberInput.js.map +1 -1
  225. package/dist-cjs/number-input/internal/useCaret.js +34 -0
  226. package/dist-cjs/number-input/internal/useCaret.js.map +1 -0
  227. package/dist-cjs/number-input/internal/utils.js +56 -14
  228. package/dist-cjs/number-input/internal/utils.js.map +1 -1
  229. package/dist-cjs/number-input/useNumberInput.js +34 -26
  230. package/dist-cjs/number-input/useNumberInput.js.map +1 -1
  231. package/dist-cjs/portal/Portal.js.map +1 -1
  232. package/dist-cjs/query-input/QueryInput.css.js +1 -1
  233. package/dist-cjs/query-input/QueryInput.js +3 -3
  234. package/dist-cjs/query-input/QueryInput.js.map +1 -1
  235. package/dist-cjs/query-input/internal/CategoryList.js +1 -1
  236. package/dist-cjs/query-input/internal/CategoryListItem.js +1 -1
  237. package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
  238. package/dist-cjs/query-input/internal/SearchList.js +3 -3
  239. package/dist-cjs/query-input/internal/SearchList.js.map +1 -1
  240. package/dist-cjs/query-input/internal/ValueList.js +1 -1
  241. package/dist-cjs/query-input/internal/ValueSelector.js +1 -1
  242. package/dist-cjs/query-input/useQueryInput.js.map +1 -1
  243. package/dist-cjs/responsive/OverflowReducer.js.map +1 -1
  244. package/dist-cjs/responsive/useOverflowCollectionItems.js.map +1 -1
  245. package/dist-cjs/responsive/useOverflowLayout.js.map +1 -1
  246. package/dist-cjs/responsive/useWidth.js.map +1 -1
  247. package/dist-cjs/search-input/SearchInput.js +2 -2
  248. package/dist-cjs/search-input/SearchInput.js.map +1 -1
  249. package/dist-cjs/static-list/StaticList.js.map +1 -1
  250. package/dist-cjs/static-list/StaticListItemContent.js.map +1 -1
  251. package/dist-cjs/system-status/SystemStatus.css.js +1 -1
  252. package/dist-cjs/system-status/SystemStatus.js +2 -2
  253. package/dist-cjs/system-status/SystemStatus.js.map +1 -1
  254. package/dist-cjs/system-status/SystemStatusActions.js +2 -2
  255. package/dist-cjs/system-status/SystemStatusActions.js.map +1 -1
  256. package/dist-cjs/system-status/SystemStatusContent.js +2 -2
  257. package/dist-cjs/system-status/SystemStatusContent.js.map +1 -1
  258. package/dist-cjs/tabs/Tab.css.js +1 -1
  259. package/dist-cjs/tabs/Tab.js.map +1 -1
  260. package/dist-cjs/tabs/TabActivationIndicator.css.js +1 -1
  261. package/dist-cjs/tabs/TabActivationIndicator.js +2 -2
  262. package/dist-cjs/tabs/TabActivationIndicator.js.map +1 -1
  263. package/dist-cjs/tabs/TabPanel.js.map +1 -1
  264. package/dist-cjs/tabs/Tabs.js +3 -3
  265. package/dist-cjs/tabs/Tabs.js.map +1 -1
  266. package/dist-cjs/tabs/Tabstrip.css.js +1 -1
  267. package/dist-cjs/tabs/Tabstrip.js +5 -5
  268. package/dist-cjs/tabs/Tabstrip.js.map +1 -1
  269. package/dist-cjs/tabs/drag-drop/Draggable.css.js +1 -1
  270. package/dist-cjs/tabs/drag-drop/Draggable.js +2 -2
  271. package/dist-cjs/tabs/drag-drop/Draggable.js.map +1 -1
  272. package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js +2 -2
  273. package/dist-cjs/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  274. package/dist-cjs/tabs/useActivationIndicator.js +1 -1
  275. package/dist-cjs/tabs/useActivationIndicator.js.map +1 -1
  276. package/dist-cjs/tabs/useItemsWithIds.js.map +1 -1
  277. package/dist-cjs/tabs/useTabstrip.js +1 -1
  278. package/dist-cjs/tabs/useTabstrip.js.map +1 -1
  279. package/dist-cjs/tabs-next/TabBar.css.js +1 -1
  280. package/dist-cjs/tabs-next/TabBar.js +2 -2
  281. package/dist-cjs/tabs-next/TabBar.js.map +1 -1
  282. package/dist-cjs/tabs-next/TabListNext.js +2 -2
  283. package/dist-cjs/tabs-next/TabListNext.js.map +1 -1
  284. package/dist-cjs/tabs-next/TabNext.css.js +1 -1
  285. package/dist-cjs/tabs-next/TabNext.js.map +1 -1
  286. package/dist-cjs/tabs-next/TabNextTrigger.js.map +1 -1
  287. package/dist-cjs/tabs-next/TabOverflowList.css.js +1 -1
  288. package/dist-cjs/tabs-next/TabOverflowList.js +1 -1
  289. package/dist-cjs/tabs-next/TabOverflowList.js.map +1 -1
  290. package/dist-cjs/tabs-next/TabsNext.js +2 -2
  291. package/dist-cjs/tabs-next/TabsNext.js.map +1 -1
  292. package/dist-cjs/tokenized-input/TokenizedInput.css.js +1 -1
  293. package/dist-cjs/tokenized-input/TokenizedInputBase.js +2 -2
  294. package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
  295. package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
  296. package/dist-cjs/tokenized-input/internal/InputRuler.js.map +1 -1
  297. package/dist-cjs/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  298. package/dist-cjs/tokenized-input/internal/defaultItemToString.js +1 -1
  299. package/dist-cjs/tokenized-input/internal/defaultItemToString.js.map +1 -1
  300. package/dist-cjs/tokenized-input/useTokenizedInput.js.map +1 -1
  301. package/dist-cjs/tokenized-input-next/TokenizedInputNext.css.js +1 -1
  302. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js +1 -1
  303. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  304. package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
  305. package/dist-cjs/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  306. package/dist-cjs/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  307. package/dist-cjs/toolbar/Toolbar.css.js +1 -1
  308. package/dist-cjs/toolbar/Toolbar.js +6 -6
  309. package/dist-cjs/toolbar/Toolbar.js.map +1 -1
  310. package/dist-cjs/toolbar/ToolbarButton.js +1 -1
  311. package/dist-cjs/toolbar/ToolbarButton.js.map +1 -1
  312. package/dist-cjs/toolbar/Tooltray.js +3 -3
  313. package/dist-cjs/toolbar/Tooltray.js.map +1 -1
  314. package/dist-cjs/toolbar/internal/renderToolbarItems.js +3 -3
  315. package/dist-cjs/toolbar/internal/renderToolbarItems.js.map +1 -1
  316. package/dist-cjs/toolbar/internal/renderTrayTools.js.map +1 -1
  317. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
  318. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +5 -5
  319. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  320. package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.css.js +1 -1
  321. package/dist-cjs/toolbar/toolbar-field/ToolbarField.js +1 -1
  322. package/dist-cjs/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  323. package/dist-cjs/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  324. package/dist-cjs/tree/Tree.js +4 -4
  325. package/dist-cjs/tree/Tree.js.map +1 -1
  326. package/dist-cjs/tree/TreeNode.js +2 -2
  327. package/dist-cjs/tree/TreeNode.js.map +1 -1
  328. package/dist-cjs/tree/useTree.js +2 -2
  329. package/dist-cjs/tree/useTree.js.map +1 -1
  330. package/dist-cjs/utils/useEventCallback.js +1 -1
  331. package/dist-cjs/utils/useEventCallback.js.map +1 -1
  332. package/dist-cjs/window/ElectronWindow.js +4 -4
  333. package/dist-cjs/window/ElectronWindow.js.map +1 -1
  334. package/dist-es/app-header/AppHeader.css.js +1 -1
  335. package/dist-es/app-header/AppHeader.js +5 -5
  336. package/dist-es/app-header/AppHeader.js.map +1 -1
  337. package/dist-es/breadcrumbs/Breadcrumb.js +3 -3
  338. package/dist-es/breadcrumbs/Breadcrumb.js.map +1 -1
  339. package/dist-es/breadcrumbs/Breadcrumbs.js +3 -3
  340. package/dist-es/breadcrumbs/Breadcrumbs.js.map +1 -1
  341. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  342. package/dist-es/button-bar/ButtonBar.js +4 -4
  343. package/dist-es/button-bar/ButtonBar.js.map +1 -1
  344. package/dist-es/button-bar/OrderedButton.js +3 -3
  345. package/dist-es/button-bar/OrderedButton.js.map +1 -1
  346. package/dist-es/button-bar/internal/DescendantContext.js.map +1 -1
  347. package/dist-es/calendar/Calendar.js +35 -10
  348. package/dist-es/calendar/Calendar.js.map +1 -1
  349. package/dist-es/calendar/CalendarGrid.js +2 -2
  350. package/dist-es/calendar/CalendarGrid.js.map +1 -1
  351. package/dist-es/calendar/CalendarMonthHeader.js +2 -2
  352. package/dist-es/calendar/CalendarMonthHeader.js.map +1 -1
  353. package/dist-es/calendar/CalendarNavigation.js.map +1 -1
  354. package/dist-es/calendar/CalendarWeekHeader.css.js +1 -1
  355. package/dist-es/calendar/CalendarWeekHeader.js +3 -3
  356. package/dist-es/calendar/CalendarWeekHeader.js.map +1 -1
  357. package/dist-es/calendar/internal/CalendarDay.css.js +1 -1
  358. package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
  359. package/dist-es/calendar/internal/CalendarMonth.css.js +1 -1
  360. package/dist-es/calendar/internal/CalendarMonth.js +3 -3
  361. package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
  362. package/dist-es/calendar/internal/useFocusManagement.js +1 -1
  363. package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
  364. package/dist-es/calendar/useCalendar.js +6 -0
  365. package/dist-es/calendar/useCalendar.js.map +1 -1
  366. package/dist-es/calendar/useCalendarSelection.js +186 -102
  367. package/dist-es/calendar/useCalendarSelection.js.map +1 -1
  368. package/dist-es/cascading-menu/CascadingMenu.js.map +1 -1
  369. package/dist-es/cascading-menu/CascadingMenuItem.css.js +1 -1
  370. package/dist-es/cascading-menu/CascadingMenuItem.js +3 -3
  371. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  372. package/dist-es/cascading-menu/CascadingMenuList.js +5 -5
  373. package/dist-es/cascading-menu/CascadingMenuList.js.map +1 -1
  374. package/dist-es/cascading-menu/internal/useMenuTriggerHandlers.js.map +1 -1
  375. package/dist-es/color-chooser/AlphaInputField.js +2 -2
  376. package/dist-es/color-chooser/AlphaInputField.js.map +1 -1
  377. package/dist-es/color-chooser/ColorChooser.css.js +1 -1
  378. package/dist-es/color-chooser/ColorChooser.js +39 -41
  379. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  380. package/dist-es/color-chooser/ColorPicker.css.js +1 -1
  381. package/dist-es/color-chooser/ColorPicker.js +3 -3
  382. package/dist-es/color-chooser/ColorPicker.js.map +1 -1
  383. package/dist-es/color-chooser/DictTabs.js +2 -2
  384. package/dist-es/color-chooser/HexInput.css.js +1 -1
  385. package/dist-es/color-chooser/HexInput.js +2 -2
  386. package/dist-es/color-chooser/HexInput.js.map +1 -1
  387. package/dist-es/color-chooser/RGBAInput.css.js +1 -1
  388. package/dist-es/color-chooser/RGBAInput.js +3 -3
  389. package/dist-es/color-chooser/RGBAInput.js.map +1 -1
  390. package/dist-es/color-chooser/RGBAInputField.js +2 -2
  391. package/dist-es/color-chooser/RGBAInputField.js.map +1 -1
  392. package/dist-es/color-chooser/Swatch.css.js +1 -1
  393. package/dist-es/color-chooser/Swatches.js +3 -3
  394. package/dist-es/color-chooser/Swatches.js.map +1 -1
  395. package/dist-es/color-chooser/SwatchesPicker.js +3 -3
  396. package/dist-es/color-chooser/SwatchesPicker.js.map +1 -1
  397. package/dist-es/combo-box/ComboBox.js +6 -6
  398. package/dist-es/combo-box/ComboBox.js.map +1 -1
  399. package/dist-es/combo-box/useCombobox.js +1 -1
  400. package/dist-es/combo-box/useCombobox.js.map +1 -1
  401. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js +3 -3
  402. package/dist-es/combo-box-deprecated/ComboBoxDeprecated.js.map +1 -1
  403. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js +2 -2
  404. package/dist-es/combo-box-deprecated/internal/DefaultComboBox.js.map +1 -1
  405. package/dist-es/combo-box-deprecated/internal/MultiSelectComboBox.js +2 -2
  406. package/dist-es/combo-box-deprecated/internal/useComboBox.js +1 -1
  407. package/dist-es/combo-box-deprecated/internal/useMultiSelectComboBox.js +1 -1
  408. package/dist-es/common-hooks/collectionProvider.js.map +1 -1
  409. package/dist-es/common-hooks/itemToString.js +1 -1
  410. package/dist-es/common-hooks/itemToString.js.map +1 -1
  411. package/dist-es/common-hooks/selectionTypes.js.map +1 -1
  412. package/dist-es/common-hooks/useCollapsibleGroups.js.map +1 -1
  413. package/dist-es/common-hooks/useCollectionItems.js +1 -1
  414. package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
  415. package/dist-es/common-hooks/useImperativeScrollingAPI.js +6 -10
  416. package/dist-es/common-hooks/useImperativeScrollingAPI.js.map +1 -1
  417. package/dist-es/common-hooks/useKeyboardNavigation.js.map +1 -1
  418. package/dist-es/common-hooks/useKeyboardNavigationPanel.js.map +1 -1
  419. package/dist-es/common-hooks/useTypeahead.js.map +1 -1
  420. package/dist-es/common-hooks/utils/collection-item-utils.js +2 -2
  421. package/dist-es/common-hooks/utils/collection-item-utils.js.map +1 -1
  422. package/dist-es/contact-details/ContactActions.js +1 -1
  423. package/dist-es/contact-details/ContactActions.js.map +1 -1
  424. package/dist-es/contact-details/ContactAvatar.js +1 -1
  425. package/dist-es/contact-details/ContactDetails.js +4 -4
  426. package/dist-es/contact-details/ContactDetails.js.map +1 -1
  427. package/dist-es/contact-details/ContactFavoriteToggle.js +1 -1
  428. package/dist-es/contact-details/ContactMetadata.js +2 -2
  429. package/dist-es/contact-details/ContactMetadata.js.map +1 -1
  430. package/dist-es/contact-details/ContactMetadataItem.js.map +1 -1
  431. package/dist-es/contact-details/ContactPrimaryInfo.js +1 -1
  432. package/dist-es/contact-details/ContactPrimaryInfo.js.map +1 -1
  433. package/dist-es/contact-details/ContactSecondaryInfo.js +1 -1
  434. package/dist-es/contact-details/ContactSecondaryInfo.js.map +1 -1
  435. package/dist-es/contact-details/ContactTertiaryInfo.js +1 -1
  436. package/dist-es/contact-details/ContactTertiaryInfo.js.map +1 -1
  437. package/dist-es/contact-details/internal/FavoriteToggle.js.map +1 -1
  438. package/dist-es/contact-details/internal/StarIconContainer.js.map +1 -1
  439. package/dist-es/content-status/ContentStatus.js +3 -3
  440. package/dist-es/content-status/ContentStatus.js.map +1 -1
  441. package/dist-es/content-status/internal/StatusIndicator.js.map +1 -1
  442. package/dist-es/date-input/DateInput.css.js +1 -1
  443. package/dist-es/date-input/DateInputRange.js.map +1 -1
  444. package/dist-es/date-input/DateInputSingle.js.map +1 -1
  445. package/dist-es/date-picker/DatePicker.js.map +1 -1
  446. package/dist-es/date-picker/DatePickerActions.js.map +1 -1
  447. package/dist-es/date-picker/DatePickerContext.js +10 -10
  448. package/dist-es/date-picker/DatePickerContext.js.map +1 -1
  449. package/dist-es/date-picker/DatePickerOverlay.css.js +1 -1
  450. package/dist-es/date-picker/DatePickerOverlay.js.map +1 -1
  451. package/dist-es/date-picker/DatePickerOverlayProvider.js +4 -0
  452. package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -1
  453. package/dist-es/date-picker/DatePickerPanel.css.js +1 -1
  454. package/dist-es/date-picker/DatePickerRangeGridPanel.js +3 -3
  455. package/dist-es/date-picker/DatePickerRangeGridPanel.js.map +1 -1
  456. package/dist-es/date-picker/DatePickerRangeInput.js +1 -1
  457. package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -1
  458. package/dist-es/date-picker/DatePickerRangePanel.js +3 -3
  459. package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -1
  460. package/dist-es/date-picker/DatePickerSingleGridPanel.js +3 -3
  461. package/dist-es/date-picker/DatePickerSingleGridPanel.js.map +1 -1
  462. package/dist-es/date-picker/DatePickerSingleInput.js +1 -1
  463. package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -1
  464. package/dist-es/date-picker/DatePickerTrigger.js.map +1 -1
  465. package/dist-es/deck-item/DeckItem.js +2 -2
  466. package/dist-es/deck-item/DeckItem.js.map +1 -1
  467. package/dist-es/deck-layout/DeckLayout.js +3 -3
  468. package/dist-es/deck-layout/DeckLayout.js.map +1 -1
  469. package/dist-es/dropdown/Dropdown.js +1 -1
  470. package/dist-es/dropdown/Dropdown.js.map +1 -1
  471. package/dist-es/dropdown/DropdownBase.js +3 -3
  472. package/dist-es/dropdown/DropdownBase.js.map +1 -1
  473. package/dist-es/dropdown/DropdownButton.js +2 -2
  474. package/dist-es/dropdown/DropdownButton.js.map +1 -1
  475. package/dist-es/dropdown/useDropdown.js +1 -1
  476. package/dist-es/dropdown/useDropdown.js.map +1 -1
  477. package/dist-es/dropdown/useDropdownBase.js.map +1 -1
  478. package/dist-es/editable-label/EditableLabel.js +2 -2
  479. package/dist-es/editable-label/EditableLabel.js.map +1 -1
  480. package/dist-es/form-field-legacy/FormActivationIndicator.js.map +1 -1
  481. package/dist-es/form-field-legacy/FormFieldLegacy.css.js +1 -1
  482. package/dist-es/form-field-legacy/FormFieldLegacy.js +4 -4
  483. package/dist-es/form-field-legacy/FormFieldLegacy.js.map +1 -1
  484. package/dist-es/form-field-legacy/FormHelperText.js.map +1 -1
  485. package/dist-es/form-field-legacy/FormLabel.css.js +1 -1
  486. package/dist-es/form-field-legacy/FormLabel.js +3 -3
  487. package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
  488. package/dist-es/form-field-legacy/StatusIndicator.js.map +1 -1
  489. package/dist-es/form-group/FormGroup.js +2 -2
  490. package/dist-es/form-group/FormGroup.js.map +1 -1
  491. package/dist-es/formatted-input/FormattedInput.js +3 -3
  492. package/dist-es/formatted-input/FormattedInput.js.map +1 -1
  493. package/dist-es/formatted-input/internal/InputWithMask.js.map +1 -1
  494. package/dist-es/index.js +52 -56
  495. package/dist-es/index.js.map +1 -1
  496. package/dist-es/input-legacy/InputLegacy.css.js +1 -1
  497. package/dist-es/input-legacy/InputLegacy.js +3 -3
  498. package/dist-es/input-legacy/InputLegacy.js.map +1 -1
  499. package/dist-es/input-legacy/StaticInputAdornment.js +2 -2
  500. package/dist-es/input-legacy/StaticInputAdornment.js.map +1 -1
  501. package/dist-es/layer-layout/LayerLayout.js.map +1 -1
  502. package/dist-es/list/Highlighter.js +2 -2
  503. package/dist-es/list/Highlighter.js.map +1 -1
  504. package/dist-es/list/List.css.js +1 -1
  505. package/dist-es/list/List.js +3 -3
  506. package/dist-es/list/List.js.map +1 -1
  507. package/dist-es/list/ListItem.css.js +1 -1
  508. package/dist-es/list/ListItem.js +2 -2
  509. package/dist-es/list/ListItem.js.map +1 -1
  510. package/dist-es/list/VirtualizedList.js +4 -4
  511. package/dist-es/list/VirtualizedList.js.map +1 -1
  512. package/dist-es/list/useList.js +2 -2
  513. package/dist-es/list/useList.js.map +1 -1
  514. package/dist-es/list/useListHeight.js +1 -1
  515. package/dist-es/list-deprecated/List.css.js +1 -1
  516. package/dist-es/list-deprecated/List.js +2 -2
  517. package/dist-es/list-deprecated/List.js.map +1 -1
  518. package/dist-es/list-deprecated/ListBase.js +15 -19
  519. package/dist-es/list-deprecated/ListBase.js.map +1 -1
  520. package/dist-es/list-deprecated/ListItem.css.js +1 -1
  521. package/dist-es/list-deprecated/ListItem.js +1 -1
  522. package/dist-es/list-deprecated/ListItem.js.map +1 -1
  523. package/dist-es/list-deprecated/ListItemBase.js +2 -2
  524. package/dist-es/list-deprecated/ListItemBase.js.map +1 -1
  525. package/dist-es/list-deprecated/internal/DescendantContext.js +7 -4
  526. package/dist-es/list-deprecated/internal/DescendantContext.js.map +1 -1
  527. package/dist-es/list-deprecated/internal/Highlighter.js +2 -2
  528. package/dist-es/list-deprecated/internal/Highlighter.js.map +1 -1
  529. package/dist-es/list-deprecated/itemToString.js +1 -1
  530. package/dist-es/list-deprecated/itemToString.js.map +1 -1
  531. package/dist-es/list-deprecated/useList.js.map +1 -1
  532. package/dist-es/list-next/ListItemNext.css.js +1 -1
  533. package/dist-es/list-next/ListItemNext.js +2 -2
  534. package/dist-es/list-next/ListItemNext.js.map +1 -1
  535. package/dist-es/list-next/ListNext.css.js +1 -1
  536. package/dist-es/list-next/ListNext.js.map +1 -1
  537. package/dist-es/logo/Logo.js +2 -2
  538. package/dist-es/logo/Logo.js.map +1 -1
  539. package/dist-es/logo/LogoSeparator.css.js +1 -1
  540. package/dist-es/logo/LogoSeparator.js +2 -2
  541. package/dist-es/logo/LogoSeparator.js.map +1 -1
  542. package/dist-es/menu-button/MenuButton.js +1 -1
  543. package/dist-es/menu-button/MenuButton.js.map +1 -1
  544. package/dist-es/menu-button/MenuButtonTrigger.js +2 -2
  545. package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
  546. package/dist-es/metric/Metric.js +2 -2
  547. package/dist-es/metric/Metric.js.map +1 -1
  548. package/dist-es/metric/MetricContent.css.js +1 -1
  549. package/dist-es/metric/MetricContent.js +2 -2
  550. package/dist-es/metric/MetricContent.js.map +1 -1
  551. package/dist-es/metric/MetricHeader.js +2 -2
  552. package/dist-es/metric/MetricHeader.js.map +1 -1
  553. package/dist-es/number-input/NumberInput.css.js +1 -1
  554. package/dist-es/number-input/NumberInput.js +149 -82
  555. package/dist-es/number-input/NumberInput.js.map +1 -1
  556. package/dist-es/number-input/internal/useCaret.js +32 -0
  557. package/dist-es/number-input/internal/useCaret.js.map +1 -0
  558. package/dist-es/number-input/internal/utils.js +52 -10
  559. package/dist-es/number-input/internal/utils.js.map +1 -1
  560. package/dist-es/number-input/useNumberInput.js +35 -27
  561. package/dist-es/number-input/useNumberInput.js.map +1 -1
  562. package/dist-es/portal/Portal.js.map +1 -1
  563. package/dist-es/query-input/QueryInput.css.js +1 -1
  564. package/dist-es/query-input/QueryInput.js +3 -3
  565. package/dist-es/query-input/QueryInput.js.map +1 -1
  566. package/dist-es/query-input/internal/CategoryList.js +1 -1
  567. package/dist-es/query-input/internal/CategoryListItem.js +1 -1
  568. package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
  569. package/dist-es/query-input/internal/SearchList.js +3 -3
  570. package/dist-es/query-input/internal/SearchList.js.map +1 -1
  571. package/dist-es/query-input/internal/ValueList.js +1 -1
  572. package/dist-es/query-input/internal/ValueSelector.js +1 -1
  573. package/dist-es/query-input/useQueryInput.js.map +1 -1
  574. package/dist-es/responsive/OverflowReducer.js.map +1 -1
  575. package/dist-es/responsive/useOverflowCollectionItems.js.map +1 -1
  576. package/dist-es/responsive/useOverflowLayout.js.map +1 -1
  577. package/dist-es/responsive/useWidth.js.map +1 -1
  578. package/dist-es/search-input/SearchInput.js +2 -2
  579. package/dist-es/search-input/SearchInput.js.map +1 -1
  580. package/dist-es/static-list/StaticList.js.map +1 -1
  581. package/dist-es/static-list/StaticListItemContent.js.map +1 -1
  582. package/dist-es/system-status/SystemStatus.css.js +1 -1
  583. package/dist-es/system-status/SystemStatus.js +2 -2
  584. package/dist-es/system-status/SystemStatus.js.map +1 -1
  585. package/dist-es/system-status/SystemStatusActions.js +2 -2
  586. package/dist-es/system-status/SystemStatusActions.js.map +1 -1
  587. package/dist-es/system-status/SystemStatusContent.js +2 -2
  588. package/dist-es/system-status/SystemStatusContent.js.map +1 -1
  589. package/dist-es/tabs/Tab.css.js +1 -1
  590. package/dist-es/tabs/Tab.js.map +1 -1
  591. package/dist-es/tabs/TabActivationIndicator.css.js +1 -1
  592. package/dist-es/tabs/TabActivationIndicator.js +2 -2
  593. package/dist-es/tabs/TabActivationIndicator.js.map +1 -1
  594. package/dist-es/tabs/TabPanel.js.map +1 -1
  595. package/dist-es/tabs/Tabs.js +3 -3
  596. package/dist-es/tabs/Tabs.js.map +1 -1
  597. package/dist-es/tabs/Tabstrip.css.js +1 -1
  598. package/dist-es/tabs/Tabstrip.js +5 -5
  599. package/dist-es/tabs/Tabstrip.js.map +1 -1
  600. package/dist-es/tabs/drag-drop/Draggable.css.js +1 -1
  601. package/dist-es/tabs/drag-drop/Draggable.js +2 -2
  602. package/dist-es/tabs/drag-drop/Draggable.js.map +1 -1
  603. package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js +2 -2
  604. package/dist-es/tabs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  605. package/dist-es/tabs/useActivationIndicator.js +1 -1
  606. package/dist-es/tabs/useActivationIndicator.js.map +1 -1
  607. package/dist-es/tabs/useItemsWithIds.js.map +1 -1
  608. package/dist-es/tabs/useTabstrip.js +1 -1
  609. package/dist-es/tabs/useTabstrip.js.map +1 -1
  610. package/dist-es/tabs-next/TabBar.css.js +1 -1
  611. package/dist-es/tabs-next/TabBar.js +2 -2
  612. package/dist-es/tabs-next/TabBar.js.map +1 -1
  613. package/dist-es/tabs-next/TabListNext.js +2 -2
  614. package/dist-es/tabs-next/TabListNext.js.map +1 -1
  615. package/dist-es/tabs-next/TabNext.css.js +1 -1
  616. package/dist-es/tabs-next/TabNext.js.map +1 -1
  617. package/dist-es/tabs-next/TabNextTrigger.js.map +1 -1
  618. package/dist-es/tabs-next/TabOverflowList.css.js +1 -1
  619. package/dist-es/tabs-next/TabOverflowList.js +1 -1
  620. package/dist-es/tabs-next/TabOverflowList.js.map +1 -1
  621. package/dist-es/tabs-next/TabsNext.js +2 -2
  622. package/dist-es/tabs-next/TabsNext.js.map +1 -1
  623. package/dist-es/tokenized-input/TokenizedInput.css.js +1 -1
  624. package/dist-es/tokenized-input/TokenizedInputBase.js +2 -2
  625. package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
  626. package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
  627. package/dist-es/tokenized-input/internal/InputRuler.js.map +1 -1
  628. package/dist-es/tokenized-input/internal/calcFirstHiddenIndex.js.map +1 -1
  629. package/dist-es/tokenized-input/internal/defaultItemToString.js +1 -1
  630. package/dist-es/tokenized-input/internal/defaultItemToString.js.map +1 -1
  631. package/dist-es/tokenized-input/useTokenizedInput.js.map +1 -1
  632. package/dist-es/tokenized-input-next/TokenizedInputNext.css.js +1 -1
  633. package/dist-es/tokenized-input-next/TokenizedInputNext.js +1 -1
  634. package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  635. package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
  636. package/dist-es/tokenized-input-next/internal/calcFirstHiddenIndex.js.map +1 -1
  637. package/dist-es/tokenized-input-next/useTokenizedInputNext.js.map +1 -1
  638. package/dist-es/toolbar/Toolbar.css.js +1 -1
  639. package/dist-es/toolbar/Toolbar.js +6 -6
  640. package/dist-es/toolbar/Toolbar.js.map +1 -1
  641. package/dist-es/toolbar/ToolbarButton.js +1 -1
  642. package/dist-es/toolbar/ToolbarButton.js.map +1 -1
  643. package/dist-es/toolbar/Tooltray.js +3 -3
  644. package/dist-es/toolbar/Tooltray.js.map +1 -1
  645. package/dist-es/toolbar/internal/renderToolbarItems.js +3 -3
  646. package/dist-es/toolbar/internal/renderToolbarItems.js.map +1 -1
  647. package/dist-es/toolbar/internal/renderTrayTools.js.map +1 -1
  648. package/dist-es/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
  649. package/dist-es/toolbar/overflow-panel/OverflowPanel.js +5 -5
  650. package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  651. package/dist-es/toolbar/overflow-panel/OverflowSeparator.css.js +1 -1
  652. package/dist-es/toolbar/toolbar-field/ToolbarField.js +1 -1
  653. package/dist-es/toolbar/toolbar-field/ToolbarField.js.map +1 -1
  654. package/dist-es/toolbar/toolbar-field/useToolbarField.js.map +1 -1
  655. package/dist-es/tree/Tree.js +4 -4
  656. package/dist-es/tree/Tree.js.map +1 -1
  657. package/dist-es/tree/TreeNode.js +2 -2
  658. package/dist-es/tree/TreeNode.js.map +1 -1
  659. package/dist-es/tree/useTree.js +2 -2
  660. package/dist-es/tree/useTree.js.map +1 -1
  661. package/dist-es/utils/useEventCallback.js +1 -1
  662. package/dist-es/utils/useEventCallback.js.map +1 -1
  663. package/dist-es/window/ElectronWindow.js +4 -4
  664. package/dist-es/window/ElectronWindow.js.map +1 -1
  665. package/dist-types/app-header/AppHeader.d.ts +1 -1
  666. package/dist-types/button-bar/ButtonBar.d.ts +4 -4
  667. package/dist-types/calendar/Calendar.d.ts +43 -7
  668. package/dist-types/calendar/CalendarGrid.d.ts +2 -2
  669. package/dist-types/calendar/CalendarMonthHeader.d.ts +1 -1
  670. package/dist-types/calendar/CalendarWeekHeader.d.ts +1 -1
  671. package/dist-types/calendar/index.d.ts +3 -3
  672. package/dist-types/calendar/useCalendar.d.ts +23 -24
  673. package/dist-types/calendar/useCalendarDay.d.ts +2 -1
  674. package/dist-types/calendar/useCalendarSelection.d.ts +154 -60
  675. package/dist-types/cascading-menu/internal/CascadingMenuAction.d.ts +2 -2
  676. package/dist-types/cascading-menu/internal/menuPositioning.d.ts +1 -1
  677. package/dist-types/cascading-menu/internal/stateUtils.d.ts +2 -2
  678. package/dist-types/cascading-menu/internal/useClickAway.d.ts +1 -1
  679. package/dist-types/cascading-menu/internal/useRefsManager.d.ts +1 -1
  680. package/dist-types/cascading-menu/internal/useStateReducer.d.ts +2 -2
  681. package/dist-types/cascading-menu/stateChangeTypes.d.ts +1 -1
  682. package/dist-types/color-chooser/Color.d.ts +1 -1
  683. package/dist-types/color-chooser/DictTabs.d.ts +1 -1
  684. package/dist-types/color-chooser/color-utils.d.ts +1 -1
  685. package/dist-types/color-chooser/index.d.ts +4 -4
  686. package/dist-types/combo-box/ComboBox.d.ts +4 -4
  687. package/dist-types/combo-box/useCombobox.d.ts +1 -1
  688. package/dist-types/combo-box-deprecated/ComboBoxDeprecated.d.ts +3 -3
  689. package/dist-types/combo-box-deprecated/filterHelpers.d.ts +1 -1
  690. package/dist-types/combo-box-deprecated/internal/DefaultComboBox.d.ts +1 -1
  691. package/dist-types/combo-box-deprecated/internal/MultiSelectComboBox.d.ts +1 -1
  692. package/dist-types/combo-box-deprecated/internal/useComboBox.d.ts +98 -97
  693. package/dist-types/combo-box-deprecated/internal/useMultiSelectComboBox.d.ts +214 -212
  694. package/dist-types/combo-box-deprecated/internal/usePopperStatus.d.ts +3 -3
  695. package/dist-types/common-hooks/collectionTypes.d.ts +3 -3
  696. package/dist-types/common-hooks/index.d.ts +2 -2
  697. package/dist-types/common-hooks/itemToString.d.ts +1 -1
  698. package/dist-types/common-hooks/navigationTypes.d.ts +4 -4
  699. package/dist-types/common-hooks/selectionTypes.d.ts +10 -10
  700. package/dist-types/common-hooks/useKeyboardNavigation.d.ts +1 -1
  701. package/dist-types/common-hooks/useSelection.d.ts +2 -2
  702. package/dist-types/common-hooks/utils/collection-item-utils.d.ts +2 -2
  703. package/dist-types/common-hooks/utils/filter-utils.d.ts +2 -2
  704. package/dist-types/contact-details/ContactAction.d.ts +1 -1
  705. package/dist-types/contact-details/ContactAvatar.d.ts +1 -1
  706. package/dist-types/contact-details/ContactDetails.d.ts +1 -1
  707. package/dist-types/contact-details/index.d.ts +1 -1
  708. package/dist-types/contact-details/internal/index.d.ts +1 -1
  709. package/dist-types/content-status/internal/StatusIndicator.d.ts +1 -2
  710. package/dist-types/date-input/DateInputRange.d.ts +2 -2
  711. package/dist-types/date-input/DateInputSingle.d.ts +1 -1
  712. package/dist-types/date-input/index.d.ts +1 -1
  713. package/dist-types/date-picker/DatePicker.d.ts +1 -1
  714. package/dist-types/date-picker/DatePickerActions.d.ts +1 -1
  715. package/dist-types/date-picker/DatePickerContext.d.ts +1 -1
  716. package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +1 -1
  717. package/dist-types/date-picker/DatePickerRangeGridPanel.d.ts +3 -4
  718. package/dist-types/date-picker/DatePickerSingleGridPanel.d.ts +2 -3
  719. package/dist-types/date-picker/DatePickerSinglePanel.d.ts +1 -1
  720. package/dist-types/date-picker/index.d.ts +3 -3
  721. package/dist-types/date-picker/useDatePicker.d.ts +1 -1
  722. package/dist-types/deck-layout/DeckLayout.d.ts +3 -3
  723. package/dist-types/dropdown/Dropdown.d.ts +3 -3
  724. package/dist-types/dropdown/DropdownBase.d.ts +1 -1
  725. package/dist-types/dropdown/dropdownTypes.d.ts +1 -1
  726. package/dist-types/dropdown/index.d.ts +1 -1
  727. package/dist-types/dropdown/useClickAway.d.ts +1 -1
  728. package/dist-types/dropdown/useDropdown.d.ts +1 -1
  729. package/dist-types/focus-manager/internal/findAllTabbableElements.d.ts +1 -1
  730. package/dist-types/form-field-legacy/FormFieldLegacy.d.ts +5 -5
  731. package/dist-types/form-field-legacy/NecessityIndicator.d.ts +1 -1
  732. package/dist-types/form-field-legacy/StatusIndicator.d.ts +1 -1
  733. package/dist-types/formatted-input/FormattedInput.d.ts +1 -1
  734. package/dist-types/index.d.ts +5 -6
  735. package/dist-types/input-legacy/StaticInputAdornment.d.ts +1 -1
  736. package/dist-types/layer-layout/LayerLayout.d.ts +1 -1
  737. package/dist-types/list/List.d.ts +3 -3
  738. package/dist-types/list/ListItem.d.ts +1 -1
  739. package/dist-types/list/VirtualizedList.d.ts +3 -3
  740. package/dist-types/list/index.d.ts +3 -3
  741. package/dist-types/list/listTypes.d.ts +2 -2
  742. package/dist-types/list/useList.d.ts +1 -1
  743. package/dist-types/list/useVirtualization.d.ts +1 -1
  744. package/dist-types/list-deprecated/List.d.ts +2 -2
  745. package/dist-types/list-deprecated/ListBase.d.ts +2 -2
  746. package/dist-types/list-deprecated/ListItem.d.ts +1 -1
  747. package/dist-types/list-deprecated/ListItemContext.d.ts +1 -1
  748. package/dist-types/list-deprecated/ListProps.d.ts +5 -5
  749. package/dist-types/list-deprecated/index.d.ts +3 -3
  750. package/dist-types/list-deprecated/internal/DescendantContext.d.ts +13 -6
  751. package/dist-types/list-deprecated/itemToString.d.ts +1 -1
  752. package/dist-types/list-deprecated/useListItem.d.ts +2 -2
  753. package/dist-types/list-next/index.d.ts +1 -1
  754. package/dist-types/localization-provider/LocalizationProvider.d.ts +3 -3
  755. package/dist-types/logo/Logo.d.ts +1 -1
  756. package/dist-types/logo/LogoSeparator.d.ts +1 -1
  757. package/dist-types/metric/index.d.ts +1 -1
  758. package/dist-types/metric/internal/index.d.ts +1 -1
  759. package/dist-types/number-input/NumberInput.d.ts +49 -27
  760. package/dist-types/number-input/index.d.ts +1 -1
  761. package/dist-types/number-input/internal/useCaret.d.ts +5 -0
  762. package/dist-types/number-input/internal/useInterval.d.ts +1 -1
  763. package/dist-types/number-input/internal/utils.d.ts +5 -5
  764. package/dist-types/number-input/useNumberInput.d.ts +11 -6
  765. package/dist-types/query-input/index.d.ts +1 -1
  766. package/dist-types/query-input/useQueryInput.d.ts +2 -2
  767. package/dist-types/responsive/OverflowReducer.d.ts +4 -4
  768. package/dist-types/responsive/index.d.ts +5 -5
  769. package/dist-types/responsive/overflowTypes.d.ts +20 -20
  770. package/dist-types/responsive/overflowUtils.d.ts +3 -3
  771. package/dist-types/responsive/useOverflowCollectionItems.d.ts +1 -1
  772. package/dist-types/responsive/useOverflowLayout.d.ts +1 -1
  773. package/dist-types/responsive/useResizeObserver.d.ts +2 -2
  774. package/dist-types/responsive/utils.d.ts +3 -3
  775. package/dist-types/system-status/index.d.ts +1 -1
  776. package/dist-types/tabs/Tab.d.ts +20 -19
  777. package/dist-types/tabs/Tabs.d.ts +1 -1
  778. package/dist-types/tabs/TabsTypes.d.ts +7 -7
  779. package/dist-types/tabs/drag-drop/Draggable.d.ts +2 -2
  780. package/dist-types/tabs/drag-drop/DropIndicator.d.ts +1 -1
  781. package/dist-types/tabs/drag-drop/drag-utils.d.ts +26 -22
  782. package/dist-types/tabs/drag-drop/dragDropTypes.d.ts +5 -5
  783. package/dist-types/tabs/drag-drop/useDragSpacers.d.ts +1 -1
  784. package/dist-types/tabs/index.d.ts +2 -2
  785. package/dist-types/tabs/useActivationIndicator.d.ts +1 -1
  786. package/dist-types/tabs/useEditableItem.d.ts +1 -1
  787. package/dist-types/tabs/useKeyboardNavigation.d.ts +1 -1
  788. package/dist-types/tabs/useSelection.d.ts +3 -3
  789. package/dist-types/tabs/useTabstrip.d.ts +1 -1
  790. package/dist-types/tabs-next/hooks/useCollection.d.ts +1 -1
  791. package/dist-types/tabs-next/index.d.ts +4 -4
  792. package/dist-types/tokenized-input/TokenizedInput.d.ts +2 -2
  793. package/dist-types/tokenized-input/TokenizedInputBase.d.ts +5 -5
  794. package/dist-types/tokenized-input/internal/InputPill.d.ts +1 -1
  795. package/dist-types/tokenized-input/internal/isPlainObject.d.ts +1 -1
  796. package/dist-types/tokenized-input/useTokenizedInput.d.ts +1 -1
  797. package/dist-types/tokenized-input-next/TokenizedInputNext.d.ts +2 -2
  798. package/dist-types/tokenized-input-next/internal/InputPill.d.ts +1 -1
  799. package/dist-types/toolbar/ToolbarButton.d.ts +3 -3
  800. package/dist-types/toolbar/ToolbarProps.d.ts +1 -1
  801. package/dist-types/toolbar/TooltrayProps.d.ts +2 -2
  802. package/dist-types/toolbar/index.d.ts +1 -1
  803. package/dist-types/toolbar/internal/ToolbarButtonRefsContext.d.ts +1 -1
  804. package/dist-types/toolbar/internal/renderTrayTools.d.ts +1 -1
  805. package/dist-types/tree/useTree.d.ts +1 -1
  806. package/dist-types/utils/forwardCallbackProps.d.ts +1 -1
  807. package/dist-types/utils/index.d.ts +1 -1
  808. package/dist-types/utils/isEmail.d.ts +1 -1
  809. package/dist-types/utils/useClickOutside.d.ts +1 -1
  810. package/dist-types/utils/useSlideSelection.d.ts +1 -1
  811. package/dist-types/window/ElectronWindow.d.ts +1 -1
  812. package/dist-types/window/WindowContext.d.ts +4 -4
  813. package/dist-types/window/index.d.ts +1 -1
  814. package/package.json +7 -6
  815. package/dist-cjs/carousel/Carousel.css.js +0 -6
  816. package/dist-cjs/carousel/Carousel.css.js.map +0 -1
  817. package/dist-cjs/carousel/Carousel.js +0 -62
  818. package/dist-cjs/carousel/Carousel.js.map +0 -1
  819. package/dist-cjs/carousel/CarouselContext.js +0 -62
  820. package/dist-cjs/carousel/CarouselContext.js.map +0 -1
  821. package/dist-cjs/carousel/CarouselControls.css.js +0 -6
  822. package/dist-cjs/carousel/CarouselControls.css.js.map +0 -1
  823. package/dist-cjs/carousel/CarouselControls.js +0 -122
  824. package/dist-cjs/carousel/CarouselControls.js.map +0 -1
  825. package/dist-cjs/carousel/CarouselReducer.js +0 -77
  826. package/dist-cjs/carousel/CarouselReducer.js.map +0 -1
  827. package/dist-cjs/carousel/CarouselSlide.css.js +0 -6
  828. package/dist-cjs/carousel/CarouselSlide.css.js.map +0 -1
  829. package/dist-cjs/carousel/CarouselSlide.js +0 -110
  830. package/dist-cjs/carousel/CarouselSlide.js.map +0 -1
  831. package/dist-cjs/carousel/CarouselSlider.css.js +0 -6
  832. package/dist-cjs/carousel/CarouselSlider.css.js.map +0 -1
  833. package/dist-cjs/carousel/CarouselSlider.js +0 -93
  834. package/dist-cjs/carousel/CarouselSlider.js.map +0 -1
  835. package/dist-es/carousel/Carousel.css.js +0 -4
  836. package/dist-es/carousel/Carousel.css.js.map +0 -1
  837. package/dist-es/carousel/Carousel.js +0 -60
  838. package/dist-es/carousel/Carousel.js.map +0 -1
  839. package/dist-es/carousel/CarouselContext.js +0 -58
  840. package/dist-es/carousel/CarouselContext.js.map +0 -1
  841. package/dist-es/carousel/CarouselControls.css.js +0 -4
  842. package/dist-es/carousel/CarouselControls.css.js.map +0 -1
  843. package/dist-es/carousel/CarouselControls.js +0 -120
  844. package/dist-es/carousel/CarouselControls.js.map +0 -1
  845. package/dist-es/carousel/CarouselReducer.js +0 -75
  846. package/dist-es/carousel/CarouselReducer.js.map +0 -1
  847. package/dist-es/carousel/CarouselSlide.css.js +0 -4
  848. package/dist-es/carousel/CarouselSlide.css.js.map +0 -1
  849. package/dist-es/carousel/CarouselSlide.js +0 -108
  850. package/dist-es/carousel/CarouselSlide.js.map +0 -1
  851. package/dist-es/carousel/CarouselSlider.css.js +0 -4
  852. package/dist-es/carousel/CarouselSlider.css.js.map +0 -1
  853. package/dist-es/carousel/CarouselSlider.js +0 -91
  854. package/dist-es/carousel/CarouselSlider.js.map +0 -1
  855. package/dist-types/carousel/Carousel.d.ts +0 -23
  856. package/dist-types/carousel/CarouselContext.d.ts +0 -11
  857. package/dist-types/carousel/CarouselControls.d.ts +0 -26
  858. package/dist-types/carousel/CarouselReducer.d.ts +0 -30
  859. package/dist-types/carousel/CarouselSlide.d.ts +0 -32
  860. package/dist-types/carousel/CarouselSlider.d.ts +0 -13
  861. package/dist-types/carousel/index.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"DescendantContext.js","sources":["../src/button-bar/internal/DescendantContext.tsx"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@salt-ds/core\";\n// Copied from https://gist.github.com/ryanflorence/10e9387f633f9d2e6f444a9bddaabf6e\nimport {\n type Dispatch,\n type MutableRefObject,\n type ReactNode,\n type SetStateAction,\n createContext,\n useRef,\n useState,\n} from \"react\";\n\n// //////////////////////////////////////////////////////////////////////////////\n// SUPER HACKS AHEAD: The React team will hate this enough to hopefully give us\n// a way to know the index of a descendant given a parent (will help generate\n// IDs for accessibility a long with the ability create maximally composable\n// component abstractions).\n//\n// This is all to avoid cloneElement. If we can avoid cloneElement then people\n// can have arbitrary markup around MenuItems. This basically takes advantage\n// of react's render lifecycles to let us \"register\" descendants to an\n// ancestor, so that we can track all the descendants and manage focus on them,\n// etc. The super hacks here are for the child to know it's index as well, so\n// that it can set attributes, match against state from above, etc.\ninterface DescendantProviderProps {\n children?: ReactNode;\n items: Record<string, any>[];\n setItems: Dispatch<SetStateAction<Record<string, any>[]>>;\n}\n\ninterface DescendantContextType {\n assigning?: MutableRefObject<boolean>;\n setItems?: DescendantProviderProps[\"setItems\"];\n}\nexport const DescendantContext = createContext<DescendantContextType>({});\n\nexport function DescendantProvider({\n items,\n setItems,\n ...props\n}: DescendantProviderProps) {\n // On the first render we say we're \"assigning\", and the children will push\n // into the array when they show up in their own useLayoutEffect.\n const assigning = useRef(true);\n\n // since children are pushed into the array in useLayoutEffect of the child,\n // children can't read their index on first render. So we need to cause a\n // second render so they can read their index.\n const [, forceUpdate] = useState<unknown>();\n\n // parent useLayoutEffect is always last\n useIsomorphicLayoutEffect(() => {\n if (assigning.current) {\n // At this point all of the children have pushed into the array so we set\n // assigning to false and force an update. Since we're in\n // useLayoutEffect, we won't get a flash of rendered content, it will all\n // happen synchronously. And now that this is false, children won't push\n // into the array on the forceUpdate\n assigning.current = false;\n forceUpdate({});\n } else {\n // After the forceUpdate completes, we end up here and set assigning back\n // to true for the next update from the app\n assigning.current = true;\n }\n return () => {\n // this cleanup function runs right before the next render, so it's the\n // right time to empty out the array to be reassigned with whatever shows\n // up next render.\n if (assigning.current) {\n // we only want to empty out the array before the next render cycle if\n // it was NOT the result of our forceUpdate, so being guarded behind\n // assigning.current works\n setItems([]);\n }\n };\n }, [items]);\n\n return (\n <DescendantContext.Provider {...props} value={{ setItems, assigning }} />\n );\n}\n"],"names":[],"mappings":";;;;AAkCa,MAAA,iBAAA,GAAoB,aAAqC,CAAA,EAAE;AAEjE,SAAS,kBAAmB,CAAA;AAAA,EACjC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAA4B,EAAA;AAG1B,EAAM,MAAA,SAAA,GAAY,OAAO,IAAI,CAAA;AAK7B,EAAA,MAAM,GAAG,WAAW,CAAA,GAAI,QAAkB,EAAA;AAG1C,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,IAAI,UAAU,OAAS,EAAA;AAMrB,MAAA,SAAA,CAAU,OAAU,GAAA,KAAA;AACpB,MAAA,WAAA,CAAY,EAAE,CAAA;AAAA,KACT,MAAA;AAGL,MAAA,SAAA,CAAU,OAAU,GAAA,IAAA;AAAA;AAEtB,IAAA,OAAO,MAAM;AAIX,MAAA,IAAI,UAAU,OAAS,EAAA;AAIrB,QAAA,QAAA,CAAS,EAAE,CAAA;AAAA;AACb,KACF;AAAA,GACF,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EACE,uBAAA,GAAA,CAAC,iBAAkB,CAAA,QAAA,EAAlB,EAA4B,GAAG,OAAO,KAAO,EAAA,EAAE,QAAU,EAAA,SAAA,EAAa,EAAA,CAAA;AAE3E;;;;"}
1
+ {"version":3,"file":"DescendantContext.js","sources":["../src/button-bar/internal/DescendantContext.tsx"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@salt-ds/core\";\n// Copied from https://gist.github.com/ryanflorence/10e9387f633f9d2e6f444a9bddaabf6e\nimport {\n createContext,\n type Dispatch,\n type MutableRefObject,\n type ReactNode,\n type SetStateAction,\n useRef,\n useState,\n} from \"react\";\n\n// //////////////////////////////////////////////////////////////////////////////\n// SUPER HACKS AHEAD: The React team will hate this enough to hopefully give us\n// a way to know the index of a descendant given a parent (will help generate\n// IDs for accessibility a long with the ability create maximally composable\n// component abstractions).\n//\n// This is all to avoid cloneElement. If we can avoid cloneElement then people\n// can have arbitrary markup around MenuItems. This basically takes advantage\n// of react's render lifecycles to let us \"register\" descendants to an\n// ancestor, so that we can track all the descendants and manage focus on them,\n// etc. The super hacks here are for the child to know it's index as well, so\n// that it can set attributes, match against state from above, etc.\ninterface DescendantProviderProps {\n children?: ReactNode;\n items: Record<string, any>[];\n setItems: Dispatch<SetStateAction<Record<string, any>[]>>;\n}\n\ninterface DescendantContextType {\n assigning?: MutableRefObject<boolean>;\n setItems?: DescendantProviderProps[\"setItems\"];\n}\nexport const DescendantContext = createContext<DescendantContextType>({});\n\nexport function DescendantProvider({\n items,\n setItems,\n ...props\n}: DescendantProviderProps) {\n // On the first render we say we're \"assigning\", and the children will push\n // into the array when they show up in their own useLayoutEffect.\n const assigning = useRef(true);\n\n // since children are pushed into the array in useLayoutEffect of the child,\n // children can't read their index on first render. So we need to cause a\n // second render so they can read their index.\n const [, forceUpdate] = useState<unknown>();\n\n // parent useLayoutEffect is always last\n useIsomorphicLayoutEffect(() => {\n if (assigning.current) {\n // At this point all of the children have pushed into the array so we set\n // assigning to false and force an update. Since we're in\n // useLayoutEffect, we won't get a flash of rendered content, it will all\n // happen synchronously. And now that this is false, children won't push\n // into the array on the forceUpdate\n assigning.current = false;\n forceUpdate({});\n } else {\n // After the forceUpdate completes, we end up here and set assigning back\n // to true for the next update from the app\n assigning.current = true;\n }\n return () => {\n // this cleanup function runs right before the next render, so it's the\n // right time to empty out the array to be reassigned with whatever shows\n // up next render.\n if (assigning.current) {\n // we only want to empty out the array before the next render cycle if\n // it was NOT the result of our forceUpdate, so being guarded behind\n // assigning.current works\n setItems([]);\n }\n };\n }, [items]);\n\n return (\n <DescendantContext.Provider {...props} value={{ setItems, assigning }} />\n );\n}\n"],"names":[],"mappings":";;;;AAkCa,MAAA,iBAAA,GAAoB,aAAqC,CAAA,EAAE;AAEjE,SAAS,kBAAmB,CAAA;AAAA,EACjC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAA4B,EAAA;AAG1B,EAAM,MAAA,SAAA,GAAY,OAAO,IAAI,CAAA;AAK7B,EAAA,MAAM,GAAG,WAAW,CAAA,GAAI,QAAkB,EAAA;AAG1C,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,IAAI,UAAU,OAAS,EAAA;AAMrB,MAAA,SAAA,CAAU,OAAU,GAAA,KAAA;AACpB,MAAA,WAAA,CAAY,EAAE,CAAA;AAAA,KACT,MAAA;AAGL,MAAA,SAAA,CAAU,OAAU,GAAA,IAAA;AAAA;AAEtB,IAAA,OAAO,MAAM;AAIX,MAAA,IAAI,UAAU,OAAS,EAAA;AAIrB,QAAA,QAAA,CAAS,EAAE,CAAA;AAAA;AACb,KACF;AAAA,GACF,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EACE,uBAAA,GAAA,CAAC,iBAAkB,CAAA,QAAA,EAAlB,EAA4B,GAAG,OAAO,KAAO,EAAA,EAAE,QAAU,EAAA,SAAA,EAAa,EAAA,CAAA;AAE3E;;;;"}
@@ -1,15 +1,27 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { makePrefixer } from '@salt-ds/core';
3
- import { clsx } from 'clsx';
4
- import { forwardRef, useRef } from 'react';
5
- import { CalendarContext } from './internal/CalendarContext.js';
6
- import { useCalendar } from './useCalendar.js';
7
3
  import { useComponentCssInjection } from '@salt-ds/styles';
8
4
  import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef, useRef } from 'react';
9
7
  import { useLocalization } from '../localization-provider/LocalizationProvider.js';
10
8
  import css_248z from './Calendar.css.js';
9
+ import { CalendarContext } from './internal/CalendarContext.js';
10
+ import { useCalendar } from './useCalendar.js';
11
11
 
12
12
  const withBaseName = makePrefixer("saltCalendar");
13
+ function isMultiselect(props) {
14
+ return props.multiselect === true;
15
+ }
16
+ function getStartOrEndDate(dateRange, isMultiselect2) {
17
+ var _a, _b;
18
+ if (isMultiselect2) {
19
+ const rangeArray = dateRange;
20
+ return ((_a = rangeArray == null ? void 0 : rangeArray[0]) == null ? void 0 : _a.startDate) ?? ((_b = rangeArray == null ? void 0 : rangeArray[0]) == null ? void 0 : _b.endDate);
21
+ }
22
+ const range = dateRange;
23
+ return (range == null ? void 0 : range.startDate) ?? (range == null ? void 0 : range.endDate);
24
+ }
13
25
  const Calendar = forwardRef(
14
26
  (props, ref) => {
15
27
  const targetWindow = useWindow();
@@ -37,7 +49,9 @@ const Calendar = forwardRef(
37
49
  isDayDisabled,
38
50
  minDate,
39
51
  maxDate,
52
+ multiselect,
40
53
  numberOfVisibleMonths = 1,
54
+ select,
41
55
  selectionVariant,
42
56
  onHoveredDateChange,
43
57
  hoveredDate,
@@ -47,12 +61,21 @@ const Calendar = forwardRef(
47
61
  let timezone = "default";
48
62
  if (timezoneProp) {
49
63
  timezone = timezoneProp;
50
- } else if (selectionVariant === "range") {
51
- const defaultRangeTimezoneDate = (selectedDate == null ? void 0 : selectedDate.startDate) ?? (selectedDate == null ? void 0 : selectedDate.endDate) ?? (defaultSelectedDate == null ? void 0 : defaultSelectedDate.startDate) ?? (defaultSelectedDate == null ? void 0 : defaultSelectedDate.endDate);
52
- timezone = defaultRangeTimezoneDate ? dateAdapter.getTimezone(defaultRangeTimezoneDate) : "default";
53
- } else if (selectionVariant === "single") {
54
- const defaultSingleTimezoneDate = selectedDate ?? defaultSelectedDate;
55
- timezone = defaultSingleTimezoneDate ? dateAdapter.getTimezone(defaultSingleTimezoneDate) : "default";
64
+ } else {
65
+ let defaultTimezoneDate;
66
+ if (selectionVariant === "range" || selectionVariant === "offset") {
67
+ const shouldExtractFromList = isMultiselect(props);
68
+ defaultTimezoneDate = getStartOrEndDate(selectedDate, shouldExtractFromList) ?? getStartOrEndDate(defaultSelectedDate, shouldExtractFromList);
69
+ } else if (selectionVariant === "single") {
70
+ if (isMultiselect(props)) {
71
+ defaultTimezoneDate = (defaultSelectedDate == null ? void 0 : defaultSelectedDate[0]) ?? void 0;
72
+ } else {
73
+ defaultTimezoneDate = selectedDate ?? defaultSelectedDate;
74
+ }
75
+ }
76
+ if (defaultTimezoneDate) {
77
+ timezone = dateAdapter.getTimezone(defaultTimezoneDate);
78
+ }
56
79
  }
57
80
  let startDateOffset;
58
81
  let endDateOffset;
@@ -75,9 +98,11 @@ const Calendar = forwardRef(
75
98
  isDayUnselectable,
76
99
  isDayHighlighted,
77
100
  isDayDisabled,
101
+ multiselect,
78
102
  minDate,
79
103
  maxDate,
80
104
  numberOfVisibleMonths,
105
+ select,
81
106
  selectionVariant,
82
107
  onFocusedDateChange,
83
108
  onHoveredDateChange,
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","sources":["../src/calendar/Calendar.tsx"],"sourcesContent":["import { type ResponsiveProp, makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type ReactNode,\n forwardRef,\n useRef,\n} from \"react\";\nimport { CalendarContext } from \"./internal/CalendarContext\";\nimport {\n type UseCalendarMultiSelectProps,\n type UseCalendarOffsetProps,\n type UseCalendarRangeProps,\n type UseCalendarSingleProps,\n useCalendar,\n} from \"./useCalendar\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport type { DateFrameworkType, Timezone } from \"@salt-ds/date-adapters\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarCss from \"./Calendar.css\";\n\n/**\n * Base props for the Calendar component.\n */\nexport interface CalendarBaseProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content to be rendered inside the Calendar.\n */\n children: ReactNode;\n /**\n * If `true`, hides dates that are out of the selectable range.\n */\n hideOutOfRangeDates?: boolean;\n /**\n * Ref to attach to the focused element,enabling focus to be controlled.\n */\n focusedDateRef?: React.MutableRefObject<HTMLElement | null>;\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 * 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\n/**\n * Props for the Calendar component with single date selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarSingleProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarSingleProps<TDate> {\n /**\n * The selection variant, set to \"single\".\n */\n selectionVariant: \"single\";\n}\n\n/**\n * Props for the Calendar component with date range selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarRangeProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarRangeProps<TDate> {\n /**\n * The selection variant, set to \"range\".\n */\n selectionVariant: \"range\";\n}\n\n/**\n * Props for the Calendar component with multi-select date selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarMultiSelectProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarMultiSelectProps<TDate> {\n /**\n * The selection variant, set to \"multiselect\".\n */\n selectionVariant: \"multiselect\";\n}\n\n/**\n * Props for the Calendar component with offset date selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarOffsetProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarOffsetProps<TDate> {\n /**\n * The selection variant, set to \"offset\".\n */\n selectionVariant: \"offset\";\n}\n\n/**\n * Type representing the props for the Calendar component with various selection variants.\n * @template TDate - The type of the date object.\n */\nexport type CalendarProps<TDate extends DateFrameworkType> =\n | CalendarSingleProps<TDate>\n | CalendarRangeProps<TDate>\n | CalendarMultiSelectProps<TDate>\n | CalendarOffsetProps<TDate>;\n\nconst withBaseName = makePrefixer(\"saltCalendar\");\n\nexport const Calendar = forwardRef<\n HTMLDivElement,\n CalendarProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const targetWindow = useWindow();\n const { dateAdapter } = useLocalization<TDate>();\n useComponentCssInjection({\n testId: \"salt-calendar\",\n css: calendarCss,\n window: targetWindow,\n });\n const {\n children,\n className,\n selectedDate,\n defaultSelectedDate,\n visibleMonth: visibleMonthProp,\n defaultVisibleMonth,\n onFocusedDateChange,\n onSelectionChange,\n onVisibleMonthChange,\n hideOutOfRangeDates,\n focusedDate,\n focusedDateRef,\n isDayUnselectable,\n isDayHighlighted,\n isDayDisabled,\n minDate,\n maxDate,\n numberOfVisibleMonths = 1,\n selectionVariant,\n onHoveredDateChange,\n hoveredDate,\n timezone: timezoneProp,\n ...propsRest\n } = props;\n\n let timezone: Timezone = \"default\";\n if (timezoneProp) {\n timezone = timezoneProp;\n } else if (selectionVariant === \"range\") {\n const defaultRangeTimezoneDate =\n selectedDate?.startDate ??\n selectedDate?.endDate ??\n defaultSelectedDate?.startDate ??\n defaultSelectedDate?.endDate;\n timezone = defaultRangeTimezoneDate\n ? dateAdapter.getTimezone(defaultRangeTimezoneDate)\n : \"default\";\n } else if (selectionVariant === \"single\") {\n const defaultSingleTimezoneDate = selectedDate ?? defaultSelectedDate;\n timezone = defaultSingleTimezoneDate\n ? dateAdapter.getTimezone(defaultSingleTimezoneDate)\n : \"default\";\n }\n\n let startDateOffset: CalendarOffsetProps<TDate>[\"startDateOffset\"];\n let endDateOffset: CalendarOffsetProps<TDate>[\"startDateOffset\"];\n let rest: Partial<typeof props>;\n if (selectionVariant === \"offset\") {\n ({ startDateOffset, endDateOffset, ...rest } =\n propsRest as CalendarOffsetProps<TDate>);\n } else {\n rest = propsRest;\n }\n const defaultFocusedDateRef = useRef(null);\n\n // biome-ignore lint/suspicious/noExplicitAny: type guard\n const useCalendarProps: any = {\n selectedDate,\n defaultSelectedDate,\n visibleMonth: visibleMonthProp,\n defaultVisibleMonth,\n onSelectionChange,\n onVisibleMonthChange,\n focusedDate,\n focusedDateRef:\n focusedDateRef !== undefined ? focusedDateRef : defaultFocusedDateRef,\n isDayUnselectable,\n isDayHighlighted,\n isDayDisabled,\n minDate,\n maxDate,\n numberOfVisibleMonths,\n selectionVariant,\n onFocusedDateChange,\n onHoveredDateChange,\n hideOutOfRangeDates,\n hoveredDate,\n startDateOffset,\n endDateOffset,\n timezone,\n };\n const { state, helpers } = useCalendar<TDate>(useCalendarProps);\n const calendarLabel = dateAdapter.format(state.visibleMonth, \"MMMM YYYY\");\n\n return (\n <CalendarContext.Provider\n value={{\n state,\n helpers,\n }}\n >\n <div\n className={clsx(withBaseName(), className)}\n role=\"application\"\n aria-label={calendarLabel}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </CalendarContext.Provider>\n );\n },\n);\n"],"names":["calendarCss"],"mappings":"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"}
1
+ {"version":3,"file":"Calendar.js","sources":["../src/calendar/Calendar.tsx"],"sourcesContent":["import { makePrefixer, type ResponsiveProp } from \"@salt-ds/core\";\nimport type { DateFrameworkType, Timezone } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n useRef,\n} from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarCss from \"./Calendar.css\";\nimport { CalendarContext } from \"./internal/CalendarContext\";\nimport {\n type UseCalendarMultiselectOffsetProps,\n type UseCalendarMultiselectRangeProps,\n type UseCalendarMultiselectSingleProps,\n type UseCalendarOffsetProps,\n type UseCalendarRangeProps,\n type UseCalendarSingleProps,\n useCalendar,\n} from \"./useCalendar\";\nimport type { DateRangeSelection } from \"./useCalendarSelection\";\n\n/**\n * Base props for the Calendar component.\n */\nexport interface CalendarBaseProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content to be rendered inside the Calendar.\n */\n children: ReactNode;\n /**\n * If `true`, hides dates that are out of the selectable range.\n */\n hideOutOfRangeDates?: boolean;\n /**\n * Ref to attach to the focused element,enabling focus to be controlled.\n */\n focusedDateRef?: React.MutableRefObject<HTMLElement | null>;\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 * 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 * If `true`, the calendar will be multiselect.\n */\n multiselect?: boolean;\n}\n\n/**\n * Props for the Calendar component with single date selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarSingleProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarSingleProps<TDate> {\n /**\n * The selection variant, set to \"single\".\n */\n selectionVariant: \"single\";\n}\n\n/**\n * Props for the Calendar component with multi-select, date selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarMultiselectSingleProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarMultiselectSingleProps<TDate> {\n /**\n * The selection variant, set to \"single\".\n */\n selectionVariant: \"single\";\n /**\n * Multiple selection\n */\n multiselect: true;\n}\n\n/**\n * Props for the Calendar component with date range selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarRangeProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarRangeProps<TDate> {\n /**\n * The selection variant, set to \"range\".\n */\n selectionVariant: \"range\";\n}\n\n/**\n * Props for the Calendar component with multi-select, date range selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarMultiselectRangeProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarMultiselectRangeProps<TDate> {\n /**\n * The selection variant, set to \"single\".\n */\n selectionVariant: \"range\";\n /**\n * Multiple selection\n */\n multiselect: true;\n}\n\n/**\n * Props for the Calendar component with offset date selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarOffsetProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarOffsetProps<TDate> {\n /**\n * The selection variant, set to \"offset\".\n */\n selectionVariant: \"offset\";\n}\n\n/**\n * Props for the Calendar component with multi-select, offset date selection.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarMultiselectOffsetProps<TDate extends DateFrameworkType>\n extends CalendarBaseProps,\n UseCalendarMultiselectOffsetProps<TDate> {\n /**\n * The selection variant, set to \"offset\".\n */\n selectionVariant: \"offset\";\n /**\n * Multiple selection\n */\n multiselect: true;\n}\n\n/**\n * Type representing the props for the Calendar component with various selection variants.\n * @template TDate - The type of the date object.\n */\nexport type CalendarProps<TDate extends DateFrameworkType> =\n | CalendarSingleProps<TDate>\n | CalendarMultiselectSingleProps<TDate>\n | CalendarRangeProps<TDate>\n | CalendarMultiselectRangeProps<TDate>\n | CalendarOffsetProps<TDate>\n | CalendarMultiselectOffsetProps<TDate>;\n\nconst withBaseName = makePrefixer(\"saltCalendar\");\n\nfunction isMultiselect<TDate>(\n props: CalendarProps<TDate>,\n): props is\n | CalendarMultiselectSingleProps<TDate>\n | CalendarMultiselectRangeProps<TDate>\n | CalendarMultiselectOffsetProps<TDate> {\n return props.multiselect === true;\n}\n\nfunction getStartOrEndDate<TDate>(\n dateRange:\n | DateRangeSelection<TDate>\n | DateRangeSelection<TDate>[]\n | undefined,\n isMultiselect: boolean,\n): TDate | null | undefined {\n if (isMultiselect) {\n const rangeArray = dateRange as DateRangeSelection<TDate>[];\n return rangeArray?.[0]?.startDate ?? rangeArray?.[0]?.endDate;\n }\n const range = dateRange as DateRangeSelection<TDate>;\n return range?.startDate ?? range?.endDate;\n}\n\nexport const Calendar = forwardRef<\n HTMLDivElement,\n CalendarProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const targetWindow = useWindow();\n const { dateAdapter } = useLocalization<TDate>();\n useComponentCssInjection({\n testId: \"salt-calendar\",\n css: calendarCss,\n window: targetWindow,\n });\n const {\n children,\n className,\n selectedDate,\n defaultSelectedDate,\n visibleMonth: visibleMonthProp,\n defaultVisibleMonth,\n onFocusedDateChange,\n onSelectionChange,\n onVisibleMonthChange,\n hideOutOfRangeDates,\n focusedDate,\n focusedDateRef,\n isDayUnselectable,\n isDayHighlighted,\n isDayDisabled,\n minDate,\n maxDate,\n multiselect,\n numberOfVisibleMonths = 1,\n select,\n selectionVariant,\n onHoveredDateChange,\n hoveredDate,\n timezone: timezoneProp,\n ...propsRest\n } = props;\n\n let timezone: Timezone = \"default\";\n if (timezoneProp) {\n timezone = timezoneProp;\n } else {\n let defaultTimezoneDate: TDate | null | undefined;\n\n if (selectionVariant === \"range\" || selectionVariant === \"offset\") {\n const shouldExtractFromList = isMultiselect(props);\n defaultTimezoneDate =\n getStartOrEndDate(selectedDate, shouldExtractFromList) ??\n getStartOrEndDate(defaultSelectedDate, shouldExtractFromList);\n } else if (selectionVariant === \"single\") {\n if (isMultiselect(props)) {\n defaultTimezoneDate =\n (defaultSelectedDate as TDate[])?.[0] ?? undefined;\n } else {\n defaultTimezoneDate =\n (selectedDate as TDate | null) ??\n (defaultSelectedDate as TDate | null);\n }\n }\n if (defaultTimezoneDate) {\n timezone = dateAdapter.getTimezone(defaultTimezoneDate);\n }\n }\n\n let startDateOffset: CalendarOffsetProps<TDate>[\"startDateOffset\"];\n let endDateOffset: CalendarOffsetProps<TDate>[\"startDateOffset\"];\n let rest: Partial<typeof props>;\n if (selectionVariant === \"offset\") {\n ({ startDateOffset, endDateOffset, ...rest } =\n propsRest as CalendarOffsetProps<TDate>);\n } else {\n rest = propsRest;\n }\n const defaultFocusedDateRef = useRef(null);\n\n // biome-ignore lint/suspicious/noExplicitAny: type guard\n const useCalendarProps: any = {\n selectedDate,\n defaultSelectedDate,\n visibleMonth: visibleMonthProp,\n defaultVisibleMonth,\n onSelectionChange,\n onVisibleMonthChange,\n focusedDate,\n focusedDateRef:\n focusedDateRef !== undefined ? focusedDateRef : defaultFocusedDateRef,\n isDayUnselectable,\n isDayHighlighted,\n isDayDisabled,\n multiselect,\n minDate,\n maxDate,\n numberOfVisibleMonths,\n select,\n selectionVariant,\n onFocusedDateChange,\n onHoveredDateChange,\n hideOutOfRangeDates,\n hoveredDate,\n startDateOffset,\n endDateOffset,\n timezone,\n };\n const { state, helpers } = useCalendar<TDate>(useCalendarProps);\n const calendarLabel = dateAdapter.format(state.visibleMonth, \"MMMM YYYY\");\n\n return (\n <CalendarContext.Provider\n value={{\n state,\n helpers,\n }}\n >\n <div\n className={clsx(withBaseName(), className)}\n role=\"application\"\n aria-label={calendarLabel}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </CalendarContext.Provider>\n );\n },\n);\n"],"names":["isMultiselect","calendarCss"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useForkRef, GridLayout, GridItem } from '@salt-ds/core';
3
3
  import { forwardRef, useRef } from 'react';
4
- import { useCalendarContext } from './internal/CalendarContext.js';
5
- import { CalendarMonth } from './internal/CalendarMonth.js';
6
4
  import { useLocalization } from '../localization-provider/LocalizationProvider.js';
7
5
  import { CalendarMonthHeader } from './CalendarMonthHeader.js';
8
6
  import { CalendarWeekHeader } from './CalendarWeekHeader.js';
7
+ import { useCalendarContext } from './internal/CalendarContext.js';
8
+ import { CalendarMonth } from './internal/CalendarMonth.js';
9
9
 
10
10
  const CalendarGrid = forwardRef(
11
11
  (props, ref) => {
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarGrid.js","sources":["../src/calendar/CalendarGrid.tsx"],"sourcesContent":["import {\n GridItem,\n GridLayout,\n type ResponsiveProp,\n useForkRef,\n} from \"@salt-ds/core\";\nimport {\n type ComponentPropsWithoutRef,\n type FocusEventHandler,\n forwardRef,\n useRef,\n} from \"react\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport type { CalendarDayProps } from \"./internal/CalendarDay\";\nimport { CalendarMonth } from \"./internal/CalendarMonth\";\n\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useLocalization } from \"../localization-provider\";\nimport {\n CalendarMonthHeader,\n type CalendarMonthHeaderProps,\n} from \"./CalendarMonthHeader\";\nimport {\n CalendarWeekHeader,\n type CalendarWeekHeaderProps,\n} from \"./CalendarWeekHeader\";\n\n/**\n * Props for the CalendarGrid component.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarGridProps<TDate extends DateFrameworkType>\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Number of columns\n */\n columns?: ResponsiveProp<number | string>;\n /**\n * Props for `CalendarWeekHeader`\n */\n CalendarWeekHeaderProps?: Partial<CalendarWeekHeaderProps>;\n /**\n * Props for `CalendarMonthHeader`\n */\n CalendarMonthHeaderProps?: Partial<CalendarMonthHeaderProps<TDate>>;\n /**\n * Props for `CalendarDay`\n */\n CalendarDayProps?: Partial<CalendarDayProps<TDate>>;\n}\n\nexport const CalendarGrid = forwardRef<\n HTMLDivElement,\n CalendarGridProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarGridProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const {\n CalendarDayProps,\n CalendarWeekHeaderProps,\n CalendarMonthHeaderProps,\n columns = 1,\n onBlur,\n ...rest\n } = props;\n\n const { dateAdapter } = useLocalization<TDate>();\n\n const {\n helpers: { setFocusedDate, setHoveredDate },\n state: { visibleMonth, numberOfVisibleMonths = 1 },\n } = useCalendarContext<TDate>();\n const calendarGridRef = useRef<HTMLDivElement>(null);\n const containerRef = useForkRef(ref, calendarGridRef);\n\n const handleCalendarGridBlur: FocusEventHandler<HTMLDivElement> = (\n event,\n ) => {\n event.stopPropagation();\n setTimeout(() => {\n if (calendarGridRef?.current?.contains(document.activeElement)) {\n return;\n }\n setFocusedDate(event, null);\n setHoveredDate(event, null);\n }, 0);\n onBlur?.(event);\n };\n\n return (\n <GridLayout\n columns={columns}\n gap={1}\n ref={containerRef}\n onBlur={handleCalendarGridBlur}\n {...rest}\n >\n {Array.from({ length: numberOfVisibleMonths }, (_value, index) => {\n const gridItemVisibleMonth: TDate = dateAdapter.add(visibleMonth, {\n months: index,\n });\n return (\n <GridItem\n key={`calendar-grid-item-${dateAdapter.format(gridItemVisibleMonth, \"MMMM YYYY\")}`}\n >\n {numberOfVisibleMonths > 1 ? (\n <CalendarMonthHeader\n {...CalendarMonthHeaderProps}\n month={gridItemVisibleMonth}\n />\n ) : null}\n <CalendarWeekHeader {...CalendarWeekHeaderProps} />\n <CalendarMonth\n date={gridItemVisibleMonth}\n CalendarDayProps={CalendarDayProps}\n />\n </GridItem>\n );\n })}\n </GridLayout>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;AAmDO,MAAM,YAAe,GAAA,UAAA;AAAA,EAI1B,CACE,OACA,GACG,KAAA;AACH,IAAM,MAAA;AAAA,MACJ,gBAAA;AAAA,MACA,uBAAA;AAAA,MACA,wBAAA;AAAA,MACA,OAAU,GAAA,CAAA;AAAA,MACV,MAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AAEJ,IAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAE/C,IAAM,MAAA;AAAA,MACJ,OAAA,EAAS,EAAE,cAAA,EAAgB,cAAe,EAAA;AAAA,MAC1C,KAAO,EAAA,EAAE,YAAc,EAAA,qBAAA,GAAwB,CAAE;AAAA,QAC/C,kBAA0B,EAAA;AAC9B,IAAM,MAAA,eAAA,GAAkB,OAAuB,IAAI,CAAA;AACnD,IAAM,MAAA,YAAA,GAAe,UAAW,CAAA,GAAA,EAAK,eAAe,CAAA;AAEpD,IAAM,MAAA,sBAAA,GAA4D,CAChE,KACG,KAAA;AACH,MAAA,KAAA,CAAM,eAAgB,EAAA;AACtB,MAAA,UAAA,CAAW,MAAM;AAjFvB,QAAA,IAAA,EAAA;AAkFQ,QAAA,IAAA,CAAI,EAAiB,GAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAA,OAAA,KAAjB,IAA0B,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,CAAS,SAAS,aAAgB,CAAA,EAAA;AAC9D,UAAA;AAAA;AAEF,QAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAC1B,QAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,SACzB,CAAC,CAAA;AACJ,MAAS,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,KAAA,CAAA;AAAA,KACX;AAEA,IACE,uBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAA;AAAA,QACA,GAAK,EAAA,CAAA;AAAA,QACL,GAAK,EAAA,YAAA;AAAA,QACL,MAAQ,EAAA,sBAAA;AAAA,QACP,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,uBAAyB,EAAA,CAAC,QAAQ,KAAU,KAAA;AAChE,UAAM,MAAA,oBAAA,GAA8B,WAAY,CAAA,GAAA,CAAI,YAAc,EAAA;AAAA,YAChE,MAAQ,EAAA;AAAA,WACT,CAAA;AACD,UACE,uBAAA,IAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAGE,QAAA,EAAA;AAAA,gBAAA,qBAAA,GAAwB,CACvB,mBAAA,GAAA;AAAA,kBAAC,mBAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,wBAAA;AAAA,oBACJ,KAAO,EAAA;AAAA;AAAA,iBAEP,GAAA,IAAA;AAAA,gCACJ,GAAA,CAAC,kBAAoB,EAAA,EAAA,GAAG,uBAAyB,EAAA,CAAA;AAAA,gCACjD,GAAA;AAAA,kBAAC,aAAA;AAAA,kBAAA;AAAA,oBACC,IAAM,EAAA,oBAAA;AAAA,oBACN;AAAA;AAAA;AACF;AAAA,aAAA;AAAA,YAZK,CAAsB,mBAAA,EAAA,WAAA,CAAY,MAAO,CAAA,oBAAA,EAAsB,WAAW,CAAC,CAAA;AAAA,WAalF;AAAA,SAEH;AAAA;AAAA,KACH;AAAA;AAGN;;;;"}
1
+ {"version":3,"file":"CalendarGrid.js","sources":["../src/calendar/CalendarGrid.tsx"],"sourcesContent":["import {\n GridItem,\n GridLayout,\n type ResponsiveProp,\n useForkRef,\n} from \"@salt-ds/core\";\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport {\n type ComponentPropsWithoutRef,\n type FocusEventHandler,\n forwardRef,\n useRef,\n} from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport {\n CalendarMonthHeader,\n type CalendarMonthHeaderProps,\n} from \"./CalendarMonthHeader\";\nimport {\n CalendarWeekHeader,\n type CalendarWeekHeaderProps,\n} from \"./CalendarWeekHeader\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport type { CalendarDayProps } from \"./internal/CalendarDay\";\nimport { CalendarMonth } from \"./internal/CalendarMonth\";\n\n/**\n * Props for the CalendarGrid component.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarGridProps<TDate extends DateFrameworkType>\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Number of columns\n */\n columns?: ResponsiveProp<number | string>;\n /**\n * Props for `CalendarWeekHeader`\n */\n CalendarWeekHeaderProps?: Partial<CalendarWeekHeaderProps>;\n /**\n * Props for `CalendarMonthHeader`\n */\n CalendarMonthHeaderProps?: Partial<CalendarMonthHeaderProps<TDate>>;\n /**\n * Props for `CalendarDay`\n */\n CalendarDayProps?: Partial<CalendarDayProps<TDate>>;\n}\n\nexport const CalendarGrid = forwardRef<\n HTMLDivElement,\n CalendarGridProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarGridProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const {\n CalendarDayProps,\n CalendarWeekHeaderProps,\n CalendarMonthHeaderProps,\n columns = 1,\n onBlur,\n ...rest\n } = props;\n\n const { dateAdapter } = useLocalization<TDate>();\n\n const {\n helpers: { setFocusedDate, setHoveredDate },\n state: { visibleMonth, numberOfVisibleMonths = 1 },\n } = useCalendarContext<TDate>();\n const calendarGridRef = useRef<HTMLDivElement>(null);\n const containerRef = useForkRef(ref, calendarGridRef);\n\n const handleCalendarGridBlur: FocusEventHandler<HTMLDivElement> = (\n event,\n ) => {\n event.stopPropagation();\n setTimeout(() => {\n if (calendarGridRef?.current?.contains(document.activeElement)) {\n return;\n }\n setFocusedDate(event, null);\n setHoveredDate(event, null);\n }, 0);\n onBlur?.(event);\n };\n\n return (\n <GridLayout\n columns={columns}\n gap={1}\n ref={containerRef}\n onBlur={handleCalendarGridBlur}\n {...rest}\n >\n {Array.from({ length: numberOfVisibleMonths }, (_value, index) => {\n const gridItemVisibleMonth: TDate = dateAdapter.add(visibleMonth, {\n months: index,\n });\n return (\n <GridItem\n key={`calendar-grid-item-${dateAdapter.format(gridItemVisibleMonth, \"MMMM YYYY\")}`}\n >\n {numberOfVisibleMonths > 1 ? (\n <CalendarMonthHeader\n {...CalendarMonthHeaderProps}\n month={gridItemVisibleMonth}\n />\n ) : null}\n <CalendarWeekHeader {...CalendarWeekHeaderProps} />\n <CalendarMonth\n date={gridItemVisibleMonth}\n CalendarDayProps={CalendarDayProps}\n />\n </GridItem>\n );\n })}\n </GridLayout>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;AAkDO,MAAM,YAAe,GAAA,UAAA;AAAA,EAI1B,CACE,OACA,GACG,KAAA;AACH,IAAM,MAAA;AAAA,MACJ,gBAAA;AAAA,MACA,uBAAA;AAAA,MACA,wBAAA;AAAA,MACA,OAAU,GAAA,CAAA;AAAA,MACV,MAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AAEJ,IAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAE/C,IAAM,MAAA;AAAA,MACJ,OAAA,EAAS,EAAE,cAAA,EAAgB,cAAe,EAAA;AAAA,MAC1C,KAAO,EAAA,EAAE,YAAc,EAAA,qBAAA,GAAwB,CAAE;AAAA,QAC/C,kBAA0B,EAAA;AAC9B,IAAM,MAAA,eAAA,GAAkB,OAAuB,IAAI,CAAA;AACnD,IAAM,MAAA,YAAA,GAAe,UAAW,CAAA,GAAA,EAAK,eAAe,CAAA;AAEpD,IAAM,MAAA,sBAAA,GAA4D,CAChE,KACG,KAAA;AACH,MAAA,KAAA,CAAM,eAAgB,EAAA;AACtB,MAAA,UAAA,CAAW,MAAM;AAhFvB,QAAA,IAAA,EAAA;AAiFQ,QAAA,IAAA,CAAI,EAAiB,GAAA,eAAA,IAAA,IAAA,GAAA,MAAA,GAAA,eAAA,CAAA,OAAA,KAAjB,IAA0B,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,CAAS,SAAS,aAAgB,CAAA,EAAA;AAC9D,UAAA;AAAA;AAEF,QAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAC1B,QAAA,cAAA,CAAe,OAAO,IAAI,CAAA;AAAA,SACzB,CAAC,CAAA;AACJ,MAAS,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAA,KAAA,CAAA;AAAA,KACX;AAEA,IACE,uBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,OAAA;AAAA,QACA,GAAK,EAAA,CAAA;AAAA,QACL,GAAK,EAAA,YAAA;AAAA,QACL,MAAQ,EAAA,sBAAA;AAAA,QACP,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,uBAAyB,EAAA,CAAC,QAAQ,KAAU,KAAA;AAChE,UAAM,MAAA,oBAAA,GAA8B,WAAY,CAAA,GAAA,CAAI,YAAc,EAAA;AAAA,YAChE,MAAQ,EAAA;AAAA,WACT,CAAA;AACD,UACE,uBAAA,IAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAGE,QAAA,EAAA;AAAA,gBAAA,qBAAA,GAAwB,CACvB,mBAAA,GAAA;AAAA,kBAAC,mBAAA;AAAA,kBAAA;AAAA,oBACE,GAAG,wBAAA;AAAA,oBACJ,KAAO,EAAA;AAAA;AAAA,iBAEP,GAAA,IAAA;AAAA,gCACJ,GAAA,CAAC,kBAAoB,EAAA,EAAA,GAAG,uBAAyB,EAAA,CAAA;AAAA,gCACjD,GAAA;AAAA,kBAAC,aAAA;AAAA,kBAAA;AAAA,oBACC,IAAM,EAAA,oBAAA;AAAA,oBACN;AAAA;AAAA;AACF;AAAA,aAAA;AAAA,YAZK,CAAsB,mBAAA,EAAA,WAAA,CAAY,MAAO,CAAA,oBAAA,EAAsB,WAAW,CAAC,CAAA;AAAA,WAalF;AAAA,SAEH;AAAA;AAAA,KACH;AAAA;AAGN;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { makePrefixer, Text } from '@salt-ds/core';
3
- import { clsx } from 'clsx';
4
- import { forwardRef, useCallback } from 'react';
5
3
  import { useComponentCssInjection } from '@salt-ds/styles';
6
4
  import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef, useCallback } from 'react';
7
7
  import { useLocalization } from '../localization-provider/LocalizationProvider.js';
8
8
  import css_248z from './CalendarMonthHeader.css.js';
9
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMonthHeader.js","sources":["../src/calendar/CalendarMonthHeader.tsx"],"sourcesContent":["import { Text, makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithRef, forwardRef, useCallback } from \"react\";\n\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarMonthHeaderCss from \"./CalendarMonthHeader.css\";\n\n/**\n * Props for the CalendarMonthHeader component.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarMonthHeaderProps<TDate extends DateFrameworkType>\n extends ComponentPropsWithRef<\"div\"> {\n /**\n * Month value\n */\n month: TDate;\n /**\n * Format the month value\n * @param date\n */\n format?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarMonthHeader\");\n\nexport const CalendarMonthHeader = forwardRef<\n HTMLDivElement,\n CalendarMonthHeaderProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarMonthHeaderProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const {\n className,\n format: formatMonthProp = \"MMMM\",\n month,\n ...rest\n } = props;\n const { dateAdapter } = useLocalization<TDate>();\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month-header\",\n css: calendarMonthHeaderCss,\n window: targetWindow,\n });\n\n const formatMonth = useCallback(\n (date?: TDate) => {\n return dateAdapter.format(date, formatMonthProp);\n },\n [dateAdapter, formatMonthProp],\n );\n\n return (\n <div\n data-testid=\"CalendarMonthHeader\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...rest}\n >\n <Text>\n <small>{formatMonth(month)}</small>\n </Text>\n </div>\n );\n },\n);\n"],"names":["calendarMonthHeaderCss"],"mappings":";;;;;;;;;AA2BA,MAAM,YAAA,GAAe,aAAa,yBAAyB,CAAA;AAEpD,MAAM,mBAAsB,GAAA,UAAA;AAAA,EAIjC,CACE,OACA,GACG,KAAA;AACH,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,QAAQ,eAAkB,GAAA,MAAA;AAAA,MAC1B,KAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AACJ,IAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAE/C,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,4BAAA;AAAA,MACR,GAAK,EAAAA,QAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAA,MAAM,WAAc,GAAA,WAAA;AAAA,MAClB,CAAC,IAAiB,KAAA;AAChB,QAAO,OAAA,WAAA,CAAY,MAAO,CAAA,IAAA,EAAM,eAAe,CAAA;AAAA,OACjD;AAAA,MACA,CAAC,aAAa,eAAe;AAAA,KAC/B;AAEA,IACE,uBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,aAAY,EAAA,qBAAA;AAAA,QACZ,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,8BAAC,IACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,WAAO,QAAY,EAAA,WAAA,CAAA,KAAK,GAAE,CAC7B,EAAA;AAAA;AAAA,KACF;AAAA;AAGN;;;;"}
1
+ {"version":3,"file":"CalendarMonthHeader.js","sources":["../src/calendar/CalendarMonthHeader.tsx"],"sourcesContent":["import { makePrefixer, Text } 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, useCallback } from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarMonthHeaderCss from \"./CalendarMonthHeader.css\";\n\n/**\n * Props for the CalendarMonthHeader component.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarMonthHeaderProps<TDate extends DateFrameworkType>\n extends ComponentPropsWithRef<\"div\"> {\n /**\n * Month value\n */\n month: TDate;\n /**\n * Format the month value\n * @param date\n */\n format?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarMonthHeader\");\n\nexport const CalendarMonthHeader = forwardRef<\n HTMLDivElement,\n CalendarMonthHeaderProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarMonthHeaderProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const {\n className,\n format: formatMonthProp = \"MMMM\",\n month,\n ...rest\n } = props;\n const { dateAdapter } = useLocalization<TDate>();\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month-header\",\n css: calendarMonthHeaderCss,\n window: targetWindow,\n });\n\n const formatMonth = useCallback(\n (date?: TDate) => {\n return dateAdapter.format(date, formatMonthProp);\n },\n [dateAdapter, formatMonthProp],\n );\n\n return (\n <div\n data-testid=\"CalendarMonthHeader\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...rest}\n >\n <Text>\n <small>{formatMonth(month)}</small>\n </Text>\n </div>\n );\n },\n);\n"],"names":["calendarMonthHeaderCss"],"mappings":";;;;;;;;;AA0BA,MAAM,YAAA,GAAe,aAAa,yBAAyB,CAAA;AAEpD,MAAM,mBAAsB,GAAA,UAAA;AAAA,EAIjC,CACE,OACA,GACG,KAAA;AACH,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,QAAQ,eAAkB,GAAA,MAAA;AAAA,MAC1B,KAAA;AAAA,MACA,GAAG;AAAA,KACD,GAAA,KAAA;AACJ,IAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAE/C,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,4BAAA;AAAA,MACR,GAAK,EAAAA,QAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAA,MAAM,WAAc,GAAA,WAAA;AAAA,MAClB,CAAC,IAAiB,KAAA;AAChB,QAAO,OAAA,WAAA,CAAY,MAAO,CAAA,IAAA,EAAM,eAAe,CAAA;AAAA,OACjD;AAAA,MACA,CAAC,aAAa,eAAe;AAAA,KAC/B;AAEA,IACE,uBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,aAAY,EAAA,qBAAA;AAAA,QACZ,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,8BAAC,IACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,WAAO,QAAY,EAAA,WAAA,CAAA,KAAK,GAAE,CAC7B,EAAA;AAAA;AAAA,KACF;AAAA;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarNavigation.js","sources":["../src/calendar/CalendarNavigation.tsx"],"sourcesContent":["import {\n Button,\n type ButtonProps,\n Dropdown,\n type DropdownProps,\n Option,\n type OptionProps,\n Tooltip,\n type TooltipProps,\n makePrefixer,\n useIcon,\n useListControlContext,\n} from \"@salt-ds/core\";\nimport type {\n DateFrameworkType,\n SaltDateAdapter,\n Timezone,\n} 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 type MouseEventHandler,\n type SyntheticEvent,\n forwardRef,\n useCallback,\n useMemo,\n} from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarNavigationCss from \"./CalendarNavigation.css\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport { generateMonthsForYear, monthDiff } from \"./internal/utils\";\n\n/**\n * Props for the CalendarNavigation component.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarNavigationProps<TDate extends DateFrameworkType>\n extends ComponentPropsWithRef<\"div\"> {\n /**\n * Props for the month dropdown component.\n */\n MonthDropdownProps?: DropdownProps<TDate>;\n\n /**\n * Props for the year dropdown component.\n */\n YearDropdownProps?: DropdownProps<TDate>;\n\n /**\n * Callback fired when a month is selected.\n * @param event - The change event.\n */\n onMonthSelect?: DropdownProps<TDate>[\"onChange\"];\n\n /**\n * Callback fired when a year is selected.\n * @param event - The change event.\n */\n onYearSelect?: DropdownProps<TDate>[\"onChange\"];\n\n /**\n * Callback fired when navigating to the next month.\n * @param event - The click event.\n */\n onNavigateNext?: ButtonProps[\"onClick\"];\n\n /**\n * If `true` then navigate next button is enabled\n */\n disableNavigateNext?: boolean;\n\n /**\n * Callback fired when navigating to the previous month.\n * @param event - The click event.\n */\n onNavigatePrevious?: ButtonProps[\"onClick\"];\n\n /**\n * If `true` then navigate previous button is enabled\n */\n disableNavigatePrevious?: boolean;\n\n /**\n * If `true`, hides the year dropdown.\n */\n hideYearDropdown?: boolean;\n\n /**\n * The step value for navigation. Defaults to 1.\n */\n step?: number;\n /**\n * Format the month dropdown values\n * @param date\n */\n formatMonth?: string;\n /**\n * Format the year dropdown values\n * @param date\n */\n formatYear?: string;\n}\n\ninterface OptionWithTooltipProps<TDate> extends OptionProps {\n value: TDate;\n tooltipContent?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarNavigation\");\n\nconst ConditionalTooltip: React.FC<TooltipProps> = ({\n children,\n disabled = true,\n ...rest\n}) => {\n if (disabled) {\n return <>{children}</>;\n }\n return <Tooltip {...rest}>{children}</Tooltip>;\n};\n\nfunction generateYearsBetweenRange<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n minYear: number,\n maxYear: number,\n timezone: Timezone = \"default\",\n): TDate[] {\n const years: TDate[] = [];\n let startOfYear = dateAdapter.today(timezone);\n for (let year = minYear; year <= maxYear; year++) {\n startOfYear = dateAdapter.set(startOfYear, { day: 1, month: 1, year });\n years.push(startOfYear);\n }\n return years;\n}\n\nfunction useCalendarNavigation<TDate extends DateFrameworkType>() {\n const {\n state: { visibleMonth, timezone, minDate, maxDate },\n helpers: { setVisibleMonth, isDayVisible, isOutsideAllowedMonths },\n } = useCalendarContext<TDate>();\n\n const { dateAdapter } = useLocalization<TDate>();\n\n const moveToNextMonth = useCallback(\n (event: SyntheticEvent, step = 1) => {\n setVisibleMonth(event, dateAdapter.add(visibleMonth, { months: step }));\n },\n [dateAdapter, setVisibleMonth, visibleMonth],\n );\n\n const moveToPreviousMonth = useCallback(\n (event: SyntheticEvent, step = 1) => {\n setVisibleMonth(\n event,\n dateAdapter.subtract(visibleMonth, { months: step }),\n );\n },\n [dateAdapter, setVisibleMonth, visibleMonth],\n );\n\n const moveToMonth = useCallback(\n (event: SyntheticEvent, month: TDate) => {\n let newMonth = month;\n\n if (isOutsideAllowedMonths(newMonth)) {\n // If month is navigable we should move to the closest navigable month\n const navigableMonths = generateMonthsForYear(\n dateAdapter,\n visibleMonth,\n ).filter((n) => !isOutsideAllowedMonths(n));\n newMonth = navigableMonths.reduce((closestMonth, currentMonth) =>\n Math.abs(monthDiff(dateAdapter, currentMonth, newMonth)) <\n Math.abs(monthDiff(dateAdapter, closestMonth, newMonth))\n ? currentMonth\n : closestMonth,\n );\n }\n setVisibleMonth(event, newMonth);\n },\n [dateAdapter, isOutsideAllowedMonths, setVisibleMonth, visibleMonth],\n );\n\n const months: TDate[] = useMemo(\n () => generateMonthsForYear<TDate>(dateAdapter, visibleMonth),\n [dateAdapter, visibleMonth],\n );\n\n const years: TDate[] = useMemo(\n () =>\n generateYearsBetweenRange<TDate>(\n dateAdapter,\n Math.min(\n dateAdapter.getYear(minDate),\n dateAdapter.getYear(visibleMonth),\n ),\n Math.max(\n dateAdapter.getYear(maxDate),\n dateAdapter.getYear(visibleMonth),\n ),\n timezone,\n ),\n [dateAdapter, minDate, maxDate, visibleMonth, timezone],\n );\n\n const selectedMonth: TDate | undefined = months.find((month: TDate) =>\n dateAdapter.isSame(month, visibleMonth, \"month\"),\n );\n const selectedYear: TDate | undefined = years.find((year: TDate) =>\n dateAdapter.isSame(year, visibleMonth, \"year\"),\n );\n\n const disableNavigatePrevious = isDayVisible(minDate);\n const disableNavigateNext = isDayVisible(maxDate);\n\n return useMemo(\n () => ({\n moveToNextMonth,\n moveToPreviousMonth,\n moveToMonth,\n visibleMonth,\n months,\n years,\n disableNavigateNext,\n disableNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n }),\n [\n months,\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n visibleMonth,\n years,\n disableNavigateNext,\n disableNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n ],\n );\n}\n\nfunction OptionWithTooltip<TDate extends DateFrameworkType>({\n value,\n children,\n disabled = false,\n tooltipContent,\n}: OptionWithTooltipProps<TDate>) {\n const { activeState, openState } = useListControlContext();\n const open = activeState?.value === value;\n return (\n <ConditionalTooltip\n placement=\"right\"\n open={open && openState}\n disabled={!disabled}\n content={tooltipContent}\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Option value={value} disabled={disabled}>\n {children}\n </Option>\n </ConditionalTooltip>\n );\n}\n\nexport const CalendarNavigation = forwardRef<\n HTMLDivElement,\n CalendarNavigationProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarNavigationProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const {\n className,\n disableNavigatePrevious: disableNavigatePreviousProp,\n disableNavigateNext: disableNavigateNextProp,\n formatMonth: formatMonthProp,\n formatYear: formatYearProp,\n MonthDropdownProps,\n YearDropdownProps,\n hideYearDropdown,\n step = 1,\n ...rest\n } = props;\n\n const { dateAdapter } = useLocalization<TDate>();\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-navigation\",\n css: calendarNavigationCss,\n window: targetWindow,\n });\n\n const { NextIcon, PreviousIcon } = useIcon();\n\n const {\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n months,\n years,\n disableNavigateNext,\n disableNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n visibleMonth,\n } = useCalendarNavigation<TDate>();\n\n const handleNavigatePrevious: MouseEventHandler<HTMLButtonElement> =\n useCallback(\n (event) => {\n moveToPreviousMonth(event, step);\n },\n [moveToPreviousMonth, step],\n );\n\n const handleNavigateNext: MouseEventHandler<HTMLButtonElement> =\n useCallback(\n (event) => {\n moveToNextMonth(event, step);\n },\n [moveToNextMonth, step],\n );\n\n const handleMonthSelect = useCallback(\n (event: SyntheticEvent, month: TDate[]) => {\n moveToMonth(event, month[0]);\n },\n [moveToMonth],\n );\n\n const handleYearSelect = useCallback(\n (event: SyntheticEvent, year: TDate[]) => {\n let newVisibleMonth = dateAdapter.clone(visibleMonth);\n newVisibleMonth = dateAdapter.set(newVisibleMonth, {\n year: dateAdapter.getYear(year[0]),\n });\n moveToMonth(event, newVisibleMonth);\n },\n [dateAdapter, moveToMonth, visibleMonth],\n );\n\n const formatMonth = useCallback(\n (date?: TDate) => {\n if (date && formatMonthProp) {\n return dateAdapter.format(date, formatMonthProp);\n }\n return date\n ? dateAdapter.format(date, hideYearDropdown ? \"MMMM\" : \"MMM\")\n : \"\";\n },\n [dateAdapter, formatMonthProp, hideYearDropdown],\n );\n\n const formatYear = useCallback(\n (date?: TDate) => {\n if (date && formatYearProp) {\n return dateAdapter.format(date, formatYearProp);\n }\n return !date ? \"\" : `${dateAdapter.format(date, \"YYYY\")}`;\n },\n [dateAdapter, formatYearProp],\n );\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"hideYearDropdown\")]: hideYearDropdown },\n className,\n )}\n ref={ref}\n {...rest}\n >\n <ConditionalTooltip\n placement=\"top\"\n disabled={!(disableNavigatePreviousProp || disableNavigatePrevious)}\n content=\"Past dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n aria-label=\"Previous Month\"\n disabled={disableNavigatePreviousProp || disableNavigatePrevious}\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleNavigatePrevious}\n focusableWhenDisabled={true}\n >\n <PreviousIcon aria-hidden />\n </Button>\n </ConditionalTooltip>\n <div\n className={clsx({ [withBaseName(\"dropdowns\")]: !hideYearDropdown })}\n >\n <Dropdown\n aria-label=\"Month Dropdown\"\n selected={selectedMonth ? [selectedMonth] : []}\n value={formatMonth(selectedMonth)}\n onSelectionChange={handleMonthSelect}\n {...MonthDropdownProps}\n >\n {months.map((month) => (\n <OptionWithTooltip\n key={formatMonth(month)}\n value={month}\n disabled={isOutsideAllowedMonths(month)}\n tooltipContent=\"This month is out of range\"\n >\n {formatMonth(month)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n {!hideYearDropdown && (\n <Dropdown\n aria-label=\"Year Dropdown\"\n selected={selectedYear ? [selectedYear] : []}\n value={formatYear(selectedYear)}\n onSelectionChange={handleYearSelect}\n {...YearDropdownProps}\n >\n {years.map((year) => (\n <OptionWithTooltip key={formatYear(year)} value={year}>\n {formatYear(year)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n )}\n </div>\n <ConditionalTooltip\n placement=\"top\"\n disabled={!(disableNavigateNextProp || disableNavigateNext)}\n content=\"Future dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n aria-label=\"Next Month\"\n disabled={disableNavigateNextProp || disableNavigateNext}\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleNavigateNext}\n focusableWhenDisabled={true}\n >\n <NextIcon aria-hidden />\n </Button>\n </ConditionalTooltip>\n </div>\n );\n },\n);\n"],"names":["calendarNavigationCss"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarNavigation.js","sources":["../src/calendar/CalendarNavigation.tsx"],"sourcesContent":["import {\n Button,\n type ButtonProps,\n Dropdown,\n type DropdownProps,\n makePrefixer,\n Option,\n type OptionProps,\n Tooltip,\n type TooltipProps,\n useIcon,\n useListControlContext,\n} from \"@salt-ds/core\";\nimport type {\n DateFrameworkType,\n SaltDateAdapter,\n Timezone,\n} 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 MouseEventHandler,\n type SyntheticEvent,\n useCallback,\n useMemo,\n} from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarNavigationCss from \"./CalendarNavigation.css\";\nimport { useCalendarContext } from \"./internal/CalendarContext\";\nimport { generateMonthsForYear, monthDiff } from \"./internal/utils\";\n\n/**\n * Props for the CalendarNavigation component.\n * @template TDate - The type of the date object.\n */\nexport interface CalendarNavigationProps<TDate extends DateFrameworkType>\n extends ComponentPropsWithRef<\"div\"> {\n /**\n * Props for the month dropdown component.\n */\n MonthDropdownProps?: DropdownProps<TDate>;\n\n /**\n * Props for the year dropdown component.\n */\n YearDropdownProps?: DropdownProps<TDate>;\n\n /**\n * Callback fired when a month is selected.\n * @param event - The change event.\n */\n onMonthSelect?: DropdownProps<TDate>[\"onChange\"];\n\n /**\n * Callback fired when a year is selected.\n * @param event - The change event.\n */\n onYearSelect?: DropdownProps<TDate>[\"onChange\"];\n\n /**\n * Callback fired when navigating to the next month.\n * @param event - The click event.\n */\n onNavigateNext?: ButtonProps[\"onClick\"];\n\n /**\n * If `true` then navigate next button is enabled\n */\n disableNavigateNext?: boolean;\n\n /**\n * Callback fired when navigating to the previous month.\n * @param event - The click event.\n */\n onNavigatePrevious?: ButtonProps[\"onClick\"];\n\n /**\n * If `true` then navigate previous button is enabled\n */\n disableNavigatePrevious?: boolean;\n\n /**\n * If `true`, hides the year dropdown.\n */\n hideYearDropdown?: boolean;\n\n /**\n * The step value for navigation. Defaults to 1.\n */\n step?: number;\n /**\n * Format the month dropdown values\n * @param date\n */\n formatMonth?: string;\n /**\n * Format the year dropdown values\n * @param date\n */\n formatYear?: string;\n}\n\ninterface OptionWithTooltipProps<TDate> extends OptionProps {\n value: TDate;\n tooltipContent?: string;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarNavigation\");\n\nconst ConditionalTooltip: React.FC<TooltipProps> = ({\n children,\n disabled = true,\n ...rest\n}) => {\n if (disabled) {\n return <>{children}</>;\n }\n return <Tooltip {...rest}>{children}</Tooltip>;\n};\n\nfunction generateYearsBetweenRange<TDate extends DateFrameworkType>(\n dateAdapter: SaltDateAdapter<TDate>,\n minYear: number,\n maxYear: number,\n timezone: Timezone = \"default\",\n): TDate[] {\n const years: TDate[] = [];\n let startOfYear = dateAdapter.today(timezone);\n for (let year = minYear; year <= maxYear; year++) {\n startOfYear = dateAdapter.set(startOfYear, { day: 1, month: 1, year });\n years.push(startOfYear);\n }\n return years;\n}\n\nfunction useCalendarNavigation<TDate extends DateFrameworkType>() {\n const {\n state: { visibleMonth, timezone, minDate, maxDate },\n helpers: { setVisibleMonth, isDayVisible, isOutsideAllowedMonths },\n } = useCalendarContext<TDate>();\n\n const { dateAdapter } = useLocalization<TDate>();\n\n const moveToNextMonth = useCallback(\n (event: SyntheticEvent, step = 1) => {\n setVisibleMonth(event, dateAdapter.add(visibleMonth, { months: step }));\n },\n [dateAdapter, setVisibleMonth, visibleMonth],\n );\n\n const moveToPreviousMonth = useCallback(\n (event: SyntheticEvent, step = 1) => {\n setVisibleMonth(\n event,\n dateAdapter.subtract(visibleMonth, { months: step }),\n );\n },\n [dateAdapter, setVisibleMonth, visibleMonth],\n );\n\n const moveToMonth = useCallback(\n (event: SyntheticEvent, month: TDate) => {\n let newMonth = month;\n\n if (isOutsideAllowedMonths(newMonth)) {\n // If month is navigable we should move to the closest navigable month\n const navigableMonths = generateMonthsForYear(\n dateAdapter,\n visibleMonth,\n ).filter((n) => !isOutsideAllowedMonths(n));\n newMonth = navigableMonths.reduce((closestMonth, currentMonth) =>\n Math.abs(monthDiff(dateAdapter, currentMonth, newMonth)) <\n Math.abs(monthDiff(dateAdapter, closestMonth, newMonth))\n ? currentMonth\n : closestMonth,\n );\n }\n setVisibleMonth(event, newMonth);\n },\n [dateAdapter, isOutsideAllowedMonths, setVisibleMonth, visibleMonth],\n );\n\n const months: TDate[] = useMemo(\n () => generateMonthsForYear<TDate>(dateAdapter, visibleMonth),\n [dateAdapter, visibleMonth],\n );\n\n const years: TDate[] = useMemo(\n () =>\n generateYearsBetweenRange<TDate>(\n dateAdapter,\n Math.min(\n dateAdapter.getYear(minDate),\n dateAdapter.getYear(visibleMonth),\n ),\n Math.max(\n dateAdapter.getYear(maxDate),\n dateAdapter.getYear(visibleMonth),\n ),\n timezone,\n ),\n [dateAdapter, minDate, maxDate, visibleMonth, timezone],\n );\n\n const selectedMonth: TDate | undefined = months.find((month: TDate) =>\n dateAdapter.isSame(month, visibleMonth, \"month\"),\n );\n const selectedYear: TDate | undefined = years.find((year: TDate) =>\n dateAdapter.isSame(year, visibleMonth, \"year\"),\n );\n\n const disableNavigatePrevious = isDayVisible(minDate);\n const disableNavigateNext = isDayVisible(maxDate);\n\n return useMemo(\n () => ({\n moveToNextMonth,\n moveToPreviousMonth,\n moveToMonth,\n visibleMonth,\n months,\n years,\n disableNavigateNext,\n disableNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n }),\n [\n months,\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n visibleMonth,\n years,\n disableNavigateNext,\n disableNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n ],\n );\n}\n\nfunction OptionWithTooltip<TDate extends DateFrameworkType>({\n value,\n children,\n disabled = false,\n tooltipContent,\n}: OptionWithTooltipProps<TDate>) {\n const { activeState, openState } = useListControlContext();\n const open = activeState?.value === value;\n return (\n <ConditionalTooltip\n placement=\"right\"\n open={open && openState}\n disabled={!disabled}\n content={tooltipContent}\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Option value={value} disabled={disabled}>\n {children}\n </Option>\n </ConditionalTooltip>\n );\n}\n\nexport const CalendarNavigation = forwardRef<\n HTMLDivElement,\n CalendarNavigationProps<DateFrameworkType>\n>(\n <TDate extends DateFrameworkType>(\n props: CalendarNavigationProps<TDate>,\n ref: React.Ref<HTMLDivElement>,\n ) => {\n const {\n className,\n disableNavigatePrevious: disableNavigatePreviousProp,\n disableNavigateNext: disableNavigateNextProp,\n formatMonth: formatMonthProp,\n formatYear: formatYearProp,\n MonthDropdownProps,\n YearDropdownProps,\n hideYearDropdown,\n step = 1,\n ...rest\n } = props;\n\n const { dateAdapter } = useLocalization<TDate>();\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-navigation\",\n css: calendarNavigationCss,\n window: targetWindow,\n });\n\n const { NextIcon, PreviousIcon } = useIcon();\n\n const {\n moveToPreviousMonth,\n moveToNextMonth,\n moveToMonth,\n months,\n years,\n disableNavigateNext,\n disableNavigatePrevious,\n selectedMonth,\n selectedYear,\n isOutsideAllowedMonths,\n visibleMonth,\n } = useCalendarNavigation<TDate>();\n\n const handleNavigatePrevious: MouseEventHandler<HTMLButtonElement> =\n useCallback(\n (event) => {\n moveToPreviousMonth(event, step);\n },\n [moveToPreviousMonth, step],\n );\n\n const handleNavigateNext: MouseEventHandler<HTMLButtonElement> =\n useCallback(\n (event) => {\n moveToNextMonth(event, step);\n },\n [moveToNextMonth, step],\n );\n\n const handleMonthSelect = useCallback(\n (event: SyntheticEvent, month: TDate[]) => {\n moveToMonth(event, month[0]);\n },\n [moveToMonth],\n );\n\n const handleYearSelect = useCallback(\n (event: SyntheticEvent, year: TDate[]) => {\n let newVisibleMonth = dateAdapter.clone(visibleMonth);\n newVisibleMonth = dateAdapter.set(newVisibleMonth, {\n year: dateAdapter.getYear(year[0]),\n });\n moveToMonth(event, newVisibleMonth);\n },\n [dateAdapter, moveToMonth, visibleMonth],\n );\n\n const formatMonth = useCallback(\n (date?: TDate) => {\n if (date && formatMonthProp) {\n return dateAdapter.format(date, formatMonthProp);\n }\n return date\n ? dateAdapter.format(date, hideYearDropdown ? \"MMMM\" : \"MMM\")\n : \"\";\n },\n [dateAdapter, formatMonthProp, hideYearDropdown],\n );\n\n const formatYear = useCallback(\n (date?: TDate) => {\n if (date && formatYearProp) {\n return dateAdapter.format(date, formatYearProp);\n }\n return !date ? \"\" : `${dateAdapter.format(date, \"YYYY\")}`;\n },\n [dateAdapter, formatYearProp],\n );\n\n return (\n <div\n className={clsx(\n withBaseName(),\n { [withBaseName(\"hideYearDropdown\")]: hideYearDropdown },\n className,\n )}\n ref={ref}\n {...rest}\n >\n <ConditionalTooltip\n placement=\"top\"\n disabled={!(disableNavigatePreviousProp || disableNavigatePrevious)}\n content=\"Past dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n aria-label=\"Previous Month\"\n disabled={disableNavigatePreviousProp || disableNavigatePrevious}\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleNavigatePrevious}\n focusableWhenDisabled={true}\n >\n <PreviousIcon aria-hidden />\n </Button>\n </ConditionalTooltip>\n <div\n className={clsx({ [withBaseName(\"dropdowns\")]: !hideYearDropdown })}\n >\n <Dropdown\n aria-label=\"Month Dropdown\"\n selected={selectedMonth ? [selectedMonth] : []}\n value={formatMonth(selectedMonth)}\n onSelectionChange={handleMonthSelect}\n {...MonthDropdownProps}\n >\n {months.map((month) => (\n <OptionWithTooltip\n key={formatMonth(month)}\n value={month}\n disabled={isOutsideAllowedMonths(month)}\n tooltipContent=\"This month is out of range\"\n >\n {formatMonth(month)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n {!hideYearDropdown && (\n <Dropdown\n aria-label=\"Year Dropdown\"\n selected={selectedYear ? [selectedYear] : []}\n value={formatYear(selectedYear)}\n onSelectionChange={handleYearSelect}\n {...YearDropdownProps}\n >\n {years.map((year) => (\n <OptionWithTooltip key={formatYear(year)} value={year}>\n {formatYear(year)}\n </OptionWithTooltip>\n ))}\n </Dropdown>\n )}\n </div>\n <ConditionalTooltip\n placement=\"top\"\n disabled={!(disableNavigateNextProp || disableNavigateNext)}\n content=\"Future dates are out of range\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n >\n <Button\n aria-label=\"Next Month\"\n disabled={disableNavigateNextProp || disableNavigateNext}\n appearance=\"transparent\"\n sentiment=\"neutral\"\n onClick={handleNavigateNext}\n focusableWhenDisabled={true}\n >\n <NextIcon aria-hidden />\n </Button>\n </ConditionalTooltip>\n </div>\n );\n },\n);\n"],"names":["calendarNavigationCss"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltCalendarWeekHeader {\n display: grid;\n gap: var(--salt-size-border);\n grid-template-columns: repeat(7, var(--salt-size-base));\n text-align: center;\n align-items: center;\n height: var(--salt-size-base);\n margin: var(--salt-size-border);\n}\n\n.saltCalendarWeekHeader-dayOfWeek {\n width: var(--salt-size-base);\n color: var(--salt-content-secondary-foreground);\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n font-size: var(--salt-text-fontSize);\n line-height: var(--salt-text-lineHeight);\n}\n";
1
+ var css_248z = ".saltCalendarWeekHeader {\n display: grid;\n gap: var(--salt-spacing-fixed-100);\n grid-template-columns: repeat(7, var(--salt-size-base));\n text-align: center;\n align-items: center;\n height: var(--salt-size-base);\n margin: var(--salt-spacing-fixed-100);\n}\n\n.saltCalendarWeekHeader-dayOfWeek {\n width: var(--salt-size-base);\n color: var(--salt-content-secondary-foreground);\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n font-size: var(--salt-text-fontSize);\n line-height: var(--salt-text-lineHeight);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CalendarWeekHeader.css.js.map
@@ -1,12 +1,12 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { makePrefixer } from '@salt-ds/core';
3
- import { clsx } from 'clsx';
4
- import { forwardRef } from 'react';
5
- import { daysOfWeek } from './internal/utils.js';
6
3
  import { useComponentCssInjection } from '@salt-ds/styles';
7
4
  import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef } from 'react';
8
7
  import { useLocalization } from '../localization-provider/LocalizationProvider.js';
9
8
  import css_248z from './CalendarWeekHeader.css.js';
9
+ import { daysOfWeek } from './internal/utils.js';
10
10
 
11
11
  const withBaseName = makePrefixer("saltCalendarWeekHeader");
12
12
  const CalendarWeekHeader = forwardRef(function CalendarWeekHeader2(props, ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarWeekHeader.js","sources":["../src/calendar/CalendarWeekHeader.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithRef, forwardRef } from \"react\";\nimport { daysOfWeek } from \"./internal/utils\";\n\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarWeekHeaderCss from \"./CalendarWeekHeader.css\";\n\n/**\n * Props for the CalendarWeekHeader component.\n */\nexport type CalendarWeekHeaderProps = ComponentPropsWithRef<\"div\"> & {};\n\nconst withBaseName = makePrefixer(\"saltCalendarWeekHeader\");\n\nexport const CalendarWeekHeader = forwardRef(function CalendarWeekHeader<\n TDate extends DateFrameworkType,\n>(props: CalendarWeekHeaderProps, ref: React.Ref<HTMLDivElement>) {\n const { className, ...rest } = props;\n const { dateAdapter } = useLocalization<TDate>();\n\n const weekdaysShort = daysOfWeek(dateAdapter, \"narrow\");\n const weekdaysLong = daysOfWeek(dateAdapter, \"long\");\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-week-header\",\n css: calendarWeekHeaderCss,\n window: targetWindow,\n });\n\n return (\n <div\n data-testid=\"CalendarWeekHeader\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...rest}\n >\n {weekdaysShort.map((day, index) => (\n <small\n aria-hidden\n key={weekdaysLong[index]}\n className={withBaseName(\"dayOfWeek\")}\n >\n {day}\n </small>\n ))}\n </div>\n );\n});\n"],"names":["CalendarWeekHeader","calendarWeekHeaderCss"],"mappings":";;;;;;;;;;AAgBA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA;AAEnD,MAAM,kBAAqB,GAAA,UAAA,CAAW,SAASA,mBAAAA,CAEpD,OAAgC,GAAgC,EAAA;AAChE,EAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAS,GAAA,KAAA;AAC/B,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAE/C,EAAM,MAAA,aAAA,GAAgB,UAAW,CAAA,WAAA,EAAa,QAAQ,CAAA;AACtD,EAAM,MAAA,YAAA,GAAe,UAAW,CAAA,WAAA,EAAa,MAAM,CAAA;AAEnD,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,2BAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,oBAAA;AAAA,MACZ,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAc,EAAA,aAAA,CAAA,GAAA,CAAI,CAAC,GAAA,EAAK,KACvB,qBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,aAAW,EAAA,IAAA;AAAA,UAEX,SAAA,EAAW,aAAa,WAAW,CAAA;AAAA,UAElC,QAAA,EAAA;AAAA,SAAA;AAAA,QAHI,aAAa,KAAK;AAAA,OAK1B;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"CalendarWeekHeader.js","sources":["../src/calendar/CalendarWeekHeader.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 { type ComponentPropsWithRef, forwardRef } from \"react\";\nimport { useLocalization } from \"../localization-provider\";\nimport calendarWeekHeaderCss from \"./CalendarWeekHeader.css\";\nimport { daysOfWeek } from \"./internal/utils\";\n\n/**\n * Props for the CalendarWeekHeader component.\n */\nexport type CalendarWeekHeaderProps = ComponentPropsWithRef<\"div\"> & {};\n\nconst withBaseName = makePrefixer(\"saltCalendarWeekHeader\");\n\nexport const CalendarWeekHeader = forwardRef(function CalendarWeekHeader<\n TDate extends DateFrameworkType,\n>(props: CalendarWeekHeaderProps, ref: React.Ref<HTMLDivElement>) {\n const { className, ...rest } = props;\n const { dateAdapter } = useLocalization<TDate>();\n\n const weekdaysShort = daysOfWeek(dateAdapter, \"narrow\");\n const weekdaysLong = daysOfWeek(dateAdapter, \"long\");\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-week-header\",\n css: calendarWeekHeaderCss,\n window: targetWindow,\n });\n\n return (\n <div\n data-testid=\"CalendarWeekHeader\"\n className={clsx(withBaseName(), className)}\n ref={ref}\n {...rest}\n >\n {weekdaysShort.map((day, index) => (\n <small\n aria-hidden\n key={weekdaysLong[index]}\n className={withBaseName(\"dayOfWeek\")}\n >\n {day}\n </small>\n ))}\n </div>\n );\n});\n"],"names":["CalendarWeekHeader","calendarWeekHeaderCss"],"mappings":";;;;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA;AAEnD,MAAM,kBAAqB,GAAA,UAAA,CAAW,SAASA,mBAAAA,CAEpD,OAAgC,GAAgC,EAAA;AAChE,EAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAS,GAAA,KAAA;AAC/B,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAE/C,EAAM,MAAA,aAAA,GAAgB,UAAW,CAAA,WAAA,EAAa,QAAQ,CAAA;AACtD,EAAM,MAAA,YAAA,GAAe,UAAW,CAAA,WAAA,EAAa,MAAM,CAAA;AAEnD,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,2BAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAY,EAAA,oBAAA;AAAA,MACZ,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,MACzC,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAc,EAAA,aAAA,CAAA,GAAA,CAAI,CAAC,GAAA,EAAK,KACvB,qBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,aAAW,EAAA,IAAA;AAAA,UAEX,SAAA,EAAW,aAAa,WAAW,CAAA;AAAA,UAElC,QAAA,EAAA;AAAA,SAAA;AAAA,QAHI,aAAa,KAAK;AAAA,OAK1B;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -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: pointer;\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-selectable-borderStyle) 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-border) 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: calc(var(--salt-size-border) * -2) 0 0 0 var(--salt-selectable-background-hover), calc(var(--salt-size-border) * -1) 0 0 var(--salt-size-border)\n var(--salt-selectable-borderColor-selected), 0 calc(var(--salt-size-border) * -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-selectable-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-border);\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,\n.saltCalendarDay-today > span:last-of-type:hover,\n.saltCalendarDay-outOfRange .saltCalendarDay-today > span:last-of-type:hover {\n border-bottom: var(--salt-size-indicator) var(--salt-selectable-borderStyle) var(--salt-accent-borderColor);\n margin-bottom: calc(var(--salt-size-indicator) * -1);\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 = ".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";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CalendarDay.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDay.js","sources":["../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import {\n type RenderPropsType,\n Tooltip,\n type TooltipProps,\n makePrefixer,\n renderProps,\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":";;;;;;;;;;AA+CA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA;AAE5C,MAAM,WAAc,GAAA,UAAA,CAGzB,SAASA,YAAAA,CACT,OACA,GACA,EAAA;AAvDF,EAAA,IAAA,EAAA;AAwDE,EAAM,MAAA;AAAA,IACJ,SAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAS,GAAA,IAAA;AAAA,IACT,GAAG;AAAA,GACD,GAAA,KAAA;AACJ,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,eAAuB,EAAA;AAC/C,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA;AAAA,IACJ,MAAA;AAAA,IACA,cAAiB,GAAA,IAAA;AAAA,IACjB,QAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,MACE,cAAe,CAAA;AAAA,IACjB,IAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACE,GAAA,MAAA;AACJ,EAAM,MAAA,SAAA,GAAY,UAAW,CAAA,GAAA,EAAK,cAAc,CAAA;AAEhD,EAAA,eAAA,CAAgB,MAAM;AA9FxB,IAAAC,IAAAA,GAAAA;AA+FI,IAAA,IAAI,OAAS,EAAA;AACX,MAAAA,CAAAA,GAAAA,GAAA,iDAAgB,OAAhB,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAyB,KAAM,CAAA,EAAE,eAAe,IAAK,EAAA,CAAA;AAAA;AACvD,KACC,CAAC,OAAA,EAAA,CAAS,sDAAgB,OAAhB,KAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAyB,KAAK,CAAC,CAAA;AAE5C,EAAA,MAAM,kBAAqB,GAAA;AAAA,IACzB,YAAc,EAAA,WAAA,CAAY,MAAO,CAAA,IAAA,EAAM,cAAc,CAAA;AAAA,IACrD,QAAA,kBACG,GAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,YAAA,CAAa,SAAS,CAAA,EACpC,QAAY,EAAA,WAAA,CAAA,MAAA,CAAO,IAAM,EAAA,MAAM,CAClC,EAAA,CAAA;AAAA,IAEF,QAAA;AAAA,IACA,GAAG,QAAA;AAAA,IACH,GAAK,EAAA,SAAA;AAAA,IACL,GAAG,IAAA;AAAA,IACH,SAAW,EAAA,IAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb;AAAA,QACE,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG,MAAA;AAAA,QAC1B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,UAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,QAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,cAAc,CAAC,GAAG,CAAC,CAAC,YAAA;AAAA,QAClC,CAAC,YAAa,CAAA,aAAa,CAAC,GAAG,CAAC,CAAC,WAAA;AAAA,QACjC,CAAC,YAAa,CAAA,SAAS,CAAC,GAAG,CAAC,CAAC,OAAA;AAAA,QAC7B,CAAC,YAAA,CAAa,OAAO,CAAC,GAAG;AAAA,OAC3B;AAAA,MACA,QAAS,CAAA,SAAA;AAAA,MACT;AAAA;AACF,GACF;AAEA,EAAA,MAAM,uCACH,GAAA,CAAA,QAAA,EAAA,EAAO,IAAM,EAAA,QAAA,EAAW,GAAG,kBAAoB,EAAA,CAAA;AAGlD,EAAM,MAAA,aAAA,GAAgB,MAClB,GAAA,WAAA,CAA8D,QAAU,EAAA;AAAA,IACtE,MAAA;AAAA,IACA,GAAG,kBAAA;AAAA,IACH,MAAA;AAAA,IACA;AAAA,GACD,CACD,GAAA,oBAAA;AAEJ,EAAA,MAAM,aAAa,kBAAsB,IAAA,iBAAA;AACzC,EAAA,IAAI,CAAC,UAAY,EAAA;AACf,IAAO,OAAA,aAAA;AAAA;AAET,EACE,uBAAA,GAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,QAAQ,EAAA,IAAA;AAAA,MACR,MAAA,EAAQ,qBAAqB,OAAU,GAAA,MAAA;AAAA,MACvC,OAAA,EACE,sBAAsB,iBAAqB,IAAA,sBAAA;AAAA,MAE7C,SAAU,EAAA,KAAA;AAAA,MACV,UAAY,EAAA,CAAA;AAAA,MACZ,UAAY,EAAA,CAAA;AAAA,MACX,GAAG,YAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
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,4 +1,4 @@
1
- var css_248z = ".saltCalendarMonth-grid {\n display: grid;\n gap: var(--salt-size-border);\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-size-border);\n}\n";
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";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CalendarMonth.css.js.map
@@ -1,14 +1,14 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, createElement } from 'react';
3
3
  import { makePrefixer } from '@salt-ds/core';
4
- import { clsx } from 'clsx';
5
- import { CalendarDay } from './CalendarDay.js';
6
- import { generateVisibleDays } from './utils.js';
7
4
  import { useComponentCssInjection } from '@salt-ds/styles';
8
5
  import { useWindow } from '@salt-ds/window';
6
+ import { clsx } from 'clsx';
9
7
  import { useLocalization } from '../../localization-provider/LocalizationProvider.js';
10
8
  import { useCalendarContext } from './CalendarContext.js';
9
+ import { CalendarDay } from './CalendarDay.js';
11
10
  import css_248z from './CalendarMonth.css.js';
11
+ import { generateVisibleDays } from './utils.js';
12
12
 
13
13
  const withBaseName = makePrefixer("saltCalendarMonth");
14
14
  const CalendarMonth = forwardRef(function CalendarMonth2(props, ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMonth.js","sources":["../src/calendar/internal/CalendarMonth.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithRef,\n type MouseEvent,\n type SyntheticEvent,\n forwardRef,\n} from \"react\";\nimport { CalendarDay, type CalendarDayProps } from \"./CalendarDay\";\nimport { generateVisibleDays } from \"./utils\";\n\nimport type { DateFrameworkType } from \"@salt-ds/date-adapters\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useLocalization } from \"../../localization-provider\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport calendarMonthCss from \"./CalendarMonth.css\";\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":";;;;;;;;;;;;AA8BA,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} 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;;;;"}
@@ -12,7 +12,7 @@ function useFocusManagement({
12
12
  setFocusedDate(event, date);
13
13
  };
14
14
  const handleKeyDown = (event) => {
15
- let newDate = void 0;
15
+ let newDate;
16
16
  switch (event.key) {
17
17
  case "ArrowUp":
18
18
  newDate = dateAdapter.subtract(date, { weeks: 1 });
@@ -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 = 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,IAAA,IAAI,OAA6B,GAAA,MAAA;AACjC,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,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;;;;"}
@@ -23,6 +23,7 @@ function useCalendar(props) {
23
23
  isDayDisabled = defaultIsDayDisabled,
24
24
  isDayHighlighted = defaultIsDayHighlighted,
25
25
  isDayUnselectable = defaultIsDayUnselectable,
26
+ multiselect,
26
27
  maxDate = defaultMaxDate,
27
28
  minDate = defaultMinDate,
28
29
  numberOfVisibleMonths = 1,
@@ -30,6 +31,7 @@ function useCalendar(props) {
30
31
  onSelectionChange,
31
32
  onVisibleMonthChange,
32
33
  onFocusedDateChange,
34
+ select,
33
35
  selectedDate,
34
36
  selectionVariant,
35
37
  visibleMonth: visibleMonthProp
@@ -100,7 +102,9 @@ function useCalendar(props) {
100
102
  isDayVisible,
101
103
  focusedDate: focusedDateProp,
102
104
  focusedDateRef,
105
+ multiselect,
103
106
  onFocusedDateChange,
107
+ select,
104
108
  selectionVariant,
105
109
  onHoveredDateChange,
106
110
  hoveredDate,
@@ -133,6 +137,7 @@ function useCalendar(props) {
133
137
  state: {
134
138
  visibleMonth,
135
139
  timezone,
140
+ multiselect,
136
141
  minDate,
137
142
  maxDate,
138
143
  numberOfVisibleMonths: responsiveNumberOfVisibleMonths,
@@ -155,6 +160,7 @@ function useCalendar(props) {
155
160
  [
156
161
  visibleMonth,
157
162
  timezone,
163
+ multiselect,
158
164
  minDate,
159
165
  maxDate,
160
166
  selectionVariant,