@salt-ds/lab 1.0.0-alpha.51 → 1.0.0-alpha.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/css/salt-lab.css +532 -303
  2. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +3 -2
  3. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  4. package/dist-cjs/calendar/Calendar.css.js +1 -1
  5. package/dist-cjs/calendar/Calendar.js +57 -39
  6. package/dist-cjs/calendar/Calendar.js.map +1 -1
  7. package/dist-cjs/calendar/CalendarDateGrid.css.js +6 -0
  8. package/dist-cjs/calendar/CalendarDateGrid.css.js.map +1 -0
  9. package/dist-cjs/calendar/{internal/CalendarCarousel.js → CalendarDateGrid.js} +39 -16
  10. package/dist-cjs/calendar/CalendarDateGrid.js.map +1 -0
  11. package/dist-cjs/calendar/CalendarNavigation.css.js +6 -0
  12. package/dist-cjs/calendar/CalendarNavigation.js +314 -0
  13. package/dist-cjs/calendar/CalendarNavigation.js.map +1 -0
  14. package/dist-cjs/calendar/{internal/CalendarWeekHeader.js → CalendarWeekHeader.js} +6 -5
  15. package/dist-cjs/calendar/CalendarWeekHeader.js.map +1 -0
  16. package/dist-cjs/calendar/formatDate.js +56 -0
  17. package/dist-cjs/calendar/formatDate.js.map +1 -0
  18. package/dist-cjs/calendar/internal/CalendarDay.css.js +1 -1
  19. package/dist-cjs/calendar/internal/CalendarDay.js +45 -33
  20. package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
  21. package/dist-cjs/calendar/internal/CalendarMonth.js +3 -2
  22. package/dist-cjs/calendar/internal/CalendarMonth.js.map +1 -1
  23. package/dist-cjs/calendar/internal/useFocusManagement.js +7 -4
  24. package/dist-cjs/calendar/internal/useFocusManagement.js.map +1 -1
  25. package/dist-cjs/calendar/internal/utils.js +28 -23
  26. package/dist-cjs/calendar/internal/utils.js.map +1 -1
  27. package/dist-cjs/calendar/useCalendar.js +90 -43
  28. package/dist-cjs/calendar/useCalendar.js.map +1 -1
  29. package/dist-cjs/calendar/useCalendarDay.js +19 -10
  30. package/dist-cjs/calendar/useCalendarDay.js.map +1 -1
  31. package/dist-cjs/calendar/useCalendarSelection.js +333 -0
  32. package/dist-cjs/calendar/useCalendarSelection.js.map +1 -0
  33. package/dist-cjs/carousel/Carousel.js +5 -5
  34. package/dist-cjs/carousel/Carousel.js.map +1 -1
  35. package/dist-cjs/cascading-menu/CascadingMenuItem.js +2 -2
  36. package/dist-cjs/cascading-menu/CascadingMenuItem.js.map +1 -1
  37. package/dist-cjs/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  38. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  39. package/dist-cjs/combo-box-deprecated/ComboBox.css.js +1 -1
  40. package/dist-cjs/common-hooks/useCollectionItems.js.map +1 -1
  41. package/dist-cjs/contact-details/ContactMetadata.js +2 -2
  42. package/dist-cjs/contact-details/ContactMetadata.js.map +1 -1
  43. package/dist-cjs/content-status/ContentStatus.css.js +1 -1
  44. package/dist-cjs/date-input/DateInput.css.js +1 -1
  45. package/dist-cjs/date-input/DateInputRange.js +357 -0
  46. package/dist-cjs/date-input/DateInputRange.js.map +1 -0
  47. package/dist-cjs/date-input/DateInputSingle.js +231 -0
  48. package/dist-cjs/date-input/DateInputSingle.js.map +1 -0
  49. package/dist-cjs/date-input/utils.js +65 -0
  50. package/dist-cjs/date-input/utils.js.map +1 -0
  51. package/dist-cjs/date-picker/DatePicker.js +74 -149
  52. package/dist-cjs/date-picker/DatePicker.js.map +1 -1
  53. package/dist-cjs/date-picker/DatePickerActions.css.js +6 -0
  54. package/dist-cjs/date-picker/DatePickerActions.css.js.map +1 -0
  55. package/dist-cjs/date-picker/DatePickerActions.js +106 -0
  56. package/dist-cjs/date-picker/DatePickerActions.js.map +1 -0
  57. package/dist-cjs/date-picker/DatePickerContext.js +23 -17
  58. package/dist-cjs/date-picker/DatePickerContext.js.map +1 -1
  59. package/dist-cjs/date-picker/DatePickerOverlay.css.js +6 -0
  60. package/dist-cjs/date-picker/DatePickerOverlay.css.js.map +1 -0
  61. package/dist-cjs/date-picker/DatePickerOverlay.js +50 -0
  62. package/dist-cjs/date-picker/DatePickerOverlay.js.map +1 -0
  63. package/dist-cjs/date-picker/DatePickerOverlayProvider.js +105 -0
  64. package/dist-cjs/date-picker/DatePickerOverlayProvider.js.map +1 -0
  65. package/dist-cjs/date-picker/DatePickerPanel.css.js +1 -1
  66. package/dist-cjs/date-picker/DatePickerRangeInput.js +119 -0
  67. package/dist-cjs/date-picker/DatePickerRangeInput.js.map +1 -0
  68. package/dist-cjs/date-picker/DatePickerRangePanel.js +230 -0
  69. package/dist-cjs/date-picker/DatePickerRangePanel.js.map +1 -0
  70. package/dist-cjs/date-picker/DatePickerSingleInput.js +98 -0
  71. package/dist-cjs/date-picker/DatePickerSingleInput.js.map +1 -0
  72. package/dist-cjs/date-picker/DatePickerSinglePanel.js +152 -0
  73. package/dist-cjs/date-picker/DatePickerSinglePanel.js.map +1 -0
  74. package/dist-cjs/date-picker/useDatePicker.js +207 -0
  75. package/dist-cjs/date-picker/useDatePicker.js.map +1 -0
  76. package/dist-cjs/dropdown/DropdownButton.js +4 -2
  77. package/dist-cjs/dropdown/DropdownButton.js.map +1 -1
  78. package/dist-cjs/dropdown/useDropdown.js.map +1 -1
  79. package/dist-cjs/form-field-legacy/FormLabel.js.map +1 -1
  80. package/dist-cjs/index.js +53 -10
  81. package/dist-cjs/index.js.map +1 -1
  82. package/dist-cjs/list/List.js.map +1 -1
  83. package/dist-cjs/menu-button/MenuButtonTrigger.css.js +1 -1
  84. package/dist-cjs/menu-button/MenuButtonTrigger.js +2 -2
  85. package/dist-cjs/menu-button/MenuButtonTrigger.js.map +1 -1
  86. package/dist-cjs/query-input/QueryInput.css.js +1 -1
  87. package/dist-cjs/query-input/internal/CategoryListItem.js +2 -2
  88. package/dist-cjs/query-input/internal/CategoryListItem.js.map +1 -1
  89. package/dist-cjs/query-input/internal/ValueList.js +2 -2
  90. package/dist-cjs/query-input/internal/ValueList.js.map +1 -1
  91. package/dist-cjs/search-input/SearchInput.js +2 -1
  92. package/dist-cjs/search-input/SearchInput.js.map +1 -1
  93. package/dist-cjs/slider/Slider.css.js +1 -1
  94. package/dist-cjs/slider/Slider.js +53 -105
  95. package/dist-cjs/slider/Slider.js.map +1 -1
  96. package/dist-cjs/slider/internal/SliderContext.js +21 -0
  97. package/dist-cjs/slider/internal/SliderContext.js.map +1 -0
  98. package/dist-cjs/slider/internal/SliderMarks.js +31 -0
  99. package/dist-cjs/slider/internal/SliderMarks.js.map +1 -0
  100. package/dist-cjs/slider/internal/SliderSelection.js +17 -10
  101. package/dist-cjs/slider/internal/SliderSelection.js.map +1 -1
  102. package/dist-cjs/slider/internal/SliderThumb.js +77 -0
  103. package/dist-cjs/slider/internal/SliderThumb.js.map +1 -0
  104. package/dist-cjs/slider/internal/SliderTrack.js +91 -0
  105. package/dist-cjs/slider/internal/SliderTrack.js.map +1 -0
  106. package/dist-cjs/slider/internal/useKeyDownThumb.js +53 -0
  107. package/dist-cjs/slider/internal/useKeyDownThumb.js.map +1 -0
  108. package/dist-cjs/slider/internal/utils.js +78 -116
  109. package/dist-cjs/slider/internal/utils.js.map +1 -1
  110. package/dist-cjs/static-list/StaticList.css.js +6 -0
  111. package/dist-cjs/static-list/StaticList.css.js.map +1 -0
  112. package/dist-cjs/static-list/StaticList.js +32 -0
  113. package/dist-cjs/static-list/StaticList.js.map +1 -0
  114. package/dist-cjs/static-list/StaticListItem.css.js +6 -0
  115. package/dist-cjs/static-list/StaticListItem.css.js.map +1 -0
  116. package/dist-cjs/static-list/StaticListItem.js +33 -0
  117. package/dist-cjs/static-list/StaticListItem.js.map +1 -0
  118. package/dist-cjs/static-list/StaticListItemContent.css.js +6 -0
  119. package/dist-cjs/static-list/StaticListItemContent.css.js.map +1 -0
  120. package/dist-cjs/static-list/StaticListItemContent.js +30 -0
  121. package/dist-cjs/static-list/StaticListItemContent.js.map +1 -0
  122. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js +8 -8
  123. package/dist-cjs/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  124. package/dist-cjs/stepper-input/StepperInput.css.js +1 -1
  125. package/dist-cjs/stepper-input/StepperInput.js +214 -29
  126. package/dist-cjs/stepper-input/StepperInput.js.map +1 -1
  127. package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js +54 -0
  128. package/dist-cjs/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -0
  129. package/dist-cjs/stepper-input/internal/utils.js +43 -0
  130. package/dist-cjs/stepper-input/internal/utils.js.map +1 -0
  131. package/dist-cjs/stepper-input/useStepperInput.js +88 -172
  132. package/dist-cjs/stepper-input/useStepperInput.js.map +1 -1
  133. package/dist-cjs/tabs/Tab.js +14 -12
  134. package/dist-cjs/tabs/Tab.js.map +1 -1
  135. package/dist-cjs/tabs/TabActivationIndicator.css.js +1 -1
  136. package/dist-cjs/tabs/Tabstrip.js +2 -1
  137. package/dist-cjs/tabs/Tabstrip.js.map +1 -1
  138. package/dist-cjs/tabs/useTabs.js.map +1 -1
  139. package/dist-cjs/tabs-next/OverflowMenu.js +2 -2
  140. package/dist-cjs/tabs-next/OverflowMenu.js.map +1 -1
  141. package/dist-cjs/tokenized-input/TokenizedInputBase.js +3 -3
  142. package/dist-cjs/tokenized-input/TokenizedInputBase.js.map +1 -1
  143. package/dist-cjs/tokenized-input/internal/InputPill.js +2 -2
  144. package/dist-cjs/tokenized-input/internal/InputPill.js.map +1 -1
  145. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js +3 -3
  146. package/dist-cjs/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  147. package/dist-cjs/tokenized-input-next/internal/InputPill.js +2 -2
  148. package/dist-cjs/tokenized-input-next/internal/InputPill.js.map +1 -1
  149. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js +2 -2
  150. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  151. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js +3 -2
  152. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +1 -1
  153. package/dist-es/calendar/Calendar.css.js +1 -1
  154. package/dist-es/calendar/Calendar.js +60 -42
  155. package/dist-es/calendar/Calendar.js.map +1 -1
  156. package/dist-es/calendar/CalendarDateGrid.css.js +4 -0
  157. package/dist-es/calendar/CalendarDateGrid.css.js.map +1 -0
  158. package/dist-es/calendar/{internal/CalendarCarousel.js → CalendarDateGrid.js} +39 -16
  159. package/dist-es/calendar/CalendarDateGrid.js.map +1 -0
  160. package/dist-es/calendar/CalendarNavigation.css.js +4 -0
  161. package/dist-es/calendar/CalendarNavigation.js +310 -0
  162. package/dist-es/calendar/CalendarNavigation.js.map +1 -0
  163. package/dist-es/calendar/{internal/CalendarWeekHeader.js → CalendarWeekHeader.js} +6 -5
  164. package/dist-es/calendar/CalendarWeekHeader.js.map +1 -0
  165. package/dist-es/calendar/formatDate.js +51 -0
  166. package/dist-es/calendar/formatDate.js.map +1 -0
  167. package/dist-es/calendar/internal/CalendarDay.css.js +1 -1
  168. package/dist-es/calendar/internal/CalendarDay.js +45 -33
  169. package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
  170. package/dist-es/calendar/internal/CalendarMonth.js +3 -2
  171. package/dist-es/calendar/internal/CalendarMonth.js.map +1 -1
  172. package/dist-es/calendar/internal/useFocusManagement.js +7 -4
  173. package/dist-es/calendar/internal/useFocusManagement.js.map +1 -1
  174. package/dist-es/calendar/internal/utils.js +29 -23
  175. package/dist-es/calendar/internal/utils.js.map +1 -1
  176. package/dist-es/calendar/useCalendar.js +92 -45
  177. package/dist-es/calendar/useCalendar.js.map +1 -1
  178. package/dist-es/calendar/useCalendarDay.js +20 -11
  179. package/dist-es/calendar/useCalendarDay.js.map +1 -1
  180. package/dist-es/calendar/useCalendarSelection.js +323 -0
  181. package/dist-es/calendar/useCalendarSelection.js.map +1 -0
  182. package/dist-es/carousel/Carousel.js +6 -6
  183. package/dist-es/carousel/Carousel.js.map +1 -1
  184. package/dist-es/cascading-menu/CascadingMenuItem.js +3 -3
  185. package/dist-es/cascading-menu/CascadingMenuItem.js.map +1 -1
  186. package/dist-es/cascading-menu/internal/useMouseHandlers.js.map +1 -1
  187. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  188. package/dist-es/combo-box-deprecated/ComboBox.css.js +1 -1
  189. package/dist-es/common-hooks/useCollectionItems.js.map +1 -1
  190. package/dist-es/contact-details/ContactMetadata.js +3 -3
  191. package/dist-es/contact-details/ContactMetadata.js.map +1 -1
  192. package/dist-es/content-status/ContentStatus.css.js +1 -1
  193. package/dist-es/date-input/DateInput.css.js +1 -1
  194. package/dist-es/date-input/DateInputRange.js +353 -0
  195. package/dist-es/date-input/DateInputRange.js.map +1 -0
  196. package/dist-es/date-input/DateInputSingle.js +227 -0
  197. package/dist-es/date-input/DateInputSingle.js.map +1 -0
  198. package/dist-es/date-input/utils.js +57 -0
  199. package/dist-es/date-input/utils.js.map +1 -0
  200. package/dist-es/date-picker/DatePicker.js +77 -153
  201. package/dist-es/date-picker/DatePicker.js.map +1 -1
  202. package/dist-es/date-picker/DatePickerActions.css.js +4 -0
  203. package/dist-es/date-picker/DatePickerActions.css.js.map +1 -0
  204. package/dist-es/date-picker/DatePickerActions.js +102 -0
  205. package/dist-es/date-picker/DatePickerActions.js.map +1 -0
  206. package/dist-es/date-picker/DatePickerContext.js +22 -17
  207. package/dist-es/date-picker/DatePickerContext.js.map +1 -1
  208. package/dist-es/date-picker/DatePickerOverlay.css.js +4 -0
  209. package/dist-es/date-picker/DatePickerOverlay.css.js.map +1 -0
  210. package/dist-es/date-picker/DatePickerOverlay.js +46 -0
  211. package/dist-es/date-picker/DatePickerOverlay.js.map +1 -0
  212. package/dist-es/date-picker/DatePickerOverlayProvider.js +100 -0
  213. package/dist-es/date-picker/DatePickerOverlayProvider.js.map +1 -0
  214. package/dist-es/date-picker/DatePickerPanel.css.js +1 -1
  215. package/dist-es/date-picker/DatePickerRangeInput.js +115 -0
  216. package/dist-es/date-picker/DatePickerRangeInput.js.map +1 -0
  217. package/dist-es/date-picker/DatePickerRangePanel.js +222 -0
  218. package/dist-es/date-picker/DatePickerRangePanel.js.map +1 -0
  219. package/dist-es/date-picker/DatePickerSingleInput.js +94 -0
  220. package/dist-es/date-picker/DatePickerSingleInput.js.map +1 -0
  221. package/dist-es/date-picker/DatePickerSinglePanel.js +144 -0
  222. package/dist-es/date-picker/DatePickerSinglePanel.js.map +1 -0
  223. package/dist-es/date-picker/useDatePicker.js +203 -0
  224. package/dist-es/date-picker/useDatePicker.js.map +1 -0
  225. package/dist-es/dropdown/DropdownButton.js +6 -4
  226. package/dist-es/dropdown/DropdownButton.js.map +1 -1
  227. package/dist-es/dropdown/useDropdown.js.map +1 -1
  228. package/dist-es/form-field-legacy/FormLabel.js.map +1 -1
  229. package/dist-es/index.js +19 -3
  230. package/dist-es/index.js.map +1 -1
  231. package/dist-es/list/List.js.map +1 -1
  232. package/dist-es/menu-button/MenuButtonTrigger.css.js +1 -1
  233. package/dist-es/menu-button/MenuButtonTrigger.js +3 -3
  234. package/dist-es/menu-button/MenuButtonTrigger.js.map +1 -1
  235. package/dist-es/query-input/QueryInput.css.js +1 -1
  236. package/dist-es/query-input/internal/CategoryListItem.js +3 -3
  237. package/dist-es/query-input/internal/CategoryListItem.js.map +1 -1
  238. package/dist-es/query-input/internal/ValueList.js +3 -3
  239. package/dist-es/query-input/internal/ValueList.js.map +1 -1
  240. package/dist-es/search-input/SearchInput.js +3 -2
  241. package/dist-es/search-input/SearchInput.js.map +1 -1
  242. package/dist-es/slider/Slider.css.js +1 -1
  243. package/dist-es/slider/Slider.js +55 -107
  244. package/dist-es/slider/Slider.js.map +1 -1
  245. package/dist-es/slider/internal/SliderContext.js +16 -0
  246. package/dist-es/slider/internal/SliderContext.js.map +1 -0
  247. package/dist-es/slider/internal/SliderMarks.js +27 -0
  248. package/dist-es/slider/internal/SliderMarks.js.map +1 -0
  249. package/dist-es/slider/internal/SliderSelection.js +17 -10
  250. package/dist-es/slider/internal/SliderSelection.js.map +1 -1
  251. package/dist-es/slider/internal/SliderThumb.js +73 -0
  252. package/dist-es/slider/internal/SliderThumb.js.map +1 -0
  253. package/dist-es/slider/internal/SliderTrack.js +87 -0
  254. package/dist-es/slider/internal/SliderTrack.js.map +1 -0
  255. package/dist-es/slider/internal/useKeyDownThumb.js +49 -0
  256. package/dist-es/slider/internal/useKeyDownThumb.js.map +1 -0
  257. package/dist-es/slider/internal/utils.js +70 -111
  258. package/dist-es/slider/internal/utils.js.map +1 -1
  259. package/dist-es/static-list/StaticList.css.js +4 -0
  260. package/dist-es/static-list/StaticList.css.js.map +1 -0
  261. package/dist-es/static-list/StaticList.js +28 -0
  262. package/dist-es/static-list/StaticList.js.map +1 -0
  263. package/dist-es/static-list/StaticListItem.css.js +4 -0
  264. package/dist-es/static-list/StaticListItem.css.js.map +1 -0
  265. package/dist-es/static-list/StaticListItem.js +29 -0
  266. package/dist-es/static-list/StaticListItem.js.map +1 -0
  267. package/dist-es/static-list/StaticListItemContent.css.js +4 -0
  268. package/dist-es/static-list/StaticListItemContent.css.js.map +1 -0
  269. package/dist-es/static-list/StaticListItemContent.js +26 -0
  270. package/dist-es/static-list/StaticListItemContent.js.map +1 -0
  271. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js +9 -9
  272. package/dist-es/stepped-tracker/TrackerStep/TrackerStep.js.map +1 -1
  273. package/dist-es/stepper-input/StepperInput.css.js +1 -1
  274. package/dist-es/stepper-input/StepperInput.js +216 -31
  275. package/dist-es/stepper-input/StepperInput.js.map +1 -1
  276. package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js +50 -0
  277. package/dist-es/stepper-input/internal/useActivateWhileMouseDown.js.map +1 -0
  278. package/dist-es/stepper-input/internal/utils.js +32 -0
  279. package/dist-es/stepper-input/internal/utils.js.map +1 -0
  280. package/dist-es/stepper-input/useStepperInput.js +88 -172
  281. package/dist-es/stepper-input/useStepperInput.js.map +1 -1
  282. package/dist-es/tabs/Tab.js +15 -13
  283. package/dist-es/tabs/Tab.js.map +1 -1
  284. package/dist-es/tabs/TabActivationIndicator.css.js +1 -1
  285. package/dist-es/tabs/Tabstrip.js +4 -3
  286. package/dist-es/tabs/Tabstrip.js.map +1 -1
  287. package/dist-es/tabs/useTabs.js.map +1 -1
  288. package/dist-es/tabs-next/OverflowMenu.js +3 -3
  289. package/dist-es/tabs-next/OverflowMenu.js.map +1 -1
  290. package/dist-es/tokenized-input/TokenizedInputBase.js +3 -3
  291. package/dist-es/tokenized-input/TokenizedInputBase.js.map +1 -1
  292. package/dist-es/tokenized-input/internal/InputPill.js +2 -2
  293. package/dist-es/tokenized-input/internal/InputPill.js.map +1 -1
  294. package/dist-es/tokenized-input-next/TokenizedInputNext.js +3 -3
  295. package/dist-es/tokenized-input-next/TokenizedInputNext.js.map +1 -1
  296. package/dist-es/tokenized-input-next/internal/InputPill.js +2 -2
  297. package/dist-es/tokenized-input-next/internal/InputPill.js.map +1 -1
  298. package/dist-es/toolbar/overflow-panel/OverflowPanel.js +3 -3
  299. package/dist-es/toolbar/overflow-panel/OverflowPanel.js.map +1 -1
  300. package/dist-types/calendar/Calendar.d.ts +55 -11
  301. package/dist-types/calendar/CalendarDateGrid.d.ts +10 -0
  302. package/dist-types/calendar/CalendarNavigation.d.ts +57 -0
  303. package/dist-types/calendar/CalendarWeekHeader.d.ts +5 -0
  304. package/dist-types/calendar/formatDate.d.ts +14 -0
  305. package/dist-types/calendar/index.d.ts +5 -1
  306. package/dist-types/calendar/internal/CalendarDay.d.ts +2 -1
  307. package/dist-types/calendar/internal/CalendarMonth.d.ts +9 -1
  308. package/dist-types/calendar/internal/useFocusManagement.d.ts +2 -1
  309. package/dist-types/calendar/internal/utils.d.ts +7 -8
  310. package/dist-types/calendar/useCalendar.d.ts +100 -16
  311. package/dist-types/calendar/useCalendarDay.d.ts +38 -0
  312. package/dist-types/calendar/useCalendarSelection.d.ts +182 -0
  313. package/dist-types/date-input/DateInputRange.d.ts +150 -0
  314. package/dist-types/date-input/DateInputSingle.d.ts +117 -0
  315. package/dist-types/date-input/index.d.ts +3 -1
  316. package/dist-types/date-input/utils.d.ts +43 -0
  317. package/dist-types/date-picker/DatePicker.d.ts +20 -62
  318. package/dist-types/date-picker/DatePickerActions.d.ts +80 -0
  319. package/dist-types/date-picker/DatePickerContext.d.ts +180 -17
  320. package/dist-types/date-picker/DatePickerOverlay.d.ts +11 -0
  321. package/dist-types/date-picker/DatePickerOverlayProvider.d.ts +67 -0
  322. package/dist-types/date-picker/DatePickerRangeInput.d.ts +7 -0
  323. package/dist-types/date-picker/DatePickerRangePanel.d.ts +80 -0
  324. package/dist-types/date-picker/DatePickerSingleInput.d.ts +7 -0
  325. package/dist-types/date-picker/DatePickerSinglePanel.d.ts +50 -0
  326. package/dist-types/date-picker/index.d.ts +7 -0
  327. package/dist-types/date-picker/useDatePicker.d.ts +112 -0
  328. package/dist-types/index.d.ts +1 -0
  329. package/dist-types/slider/Slider.d.ts +23 -10
  330. package/dist-types/slider/internal/SliderContext.d.ts +11 -0
  331. package/dist-types/slider/internal/SliderMarks.d.ts +7 -0
  332. package/dist-types/slider/internal/SliderSelection.d.ts +3 -3
  333. package/dist-types/slider/internal/SliderThumb.d.ts +8 -0
  334. package/dist-types/slider/internal/SliderTrack.d.ts +4 -0
  335. package/dist-types/slider/internal/index.d.ts +3 -0
  336. package/dist-types/slider/internal/useKeyDownThumb.d.ts +2 -0
  337. package/dist-types/slider/internal/utils.d.ts +18 -10
  338. package/dist-types/slider/types.d.ts +3 -1
  339. package/dist-types/static-list/StaticList.d.ts +8 -0
  340. package/dist-types/static-list/StaticListItem.d.ts +4 -0
  341. package/dist-types/static-list/StaticListItemContent.d.ts +8 -0
  342. package/dist-types/static-list/index.d.ts +3 -0
  343. package/dist-types/stepper-input/StepperInput.d.ts +66 -19
  344. package/dist-types/stepper-input/internal/useActivateWhileMouseDown.d.ts +5 -0
  345. package/dist-types/stepper-input/internal/utils.d.ts +8 -0
  346. package/dist-types/stepper-input/useStepperInput.d.ts +21 -8
  347. package/package.json +3 -3
  348. package/dist-cjs/calendar/internal/CalendarCarousel.css.js +0 -6
  349. package/dist-cjs/calendar/internal/CalendarCarousel.css.js.map +0 -1
  350. package/dist-cjs/calendar/internal/CalendarCarousel.js.map +0 -1
  351. package/dist-cjs/calendar/internal/CalendarNavigation.css.js +0 -6
  352. package/dist-cjs/calendar/internal/CalendarNavigation.js +0 -218
  353. package/dist-cjs/calendar/internal/CalendarNavigation.js.map +0 -1
  354. package/dist-cjs/calendar/internal/CalendarWeekHeader.js.map +0 -1
  355. package/dist-cjs/calendar/useSelection.js +0 -249
  356. package/dist-cjs/calendar/useSelection.js.map +0 -1
  357. package/dist-cjs/date-input/DateInput.js +0 -283
  358. package/dist-cjs/date-input/DateInput.js.map +0 -1
  359. package/dist-cjs/date-picker/DatePickerPanel.js +0 -155
  360. package/dist-cjs/date-picker/DatePickerPanel.js.map +0 -1
  361. package/dist-cjs/slider/internal/SliderHandle.js +0 -44
  362. package/dist-cjs/slider/internal/SliderHandle.js.map +0 -1
  363. package/dist-cjs/slider/internal/SliderMarkLabels.js +0 -45
  364. package/dist-cjs/slider/internal/SliderMarkLabels.js.map +0 -1
  365. package/dist-cjs/slider/internal/SliderRail.js +0 -25
  366. package/dist-cjs/slider/internal/SliderRail.js.map +0 -1
  367. package/dist-cjs/slider/internal/SliderRailMarks.js +0 -48
  368. package/dist-cjs/slider/internal/SliderRailMarks.js.map +0 -1
  369. package/dist-cjs/slider/internal/styles.js +0 -99
  370. package/dist-cjs/slider/internal/styles.js.map +0 -1
  371. package/dist-cjs/slider/internal/useSliderKeyDown.js +0 -50
  372. package/dist-cjs/slider/internal/useSliderKeyDown.js.map +0 -1
  373. package/dist-cjs/slider/internal/useSliderMouseDown.js +0 -96
  374. package/dist-cjs/slider/internal/useSliderMouseDown.js.map +0 -1
  375. package/dist-cjs/stepper-input/internal/useSpinner.js +0 -33
  376. package/dist-cjs/stepper-input/internal/useSpinner.js.map +0 -1
  377. package/dist-es/calendar/internal/CalendarCarousel.css.js +0 -4
  378. package/dist-es/calendar/internal/CalendarCarousel.css.js.map +0 -1
  379. package/dist-es/calendar/internal/CalendarCarousel.js.map +0 -1
  380. package/dist-es/calendar/internal/CalendarNavigation.css.js +0 -4
  381. package/dist-es/calendar/internal/CalendarNavigation.js +0 -214
  382. package/dist-es/calendar/internal/CalendarNavigation.js.map +0 -1
  383. package/dist-es/calendar/internal/CalendarWeekHeader.js.map +0 -1
  384. package/dist-es/calendar/useSelection.js +0 -242
  385. package/dist-es/calendar/useSelection.js.map +0 -1
  386. package/dist-es/date-input/DateInput.js +0 -279
  387. package/dist-es/date-input/DateInput.js.map +0 -1
  388. package/dist-es/date-picker/DatePickerPanel.js +0 -151
  389. package/dist-es/date-picker/DatePickerPanel.js.map +0 -1
  390. package/dist-es/slider/internal/SliderHandle.js +0 -40
  391. package/dist-es/slider/internal/SliderHandle.js.map +0 -1
  392. package/dist-es/slider/internal/SliderMarkLabels.js +0 -41
  393. package/dist-es/slider/internal/SliderMarkLabels.js.map +0 -1
  394. package/dist-es/slider/internal/SliderRail.js +0 -21
  395. package/dist-es/slider/internal/SliderRail.js.map +0 -1
  396. package/dist-es/slider/internal/SliderRailMarks.js +0 -44
  397. package/dist-es/slider/internal/SliderRailMarks.js.map +0 -1
  398. package/dist-es/slider/internal/styles.js +0 -91
  399. package/dist-es/slider/internal/styles.js.map +0 -1
  400. package/dist-es/slider/internal/useSliderKeyDown.js +0 -46
  401. package/dist-es/slider/internal/useSliderKeyDown.js.map +0 -1
  402. package/dist-es/slider/internal/useSliderMouseDown.js +0 -92
  403. package/dist-es/slider/internal/useSliderMouseDown.js.map +0 -1
  404. package/dist-es/stepper-input/internal/useSpinner.js +0 -29
  405. package/dist-es/stepper-input/internal/useSpinner.js.map +0 -1
  406. package/dist-types/calendar/internal/CalendarCarousel.d.ts +0 -3
  407. package/dist-types/calendar/internal/CalendarNavigation.d.ts +0 -16
  408. package/dist-types/calendar/internal/CalendarWeekHeader.d.ts +0 -5
  409. package/dist-types/calendar/useSelection.d.ts +0 -78
  410. package/dist-types/date-input/DateInput.d.ts +0 -60
  411. package/dist-types/date-picker/DatePickerPanel.d.ts +0 -10
  412. package/dist-types/slider/internal/SliderHandle.d.ts +0 -11
  413. package/dist-types/slider/internal/SliderMarkLabels.d.ts +0 -7
  414. package/dist-types/slider/internal/SliderRail.d.ts +0 -1
  415. package/dist-types/slider/internal/SliderRailMarks.d.ts +0 -12
  416. package/dist-types/slider/internal/styles.d.ts +0 -10
  417. package/dist-types/slider/internal/useSliderKeyDown.d.ts +0 -4
  418. package/dist-types/slider/internal/useSliderMouseDown.d.ts +0 -4
  419. package/dist-types/stepper-input/internal/useSpinner.d.ts +0 -5
  420. /package/dist-cjs/calendar/{internal/CalendarNavigation.css.js.map → CalendarNavigation.css.js.map} +0 -0
  421. /package/dist-cjs/calendar/{internal/CalendarWeekHeader.css.js → CalendarWeekHeader.css.js} +0 -0
  422. /package/dist-cjs/calendar/{internal/CalendarWeekHeader.css.js.map → CalendarWeekHeader.css.js.map} +0 -0
  423. /package/dist-es/calendar/{internal/CalendarNavigation.css.js.map → CalendarNavigation.css.js.map} +0 -0
  424. /package/dist-es/calendar/{internal/CalendarWeekHeader.css.js → CalendarWeekHeader.css.js} +0 -0
  425. /package/dist-es/calendar/{internal/CalendarWeekHeader.css.js.map → CalendarWeekHeader.css.js.map} +0 -0
