@salt-ds/lab 1.0.0-alpha.89 → 1.0.0-alpha.90

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 (306) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/css/salt-lab.css +120 -643
  3. package/dist-cjs/calendar/index.js +61 -0
  4. package/dist-cjs/calendar/index.js.map +1 -0
  5. package/dist-cjs/content-status/ContentStatus.js +1 -1
  6. package/dist-cjs/content-status/ContentStatus.js.map +1 -1
  7. package/dist-cjs/date-input/index.js +23 -0
  8. package/dist-cjs/date-input/index.js.map +1 -0
  9. package/dist-cjs/date-picker/index.js +106 -0
  10. package/dist-cjs/date-picker/index.js.map +1 -0
  11. package/dist-cjs/index.js +58 -56
  12. package/dist-cjs/index.js.map +1 -1
  13. package/dist-cjs/localization-provider/index.js +26 -0
  14. package/dist-cjs/localization-provider/index.js.map +1 -0
  15. package/dist-cjs/rating/Rating.css.js +1 -1
  16. package/dist-cjs/rating/Rating.js +11 -16
  17. package/dist-cjs/rating/Rating.js.map +1 -1
  18. package/dist-cjs/side-panel/SidePanel.css.js +6 -0
  19. package/dist-cjs/side-panel/SidePanel.css.js.map +1 -0
  20. package/dist-cjs/side-panel/SidePanel.js +156 -0
  21. package/dist-cjs/side-panel/SidePanel.js.map +1 -0
  22. package/dist-cjs/side-panel/SidePanelContent.css.js +6 -0
  23. package/dist-cjs/side-panel/SidePanelContent.css.js.map +1 -0
  24. package/dist-cjs/side-panel/SidePanelContent.js +86 -0
  25. package/dist-cjs/side-panel/SidePanelContent.js.map +1 -0
  26. package/dist-cjs/side-panel/SidePanelHeader.css.js +6 -0
  27. package/dist-cjs/side-panel/SidePanelHeader.css.js.map +1 -0
  28. package/dist-cjs/side-panel/SidePanelHeader.js +26 -0
  29. package/dist-cjs/side-panel/SidePanelHeader.js.map +1 -0
  30. package/dist-cjs/side-panel/SidePanelProvider.js +71 -0
  31. package/dist-cjs/side-panel/SidePanelProvider.js.map +1 -0
  32. package/dist-cjs/side-panel/SidePanelTitle.css.js +6 -0
  33. package/dist-cjs/side-panel/SidePanelTitle.css.js.map +1 -0
  34. package/dist-cjs/side-panel/SidePanelTitle.js +47 -0
  35. package/dist-cjs/side-panel/SidePanelTitle.js.map +1 -0
  36. package/dist-cjs/side-panel/SidePanelTrigger.js +37 -0
  37. package/dist-cjs/side-panel/SidePanelTrigger.js.map +1 -0
  38. package/dist-cjs/side-panel/internal/SidePanelContext.js +31 -0
  39. package/dist-cjs/side-panel/internal/SidePanelContext.js.map +1 -0
  40. package/dist-cjs/side-panel/useSidePanel.js +41 -0
  41. package/dist-cjs/side-panel/useSidePanel.js.map +1 -0
  42. package/dist-cjs/utils/deprecatedExport.js +30 -0
  43. package/dist-cjs/utils/deprecatedExport.js.map +1 -0
  44. package/dist-es/calendar/index.js +50 -0
  45. package/dist-es/calendar/index.js.map +1 -0
  46. package/dist-es/content-status/ContentStatus.js +1 -1
  47. package/dist-es/content-status/ContentStatus.js.map +1 -1
  48. package/dist-es/date-input/index.js +20 -0
  49. package/dist-es/date-input/index.js.map +1 -0
  50. package/dist-es/date-picker/index.js +85 -0
  51. package/dist-es/date-picker/index.js.map +1 -0
  52. package/dist-es/index.js +12 -23
  53. package/dist-es/index.js.map +1 -1
  54. package/dist-es/localization-provider/index.js +20 -0
  55. package/dist-es/localization-provider/index.js.map +1 -0
  56. package/dist-es/rating/Rating.css.js +1 -1
  57. package/dist-es/rating/Rating.js +13 -18
  58. package/dist-es/rating/Rating.js.map +1 -1
  59. package/dist-es/side-panel/SidePanel.css.js +4 -0
  60. package/dist-es/side-panel/SidePanel.css.js.map +1 -0
  61. package/dist-es/side-panel/SidePanel.js +154 -0
  62. package/dist-es/side-panel/SidePanel.js.map +1 -0
  63. package/dist-es/side-panel/SidePanelContent.css.js +4 -0
  64. package/dist-es/side-panel/SidePanelContent.css.js.map +1 -0
  65. package/dist-es/side-panel/SidePanelContent.js +84 -0
  66. package/dist-es/side-panel/SidePanelContent.js.map +1 -0
  67. package/dist-es/side-panel/SidePanelHeader.css.js +4 -0
  68. package/dist-es/side-panel/SidePanelHeader.css.js.map +1 -0
  69. package/dist-es/side-panel/SidePanelHeader.js +24 -0
  70. package/dist-es/side-panel/SidePanelHeader.js.map +1 -0
  71. package/dist-es/side-panel/SidePanelProvider.js +69 -0
  72. package/dist-es/side-panel/SidePanelProvider.js.map +1 -0
  73. package/dist-es/side-panel/SidePanelTitle.css.js +4 -0
  74. package/dist-es/side-panel/SidePanelTitle.css.js.map +1 -0
  75. package/dist-es/side-panel/SidePanelTitle.js +45 -0
  76. package/dist-es/side-panel/SidePanelTitle.js.map +1 -0
  77. package/dist-es/side-panel/SidePanelTrigger.js +35 -0
  78. package/dist-es/side-panel/SidePanelTrigger.js.map +1 -0
  79. package/dist-es/side-panel/internal/SidePanelContext.js +28 -0
  80. package/dist-es/side-panel/internal/SidePanelContext.js.map +1 -0
  81. package/dist-es/side-panel/useSidePanel.js +39 -0
  82. package/dist-es/side-panel/useSidePanel.js.map +1 -0
  83. package/dist-es/utils/deprecatedExport.js +27 -0
  84. package/dist-es/utils/deprecatedExport.js.map +1 -0
  85. package/dist-types/calendar/index.d.ts +13 -8
  86. package/dist-types/date-input/index.d.ts +3 -2
  87. package/dist-types/index.d.ts +1 -0
  88. package/dist-types/localization-provider/index.d.ts +9 -1
  89. package/dist-types/rating/Rating.d.ts +1 -2
  90. package/dist-types/side-panel/SidePanel.d.ts +27 -0
  91. package/dist-types/side-panel/SidePanelContent.d.ts +4 -0
  92. package/dist-types/side-panel/SidePanelHeader.d.ts +4 -0
  93. package/dist-types/side-panel/SidePanelProvider.d.ts +20 -0
  94. package/dist-types/side-panel/SidePanelTitle.d.ts +4 -0
  95. package/dist-types/side-panel/SidePanelTrigger.d.ts +5 -0
  96. package/dist-types/side-panel/index.d.ts +7 -0
  97. package/dist-types/side-panel/internal/SidePanelContext.d.ts +48 -0
  98. package/dist-types/side-panel/internal/index.d.ts +1 -0
  99. package/dist-types/side-panel/useSidePanel.d.ts +32 -0
  100. package/dist-types/utils/deprecatedExport.d.ts +11 -0
  101. package/package.json +5 -12
  102. package/dist-cjs/calendar/Calendar.css.js +0 -6
  103. package/dist-cjs/calendar/Calendar.css.js.map +0 -1
  104. package/dist-cjs/calendar/Calendar.js +0 -152
  105. package/dist-cjs/calendar/Calendar.js.map +0 -1
  106. package/dist-cjs/calendar/CalendarGrid.js +0 -85
  107. package/dist-cjs/calendar/CalendarGrid.js.map +0 -1
  108. package/dist-cjs/calendar/CalendarMonthHeader.css.js +0 -6
  109. package/dist-cjs/calendar/CalendarMonthHeader.css.js.map +0 -1
  110. package/dist-cjs/calendar/CalendarMonthHeader.js +0 -48
  111. package/dist-cjs/calendar/CalendarMonthHeader.js.map +0 -1
  112. package/dist-cjs/calendar/CalendarNavigation.css.js +0 -6
  113. package/dist-cjs/calendar/CalendarNavigation.css.js.map +0 -1
  114. package/dist-cjs/calendar/CalendarNavigation.js +0 -337
  115. package/dist-cjs/calendar/CalendarNavigation.js.map +0 -1
  116. package/dist-cjs/calendar/CalendarWeekHeader.css.js +0 -6
  117. package/dist-cjs/calendar/CalendarWeekHeader.css.js.map +0 -1
  118. package/dist-cjs/calendar/CalendarWeekHeader.js +0 -46
  119. package/dist-cjs/calendar/CalendarWeekHeader.js.map +0 -1
  120. package/dist-cjs/calendar/internal/CalendarContext.js +0 -25
  121. package/dist-cjs/calendar/internal/CalendarContext.js.map +0 -1
  122. package/dist-cjs/calendar/internal/CalendarDay.css.js +0 -6
  123. package/dist-cjs/calendar/internal/CalendarDay.css.js.map +0 -1
  124. package/dist-cjs/calendar/internal/CalendarDay.js +0 -97
  125. package/dist-cjs/calendar/internal/CalendarDay.js.map +0 -1
  126. package/dist-cjs/calendar/internal/CalendarMonth.css.js +0 -6
  127. package/dist-cjs/calendar/internal/CalendarMonth.css.js.map +0 -1
  128. package/dist-cjs/calendar/internal/CalendarMonth.js +0 -76
  129. package/dist-cjs/calendar/internal/CalendarMonth.js.map +0 -1
  130. package/dist-cjs/calendar/internal/useFocusManagement.js +0 -68
  131. package/dist-cjs/calendar/internal/useFocusManagement.js.map +0 -1
  132. package/dist-cjs/calendar/internal/utils.js +0 -50
  133. package/dist-cjs/calendar/internal/utils.js.map +0 -1
  134. package/dist-cjs/calendar/useCalendar.js +0 -183
  135. package/dist-cjs/calendar/useCalendar.js.map +0 -1
  136. package/dist-cjs/calendar/useCalendarDay.js +0 -85
  137. package/dist-cjs/calendar/useCalendarDay.js.map +0 -1
  138. package/dist-cjs/calendar/useCalendarSelection.js +0 -604
  139. package/dist-cjs/calendar/useCalendarSelection.js.map +0 -1
  140. package/dist-cjs/date-input/DateInput.css.js +0 -6
  141. package/dist-cjs/date-input/DateInput.css.js.map +0 -1
  142. package/dist-cjs/date-input/DateInputRange.js +0 -352
  143. package/dist-cjs/date-input/DateInputRange.js.map +0 -1
  144. package/dist-cjs/date-input/DateInputSingle.js +0 -234
  145. package/dist-cjs/date-input/DateInputSingle.js.map +0 -1
  146. package/dist-cjs/date-picker/DatePicker.js +0 -75
  147. package/dist-cjs/date-picker/DatePicker.js.map +0 -1
  148. package/dist-cjs/date-picker/DatePickerActions.css.js +0 -6
  149. package/dist-cjs/date-picker/DatePickerActions.css.js.map +0 -1
  150. package/dist-cjs/date-picker/DatePickerActions.js +0 -91
  151. package/dist-cjs/date-picker/DatePickerActions.js.map +0 -1
  152. package/dist-cjs/date-picker/DatePickerContext.js +0 -36
  153. package/dist-cjs/date-picker/DatePickerContext.js.map +0 -1
  154. package/dist-cjs/date-picker/DatePickerHelperText.css.js +0 -6
  155. package/dist-cjs/date-picker/DatePickerHelperText.css.js.map +0 -1
  156. package/dist-cjs/date-picker/DatePickerHelperText.js +0 -36
  157. package/dist-cjs/date-picker/DatePickerHelperText.js.map +0 -1
  158. package/dist-cjs/date-picker/DatePickerOverlay.css.js +0 -6
  159. package/dist-cjs/date-picker/DatePickerOverlay.css.js.map +0 -1
  160. package/dist-cjs/date-picker/DatePickerOverlay.js +0 -48
  161. package/dist-cjs/date-picker/DatePickerOverlay.js.map +0 -1
  162. package/dist-cjs/date-picker/DatePickerOverlayProvider.js +0 -166
  163. package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +0 -1
  164. package/dist-cjs/date-picker/DatePickerPanel.css.js +0 -6
  165. package/dist-cjs/date-picker/DatePickerPanel.css.js.map +0 -1
  166. package/dist-cjs/date-picker/DatePickerRangeGridPanel.js +0 -246
  167. package/dist-cjs/date-picker/DatePickerRangeGridPanel.js.map +0 -1
  168. package/dist-cjs/date-picker/DatePickerRangeInput.js +0 -202
  169. package/dist-cjs/date-picker/DatePickerRangeInput.js.map +0 -1
  170. package/dist-cjs/date-picker/DatePickerRangePanel.js +0 -355
  171. package/dist-cjs/date-picker/DatePickerRangePanel.js.map +0 -1
  172. package/dist-cjs/date-picker/DatePickerSingleGridPanel.js +0 -253
  173. package/dist-cjs/date-picker/DatePickerSingleGridPanel.js.map +0 -1
  174. package/dist-cjs/date-picker/DatePickerSingleInput.js +0 -148
  175. package/dist-cjs/date-picker/DatePickerSingleInput.js.map +0 -1
  176. package/dist-cjs/date-picker/DatePickerSinglePanel.js +0 -20
  177. package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +0 -1
  178. package/dist-cjs/date-picker/DatePickerTrigger.js +0 -32
  179. package/dist-cjs/date-picker/DatePickerTrigger.js.map +0 -1
  180. package/dist-cjs/date-picker/useDatePicker.js +0 -201
  181. package/dist-cjs/date-picker/useDatePicker.js.map +0 -1
  182. package/dist-cjs/date-picker/useFocusOut.js +0 -43
  183. package/dist-cjs/date-picker/useFocusOut.js.map +0 -1
  184. package/dist-cjs/date-picker/useKeyboard.js +0 -22
  185. package/dist-cjs/date-picker/useKeyboard.js.map +0 -1
  186. package/dist-cjs/localization-provider/LocalizationProvider.js +0 -51
  187. package/dist-cjs/localization-provider/LocalizationProvider.js.map +0 -1
  188. package/dist-es/calendar/Calendar.css.js +0 -4
  189. package/dist-es/calendar/Calendar.css.js.map +0 -1
  190. package/dist-es/calendar/Calendar.js +0 -150
  191. package/dist-es/calendar/Calendar.js.map +0 -1
  192. package/dist-es/calendar/CalendarGrid.js +0 -83
  193. package/dist-es/calendar/CalendarGrid.js.map +0 -1
  194. package/dist-es/calendar/CalendarMonthHeader.css.js +0 -4
  195. package/dist-es/calendar/CalendarMonthHeader.css.js.map +0 -1
  196. package/dist-es/calendar/CalendarMonthHeader.js +0 -46
  197. package/dist-es/calendar/CalendarMonthHeader.js.map +0 -1
  198. package/dist-es/calendar/CalendarNavigation.css.js +0 -4
  199. package/dist-es/calendar/CalendarNavigation.css.js.map +0 -1
  200. package/dist-es/calendar/CalendarNavigation.js +0 -335
  201. package/dist-es/calendar/CalendarNavigation.js.map +0 -1
  202. package/dist-es/calendar/CalendarWeekHeader.css.js +0 -4
  203. package/dist-es/calendar/CalendarWeekHeader.css.js.map +0 -1
  204. package/dist-es/calendar/CalendarWeekHeader.js +0 -44
  205. package/dist-es/calendar/CalendarWeekHeader.js.map +0 -1
  206. package/dist-es/calendar/internal/CalendarContext.js +0 -22
  207. package/dist-es/calendar/internal/CalendarContext.js.map +0 -1
  208. package/dist-es/calendar/internal/CalendarDay.css.js +0 -4
  209. package/dist-es/calendar/internal/CalendarDay.css.js.map +0 -1
  210. package/dist-es/calendar/internal/CalendarDay.js +0 -95
  211. package/dist-es/calendar/internal/CalendarDay.js.map +0 -1
  212. package/dist-es/calendar/internal/CalendarMonth.css.js +0 -4
  213. package/dist-es/calendar/internal/CalendarMonth.css.js.map +0 -1
  214. package/dist-es/calendar/internal/CalendarMonth.js +0 -74
  215. package/dist-es/calendar/internal/CalendarMonth.js.map +0 -1
  216. package/dist-es/calendar/internal/useFocusManagement.js +0 -66
  217. package/dist-es/calendar/internal/useFocusManagement.js.map +0 -1
  218. package/dist-es/calendar/internal/utils.js +0 -44
  219. package/dist-es/calendar/internal/utils.js.map +0 -1
  220. package/dist-es/calendar/useCalendar.js +0 -181
  221. package/dist-es/calendar/useCalendar.js.map +0 -1
  222. package/dist-es/calendar/useCalendarDay.js +0 -83
  223. package/dist-es/calendar/useCalendarDay.js.map +0 -1
  224. package/dist-es/calendar/useCalendarSelection.js +0 -600
  225. package/dist-es/calendar/useCalendarSelection.js.map +0 -1
  226. package/dist-es/date-input/DateInput.css.js +0 -4
  227. package/dist-es/date-input/DateInput.css.js.map +0 -1
  228. package/dist-es/date-input/DateInputRange.js +0 -349
  229. package/dist-es/date-input/DateInputRange.js.map +0 -1
  230. package/dist-es/date-input/DateInputSingle.js +0 -232
  231. package/dist-es/date-input/DateInputSingle.js.map +0 -1
  232. package/dist-es/date-picker/DatePicker.js +0 -72
  233. package/dist-es/date-picker/DatePicker.js.map +0 -1
  234. package/dist-es/date-picker/DatePickerActions.css.js +0 -4
  235. package/dist-es/date-picker/DatePickerActions.css.js.map +0 -1
  236. package/dist-es/date-picker/DatePickerActions.js +0 -89
  237. package/dist-es/date-picker/DatePickerActions.js.map +0 -1
  238. package/dist-es/date-picker/DatePickerContext.js +0 -32
  239. package/dist-es/date-picker/DatePickerContext.js.map +0 -1
  240. package/dist-es/date-picker/DatePickerHelperText.css.js +0 -4
  241. package/dist-es/date-picker/DatePickerHelperText.css.js.map +0 -1
  242. package/dist-es/date-picker/DatePickerHelperText.js +0 -34
  243. package/dist-es/date-picker/DatePickerHelperText.js.map +0 -1
  244. package/dist-es/date-picker/DatePickerOverlay.css.js +0 -4
  245. package/dist-es/date-picker/DatePickerOverlay.css.js.map +0 -1
  246. package/dist-es/date-picker/DatePickerOverlay.js +0 -46
  247. package/dist-es/date-picker/DatePickerOverlay.js.map +0 -1
  248. package/dist-es/date-picker/DatePickerOverlayProvider.js +0 -163
  249. package/dist-es/date-picker/DatePickerOverlayProvider.js.map +0 -1
  250. package/dist-es/date-picker/DatePickerPanel.css.js +0 -4
  251. package/dist-es/date-picker/DatePickerPanel.css.js.map +0 -1
  252. package/dist-es/date-picker/DatePickerRangeGridPanel.js +0 -244
  253. package/dist-es/date-picker/DatePickerRangeGridPanel.js.map +0 -1
  254. package/dist-es/date-picker/DatePickerRangeInput.js +0 -199
  255. package/dist-es/date-picker/DatePickerRangeInput.js.map +0 -1
  256. package/dist-es/date-picker/DatePickerRangePanel.js +0 -353
  257. package/dist-es/date-picker/DatePickerRangePanel.js.map +0 -1
  258. package/dist-es/date-picker/DatePickerSingleGridPanel.js +0 -251
  259. package/dist-es/date-picker/DatePickerSingleGridPanel.js.map +0 -1
  260. package/dist-es/date-picker/DatePickerSingleInput.js +0 -146
  261. package/dist-es/date-picker/DatePickerSingleInput.js.map +0 -1
  262. package/dist-es/date-picker/DatePickerSinglePanel.js +0 -18
  263. package/dist-es/date-picker/DatePickerSinglePanel.js.map +0 -1
  264. package/dist-es/date-picker/DatePickerTrigger.js +0 -30
  265. package/dist-es/date-picker/DatePickerTrigger.js.map +0 -1
  266. package/dist-es/date-picker/useDatePicker.js +0 -199
  267. package/dist-es/date-picker/useDatePicker.js.map +0 -1
  268. package/dist-es/date-picker/useFocusOut.js +0 -41
  269. package/dist-es/date-picker/useFocusOut.js.map +0 -1
  270. package/dist-es/date-picker/useKeyboard.js +0 -20
  271. package/dist-es/date-picker/useKeyboard.js.map +0 -1
  272. package/dist-es/localization-provider/LocalizationProvider.js +0 -47
  273. package/dist-es/localization-provider/LocalizationProvider.js.map +0 -1
  274. package/dist-types/calendar/Calendar.d.ts +0 -116
  275. package/dist-types/calendar/CalendarGrid.d.ts +0 -29
  276. package/dist-types/calendar/CalendarMonthHeader.d.ts +0 -18
  277. package/dist-types/calendar/CalendarNavigation.d.ts +0 -64
  278. package/dist-types/calendar/CalendarWeekHeader.d.ts +0 -6
  279. package/dist-types/calendar/internal/CalendarContext.d.ts +0 -7
  280. package/dist-types/calendar/internal/CalendarDay.d.ts +0 -32
  281. package/dist-types/calendar/internal/CalendarMonth.d.ts +0 -13
  282. package/dist-types/calendar/internal/useFocusManagement.d.ts +0 -9
  283. package/dist-types/calendar/internal/utils.d.ts +0 -6
  284. package/dist-types/calendar/useCalendar.d.ts +0 -294
  285. package/dist-types/calendar/useCalendarDay.d.ts +0 -56
  286. package/dist-types/calendar/useCalendarSelection.d.ts +0 -365
  287. package/dist-types/date-input/DateInputRange.d.ts +0 -136
  288. package/dist-types/date-input/DateInputSingle.d.ts +0 -104
  289. package/dist-types/date-picker/DatePicker.d.ts +0 -55
  290. package/dist-types/date-picker/DatePickerActions.d.ts +0 -81
  291. package/dist-types/date-picker/DatePickerContext.d.ts +0 -188
  292. package/dist-types/date-picker/DatePickerHelperText.d.ts +0 -4
  293. package/dist-types/date-picker/DatePickerOverlay.d.ts +0 -11
  294. package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +0 -102
  295. package/dist-types/date-picker/DatePickerRangeGridPanel.d.ts +0 -16
  296. package/dist-types/date-picker/DatePickerRangeInput.d.ts +0 -18
  297. package/dist-types/date-picker/DatePickerRangePanel.d.ts +0 -84
  298. package/dist-types/date-picker/DatePickerSingleGridPanel.d.ts +0 -64
  299. package/dist-types/date-picker/DatePickerSingleInput.d.ts +0 -17
  300. package/dist-types/date-picker/DatePickerSinglePanel.d.ts +0 -8
  301. package/dist-types/date-picker/DatePickerTrigger.d.ts +0 -9
  302. package/dist-types/date-picker/index.d.ts +0 -13
  303. package/dist-types/date-picker/useDatePicker.d.ts +0 -119
  304. package/dist-types/date-picker/useFocusOut.d.ts +0 -9
  305. package/dist-types/date-picker/useKeyboard.d.ts +0 -20
  306. package/dist-types/localization-provider/LocalizationProvider.d.ts +0 -62
