@elliemae/ds-controlled-form 2.4.1-rc.4 → 2.4.1-rc.8

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 (339) hide show
  1. package/cjs/autocomplete/Autocomplete.js +4 -5
  2. package/cjs/autocomplete/AutocompleteCTX.js +3 -14
  3. package/cjs/autocomplete/AutocompleteDataTestids.js +1 -7
  4. package/cjs/autocomplete/config/useAutocomplete.js +23 -10
  5. package/cjs/autocomplete/parts/container/Container.js +36 -20
  6. package/cjs/autocomplete/parts/container/styled.js +1 -5
  7. package/cjs/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  8. package/cjs/autocomplete/parts/menu-list/MenuList.js +17 -50
  9. package/cjs/autocomplete/parts/menu-list/styled.js +9 -10
  10. package/cjs/autocomplete/parts/menu-list/useItemRenderer.js +38 -44
  11. package/cjs/autocomplete/react-desc-prop-types.js +4 -8
  12. package/cjs/autocomplete/utils/listHelper.js +8 -16
  13. package/cjs/checkbox/react-desc-prop-types.js +1 -0
  14. package/cjs/combobox/ComboBox.js +1 -0
  15. package/cjs/combobox/config/useComboBox.js +8 -2
  16. package/cjs/combobox/config/useCorrectOptions.js +14 -42
  17. package/cjs/combobox/index.js +1 -0
  18. package/cjs/combobox/parts/A11yFocusedOption.js +3 -3
  19. package/cjs/combobox/parts/controls/Controls.js +4 -2
  20. package/cjs/combobox/parts/controls-input/ControlsInput.js +2 -0
  21. package/cjs/combobox/parts/controls-input/styled.js +1 -1
  22. package/cjs/combobox/parts/controls-input/useControlsInput.js +6 -6
  23. package/cjs/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  24. package/cjs/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  25. package/cjs/combobox/parts/dropdown-indicator/DropdownIndicator.js +6 -4
  26. package/cjs/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  27. package/cjs/combobox/parts/menu-list/MenuList.js +13 -7
  28. package/cjs/combobox/parts/menu-list/styled.js +16 -5
  29. package/cjs/combobox/parts/menu-list/useItemRenderer.js +8 -8
  30. package/cjs/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  31. package/cjs/combobox/react-desc-prop-types.js +2 -1
  32. package/cjs/combobox/utils/listHelper.js +40 -11
  33. package/cjs/date-time-picker/ControlledDateTimePickerCTX.js +1 -114
  34. package/cjs/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  35. package/cjs/date-time-picker/config/useChangeHandlers.js +264 -0
  36. package/cjs/date-time-picker/config/useControlledDateTimePicker.js +37 -420
  37. package/cjs/date-time-picker/config/useGetDestructuredValues.js +25 -68
  38. package/cjs/date-time-picker/config/useGetFlags.js +173 -0
  39. package/cjs/date-time-picker/config/useGetPropsBasedOnType.js +101 -0
  40. package/cjs/date-time-picker/config/useGetPropsWithDefault.js +2 -3
  41. package/cjs/date-time-picker/config/useGetReferences.js +86 -0
  42. package/cjs/date-time-picker/config/useGlobalKeyHandlers.js +106 -0
  43. package/cjs/date-time-picker/config/useRelevantValueFromProps.js +39 -0
  44. package/cjs/date-time-picker/config/useValidateProps.js +47 -42
  45. package/cjs/date-time-picker/parts/ClearButton/ClearButton.js +20 -8
  46. package/cjs/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  47. package/cjs/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  48. package/cjs/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  49. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  50. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +1 -49
  51. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  52. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  53. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +8 -4
  54. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  55. package/cjs/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  56. package/cjs/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  57. package/cjs/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +24 -122
  58. package/cjs/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +32 -4
  59. package/cjs/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  60. package/cjs/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  61. package/cjs/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  62. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +7 -3
  63. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  64. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +0 -1
  65. package/cjs/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  66. package/cjs/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  67. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +60 -33
  68. package/cjs/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  69. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  70. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  71. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -65
  72. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  73. package/cjs/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  74. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +18 -116
  75. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +52 -94
  76. package/cjs/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  77. package/cjs/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  78. package/cjs/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  79. package/cjs/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  80. package/cjs/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  81. package/cjs/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  82. package/cjs/date-time-picker/propTypes.js +56 -23
  83. package/cjs/{autocomplete/index.d.js → date-time-picker/sharedTypes.js} +0 -0
  84. package/cjs/date-time-picker/utils/dateHelpers.js +56 -56
  85. package/cjs/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  86. package/cjs/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +50 -47
  87. package/cjs/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  88. package/cjs/date-time-picker/utils/stringHelpers.js +8 -14
  89. package/cjs/date-time-picker/utils/typeGuards.js +14 -0
  90. package/cjs/index.js +12 -3
  91. package/cjs/mask-hook/hooks/index.js +11 -3
  92. package/cjs/mask-hook/hooks/useNumberMask.js +7 -0
  93. package/cjs/mask-hook/hooks/usePhoneMask.js +7 -0
  94. package/cjs/mask-hook/hooks/useRegExpMask.js +122 -0
  95. package/cjs/mask-hook/hooks/useSSNMask.js +7 -0
  96. package/cjs/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +12 -5
  97. package/cjs/mask-hook/index.js +11 -3
  98. package/cjs/mask-hook/react-desc-prop-types.js +9 -0
  99. package/cjs/mask-hook/utils/addSpecialCharacters.js +3 -4
  100. package/cjs/mask-hook/utils/flatStringArray.js +18 -0
  101. package/cjs/mask-hook/utils/index.js +2 -0
  102. package/esm/autocomplete/Autocomplete.js +2 -3
  103. package/esm/autocomplete/AutocompleteCTX.js +3 -14
  104. package/esm/autocomplete/AutocompleteDataTestids.js +1 -7
  105. package/esm/autocomplete/config/useAutocomplete.js +27 -14
  106. package/esm/autocomplete/parts/container/Container.js +38 -23
  107. package/esm/autocomplete/parts/container/styled.js +2 -5
  108. package/esm/autocomplete/parts/{controls → container}/useKeyboardNavigation.js +8 -24
  109. package/esm/autocomplete/parts/menu-list/MenuList.js +19 -52
  110. package/esm/autocomplete/parts/menu-list/styled.js +9 -10
  111. package/esm/autocomplete/parts/menu-list/useItemRenderer.js +39 -45
  112. package/esm/autocomplete/react-desc-prop-types.js +5 -8
  113. package/esm/autocomplete/utils/listHelper.js +8 -16
  114. package/esm/checkbox/react-desc-prop-types.js +1 -0
  115. package/esm/combobox/ComboBox.js +1 -1
  116. package/esm/combobox/config/useComboBox.js +8 -2
  117. package/esm/combobox/config/useCorrectOptions.js +15 -43
  118. package/esm/combobox/index.js +1 -1
  119. package/esm/combobox/parts/A11yFocusedOption.js +3 -3
  120. package/esm/combobox/parts/controls/Controls.js +4 -2
  121. package/esm/combobox/parts/controls-input/ControlsInput.js +2 -0
  122. package/esm/combobox/parts/controls-input/styled.js +1 -1
  123. package/esm/combobox/parts/controls-input/useControlsInput.js +6 -6
  124. package/esm/combobox/parts/controls-input/useKeyboardNavigation.js +30 -26
  125. package/esm/combobox/parts/controls-input/useMaskedOnChange.js +7 -5
  126. package/esm/combobox/parts/dropdown-indicator/DropdownIndicator.js +2 -2
  127. package/esm/combobox/parts/header-list/useHeaderListHandlers.js +4 -4
  128. package/esm/combobox/parts/menu-list/MenuList.js +13 -7
  129. package/esm/combobox/parts/menu-list/styled.js +16 -5
  130. package/esm/combobox/parts/menu-list/useItemRenderer.js +8 -8
  131. package/esm/combobox/parts/menu-list/useMenuListSetFocusOption.js +6 -6
  132. package/esm/combobox/react-desc-prop-types.js +2 -1
  133. package/esm/combobox/utils/listHelper.js +38 -12
  134. package/esm/date-time-picker/ControlledDateTimePickerCTX.js +3 -115
  135. package/esm/date-time-picker/ControlledDateTimePickerDatatestid.js +0 -2
  136. package/esm/date-time-picker/config/useChangeHandlers.js +256 -0
  137. package/esm/date-time-picker/config/useControlledDateTimePicker.js +38 -421
  138. package/esm/date-time-picker/config/useGetDestructuredValues.js +21 -68
  139. package/esm/date-time-picker/config/useGetFlags.js +165 -0
  140. package/esm/date-time-picker/config/useGetPropsBasedOnType.js +97 -0
  141. package/esm/date-time-picker/config/useGetPropsWithDefault.js +1 -2
  142. package/esm/date-time-picker/config/useGetReferences.js +82 -0
  143. package/esm/date-time-picker/config/useGlobalKeyHandlers.js +98 -0
  144. package/esm/date-time-picker/config/useRelevantValueFromProps.js +35 -0
  145. package/esm/date-time-picker/config/useValidateProps.js +47 -42
  146. package/esm/date-time-picker/parts/ClearButton/ClearButton.js +20 -9
  147. package/esm/date-time-picker/parts/ControlledDateTimePickerContent.js +14 -12
  148. package/esm/date-time-picker/parts/DateInputs/useDateInputs.js +5 -5
  149. package/esm/date-time-picker/parts/Pickers/Calendar/Calendar.js +11 -13
  150. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContent.js +4 -1
  151. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarContext.js +2 -50
  152. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +4 -4
  153. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarHead.js +10 -7
  154. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +9 -5
  155. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +5 -2
  156. package/esm/date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +5 -2
  157. package/esm/date-time-picker/parts/Pickers/Calendar/Day.js +18 -18
  158. package/esm/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +23 -125
  159. package/esm/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.js +33 -5
  160. package/esm/date-time-picker/parts/Pickers/Calendar/useFocusLogic.js +10 -6
  161. package/esm/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.js +30 -14
  162. package/esm/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.js +7 -4
  163. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheel.js +9 -5
  164. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -16
  165. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +1 -2
  166. package/esm/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +10 -10
  167. package/esm/date-time-picker/parts/Pickers/TimeWheel/HoursList.js +18 -13
  168. package/esm/date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +59 -33
  169. package/esm/date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -13
  170. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.js +11 -13
  171. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +5 -2
  172. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +2 -66
  173. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +8 -3
  174. package/esm/date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +5 -2
  175. package/esm/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +15 -117
  176. package/esm/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.js +54 -96
  177. package/esm/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.js +4 -1
  178. package/esm/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.js +1 -1
  179. package/esm/date-time-picker/parts/TimeInputs/HHInput.js +1 -3
  180. package/esm/date-time-picker/parts/TimeInputs/MeridiemInput.js +1 -1
  181. package/esm/date-time-picker/parts/TimeInputs/TimeInputs.js +3 -7
  182. package/esm/date-time-picker/parts/TimeInputs/useTimeInputs.js +3 -6
  183. package/esm/date-time-picker/propTypes.js +49 -17
  184. package/esm/{autocomplete/index.d.js → date-time-picker/sharedTypes.js} +0 -0
  185. package/esm/date-time-picker/utils/dateHelpers.js +57 -57
  186. package/esm/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.js +2 -5
  187. package/esm/date-time-picker/utils/hooks/useGetStartingFocusedDay.js +46 -47
  188. package/esm/date-time-picker/utils/hooks/useOnClickOutside.js +1 -2
  189. package/esm/date-time-picker/utils/stringHelpers.js +8 -14
  190. package/esm/date-time-picker/utils/typeGuards.js +8 -0
  191. package/esm/index.js +6 -5
  192. package/esm/mask-hook/hooks/index.js +5 -4
  193. package/esm/mask-hook/hooks/useNumberMask.js +7 -1
  194. package/esm/mask-hook/hooks/usePhoneMask.js +7 -1
  195. package/esm/mask-hook/hooks/useRegExpMask.js +116 -0
  196. package/esm/mask-hook/hooks/useSSNMask.js +7 -1
  197. package/esm/mask-hook/hooks/{useZipCode.js → useZipCodeMask.js} +11 -5
  198. package/esm/mask-hook/index.js +5 -4
  199. package/esm/mask-hook/react-desc-prop-types.js +8 -1
  200. package/esm/mask-hook/utils/addSpecialCharacters.js +3 -4
  201. package/esm/mask-hook/utils/flatStringArray.js +14 -0
  202. package/esm/mask-hook/utils/index.js +1 -0
  203. package/package.json +64 -80
  204. package/types/autocomplete/Autocomplete.d.ts +4 -61
  205. package/types/autocomplete/AutocompleteCTX.d.ts +4 -3
  206. package/types/autocomplete/AutocompleteDataTestids.d.ts +1 -7
  207. package/types/autocomplete/config/useAutocomplete.d.ts +3 -2
  208. package/types/autocomplete/parts/container/Container.d.ts +1 -2
  209. package/types/autocomplete/parts/container/styled.d.ts +0 -1
  210. package/types/autocomplete/parts/{controls → container}/useKeyboardNavigation.d.ts +0 -0
  211. package/types/autocomplete/parts/menu-list/MenuList.d.ts +1 -2
  212. package/types/autocomplete/parts/menu-list/styled.d.ts +1 -4
  213. package/types/autocomplete/parts/menu-list/useItemRenderer.d.ts +2 -3
  214. package/types/autocomplete/react-desc-prop-types.d.ts +8 -18
  215. package/types/autocomplete/sharedTypes.d.ts +1 -3
  216. package/types/autocomplete/tests/general.test.d.ts +1 -0
  217. package/types/autocomplete/tests/utils.d.ts +5 -0
  218. package/types/autocomplete/utils/listHelper.d.ts +2 -2
  219. package/types/checkbox/ControlledCheckbox.d.ts +1 -1
  220. package/types/checkbox/react-desc-prop-types.d.ts +366 -1
  221. package/types/combobox/ComboBox.d.ts +2 -2
  222. package/types/combobox/parts/dropdown-indicator/DropdownIndicator.d.ts +1 -0
  223. package/types/combobox/react-desc-prop-types.d.ts +381 -3
  224. package/types/combobox/utils/listHelper.d.ts +4 -1
  225. package/types/date-time-picker/ControlledDateTimePicker.d.ts +25 -80
  226. package/types/date-time-picker/ControlledDateTimePickerCTX.d.ts +1 -2
  227. package/types/date-time-picker/ControlledDateTimePickerDatatestid.d.ts +46 -46
  228. package/types/date-time-picker/ControlledDateTimePickerTypes.d.ts +15 -15
  229. package/types/date-time-picker/config/useChangeHandlers.d.ts +25 -0
  230. package/types/date-time-picker/config/useControlledDateTimePicker.d.ts +18 -2
  231. package/types/date-time-picker/config/useGetDestructuredValues.d.ts +30 -4
  232. package/types/date-time-picker/config/useGetFlags.d.ts +27 -0
  233. package/types/date-time-picker/config/useGetPropsBasedOnType.d.ts +28 -0
  234. package/types/date-time-picker/config/useGetPropsWithDefault.d.ts +2 -2
  235. package/types/date-time-picker/config/useGetReferences.d.ts +39 -0
  236. package/types/date-time-picker/config/useGlobalKeyHandlers.d.ts +16 -0
  237. package/types/date-time-picker/config/useRelevantValueFromProps.d.ts +10 -0
  238. package/types/date-time-picker/config/useValidateProps.d.ts +2 -2
  239. package/types/date-time-picker/parts/ClearButton/useClearButton.d.ts +6 -6
  240. package/types/date-time-picker/parts/DateInputs/DDInput.d.ts +6 -6
  241. package/types/date-time-picker/parts/DateInputs/MMInput.d.ts +6 -6
  242. package/types/date-time-picker/parts/DateInputs/YYYYInput.d.ts +6 -6
  243. package/types/date-time-picker/parts/DateInputs/useDateInputs.d.ts +2 -2
  244. package/types/date-time-picker/parts/Pickers/Calendar/Calendar.d.ts +4 -2
  245. package/types/date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +3 -63
  246. package/types/date-time-picker/parts/Pickers/Calendar/CalendarDaysList.d.ts +4 -4
  247. package/types/date-time-picker/parts/Pickers/Calendar/CalendarFooter.d.ts +2 -2
  248. package/types/date-time-picker/parts/Pickers/Calendar/Day.d.ts +2 -2
  249. package/types/date-time-picker/parts/Pickers/Calendar/useCurrentDisplayedMonthYearLogic.d.ts +15 -2
  250. package/types/date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +12 -5
  251. package/types/date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +17 -11
  252. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -16
  253. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelFooter.d.ts +2 -2
  254. package/types/date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.d.ts +15 -1
  255. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheel.d.ts +4 -2
  256. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +3 -62
  257. package/types/date-time-picker/parts/Pickers/TimeWheel/TimeWheelFooter.d.ts +2 -2
  258. package/types/date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.d.ts +4 -1
  259. package/types/date-time-picker/parts/Pickers/TimeWheel/useCurrentDisplayedWheelsLogic.d.ts +16 -5
  260. package/types/date-time-picker/parts/Pickers/TimeWheel/useKeyboardHandlers.d.ts +18 -3
  261. package/types/date-time-picker/parts/TimeInputs/HHInput.d.ts +6 -6
  262. package/types/date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +6 -6
  263. package/types/date-time-picker/parts/TimeInputs/MinutesInput.d.ts +6 -6
  264. package/types/date-time-picker/parts/TimeInputs/useTimeInputs.d.ts +22 -2
  265. package/types/date-time-picker/parts/config.d.ts +3 -3
  266. package/types/date-time-picker/sharedTypes.d.ts +94 -0
  267. package/types/date-time-picker/utils/constants.d.ts +33 -33
  268. package/types/date-time-picker/utils/dateHelpers.d.ts +15 -14
  269. package/types/date-time-picker/utils/dateTimeHelpers.d.ts +3 -3
  270. package/types/date-time-picker/utils/hooks/useGetDayFromDateString.d.ts +1 -1
  271. package/types/date-time-picker/utils/hooks/useGetMonthYearFromDateStringOrEmptyStartingMonth.d.ts +2 -2
  272. package/types/date-time-picker/utils/hooks/useGetStartingFocusedDay.d.ts +6 -6
  273. package/types/date-time-picker/utils/hooks/useOnClickOutside.d.ts +1 -1
  274. package/types/date-time-picker/utils/timeHelpers.d.ts +2 -2
  275. package/types/date-time-picker/utils/typeGuards.d.ts +4 -0
  276. package/types/large-text-input/DSControlledLargeTextInput.d.ts +1 -1
  277. package/types/large-text-input/react-desc-prop-types.d.ts +422 -1
  278. package/types/mask-hook/hooks/index.d.ts +2 -1
  279. package/types/mask-hook/hooks/useNumberMask.d.ts +2 -1
  280. package/types/mask-hook/hooks/usePhoneMask.d.ts +2 -1
  281. package/types/mask-hook/hooks/useRegExpMask.d.ts +4 -0
  282. package/types/mask-hook/hooks/useSSNMask.d.ts +2 -1
  283. package/types/mask-hook/hooks/useZipCodeMask.d.ts +4 -0
  284. package/types/mask-hook/react-desc-prop-types.d.ts +6 -1
  285. package/types/mask-hook/tests/useRegExpMask.test.d.ts +1 -0
  286. package/types/mask-hook/utils/flatStringArray.d.ts +1 -0
  287. package/types/mask-hook/utils/index.d.ts +1 -0
  288. package/types/text-input/DSInputText.d.ts +1 -1
  289. package/types/text-input/config/useInputText.d.ts +110 -110
  290. package/cjs/autocomplete/config/constants.js +0 -14
  291. package/cjs/autocomplete/config/useGetPropsWithDefault.js +0 -11
  292. package/cjs/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -33
  293. package/cjs/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -28
  294. package/cjs/autocomplete/parts/a11y-messages/index.js +0 -11
  295. package/cjs/autocomplete/parts/a11y-messages/styled.js +0 -15
  296. package/cjs/autocomplete/parts/controls/Controls.js +0 -63
  297. package/cjs/autocomplete/parts/controls/index.js +0 -9
  298. package/cjs/autocomplete/parts/controls/styled.js +0 -44
  299. package/cjs/autocomplete/parts/controls/useControlsInput.js +0 -44
  300. package/cjs/autocomplete/parts/controls/useMaskedOnChange.js +0 -28
  301. package/cjs/autocomplete/parts/menu-list/useMenuList.js +0 -69
  302. package/cjs/autocomplete/propTypes.js +0 -25
  303. package/cjs/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -97
  304. package/cjs/autocomplete/utils/hooks/useOnElementResize.js +0 -37
  305. package/esm/autocomplete/config/constants.js +0 -10
  306. package/esm/autocomplete/config/useGetPropsWithDefault.js +0 -7
  307. package/esm/autocomplete/parts/a11y-messages/MultiAllyMessages.js +0 -25
  308. package/esm/autocomplete/parts/a11y-messages/SingleAllyMessages.js +0 -20
  309. package/esm/autocomplete/parts/a11y-messages/index.js +0 -2
  310. package/esm/autocomplete/parts/a11y-messages/styled.js +0 -7
  311. package/esm/autocomplete/parts/controls/Controls.js +0 -55
  312. package/esm/autocomplete/parts/controls/index.js +0 -1
  313. package/esm/autocomplete/parts/controls/styled.js +0 -32
  314. package/esm/autocomplete/parts/controls/useControlsInput.js +0 -40
  315. package/esm/autocomplete/parts/controls/useMaskedOnChange.js +0 -24
  316. package/esm/autocomplete/parts/menu-list/useMenuList.js +0 -65
  317. package/esm/autocomplete/propTypes.js +0 -21
  318. package/esm/autocomplete/utils/hooks/useKeyboardNavigation.js +0 -93
  319. package/esm/autocomplete/utils/hooks/useOnElementResize.js +0 -33
  320. package/types/autocomplete/config/constants.d.ts +0 -8
  321. package/types/autocomplete/config/useGetPropsWithDefault.d.ts +0 -2
  322. package/types/autocomplete/parts/a11y-messages/MultiAllyMessages.d.ts +0 -3
  323. package/types/autocomplete/parts/a11y-messages/SingleAllyMessages.d.ts +0 -3
  324. package/types/autocomplete/parts/a11y-messages/index.d.ts +0 -2
  325. package/types/autocomplete/parts/a11y-messages/styled.d.ts +0 -1
  326. package/types/autocomplete/parts/controls/Controls.d.ts +0 -3
  327. package/types/autocomplete/parts/controls/index.d.ts +0 -1
  328. package/types/autocomplete/parts/controls/styled.d.ts +0 -8
  329. package/types/autocomplete/parts/controls/useControlsInput.d.ts +0 -9
  330. package/types/autocomplete/parts/controls/useMaskedOnChange.d.ts +0 -2
  331. package/types/autocomplete/parts/menu-list/useMenuList.d.ts +0 -2
  332. package/types/autocomplete/propTypes.d.ts +0 -51
  333. package/types/autocomplete/utils/hooks/useKeyboardNavigation.d.ts +0 -4
  334. package/types/autocomplete/utils/hooks/useOnElementResize.d.ts +0 -3
  335. package/types/date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.d.ts +0 -2
  336. package/types/date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +0 -12
  337. package/types/date-time-picker/parts/Pickers/TimeWheel/usePopperTriggerLogic.d.ts +0 -2
  338. package/types/date-time-picker/propTypes.d.ts +0 -81
  339. package/types/mask-hook/hooks/useZipCode.d.ts +0 -3