@@ -0,0 +1,117 @@
1
+ import { type DateValue } from "@internationalized/date";
2
+ import { type ComponentPropsWithoutRef, type InputHTMLAttributes, type ReactNode, type RefObject, type SyntheticEvent } from "react";
3
+ import { type SingleDateSelection } from "../calendar";
4
+ /**
5
+ * Date error produced by DateInputSingle parser.
6
+ */
7
+ export declare type DateInputSingleParserError = string | false;
8
+ /**
9
+ * Date error produced by DateInputSingle parser.
10
+ */
11
+ export declare type DateInputSingleError = DateInputSingleParserError;
12
+ /**
13
+ * Return value of DateInputSingle parser.
14
+ * @template T
15
+ */
16
+ export interface DateInputSingleParserResult<T = DateValue | null> {
17
+ /**
18
+ * The parsed date value.
19
+ */
20
+ date: T;
21
+ /**
22
+ * The error encountered during parsing, if any.
23
+ */
24
+ error: DateInputSingleParserError;
25
+ }
26
+ /**
27
+ * Props for the DateInputSingle component.
28
+ * @template T
29
+ */
30
+ export interface DateInputSingleProps<T = SingleDateSelection> extends Omit<ComponentPropsWithoutRef<"div">, "defaultValue">, Pick<ComponentPropsWithoutRef<"input">, "disabled" | "value" | "defaultValue" | "placeholder"> {
31
+ /**
32
+ * The aria-label for accessibility.
33
+ */
34
+ ariaLabel?: string;
35
+ /**
36
+ * Styling variant with full border. Defaults to false.
37
+ */
38
+ bordered?: boolean;
39
+ /**
40
+ * The marker to use in an empty read-only DateInput.
41
+ * Use `''` to disable this feature. Defaults to '—'.
42
+ */
43
+ emptyReadOnlyMarker?: string;
44
+ /**
45
+ * End adornment component.
46
+ */
47
+ endAdornment?: ReactNode;
48
+ /**
49
+ * Attributes applied to the `input` element.
50
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dateInput#Attributes
51
+ */
52
+ inputProps?: InputHTMLAttributes<HTMLInputElement>;
53
+ /**
54
+ * If `true`, the component is read-only.
55
+ */
56
+ readOnly?: boolean;
57
+ /**
58
+ * Validation status.
59
+ */
60
+ validationStatus?: "error" | "warning" | "success";
61
+ /**
62
+ * Styling variant. Defaults to "primary".
63
+ */
64
+ variant?: "primary" | "secondary";
65
+ /**
66
+ * Function to format the input value.
67
+ */
68
+ format?: (date: DateValue | null) => string;
69
+ /**
70
+ * Reference for the input.
71
+ */
72
+ inputRef?: RefObject<HTMLInputElement>;
73
+ /**
74
+ * Input value. Use when the input value is controlled.
75
+ */
76
+ value?: string;
77
+ /**
78
+ * The initial input value. Use when the component is uncontrolled.
79
+ */
80
+ defaultValue?: string;
81
+ /**
82
+ * The date value. Use when the component is controlled.
83
+ */
84
+ date?: T | null;
85
+ /**
86
+ * The initial selected date value. Use when the component is uncontrolled.
87
+ */
88
+ defaultDate?: T | null;
89
+ /**
90
+ * Callback fired when the selected date changes.
91
+ * @param event - The synthetic event.
92
+ * @param date - The new date value.
93
+ * @param error - The date input single error.
94
+ */
95
+ onDateChange?: (event: SyntheticEvent, date: T | null, error: DateInputSingleError) => void;
96
+ /**
97
+ * Function to parse date string to valid `DateValue` or null, if invalid or empty.
98
+ * @param inputDate - The input date string.
99
+ * @returns The result of the date input single parser.
100
+ */
101
+ parse?: (inputDate: string) => DateInputSingleParserResult;
102
+ /**
103
+ * Called when input value changes, either due to user interaction or programmatic formatting of valid dates.
104
+ * @param newValue - The new date input value.
105
+ * @param isFormatted - Whether the value is formatted.
106
+ */
107
+ onDateValueChange?: (newValue: string, isFormatted: boolean) => void;
108
+ /**
109
+ * Locale of the entered date.
110
+ */
111
+ locale?: string;
112
+ /**
113
+ * Timezone of the entered date.
114
+ */
115
+ timeZone?: string;
116
+ }
117
+ export declare const DateInputSingle: import("react").ForwardRefExoticComponent<DateInputSingleProps<DateValue> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +1,3 @@
1
- export * from "./DateInput";
1
+ export * from "./DateInputSingle";
2
+ export * from "./DateInputRange";
3
+ export * from "./utils";
@@ -0,0 +1,43 @@
1
+ import { CalendarDateTime, type DateValue, type TimeFields, ZonedDateTime } from "@internationalized/date";
2
+ import type { DateRangeSelection, SingleDateSelection } from "../calendar";
3
+ export declare type RangeTimeFields = {
4
+ startTime?: TimeFields;
5
+ endTime?: TimeFields;
6
+ };
7
+ /**
8
+ * Parses a string into a CalendarDate.
9
+ * @param inputDate - The input date string.
10
+ * @returns An object containing the parsed date and any error encountered.
11
+ */
12
+ export declare function parseCalendarDate(inputDate: string): {
13
+ date: DateValue | null;
14
+ error: string | false;
15
+ };
16
+ /**
17
+ * Parses a string into a ZonedDateTime.
18
+ * @param inputDate - The input date string.
19
+ * @param timeZone - The time zone to use for parsing. Defaults to the local time zone.
20
+ * @returns An object containing the parsed date and any error encountered.
21
+ */
22
+ export declare function parseZonedDateTime(inputDate: string, timeZone?: string): {
23
+ date: DateValue | null;
24
+ error: string | false;
25
+ };
26
+ /**
27
+ * Checks if a date supports time fields.
28
+ * @param date - The date to check.
29
+ * @returns `true` if the date supports time fields, otherwise `false`.
30
+ */
31
+ export declare const dateSupportsTime: (date: DateValue) => date is CalendarDateTime | ZonedDateTime;
32
+ /**
33
+ * Extracts time fields from a date range selection.
34
+ * @param selectedDate - The selected date range.
35
+ * @returns An object containing the start and end time fields.
36
+ */
37
+ export declare function extractTimeFieldsFromDateRange(selectedDate: DateRangeSelection | null): RangeTimeFields;
38
+ /**
39
+ * Extracts time fields from a single date selection.
40
+ * @param selectedDate - The selected date.
41
+ * @returns The time fields of the selected date, if available.
42
+ */
43
+ export declare function extractTimeFieldsFromDate(selectedDate: SingleDateSelection | null): TimeFields | undefined;
@@ -1,66 +1,24 @@
1
- import { type ChangeEvent, type SyntheticEvent } from "react";
2
- import { type DateValue } from "@internationalized/date";
3
- import { type CalendarProps, type RangeSelectionValueType, type SingleSelectionValueType } from "../calendar";
4
- import { type DateInputProps } from "../date-input";
5
- export interface DatePickerProps<SelectionVariantType> extends DateInputProps<SelectionVariantType> {
6
- /**
7
- * Selection variant. Defaults to single select.
8
- */
9
- selectionVariant?: "default" | "range";
10
- /**
11
- * If `true`, the component will be disabled.
12
- */
13
- disabled?: boolean;
14
- /**
15
- * The selected date value. Use when the component is controlled.
16
- * Can be a single date or an object with start and end dates for range selection.
17
- */
18
- selectedDate?: SelectionVariantType;
19
- /**
20
- * The default date value. Use when the component is not controlled.
21
- * Can be a single date or an object with start and end dates for range selection.
22
- */
23
- defaultSelectedDate?: SelectionVariantType;
24
- /**
25
- * Props to be passed to the Calendar component.
26
- */
27
- CalendarProps?: Partial<Omit<CalendarProps, "selectionVariant" | "selectedDate" | "defaultSelectedDate" | "onSelectedDateChange">>;
28
- /**
29
- * Function to format the input value.
30
- */
31
- dateFormatter?: (input: DateValue | undefined) => string;
32
- /**
33
- * Callback function triggered when open state changes.
34
- */
35
- onOpenChange?: (newOpen: boolean) => void;
36
- /**
37
- * Display or hide the component.
38
- */
1
+ import { type ReactNode } from "react";
2
+ import { type UseDatePickerRangeProps, type UseDatePickerSingleProps } from "./useDatePicker";
3
+ /**
4
+ * Base props for DatePicker.
5
+ */
6
+ export interface DatePickerBaseProps {
7
+ className?: string;
8
+ children?: ReactNode;
9
+ /** the open/close state of the overlay. The open/close state will be controlled when this prop is provided. */
39
10
  open?: boolean;
40
11
  /**
41
- * The default open value. Use when the component is not controlled.
42
- */
43
- defaultOpen?: boolean;
44
- /**
45
- * Helper text to display in the panel
46
- */
47
- helperText?: string;
48
- /**
49
- * Validation status.
50
- */
51
- validationStatus?: "error" | "warning" | "success";
52
- /**
53
- * Callback fired when the selected date change.
54
- */
55
- onSelectionChange?: (event: SyntheticEvent, selectedDate?: SelectionVariantType) => void;
56
- /**
57
- * Callback fired when the input value change.
12
+ * the initial open/close state of the overlay, when the open/close state is un-controlled.
58
13
  */
59
- onChange?: SelectionVariantType extends SingleSelectionValueType ? (event: ChangeEvent<HTMLInputElement>, selectedDateInputValue?: string) => void : (event: ChangeEvent<HTMLInputElement>, startDateInputValue?: string, endDateInputValue?: string) => void;
60
- /**
61
- * Number of Calendars to be shown if selectionVariant is range.
62
- * 2 is the default value.
63
- */
64
- visibleMonths?: 1 | 2;
14
+ defaultOpen?: DatePickerBaseProps["open"];
15
+ }
16
+ export interface DatePickerSingleProps extends DatePickerBaseProps, UseDatePickerSingleProps {
17
+ selectionVariant: "single";
18
+ }
19
+ export interface DatePickerRangeProps extends DatePickerBaseProps, UseDatePickerRangeProps {
20
+ selectionVariant: "range";
65
21
  }
66
- export declare const DatePicker: import("react").ForwardRefExoticComponent<DatePickerProps<DateValue | RangeSelectionValueType> & import("react").RefAttributes<HTMLDivElement>>;
22
+ export declare type DatePickerProps = DatePickerSingleProps | DatePickerRangeProps;
23
+ export declare const DatePickerMain: import("react").ForwardRefExoticComponent<DatePickerProps & import("react").RefAttributes<HTMLDivElement>>;
24
+ export declare const DatePicker: import("react").ForwardRefExoticComponent<DatePickerProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,80 @@
1
+ import { type ButtonProps } from "@salt-ds/core";
2
+ import React, { type ComponentPropsWithoutRef, type SyntheticEvent, type Ref } from "react";
3
+ import type { DateRangeSelection, SingleDateSelection } from "../calendar";
4
+ import "./DatePickerActions.css";
5
+ /**
6
+ * Base props for DatePicker actions.
7
+ */
8
+ export interface DatePickerActionsBaseProps extends ComponentPropsWithoutRef<"div"> {
9
+ /**
10
+ * Callback fired when the cancel action is triggered.
11
+ * @param _event - The synthetic event.
12
+ */
13
+ onCancel?: (_event: SyntheticEvent) => void;
14
+ /**
15
+ * Ref to apply button
16
+ */
17
+ applyButtonRef?: Ref<HTMLButtonElement>;
18
+ /**
19
+ * Props for the apply button.
20
+ */
21
+ ApplyButtonProps?: ButtonProps;
22
+ /**
23
+ * Props for the cancel button.
24
+ */
25
+ CancelButtonProps?: ButtonProps;
26
+ /**
27
+ * Ref to cancel button
28
+ */
29
+ cancelButtonRef?: Ref<HTMLButtonElement>;
30
+ }
31
+ /**
32
+ * Props for the DatePicker actions component.
33
+ * @template SelectionVariant - The selection variant, either "single" or "range".
34
+ */
35
+ export declare type DatePickerActionsProps<SelectionVariant extends "single" | "range"> = SelectionVariant extends "single" ? DatePickerActionsBaseProps & {
36
+ /**
37
+ * The selection variant, set to "single".
38
+ */
39
+ selectionVariant: "single";
40
+ /**
41
+ * Callback fired when the apply action is triggered.
42
+ * @param _event - The synthetic event.
43
+ * @param date - The selected single date or null.
44
+ */
45
+ onApply?: (_event: SyntheticEvent, date: SingleDateSelection | null) => void;
46
+ } : DatePickerActionsBaseProps & {
47
+ /**
48
+ * The selection variant, set to "range".
49
+ */
50
+ selectionVariant: "range";
51
+ /**
52
+ * Callback fired when the apply action is triggered.
53
+ * @param _event - The synthetic event.
54
+ * @param date - The selected date range or null.
55
+ */
56
+ onApply?: (_event: SyntheticEvent, date: DateRangeSelection | null) => void;
57
+ };
58
+ export declare const DatePickerActions: React.ForwardRefExoticComponent<((DatePickerActionsBaseProps & {
59
+ /**
60
+ * The selection variant, set to "single".
61
+ */
62
+ selectionVariant: "single";
63
+ /**
64
+ * Callback fired when the apply action is triggered.
65
+ * @param _event - The synthetic event.
66
+ * @param date - The selected single date or null.
67
+ */
68
+ onApply?: ((_event: SyntheticEvent, date: SingleDateSelection | null) => void) | undefined;
69
+ }) | (DatePickerActionsBaseProps & {
70
+ /**
71
+ * The selection variant, set to "range".
72
+ */
73
+ selectionVariant: "range";
74
+ /**
75
+ * Callback fired when the apply action is triggered.
76
+ * @param _event - The synthetic event.
77
+ * @param date - The selected date range or null.
78
+ */
79
+ onApply?: ((_event: SyntheticEvent, date: DateRangeSelection | null) => void) | undefined;
80
+ })) & React.RefAttributes<HTMLDivElement>>;
@@ -1,19 +1,182 @@
1
1
  import type { DateValue } from "@internationalized/date";
2
- import { type UseFloatingUIReturn } from "@salt-ds/core";
3
- import type { RangeSelectionValueType } from "../calendar";
4
- export interface DatePickerContextValue<SelectionVariantType> extends Partial<Pick<UseFloatingUIReturn, "context">> {
5
- openState: boolean;
6
- setOpen: (newOpen: boolean) => void;
7
- disabled: boolean;
8
- selectedDate: SelectionVariantType | undefined;
9
- defaultSelectedDate: SelectionVariantType | undefined;
10
- setSelectedDate: (newStartDate: SelectionVariantType | undefined) => void;
11
- startVisibleMonth: DateValue | undefined;
12
- setStartVisibleMonth: (newStartDate: DateValue | undefined) => void;
13
- endVisibleMonth: DateValue | undefined;
14
- setEndVisibleMonth: (newStartDate: DateValue | undefined) => void;
15
- selectionVariant: "default" | "range";
16
- getPanelPosition: () => Record<string, unknown>;
2
+ import type { DateRangeSelection, SingleDateSelection } from "../calendar";
3
+ import type { DateInputRangeError, DateInputSingleError } from "../date-input";
4
+ /**
5
+ * Interface representing the base state for a DatePicker.
6
+ */
7
+ interface DatePickerBaseState {
8
+ /**
9
+ * The state properties of the DatePicker.
10
+ */
11
+ state: {
12
+ /**
13
+ * If `true`, the DatePicker is disabled.
14
+ */
15
+ disabled?: boolean;
16
+ /**
17
+ * If `true`, the DatePicker is read-only.
18
+ */
19
+ readOnly?: boolean;
20
+ /**
21
+ * If `true`, the DatePicker has been cancelled.
22
+ */
23
+ cancelled?: boolean;
24
+ /**
25
+ * If `true`, the apply action is enabled.
26
+ */
27
+ enableApply?: boolean;
28
+ /**
29
+ * The minimum selectable date.
30
+ */
31
+ minDate?: DateValue;
32
+ /**
33
+ * The maximum selectable date.
34
+ */
35
+ maxDate?: DateValue;
36
+ /**
37
+ * Reference to the container element.
38
+ */
39
+ containerRef: React.Ref<HTMLDivElement>;
40
+ /**
41
+ * The locale used for date formatting.
42
+ */
43
+ locale?: string;
44
+ /**
45
+ * The time zone used for date formatting.
46
+ */
47
+ timeZone?: string;
48
+ };
49
+ /**
50
+ * Helper functions for managing the DatePicker state.
51
+ */
52
+ helpers: {
53
+ /**
54
+ * Cancels the DatePicker action.
55
+ */
56
+ cancel: () => void;
57
+ /**
58
+ * Sets the enableApply state.
59
+ * @param newEnableApply - The new value for enableApply.
60
+ */
61
+ setEnableApply: (newEnableApply: boolean) => void;
62
+ };
17
63
  }
18
- export declare const DatePickerContext: import("react").Context<DatePickerContextValue<DateValue | RangeSelectionValueType>>;
19
- export declare function useDatePickerContext(): DatePickerContextValue<DateValue | RangeSelectionValueType>;
64
+ /**
65
+ * Type representing a single date picker error.
66
+ */
67
+ export declare type SingleDatePickerError = DateInputSingleError;
68
+ /**
69
+ * Type representing a range date picker error.
70
+ */
71
+ export declare type RangeDatePickerError = DateInputRangeError;
72
+ /**
73
+ * Interface representing the state for a single date picker.
74
+ */
75
+ export interface SingleDatePickerState extends DatePickerBaseState {
76
+ /**
77
+ * The state properties of the single date picker.
78
+ */
79
+ state: DatePickerBaseState["state"] & {
80
+ /**
81
+ * The selected date.
82
+ */
83
+ selectedDate: SingleDateSelection | null;
84
+ /**
85
+ * The default selected date.
86
+ */
87
+ defaultSelectedDate?: SingleDateSelection;
88
+ };
89
+ /**
90
+ * Helper functions for managing the single date picker state.
91
+ */
92
+ helpers: DatePickerBaseState["helpers"] & {
93
+ /**
94
+ * Applies the selected date.
95
+ * @param newDate - The new selected date.
96
+ * @param error - The error encountered during selection, if any.
97
+ */
98
+ apply: (newDate: SingleDateSelection | null, error: SingleDatePickerError) => void;
99
+ /**
100
+ * Sets the selected date.
101
+ * @param newDate - The new selected date.
102
+ * @param error - The error encountered during selection, if any.
103
+ */
104
+ setSelectedDate: (newDate: SingleDateSelection | null, error: string | false) => void;
105
+ };
106
+ }
107
+ /**
108
+ * Interface representing the state for a range date picker.
109
+ */
110
+ export interface RangeDatePickerState extends DatePickerBaseState {
111
+ /**
112
+ * The state properties of the range date picker.
113
+ */
114
+ state: DatePickerBaseState["state"] & {
115
+ /**
116
+ * The selected date range.
117
+ */
118
+ selectedDate: DateRangeSelection | null;
119
+ /**
120
+ * The default selected date range.
121
+ */
122
+ defaultSelectedDate?: DateRangeSelection;
123
+ };
124
+ /**
125
+ * Helper functions for managing the range date picker state.
126
+ */
127
+ helpers: DatePickerBaseState["helpers"] & {
128
+ /**
129
+ * Applies the selected date range.
130
+ * @param newDate - The new selected date range.
131
+ * @param error - The error encountered during selection, if any.
132
+ */
133
+ apply: (newDate: DateRangeSelection | null, error: RangeDatePickerError) => void;
134
+ /**
135
+ * Sets the selected date range.
136
+ * @param newDate - The new selected date range.
137
+ * @param error - The error encountered during selection, if any.
138
+ */
139
+ setSelectedDate: (newDate: DateRangeSelection | null, error: {
140
+ startDate: string | false;
141
+ endDate: string | false;
142
+ }) => void;
143
+ };
144
+ }
145
+ /**
146
+ * Type representing the state of a date picker, either single or range.
147
+ */
148
+ export declare type DatePickerState = SingleDatePickerState | RangeDatePickerState;
149
+ /**
150
+ * Context for single date selection.
151
+ */
152
+ export declare const SingleDateSelectionContext: import("react").Context<SingleDatePickerState | undefined>;
153
+ /**
154
+ * Context for date range selection.
155
+ */
156
+ export declare const DateRangeSelectionContext: import("react").Context<RangeDatePickerState | undefined>;
157
+ /**
158
+ * Props for using the date picker context.
159
+ */
160
+ export interface UseDatePickerContextProps {
161
+ /**
162
+ * The selection variant, either "single" or "range".
163
+ */
164
+ selectionVariant: "single" | "range";
165
+ }
166
+ /**
167
+ * Hook to use the date picker context for single date selection.
168
+ * @param props - The props for the hook.
169
+ * @returns The state of the single date picker.
170
+ */
171
+ export declare function useDatePickerContext(props: {
172
+ selectionVariant: "single";
173
+ }): SingleDatePickerState;
174
+ /**
175
+ * Hook to use the date picker context for range date selection.
176
+ * @param props - The props for the hook.
177
+ * @returns The state of the range date picker.
178
+ */
179
+ export declare function useDatePickerContext(props: {
180
+ selectionVariant: "range";
181
+ }): RangeDatePickerState;
182
+ export {};
@@ -0,0 +1,11 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ /**
3
+ * Props for the DatePickerOverlay component.
4
+ */
5
+ export interface DatePickerOverlayProps extends ComponentPropsWithoutRef<"div"> {
6
+ /**
7
+ * The content to be rendered inside the overlay.
8
+ */
9
+ children: ReactNode;
10
+ }
11
+ export declare const DatePickerOverlay: import("react").ForwardRefExoticComponent<DatePickerOverlayProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,67 @@
1
+ import { useInteractions } from "@floating-ui/react";
2
+ import { useFloatingUI } from "@salt-ds/core";
3
+ import { type ReactNode } from "react";
4
+ /**
5
+ * Interface representing the state for a DatePicker overlay.
6
+ */
7
+ interface DatePickerOverlayState {
8
+ /**
9
+ * If `true`, the overlay is open.
10
+ */
11
+ open: boolean;
12
+ /**
13
+ * The result of the floating UI calculations.
14
+ */
15
+ floatingUIResult: ReturnType<typeof useFloatingUI>;
16
+ }
17
+ /**
18
+ * Interface representing the helper functions for a DatePicker overlay.
19
+ */
20
+ interface DatePickerOverlayHelpers {
21
+ /**
22
+ * Function to get the props for the floating element.
23
+ */
24
+ getFloatingProps: ReturnType<typeof useInteractions>["getFloatingProps"];
25
+ /**
26
+ * Function to get the props for the reference element.
27
+ */
28
+ getReferenceProps: ReturnType<typeof useInteractions>["getReferenceProps"];
29
+ /**
30
+ * Sets the open state of the overlay.
31
+ * @param newOpen - The new value for the open state.
32
+ */
33
+ setOpen: (newOpen: boolean) => void;
34
+ }
35
+ /**
36
+ * Interface representing the context type for a DatePicker overlay.
37
+ */
38
+ interface DatePickerOverlayContextType {
39
+ /**
40
+ * The state of the DatePicker overlay.
41
+ */
42
+ state: DatePickerOverlayState;
43
+ /**
44
+ * The helper functions for the DatePicker overlay.
45
+ */
46
+ helpers: DatePickerOverlayHelpers;
47
+ }
48
+ /**
49
+ * Props for the DatePickerOverlayProvider component.
50
+ */
51
+ interface DatePickerOverlayProviderProps {
52
+ /**
53
+ * If `true`, the overlay is open.
54
+ */
55
+ open?: boolean;
56
+ /**
57
+ * The default open state of the overlay.
58
+ */
59
+ defaultOpen?: boolean;
60
+ /**
61
+ * The content to be rendered inside the overlay provider.
62
+ */
63
+ children: ReactNode;
64
+ }
65
+ export declare const DatePickerOverlayProvider: React.FC<DatePickerOverlayProviderProps>;
66
+ export declare const useDatePickerOverlay: () => DatePickerOverlayContextType;
67
+ export {};
@@ -0,0 +1,7 @@
1
+ import { type DateInputRangeProps } from "../date-input";
2
+ /**
3
+ * Props for the DatePickerRangeInput component.
4
+ */
5
+ export interface DatePickerRangeInputProps extends DateInputRangeProps {
6
+ }
7
+ export declare const DatePickerRangeInput: import("react").ForwardRefExoticComponent<DatePickerRangeInputProps & import("react").RefAttributes<HTMLDivElement>>;