@@ -1,604 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@salt-ds/core');
4
- var clsx = require('clsx');
5
- var react = require('react');
6
- var LocalizationProvider = require('../localization-provider/LocalizationProvider.js');
7
- var CalendarContext = require('./internal/CalendarContext.js');
8
- var utils = require('./internal/utils.js');
9
-
10
- function isDateRangeSelection(value) {
11
- return value && !Array.isArray(value) && typeof value === "object" && ("startDate" in value || "endDate" in value);
12
- }
13
- function isMultiselect(props) {
14
- return props.multiselect === true;
15
- }
16
- const withBaseName = core.makePrefixer("saltCalendarDay");
17
- function selectDateRange(dateAdapter, previousSelectedDate, newDate) {
18
- if ((previousSelectedDate == null ? void 0 : previousSelectedDate.startDate) && (previousSelectedDate == null ? void 0 : previousSelectedDate.endDate)) {
19
- return {
20
- startDate: newDate
21
- };
22
- }
23
- if ((previousSelectedDate == null ? void 0 : previousSelectedDate.startDate) && dateAdapter.compare(newDate, previousSelectedDate == null ? void 0 : previousSelectedDate.startDate) >= 0) {
24
- return {
25
- ...previousSelectedDate,
26
- endDate: newDate
27
- };
28
- }
29
- return {
30
- startDate: newDate
31
- };
32
- }
33
- function selectMultiselectDateRange(dateAdapter, previousSelectedDate, newDate) {
34
- const lastRange = previousSelectedDate.length ? previousSelectedDate[previousSelectedDate.length - 1] : void 0;
35
- const isIncompleteRange = !(lastRange == null ? void 0 : lastRange.endDate);
36
- if (isIncompleteRange) {
37
- const isNewSelection = previousSelectedDate.length === 0;
38
- if (isNewSelection) {
39
- return [{ startDate: newDate }];
40
- }
41
- const completeDateRange = selectDateRange(
42
- dateAdapter,
43
- previousSelectedDate[previousSelectedDate.length - 1],
44
- newDate
45
- );
46
- return [...previousSelectedDate.slice(0, -1), completeDateRange];
47
- }
48
- return [...previousSelectedDate, { startDate: newDate }];
49
- }
50
- function useCalendarSelection(props) {
51
- const {
52
- multiselect,
53
- focusedDate: focusedDateProp,
54
- hoveredDate: hoveredDateProp,
55
- selectedDate: selectedDateProp,
56
- defaultSelectedDate,
57
- onSelectionChange,
58
- onHoveredDateChange,
59
- isDaySelectable = () => true,
60
- isDayVisible = () => true,
61
- isOutsideAllowedDates = () => true,
62
- focusedDateRef,
63
- onFocusedDateChange,
64
- select: selectProp,
65
- selectionVariant,
66
- timezone,
67
- visibleMonth
68
- // startDateOffset,
69
- // endDateOffset,
70
- } = props;
71
- const { dateAdapter } = LocalizationProvider.useLocalization();
72
- const [selectedDate, setSelectedDateState] = core.useControlled({
73
- controlled: selectedDateProp,
74
- default: defaultSelectedDate,
75
- name: "Calendar",
76
- state: "selectedDate"
77
- });
78
- const startDateOffset = selectionVariant === "offset" ? props.startDateOffset : void 0;
79
- const endDateOffset = selectionVariant === "offset" ? props.endDateOffset : void 0;
80
- const getStartDateOffset = react.useCallback(
81
- (date) => {
82
- if (selectionVariant === "offset" && startDateOffset) {
83
- return startDateOffset(date);
84
- }
85
- return date;
86
- },
87
- [selectionVariant, startDateOffset]
88
- );
89
- const getEndDateOffset = react.useCallback(
90
- (date) => {
91
- if (selectionVariant === "offset" && endDateOffset) {
92
- return endDateOffset(date);
93
- }
94
- return date;
95
- },
96
- [selectionVariant, endDateOffset]
97
- );
98
- const setSelectedDate = react.useCallback(
99
- (event, newSelectedDate) => {
100
- if (!isDaySelectable || isDaySelectable(newSelectedDate)) {
101
- const handleSelectionChange = (updatedSelection, changeHandler) => {
102
- changeHandler == null ? void 0 : changeHandler(event, updatedSelection);
103
- setSelectedDateState(updatedSelection);
104
- };
105
- switch (selectionVariant) {
106
- case "single": {
107
- if (isMultiselect(props)) {
108
- const multipleSingleSelectedDate = selectedDate;
109
- const select = selectProp;
110
- const updatedSelection = select ? select(multipleSingleSelectedDate ?? [], newSelectedDate) : [...multipleSingleSelectedDate ?? [], newSelectedDate];
111
- const changeHandler = onSelectionChange;
112
- handleSelectionChange(updatedSelection, changeHandler);
113
- } else {
114
- const singleSelectedDate = selectedDate;
115
- const select = selectProp;
116
- const updatedSelection = select ? select(singleSelectedDate, newSelectedDate) : newSelectedDate;
117
- const changeHandler = onSelectionChange;
118
- handleSelectionChange(updatedSelection, changeHandler);
119
- }
120
- break;
121
- }
122
- case "range": {
123
- if (isMultiselect(props)) {
124
- const multipleRangeSelectedDate = selectedDate;
125
- const select = selectProp;
126
- const updatedSelection = select ? select(multipleRangeSelectedDate ?? [], newSelectedDate) : selectMultiselectDateRange(
127
- dateAdapter,
128
- multipleRangeSelectedDate ?? [],
129
- newSelectedDate
130
- );
131
- const changeHandler = onSelectionChange;
132
- handleSelectionChange(updatedSelection, changeHandler);
133
- } else {
134
- const rangeSelectedDate = selectedDate;
135
- const select = selectProp;
136
- const updatedSelection = select ? select(rangeSelectedDate, newSelectedDate) : selectDateRange(
137
- dateAdapter,
138
- rangeSelectedDate,
139
- newSelectedDate
140
- );
141
- const changeHandler = onSelectionChange;
142
- handleSelectionChange(updatedSelection, changeHandler);
143
- }
144
- break;
145
- }
146
- case "offset": {
147
- if (isMultiselect(props)) {
148
- const multipleOffsetSelectedDate = selectedDate;
149
- const select = selectProp;
150
- const updatedSelection = select ? select(multipleOffsetSelectedDate ?? [], newSelectedDate) : [
151
- ...multipleOffsetSelectedDate ?? [],
152
- {
153
- startDate: getStartDateOffset(newSelectedDate),
154
- endDate: getEndDateOffset(newSelectedDate)
155
- }
156
- ];
157
- const changeHandler = onSelectionChange;
158
- handleSelectionChange(updatedSelection, changeHandler);
159
- } else {
160
- const offsetSelectedDate = selectedDate;
161
- const select = selectProp;
162
- const updatedSelection = select ? select(offsetSelectedDate, newSelectedDate) : {
163
- startDate: getStartDateOffset(newSelectedDate),
164
- endDate: getEndDateOffset(newSelectedDate)
165
- };
166
- const changeHandler = onSelectionChange;
167
- handleSelectionChange(updatedSelection, changeHandler);
168
- }
169
- break;
170
- }
171
- }
172
- }
173
- },
174
- [
175
- dateAdapter,
176
- getEndDateOffset,
177
- getStartDateOffset,
178
- isDaySelectable,
179
- selectProp,
180
- selectedDate,
181
- selectionVariant,
182
- onSelectionChange,
183
- props
184
- // Ensure props is included in the dependency array
185
- ]
186
- );
187
- const isSelected = react.useCallback(
188
- (date) => {
189
- if (!selectedDate) {
190
- return false;
191
- }
192
- if (selectionVariant === "single") {
193
- const singleDates = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
194
- return singleDates.some(
195
- (singleDate) => dateAdapter.isSame(singleDate, date, "day")
196
- );
197
- }
198
- return false;
199
- },
200
- [dateAdapter, selectedDate, selectionVariant]
201
- );
202
- const getDefaultFocusedDate = () => {
203
- if (selectedDate && (selectionVariant === "range" || selectionVariant === "offset")) {
204
- const getFocusableDate = (result, selection) => {
205
- if ((selection == null ? void 0 : selection.startDate) && isDayVisible(selection.startDate)) {
206
- return [...result, selection.startDate];
207
- }
208
- if ((selection == null ? void 0 : selection.endDate) && isDayVisible(selection.endDate)) {
209
- return [...result, selection.endDate];
210
- }
211
- return result;
212
- };
213
- let focusableSelectedDates;
214
- if (!multiselect) {
215
- focusableSelectedDates = [selectedDate];
216
- } else {
217
- focusableSelectedDates = selectedDate;
218
- }
219
- const selectionInMonth = focusableSelectedDates.reduce(getFocusableDate, []).sort((a, b) => dateAdapter.compare(a, b));
220
- if (selectionInMonth.length > 0) {
221
- return selectionInMonth[0];
222
- }
223
- } else if (selectedDate && selectionVariant === "single") {
224
- const focusableSelectedDate = multiselect ? selectedDate == null ? void 0 : selectedDate[0] : selectedDate;
225
- if (focusableSelectedDate && isDayVisible(focusableSelectedDate)) {
226
- return focusableSelectedDate;
227
- }
228
- }
229
- if ((isDaySelectable == null ? void 0 : isDaySelectable(dateAdapter.today(timezone))) && isDayVisible(dateAdapter.today(timezone))) {
230
- return dateAdapter.today(timezone);
231
- }
232
- const firstSelectableDate = utils.generateDatesForMonth(
233
- dateAdapter,
234
- visibleMonth
235
- ).find((visibleDay) => visibleDay && (isDaySelectable == null ? void 0 : isDaySelectable(visibleDay)));
236
- if (firstSelectableDate) {
237
- return firstSelectableDate;
238
- }
239
- return null;
240
- };
241
- const [focusedDate, setFocusedDateState] = core.useControlled({
242
- controlled: focusedDateProp,
243
- default: react.useMemo(getDefaultFocusedDate, []),
244
- name: "Calendar",
245
- state: "focusedDate"
246
- });
247
- const setFocusedDate = react.useCallback(
248
- (event, date) => {
249
- if (focusedDateRef && (event == null ? void 0 : event.target) instanceof HTMLElement) {
250
- focusedDateRef.current = event.target;
251
- }
252
- if (date && (focusedDate && dateAdapter.isSame(date, focusedDate, "day") || isOutsideAllowedDates(date))) {
253
- return;
254
- }
255
- setFocusedDateState(date);
256
- onFocusedDateChange == null ? void 0 : onFocusedDateChange(event, date);
257
- },
258
- [
259
- dateAdapter,
260
- focusedDate,
261
- focusedDateRef,
262
- isOutsideAllowedDates,
263
- onFocusedDateChange
264
- ]
265
- );
266
- const [hoveredDate, setHoveredDateState] = core.useControlled({
267
- controlled: hoveredDateProp,
268
- default: void 0,
269
- name: "Calendar",
270
- state: "hoveredDate"
271
- });
272
- const setHoveredDate = react.useCallback(
273
- (event, date) => {
274
- setHoveredDateState(date);
275
- onHoveredDateChange == null ? void 0 : onHoveredDateChange(event, date);
276
- },
277
- [onHoveredDateChange]
278
- );
279
- const isHovered = react.useCallback(
280
- (date) => {
281
- return !!hoveredDate && dateAdapter.isSame(date, hoveredDate, "day");
282
- },
283
- [dateAdapter, hoveredDate]
284
- );
285
- const getFocusableDates = react.useCallback(() => {
286
- const focusableDates = [];
287
- if (Array.isArray(selectedDate)) {
288
- for (const selection of selectedDate) {
289
- if (isDateRangeSelection(selection)) {
290
- if (selection.startDate && isDayVisible(selection.startDate)) {
291
- focusableDates.push(selection.startDate);
292
- } else if (selection.endDate && isDayVisible(selection.endDate)) {
293
- focusableDates.push(selection.endDate);
294
- }
295
- } else if (isDayVisible(selection)) {
296
- focusableDates.push(selection);
297
- }
298
- }
299
- } else if (selectedDate) {
300
- if (isDateRangeSelection(selectedDate)) {
301
- if (selectedDate.startDate && isDayVisible(selectedDate.startDate)) {
302
- focusableDates.push(selectedDate.startDate);
303
- } else if (selectedDate.endDate && isDayVisible(selectedDate.endDate)) {
304
- focusableDates.push(selectedDate.endDate);
305
- }
306
- } else if (isDayVisible(selectedDate)) {
307
- focusableDates.push(selectedDate);
308
- }
309
- }
310
- if (focusedDate && visibleMonth && dateAdapter.isSame(focusedDate, visibleMonth, "month")) {
311
- focusableDates.push(focusedDate);
312
- return focusableDates;
313
- }
314
- if (focusableDates.length === 0 && isDaySelectable(dateAdapter.today(timezone)) && isDayVisible(dateAdapter.today(timezone))) {
315
- focusableDates.push(dateAdapter.today(timezone));
316
- }
317
- if (focusableDates.length === 0 || !focusableDates.some(isDayVisible)) {
318
- const firstSelectableDate = utils.generateDatesForMonth(
319
- dateAdapter,
320
- visibleMonth
321
- ).find((visibleDay) => visibleDay && isDaySelectable(visibleDay));
322
- if (firstSelectableDate) {
323
- focusableDates.push(firstSelectableDate);
324
- }
325
- }
326
- return focusableDates;
327
- }, [
328
- dateAdapter,
329
- focusedDate,
330
- isDaySelectable,
331
- isDayVisible,
332
- selectedDate,
333
- timezone,
334
- visibleMonth
335
- ]);
336
- const isHoveredStart = react.useCallback(
337
- (date) => {
338
- if (selectionVariant === "range" && hoveredDate && dateAdapter.isSame(date, hoveredDate, "day")) {
339
- const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
340
- const allDatesPopulated = dateRanges.every(
341
- (range) => (range == null ? void 0 : range.startDate) && (range == null ? void 0 : range.endDate)
342
- );
343
- const startDateMatches = dateRanges.some(
344
- (range) => (range == null ? void 0 : range.startDate) && dateAdapter.isSame(date, range.startDate, "day")
345
- );
346
- const firstIncompleteRange = dateRanges.find(
347
- (range) => (range == null ? void 0 : range.startDate) && !(range == null ? void 0 : range.endDate)
348
- );
349
- const newDateRangeRequired = (firstIncompleteRange == null ? void 0 : firstIncompleteRange.startDate) && dateAdapter.compare(date, firstIncompleteRange.startDate) < 0;
350
- return allDatesPopulated || startDateMatches || newDateRangeRequired;
351
- }
352
- if (selectionVariant === "offset" && hoveredDate) {
353
- const startDate = getStartDateOffset(hoveredDate);
354
- return dateAdapter.isSame(date, startDate, "day") && (!isDaySelectable || isDaySelectable(date));
355
- }
356
- return false;
357
- },
358
- [
359
- dateAdapter,
360
- getStartDateOffset,
361
- selectionVariant,
362
- selectedDate,
363
- hoveredDate,
364
- isDaySelectable
365
- ]
366
- );
367
- const isHoveredSpan = react.useCallback(
368
- (date) => {
369
- if (selectionVariant === "range") {
370
- const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
371
- return dateRanges.some((range) => {
372
- if (isDateRangeSelection(range) && dateAdapter.isValid(range.startDate) && !dateAdapter.isValid(range.endDate) && !isOutsideAllowedDates(range.startDate) && hoveredDate) {
373
- const isForwardRange = dateAdapter.compare(hoveredDate, range.startDate) > 0 && dateAdapter.compare(date, range.startDate) > 0 && dateAdapter.compare(date, hoveredDate) < 0;
374
- const isValidDayHovered = !isDaySelectable || isDaySelectable(hoveredDate);
375
- return isForwardRange && isValidDayHovered;
376
- }
377
- return false;
378
- });
379
- }
380
- if (selectionVariant === "offset" && hoveredDate) {
381
- const startDate = getStartDateOffset(hoveredDate);
382
- const endDate = getEndDateOffset(hoveredDate);
383
- return dateAdapter.compare(date, startDate) > 0 && dateAdapter.compare(date, endDate) < 0 && (!isDaySelectable || isDaySelectable(date));
384
- }
385
- return false;
386
- },
387
- [
388
- dateAdapter,
389
- isOutsideAllowedDates,
390
- selectionVariant,
391
- selectedDate,
392
- hoveredDate,
393
- isDaySelectable
394
- ]
395
- );
396
- const isHoveredEnd = react.useCallback(
397
- (date) => {
398
- if (selectionVariant === "range" && hoveredDate && dateAdapter.isSame(date, hoveredDate, "day")) {
399
- const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
400
- const isIncompleteRange = dateRanges.some(
401
- (range) => (range == null ? void 0 : range.startDate) && !(range == null ? void 0 : range.endDate) && hoveredDate && dateAdapter.compare(hoveredDate, range.startDate) >= 0
402
- );
403
- const endDateMatches = dateRanges.some(
404
- (range) => (range == null ? void 0 : range.endDate) && dateAdapter.isSame(range.endDate, date, "day")
405
- );
406
- return endDateMatches || isIncompleteRange;
407
- }
408
- if (selectionVariant === "offset" && hoveredDate) {
409
- const endDate = getEndDateOffset(hoveredDate);
410
- return dateAdapter.isSame(date, endDate, "day") && (!isDaySelectable || isDaySelectable(date));
411
- }
412
- return false;
413
- },
414
- [
415
- dateAdapter,
416
- getEndDateOffset,
417
- selectionVariant,
418
- selectedDate,
419
- hoveredDate,
420
- isDaySelectable
421
- ]
422
- );
423
- const isSameDay = react.useCallback(
424
- (date) => {
425
- const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
426
- return dateRanges.some((range) => {
427
- if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && (range == null ? void 0 : range.startDate) && (range == null ? void 0 : range.endDate) && dateAdapter.isSame(range == null ? void 0 : range.startDate, date, "day")) {
428
- return dateAdapter.isSame(range == null ? void 0 : range.startDate, range == null ? void 0 : range.endDate, "day");
429
- }
430
- return false;
431
- });
432
- },
433
- [dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
434
- );
435
- const isSelectedStart = react.useCallback(
436
- (date) => {
437
- if (selectionVariant === "single") {
438
- return false;
439
- }
440
- const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
441
- return dateRanges.some((range) => {
442
- if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && dateAdapter.isValid(range.startDate) && !isOutsideAllowedDates(range.startDate)) {
443
- return dateAdapter.isSame(range.startDate, date, "day");
444
- }
445
- return false;
446
- });
447
- },
448
- [dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
449
- );
450
- const isSelectedSpan = react.useCallback(
451
- (date) => {
452
- if (selectionVariant === "single") {
453
- return false;
454
- }
455
- const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
456
- return dateRanges.some((range) => {
457
- if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && dateAdapter.isValid(range.startDate) && dateAdapter.isValid(range.endDate) && !isOutsideAllowedDates(range.startDate) && !isOutsideAllowedDates(range.endDate)) {
458
- return dateAdapter.compare(date, range.startDate) > 0 && dateAdapter.compare(date, range.endDate) < 0;
459
- }
460
- return false;
461
- });
462
- },
463
- [dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
464
- );
465
- const isSelectedEnd = react.useCallback(
466
- (date) => {
467
- if (selectionVariant === "single") {
468
- return false;
469
- }
470
- const dateRanges = Array.isArray(selectedDate) ? selectedDate : [selectedDate];
471
- return dateRanges.some((range) => {
472
- if ((selectionVariant === "range" || selectionVariant === "offset") && isDateRangeSelection(range) && dateAdapter.isValid(range.endDate) && !isOutsideAllowedDates(range.endDate)) {
473
- return dateAdapter.isSame(range.endDate, date, "day");
474
- }
475
- return false;
476
- });
477
- },
478
- [dateAdapter, isOutsideAllowedDates, selectionVariant, selectedDate]
479
- );
480
- return react.useMemo(
481
- () => ({
482
- state: {
483
- focusedDate,
484
- focusedDateRef,
485
- hoveredDate,
486
- selectedDate,
487
- focusableDates: getFocusableDates()
488
- },
489
- helpers: {
490
- isHovered,
491
- isSelected,
492
- setHoveredDate,
493
- isSameDay,
494
- setSelectedDate,
495
- isSelectedStart,
496
- isSelectedSpan,
497
- isSelectedEnd,
498
- isHoveredStart,
499
- isHoveredSpan,
500
- isHoveredEnd,
501
- isDaySelectable,
502
- setFocusedDate
503
- }
504
- }),
505
- [
506
- selectedDate,
507
- focusedDate,
508
- focusedDateRef,
509
- getFocusableDates,
510
- hoveredDate,
511
- isSelected,
512
- isHoveredStart,
513
- isHoveredSpan,
514
- isHoveredEnd,
515
- isSameDay,
516
- isSelectedStart,
517
- isSelectedSpan,
518
- isSelectedEnd,
519
- isDaySelectable,
520
- setFocusedDate,
521
- setHoveredDate,
522
- setSelectedDate
523
- ]
524
- );
525
- }
526
- function useCalendarSelectionDay({
527
- date
528
- }) {
529
- const {
530
- state: { selectionVariant },
531
- helpers: {
532
- setSelectedDate,
533
- isSameDay,
534
- isSelected,
535
- isSelectedStart,
536
- isSelectedSpan,
537
- isSelectedEnd,
538
- isHovered,
539
- isHoveredStart,
540
- isHoveredSpan,
541
- isHoveredEnd,
542
- isDaySelectable
543
- }
544
- } = CalendarContext.useCalendarContext();
545
- const handleClick = react.useCallback(
546
- (event) => {
547
- setSelectedDate(event, date);
548
- },
549
- [date, setSelectedDate]
550
- );
551
- const handleKeyDown = react.useCallback(
552
- (event) => {
553
- switch (event.key) {
554
- case "Space":
555
- case "Enter":
556
- setSelectedDate(event, date);
557
- event.preventDefault();
558
- }
559
- },
560
- [date, setSelectedDate]
561
- );
562
- const selected = isSelected(date);
563
- const selectedStart = isSelectedStart(date);
564
- const selectedSpan = isSelectedSpan(date);
565
- const selectedEnd = isSelectedEnd(date);
566
- const selectedOnSameDay = isSameDay(date);
567
- const hovered = isHovered(date);
568
- const hoveredStart = isHoveredStart(date);
569
- const hoveredSpan = isHoveredSpan(date);
570
- const hoveredEnd = isHoveredEnd(date);
571
- return {
572
- handleClick,
573
- handleKeyDown,
574
- status: {
575
- hovered,
576
- selected,
577
- selectedStart,
578
- selectedSpan,
579
- selectedEnd,
580
- hoveredStart,
581
- hoveredSpan,
582
- hoveredEnd
583
- },
584
- dayProps: {
585
- className: clsx.clsx({
586
- [withBaseName("selected")]: selectionVariant === "single" ? selected : void 0,
587
- [withBaseName("selectedStart")]: selectionVariant !== "single" ? selectedStart : void 0,
588
- [withBaseName("selectedSpan")]: selectionVariant !== "single" ? selectedSpan : void 0,
589
- [withBaseName("selectedEnd")]: selectionVariant !== "single" ? selectedEnd : void 0,
590
- [withBaseName("selectedSameDay")]: selectionVariant !== "single" && selectedOnSameDay,
591
- [withBaseName("hoveredStart")]: selectionVariant !== "single" && hoveredStart,
592
- [withBaseName("hoveredSpan")]: selectionVariant !== "single" && hoveredSpan,
593
- [withBaseName("hoveredEnd")]: selectionVariant !== "single" && hoveredEnd
594
- }),
595
- "aria-pressed": selected || selectedEnd || selectedStart || selectedSpan ? "true" : void 0,
596
- "aria-disabled": isDaySelectable && !isDaySelectable(date) ? "true" : void 0
597
- }
598
- };
599
- }
600
-
601
- exports.isDateRangeSelection = isDateRangeSelection;
602
- exports.useCalendarSelection = useCalendarSelection;
603
- exports.useCalendarSelectionDay = useCalendarSelectionDay;
604
- //# sourceMappingURL=useCalendarSelection.js.map