@@ -1,33 +1,44 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
8
  import 'react';
3
9
  import { CloseMedium } from '@elliemae/ds-icons';
4
10
  import { DSIconColors } from '@elliemae/ds-icon';
5
- import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
11
+ import { BUTTON_SIZES } from '@elliemae/ds-button';
6
12
  import { StyledClearButton } from '../Styleds.js';
7
13
  import { ControlledDateTimePickerDatatestid } from '../../ControlledDateTimePickerDatatestid.js';
8
14
  import { useClearButton } from './useClearButton.js';
15
+ import { jsx } from 'react/jsx-runtime';
9
16
 
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
+
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
20
  const ClearButton = () => {
11
21
  const {
12
22
  onClearClick,
13
23
  onClearButtonKeyDown,
14
24
  clearButtonRef,
15
- withAnyPicker,
16
25
  withClearBtn
17
26
  } = useClearButton();
18
- return /*#__PURE__*/_jsx(StyledClearButton, {
19
- shouldDisplay: withClearBtn,
27
+ const styledsAttrs = {
28
+ shouldDisplay: withClearBtn
29
+ };
30
+ return /*#__PURE__*/jsx(StyledClearButton, _objectSpread(_objectSpread({
20
31
  "aria-label": "clear selected date",
21
32
  buttonType: "icon",
22
33
  size: BUTTON_SIZES.M,
23
- variant: BUTTON_VARIANT.DEFAULT,
24
34
  "data-testid": ControlledDateTimePickerDatatestid.CLEAR_BUTTON,
25
35
  innerRef: clearButtonRef,
26
36
  onClick: onClearClick,
27
- onKeyDown: onClearButtonKeyDown,
28
- withAnyPicker: withAnyPicker
29
- }, void 0, /*#__PURE__*/_jsx(CloseMedium, {
30
- color: DSIconColors.PRIMARY
37
+ onKeyDown: onClearButtonKeyDown
38
+ }, styledsAttrs), {}, {
39
+ children: /*#__PURE__*/_jsx(CloseMedium, {
40
+ color: DSIconColors.PRIMARY
41
+ })
31
42
  }));
32
43
  };
33
44
 
@@ -22,6 +22,10 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
22
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
23
  const ControlledDateTimePickerContent = () => {
24
24
  const {
25
+ props: {
26
+ hasError,
27
+ disabled
28
+ },
25
29
  hideDate,
26
30
  hideDatePicker,
27
31
  hideTime,
@@ -32,13 +36,15 @@ const ControlledDateTimePickerContent = () => {
32
36
  withAnyRightController,
33
37
  shouldPreserveClearableSpace,
34
38
  isControllerOnly,
35
- props: {
36
- hasError,
37
- dataAttrs,
38
- disabled
39
- },
39
+ dataAttrs,
40
40
  onGlobalKeyDown
41
41
  } = React.useContext(ControlledDateTimePickerContext);
42
+ const styledsAttrs = {
43
+ justPicker: hideDate && hideTime,
44
+ withAnyPicker,
45
+ hasError,
46
+ isControllerOnly
47
+ };
42
48
  const resetLatestInteraction = React.useCallback(() => {
43
49
  setLatestInteractionRegion('');
44
50
  }, [setLatestInteractionRegion]);
@@ -50,18 +56,14 @@ const ControlledDateTimePickerContent = () => {
50
56
  if (shouldPreserveClearableSpace) rightControlCols.push('28px');
51
57
  if (withAnyPicker) rightControlCols.push('auto');
52
58
  return /*#__PURE__*/jsx(Fragment, {
53
- children: /*#__PURE__*/jsxs(StyledInputsWrapperGrid, _objectSpread(_objectSpread({
59
+ children: /*#__PURE__*/jsxs(StyledInputsWrapperGrid, _objectSpread(_objectSpread(_objectSpread({
54
60
  cols: mainCols,
55
61
  gutter: "xxs",
56
- pr: hideDatePicker && hideTimePicker && hideDateTimePicker ? '2px' : null,
57
- justPicker: hideDate && hideTime,
58
- withAnyPicker: withAnyPicker,
62
+ pr: hideDatePicker && hideTimePicker && hideDateTimePicker ? '2px' : undefined,
59
63
  onBlur: resetLatestInteraction,
60
64
  onKeyDown: onGlobalKeyDown,
61
- hasError: hasError,
62
- isControllerOnly: isControllerOnly,
63
65
  disabled: disabled
64
- }, dataAttrs), {}, {
66
+ }, styledsAttrs), dataAttrs), {}, {
65
67
  children: [hideDate ? null : _DateInputs || (_DateInputs = /*#__PURE__*/_jsx(DateInputs, {})), hideTime ? null : _TimeInputs || (_TimeInputs = /*#__PURE__*/_jsx(TimeInputs, {})), withAnyRightController ? /*#__PURE__*/_jsx(Grid, {
66
68
  cols: rightControlCols
67
69
  }, void 0, shouldPreserveClearableSpace ? _ClearButton || (_ClearButton = /*#__PURE__*/_jsx(ClearButton, {})) : null, withAnyPicker ? _PickersIcons || (_PickersIcons = /*#__PURE__*/_jsx(PickersIcons, {})) : null) : null]
@@ -16,13 +16,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
16
  const useDateInputs = () => {
17
17
  const {
18
18
  props: {
19
- onMonthChange: appOnMonthChange,
20
- onDayChange: appOnDayChange,
21
- onYearChange: appOnYearChange,
22
- getIsDisabledDay,
23
- getIsOutOfRangeDay,
24
19
  disabled
25
20
  },
21
+ appOnMonthChange,
22
+ appOnDayChange,
23
+ appOnYearChange,
24
+ getIsDisabledDay,
25
+ getIsOutOfRangeDay,
26
26
  month,
27
27
  day,
28
28
  year,
@@ -1,13 +1,13 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext } from 'react';
3
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
3
4
  import { CalendarIconTrigger } from './CalendarIconTrigger.js';
4
5
  import { CalendarWrapper } from './CalendarWrapper.js';
5
6
  import { CalendarContext } from './CalendarContext.js';
6
7
  import { useConfigCalendarCTX } from './useConfigCalendarCTX.js';
7
8
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
8
9
 
9
- var _CalendarIconTrigger, _CalendarWrapper;
10
-
10
+ var _CalendarIconTrigger, _CalendarWrapper, _WrappedCalendarConte;
11
11
  const WrappedCalendarContext = _ref => {
12
12
  let {
13
13
  children
@@ -18,19 +18,14 @@ const WrappedCalendarContext = _ref => {
18
18
  }, void 0, children);
19
19
  };
20
20
 
21
- const WrapWithCalendarContext = Component => {
22
- var _WrappedCalendarConte;
23
-
24
- return () => _WrappedCalendarConte || (_WrappedCalendarConte = /*#__PURE__*/_jsx(WrappedCalendarContext, {}, void 0, /*#__PURE__*/_jsx(Component, {})));
25
- }; // we use the HoC to be able to use the useContext
26
- // the HoC is Reused in CalendarWithTimeWheel
27
-
28
- const Calendar = WrapWithCalendarContext(() => {
21
+ const CalendarContent = () => {
29
22
  const {
30
23
  showCalendar,
31
- isControllerOnly,
32
24
  handleMenuWrapperKeyDown
33
25
  } = useContext(CalendarContext);
26
+ const {
27
+ isControllerOnly
28
+ } = useContext(ControlledDateTimePickerContext);
34
29
  return /*#__PURE__*/jsxs(Fragment, {
35
30
  children: [isControllerOnly ? null : _CalendarIconTrigger || (_CalendarIconTrigger = /*#__PURE__*/_jsx(CalendarIconTrigger, {})), isControllerOnly || showCalendar ? /*#__PURE__*/jsx(Fragment, {
36
31
  children: /*#__PURE__*/_jsx("div", {
@@ -38,6 +33,9 @@ const Calendar = WrapWithCalendarContext(() => {
38
33
  }, void 0, _CalendarWrapper || (_CalendarWrapper = /*#__PURE__*/_jsx(CalendarWrapper, {})))
39
34
  }) : null]
40
35
  });
41
- });
36
+ }; // we wrap in context in a separate statement so we can use the useContext and be sure it's correctly initialized
37
+
38
+
39
+ const Calendar = () => _WrappedCalendarConte || (_WrappedCalendarConte = /*#__PURE__*/_jsx(WrappedCalendarContext, {}, void 0, /*#__PURE__*/_jsx(CalendarContent, {})));
42
40
 
43
- export { Calendar, WrapWithCalendarContext };
41
+ export { Calendar, WrappedCalendarContext };
@@ -1,6 +1,7 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext } from 'react';
3
3
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
4
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
4
5
  import { CalendarBody } from './CalendarBody.js';
5
6
  import { CalendarHead } from './CalendarHead.js';
6
7
  import { CalendarFooter } from './CalendarFooter.js';
@@ -17,9 +18,11 @@ const CalendarContent = _ref => {
17
18
  className = ''
18
19
  } = _ref;
19
20
  const {
20
- isControllerOnly,
21
21
  daysMatrixByWeekday
22
22
  } = useContext(CalendarContext);
23
+ const {
24
+ isControllerOnly
25
+ } = useContext(ControlledDateTimePickerContext);
23
26
  return /*#__PURE__*/_jsx(StyledShadowWrapper, {
24
27
  className: className,
25
28
  isControllerOnly: isControllerOnly,
@@ -1,54 +1,6 @@
1
- import { createRef, createContext } from 'react';
1
+ import { createContext } from 'react';
2
2
 
3
- // eslint-disable-next-line @typescript-eslint/no-empty-function
4
- const noop = () => {};
5
-
6
- const defaultCalendarContext = {
7
- ariaCurrentValueForInputs: '',
8
- showCalendar: false,
9
- disabled: false,
10
- setShowCalendar: noop,
11
- closeCalendar: noop,
12
- setPopperElement: noop,
13
- setArrowElement: noop,
14
- usePopperHelpers: undefined,
15
- handleToggleCalendar: noop,
16
- handleSetTriggerRef: noop,
17
- handleMenuWrapperKeyDown: noop,
18
- prevYearBtnRef: /*#__PURE__*/createRef(),
19
- prevMonthBtnRef: /*#__PURE__*/createRef(),
20
- nextMonthBtnRef: /*#__PURE__*/createRef(),
21
- nextYearBtnRef: /*#__PURE__*/createRef(),
22
- calendarDaysWrapperRef: /*#__PURE__*/createRef(),
23
- currentMonth: undefined,
24
- currentYear: undefined,
25
- daysArray: [],
26
- invisibleFirstDay: undefined,
27
- daysMatrixByWeekday: [],
28
- invisibleLastDay: undefined,
29
- focusedDay: undefined,
30
- tryToFocusCurrentlyDataIsFocusedDay: noop,
31
- resetFocusedDayToStartDate: noop,
32
- handleFocusMetaDay: noop,
33
- handleFocusMetaDayByDay: noop,
34
- handlePrevMonth: noop,
35
- handlePrevYear: noop,
36
- handleNextMonth: noop,
37
- handleNextYear: noop,
38
- handleDayOnKeyDown: noop,
39
- handlePrevYearKeyDown: noop,
40
- handlePrevMonthKeyDown: noop,
41
- handleNextMonthKeyDown: noop,
42
- handleNextYearKeyDown: noop,
43
- handlePickerIconKeyDown: noop,
44
- isControllerOnly: false,
45
- isWithTimeWheelToo: true,
46
- autoFocusPrevMonthArrow: false,
47
- onPrevYearFocus: noop,
48
- onPrevMonthFocus: noop,
49
- onNextMonthFocus: noop,
50
- onNextYearFocus: noop
51
- };
3
+ const defaultCalendarContext = {};
52
4
  /** Context for cross component communication */
53
5
 
54
6
  const CalendarContext = /*#__PURE__*/createContext(defaultCalendarContext);
@@ -16,10 +16,10 @@ const CalendarDaysList = /*#__PURE__*/React.memo(_ref => {
16
16
  return /*#__PURE__*/jsxs("div", {
17
17
  ref: innerRef,
18
18
  role: "rowgroup",
19
- children: [/*#__PURE__*/_jsx(Day, {
19
+ children: [invisibleFirstDay ? /*#__PURE__*/_jsx(Day, {
20
20
  metaDay: invisibleFirstDay,
21
21
  isInvisible: true
22
- }, "ds-calendar-".concat(invisibleFirstDay.day.toString())), daysMatrixByWeekday.map((week, i) => /*#__PURE__*/_jsx(StyledWeekDaysListWrapper, {
22
+ }, "ds-calendar-".concat(invisibleFirstDay.day.toString())) : null, daysMatrixByWeekday.map((week, i) => /*#__PURE__*/_jsx(StyledWeekDaysListWrapper, {
23
23
  role: "row",
24
24
  "aria-rowindex": i + 1,
25
25
  cols: ['32px', '32px', '32px', '32px', '32px', '32px', '32px'],
@@ -31,10 +31,10 @@ const CalendarDaysList = /*#__PURE__*/React.memo(_ref => {
31
31
  }, "ds-calendar-week-".concat(week[0].day.toString(), "-").concat(week[6].day.toString()), week.map((metaDay, z) => /*#__PURE__*/_jsx(Day, {
32
32
  metaDay: metaDay,
33
33
  colIndex: z + 1
34
- }, "ds-calendar-".concat(metaDay.day.toString()))))), /*#__PURE__*/_jsx(Day, {
34
+ }, "ds-calendar-".concat(metaDay.day.toString()))))), invisibleLastDay ? /*#__PURE__*/_jsx(Day, {
35
35
  metaDay: invisibleLastDay,
36
36
  isInvisible: true
37
- }, "ds-calendar-".concat(invisibleLastDay.day.toString()))]
37
+ }, "ds-calendar-".concat(invisibleLastDay.day.toString())) : null]
38
38
  });
39
39
  });
40
40
 
@@ -4,6 +4,7 @@ import { BUTTON_SIZES } from '@elliemae/ds-button';
4
4
  import { ChevronDoubleLeft, ChevronLeft, ChevronRight, ChevronDoubleRight } from '@elliemae/ds-icons';
5
5
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
6
6
  import { getMonthNameByMonthNumber } from '../../../utils/dateHelpers.js';
7
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
7
8
  import { StyledHeader, StyledHeaderButton } from './Styleds.js';
8
9
  import { CalendarContext } from './CalendarContext.js';
9
10
 
@@ -21,10 +22,6 @@ const useGetFormattedCurrentDate = () => {
21
22
  const CalendarHead = () => {
22
23
  const currentFormatedDate = useGetFormattedCurrentDate();
23
24
  const {
24
- prevYearBtnRef,
25
- prevMonthBtnRef,
26
- nextMonthBtnRef,
27
- nextYearBtnRef,
28
25
  handlePrevYear,
29
26
  handlePrevMonth,
30
27
  handleNextMonth,
@@ -36,10 +33,16 @@ const CalendarHead = () => {
36
33
  onPrevYearFocus,
37
34
  onPrevMonthFocus,
38
35
  onNextMonthFocus,
39
- onNextYearFocus,
40
- isControllerOnly,
41
- autoFocusPrevMonthArrow
36
+ onNextYearFocus
42
37
  } = useContext(CalendarContext);
38
+ const {
39
+ isControllerOnly,
40
+ autoFocusPrevMonthArrow,
41
+ prevYearBtnRef,
42
+ prevMonthBtnRef,
43
+ nextMonthBtnRef,
44
+ nextYearBtnRef
45
+ } = useContext(ControlledDateTimePickerContext);
43
46
  return /*#__PURE__*/_jsx(StyledHeader, {}, void 0, /*#__PURE__*/_jsx(StyledHeaderButton, {
44
47
  "aria-label": "previous year",
45
48
  buttonType: "raw",
@@ -1,8 +1,9 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext, useMemo } from 'react';
3
- import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
3
+ import { BUTTON_SIZES } from '@elliemae/ds-button';
4
4
  import { DatePicker } from '@elliemae/ds-icons';
5
5
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
6
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
6
7
  import { CalendarContext } from './CalendarContext.js';
7
8
  import { StyledIconTriggerButton } from './Styleds.js';
8
9
 
@@ -14,15 +15,18 @@ const CalendarIconTrigger = () => {
14
15
  const {
15
16
  handleToggleCalendar,
16
17
  handleSetTriggerRef,
17
- handlePickerIconKeyDown,
18
- ariaCurrentValueForInputs,
19
- disabled
18
+ handlePickerIconKeyDown
20
19
  } = useContext(CalendarContext);
20
+ const {
21
+ props: {
22
+ disabled
23
+ },
24
+ ariaCurrentValueForInputs
25
+ } = useContext(ControlledDateTimePickerContext);
21
26
  return useMemo(() => /*#__PURE__*/_jsx(StyledIconTriggerButton, {
22
27
  "aria-label": "date picker context menu trigger, ".concat(ariaCurrentValueForInputs),
23
28
  buttonType: "icon",
24
29
  size: BUTTON_SIZES.M,
25
- variant: BUTTON_VARIANT.DEFAULT,
26
30
  innerRef: handleSetTriggerRef,
27
31
  onClick: handleToggleCalendar,
28
32
  onKeyDown: handlePickerIconKeyDown,
@@ -1,5 +1,6 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext } from 'react';
3
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
3
4
  import { CalendarDaysList } from './CalendarDaysList.js';
4
5
  import { CalendarContext } from './CalendarContext.js';
5
6
 
@@ -7,9 +8,11 @@ const CalendarMonthDays = () => {
7
8
  const {
8
9
  invisibleFirstDay,
9
10
  daysMatrixByWeekday,
10
- invisibleLastDay,
11
- calendarDaysWrapperRef
11
+ invisibleLastDay
12
12
  } = useContext(CalendarContext);
13
+ const {
14
+ calendarDaysWrapperRef
15
+ } = useContext(ControlledDateTimePickerContext);
13
16
  return /*#__PURE__*/_jsx(CalendarDaysList, {
14
17
  invisibleFirstDay: invisibleFirstDay,
15
18
  daysMatrixByWeekday: daysMatrixByWeekday,
@@ -7,6 +7,7 @@ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
7
7
  import _jsx from '@babel/runtime/helpers/esm/jsx';
8
8
  import { useContext } from 'react';
9
9
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
10
+ import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
10
11
  import { CalendarContent } from './CalendarContent.js';
11
12
  import { CalendarContext } from './CalendarContext.js';
12
13
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -17,14 +18,16 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
17
18
 
18
19
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
20
  const CalendarWrapper = () => {
21
+ const {
22
+ isControllerOnly
23
+ } = useContext(ControlledDateTimePickerContext);
20
24
  const {
21
25
  setPopperElement,
22
26
  usePopperHelpers: {
23
27
  styles,
24
28
  attributes
25
29
  },
26
- setArrowElement,
27
- isControllerOnly
30
+ setArrowElement
28
31
  } = useContext(CalendarContext);
29
32
  if (isControllerOnly) return _CalendarContent || (_CalendarContent = /*#__PURE__*/_jsx(CalendarContent, {}));
30
33
  return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
@@ -38,31 +38,31 @@ const Day = _ref => {
38
38
  handleChangeComposedDateString,
39
39
  dateStringFromProps,
40
40
  props: {
41
- getIsDisabledDay,
42
- getIsOutOfRangeDay,
43
- getIsStartRangeDay,
44
- getIsDayInRange,
45
- getIsEndRangeDay,
46
- preventCloseOnSelection,
47
- onMonthChange,
48
- onDayChange,
49
- onYearChange
41
+ preventCloseOnSelection
50
42
  },
43
+ getIsDisabledDay,
44
+ getIsOutOfRangeDay,
45
+ getIsStartRangeDay,
46
+ getIsDayInRange,
47
+ getIsEndRangeDay,
48
+ appOnMonthChange,
49
+ appOnDayChange,
50
+ appOnYearChange,
51
51
  latestInteractionRegion,
52
- setLatestInteractionRegion
52
+ setLatestInteractionRegion,
53
+ isWithTimeWheelToo
53
54
  } = useContext(ControlledDateTimePickerContext);
54
55
  const {
55
- handleDayOnKeyDown,
56
56
  focusedDay,
57
+ handleDayOnKeyDown,
57
58
  handleFocusMetaDayByDay,
58
- isWithTimeWheelToo,
59
59
  closeCalendar,
60
60
  tryToFocusCurrentlyDataIsFocusedDay
61
61
  } = useContext(CalendarContext);
62
- const isFocusedMetaDay = compareTwoDatesDayEquality(metaDay === null || metaDay === void 0 ? void 0 : metaDay.day, focusedDay === null || focusedDay === void 0 ? void 0 : focusedDay.day);
62
+ const isFocusedMetaDay = focusedDay !== null && focusedDay !== void 0 && focusedDay.day ? compareTwoDatesDayEquality(metaDay === null || metaDay === void 0 ? void 0 : metaDay.day, focusedDay === null || focusedDay === void 0 ? void 0 : focusedDay.day) : false;
63
63
  const isSelected = useMemo(() => {
64
64
  const selectedDate = getDayFromDateString(dateStringFromProps);
65
- return isSameDateMoment(day, selectedDate);
65
+ return selectedDate ? isSameDateMoment(day, selectedDate) : false;
66
66
  }, [dateStringFromProps, day]);
67
67
  const isFocused = latestInteractionRegion === 'calendar-days' && isFocusedMetaDay;
68
68
  const isDisabled = getIsDisabledDay(metaDay.dayAsString);
@@ -86,14 +86,14 @@ const Day = _ref => {
86
86
  day: dayNumber,
87
87
  year
88
88
  } = getDateValuesFromDate(day);
89
- onMonthChange("".concat(month + 1), e, metaInfo);
90
- onDayChange("".concat(dayNumber), e, metaInfo);
91
- onYearChange("".concat(year), e, metaInfo);
89
+ appOnMonthChange("".concat(month + 1), e, metaInfo);
90
+ if (dayNumber) appOnDayChange("".concat(dayNumber), e, metaInfo);
91
+ appOnYearChange("".concat(year), e, metaInfo);
92
92
  handleChangeComposedDateString(newDateString, metaInfo);
93
93
  setLatestInteractionRegion('calendar-days');
94
94
  if (!isWithTimeWheelToo && !preventCloseOnSelection) closeCalendar();
95
95
  }
96
- }, [isDisabled, isOutOfRange, day, onMonthChange, onDayChange, onYearChange, handleChangeComposedDateString, handleFocusMetaDayByDay, tryToFocusCurrentlyDataIsFocusedDay, setLatestInteractionRegion, isWithTimeWheelToo, preventCloseOnSelection, closeCalendar]);
96
+ }, [isDisabled, isOutOfRange, day, appOnMonthChange, appOnDayChange, appOnYearChange, handleChangeComposedDateString, handleFocusMetaDayByDay, tryToFocusCurrentlyDataIsFocusedDay, setLatestInteractionRegion, isWithTimeWheelToo, preventCloseOnSelection, closeCalendar]);
97
97
  const handleOnDayFocus = useCallback(() => {
98
98
  setLatestInteractionRegion('calendar-days');
99
99
  }, [setLatestInteractionRegion]);
@@ -1,62 +1,25 @@
1
+ import 'core-js/modules/esnext.async-iterator.filter.js';
2
+ import 'core-js/modules/esnext.iterator.constructor.js';
3
+ import 'core-js/modules/esnext.iterator.filter.js';
4
+ import 'core-js/modules/esnext.async-iterator.for-each.js';
5
+ import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
7
  import 'core-js/modules/web.dom-collections.iterator.js';
2
- import { useContext, useState, useMemo, useCallback } from 'react';
8
+ import { useContext, useState, useCallback, useMemo } from 'react';
3
9
  import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
4
- import { useKeyboardHandlers } from './useKeyboardHandlers.js';
10
+ import { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic.js';
5
11
  import { useFocusLogic } from './useFocusLogic.js';
6
12
  import { usePopperTriggerLogic } from './usePopperTriggerLogic.js';
7
- import { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic.js';
8
-
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- function sliceIntoChunks(arr, chunkSize) {
11
- const res = [];
12
-
13
- for (let i = 0; i < arr.length; i += chunkSize) {
14
- const chunk = arr.slice(i, i + chunkSize);
15
- res.push(chunk);
16
- }
13
+ import { useKeyboardHandlers } from './useKeyboardHandlers.js';
17
14
 
18
- return res;
19
- }
15
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
16
 
17
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
18
  const useConfigCalendarCTX = () => {
22
19
  const {
23
- props: {
24
- disabled
25
- },
26
- prevYearBtnRef,
27
- prevMonthBtnRef,
28
- nextMonthBtnRef,
29
- nextYearBtnRef,
30
- calendarDaysWrapperRef,
31
- isControllerOnly,
32
- isWithTimeWheelToo,
33
- setLatestInteractionRegion,
34
- autoFocusPrevMonthArrow,
35
- ariaCurrentValueForInputs
20
+ setLatestInteractionRegion
36
21
  } = useContext(ControlledDateTimePickerContext);
37
22
  const [showCalendar, setShowCalendar] = useState(false);
38
- const {
39
- currentMonth,
40
- currentYear,
41
- daysArray,
42
- handlePrevYear,
43
- handlePrevMonth,
44
- handleNextMonth,
45
- handleNextYear
46
- } = useCurrentDisplayedMonthYearLogic();
47
- const {
48
- invisibleFirstDay,
49
- daysMatrixByWeekday,
50
- invisibleLastDay
51
- } = useMemo(() => {
52
- const [invisible1stDay, ...otherDays] = [...daysArray];
53
- const invisibleDayLast = otherDays.pop();
54
- return {
55
- invisibleFirstDay: invisible1stDay,
56
- daysMatrixByWeekday: sliceIntoChunks(otherDays, 7),
57
- invisibleLastDay: invisibleDayLast
58
- };
59
- }, [daysArray]);
60
23
  const setLatestInteractionRegionCalendarHead = useCallback(() => {
61
24
  setLatestInteractionRegion('calendar-head');
62
25
  }, [setLatestInteractionRegion]);
@@ -72,93 +35,28 @@ const useConfigCalendarCTX = () => {
72
35
  const onNextYearFocus = useCallback(() => {
73
36
  setLatestInteractionRegionCalendarHead();
74
37
  }, [setLatestInteractionRegionCalendarHead]);
75
- const {
76
- focusedDay,
77
- tryToFocusCurrentlyDataIsFocusedDay,
78
- handleFocusMetaDay,
79
- handleFocusMetaDayByDay,
80
- resetFocusedDayToStartDate
81
- } = useFocusLogic({
82
- daysArray,
38
+ const currentDisplayedMonthLogic = useCurrentDisplayedMonthYearLogic();
39
+ const focusLogic = useFocusLogic({
40
+ currentDisplayedMonthLogic,
83
41
  showCalendar
84
42
  });
85
- const {
86
- closeCalendar,
87
- handleSetTriggerRef,
88
- setPopperElement,
89
- setArrowElement,
90
- usePopperHelpers,
91
- handleToggleCalendar,
92
- handleMenuWrapperKeyDown
93
- } = usePopperTriggerLogic({
94
- tryToFocusCurrentlyDataIsFocusedDay,
95
- resetFocusedDayToStartDate,
96
- focusedDay,
43
+ const popperTriggerLogic = usePopperTriggerLogic({
44
+ focusLogic,
97
45
  showCalendar,
98
46
  setShowCalendar
99
47
  });
100
- const {
101
- handleDayOnKeyDown,
102
- handlePrevYearKeyDown,
103
- handlePrevMonthKeyDown,
104
- handleNextMonthKeyDown,
105
- handleNextYearKeyDown,
106
- handlePickerIconKeyDown
107
- } = useKeyboardHandlers({
108
- focusedDay,
109
- daysArray,
110
- handlePrevMonth,
111
- handleNextMonth,
112
- handleFocusMetaDay,
113
- handleFocusMetaDayByDay,
114
- tryToFocusCurrentlyDataIsFocusedDay
48
+ const keyboardHandlers = useKeyboardHandlers({
49
+ currentDisplayedMonthLogic,
50
+ focusLogic
115
51
  });
116
- return useMemo(() => ({
52
+ return useMemo(() => _objectSpread(_objectSpread(_objectSpread(_objectSpread({
117
53
  showCalendar,
118
54
  setShowCalendar,
119
- closeCalendar,
120
- setPopperElement,
121
- setArrowElement,
122
- usePopperHelpers,
123
- handleToggleCalendar,
124
- handleSetTriggerRef,
125
- handleMenuWrapperKeyDown,
126
- isControllerOnly,
127
- calendarDaysWrapperRef,
128
- prevYearBtnRef,
129
- prevMonthBtnRef,
130
- nextMonthBtnRef,
131
- nextYearBtnRef,
132
- currentMonth,
133
- currentYear,
134
- daysArray,
135
- invisibleFirstDay,
136
- daysMatrixByWeekday,
137
- invisibleLastDay,
138
- focusedDay,
139
- tryToFocusCurrentlyDataIsFocusedDay,
140
- handleFocusMetaDay,
141
- handleFocusMetaDayByDay,
142
- resetFocusedDayToStartDate,
143
- handlePrevMonth,
144
- handlePrevYear,
145
- handleNextMonth,
146
- handleNextYear,
147
- handleDayOnKeyDown,
148
- handlePrevYearKeyDown,
149
- handlePrevMonthKeyDown,
150
- handleNextMonthKeyDown,
151
- handleNextYearKeyDown,
152
- handlePickerIconKeyDown,
153
55
  onPrevYearFocus,
154
56
  onPrevMonthFocus,
155
57
  onNextMonthFocus,
156
- onNextYearFocus,
157
- isWithTimeWheelToo,
158
- autoFocusPrevMonthArrow,
159
- ariaCurrentValueForInputs,
160
- disabled
161
- }), [showCalendar, closeCalendar, setPopperElement, setArrowElement, usePopperHelpers, handleToggleCalendar, handleSetTriggerRef, handleMenuWrapperKeyDown, isControllerOnly, calendarDaysWrapperRef, prevYearBtnRef, prevMonthBtnRef, nextMonthBtnRef, nextYearBtnRef, currentMonth, currentYear, daysArray, invisibleFirstDay, daysMatrixByWeekday, invisibleLastDay, focusedDay, tryToFocusCurrentlyDataIsFocusedDay, handleFocusMetaDay, handleFocusMetaDayByDay, resetFocusedDayToStartDate, handlePrevMonth, handlePrevYear, handleNextMonth, handleNextYear, handleDayOnKeyDown, handlePrevYearKeyDown, handlePrevMonthKeyDown, handleNextMonthKeyDown, handleNextYearKeyDown, handlePickerIconKeyDown, onPrevYearFocus, onPrevMonthFocus, onNextMonthFocus, onNextYearFocus, isWithTimeWheelToo, autoFocusPrevMonthArrow, ariaCurrentValueForInputs, disabled]);
58
+ onNextYearFocus
59
+ }, currentDisplayedMonthLogic), focusLogic), popperTriggerLogic), keyboardHandlers), [showCalendar, onPrevYearFocus, onPrevMonthFocus, onNextMonthFocus, onNextYearFocus, currentDisplayedMonthLogic, focusLogic, popperTriggerLogic, keyboardHandlers]);
162
60
  };
163
61
 
164
62
  export { useConfigCalendarCTX };