@veracity/vui 2.13.6 → 2.14.0

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 (395) hide show
  1. package/dist/cjs/calendar/calendar.d.ts +5 -0
  2. package/dist/cjs/calendar/calendar.d.ts.map +1 -0
  3. package/dist/cjs/calendar/calendar.js +130 -0
  4. package/dist/cjs/calendar/calendar.styles.d.ts +14 -0
  5. package/dist/cjs/calendar/calendar.styles.d.ts.map +1 -0
  6. package/dist/cjs/calendar/calendar.styles.js +71 -0
  7. package/dist/cjs/calendar/calendar.types.d.ts +81 -0
  8. package/dist/cjs/calendar/calendar.types.d.ts.map +1 -0
  9. package/dist/cjs/calendar/calendar.types.js +2 -0
  10. package/dist/cjs/calendar/components/calendarHeader.d.ts +16 -0
  11. package/dist/cjs/calendar/components/calendarHeader.d.ts.map +1 -0
  12. package/dist/cjs/calendar/components/calendarHeader.js +22 -0
  13. package/dist/cjs/calendar/components/dayPicker.d.ts +9 -0
  14. package/dist/cjs/calendar/components/dayPicker.d.ts.map +1 -0
  15. package/dist/cjs/calendar/components/dayPicker.js +29 -0
  16. package/dist/cjs/calendar/components/index.d.ts +6 -0
  17. package/dist/cjs/calendar/components/index.d.ts.map +1 -0
  18. package/dist/cjs/calendar/components/index.js +21 -0
  19. package/dist/cjs/calendar/components/monthPicker.d.ts +9 -0
  20. package/dist/cjs/calendar/components/monthPicker.d.ts.map +1 -0
  21. package/dist/cjs/calendar/components/monthPicker.js +12 -0
  22. package/dist/cjs/calendar/components/timeUnitHeader.d.ts +13 -0
  23. package/dist/cjs/calendar/components/timeUnitHeader.d.ts.map +1 -0
  24. package/dist/cjs/calendar/components/timeUnitHeader.js +26 -0
  25. package/dist/cjs/calendar/components/yearPicker.d.ts +9 -0
  26. package/dist/cjs/calendar/components/yearPicker.d.ts.map +1 -0
  27. package/dist/cjs/calendar/components/yearPicker.js +10 -0
  28. package/dist/cjs/calendar/consts.d.ts +7 -0
  29. package/dist/cjs/calendar/consts.d.ts.map +1 -0
  30. package/dist/cjs/calendar/consts.js +22 -0
  31. package/dist/cjs/calendar/hooks/index.d.ts +5 -0
  32. package/dist/cjs/calendar/hooks/index.d.ts.map +1 -0
  33. package/dist/cjs/calendar/hooks/index.js +20 -0
  34. package/dist/cjs/calendar/hooks/useBoundaries.d.ts +12 -0
  35. package/dist/cjs/calendar/hooks/useBoundaries.d.ts.map +1 -0
  36. package/dist/cjs/calendar/hooks/useBoundaries.js +16 -0
  37. package/dist/cjs/calendar/hooks/useCalendar.d.ts +8 -0
  38. package/dist/cjs/calendar/hooks/useCalendar.d.ts.map +1 -0
  39. package/dist/cjs/calendar/hooks/useCalendar.js +143 -0
  40. package/dist/cjs/calendar/hooks/useDefaultViewMonth.d.ts +8 -0
  41. package/dist/cjs/calendar/hooks/useDefaultViewMonth.d.ts.map +1 -0
  42. package/dist/cjs/calendar/hooks/useDefaultViewMonth.js +21 -0
  43. package/dist/cjs/calendar/hooks/useSelectedDate.d.ts +15 -0
  44. package/dist/cjs/calendar/hooks/useSelectedDate.d.ts.map +1 -0
  45. package/dist/cjs/calendar/hooks/useSelectedDate.js +20 -0
  46. package/dist/cjs/calendar/index.d.ts +5 -0
  47. package/dist/cjs/calendar/index.d.ts.map +1 -0
  48. package/dist/cjs/calendar/index.js +25 -0
  49. package/dist/cjs/calendar/theme.d.ts +8 -0
  50. package/dist/cjs/calendar/theme.d.ts.map +1 -0
  51. package/dist/cjs/calendar/theme.js +12 -0
  52. package/dist/cjs/calendar/utils.d.ts +26 -0
  53. package/dist/cjs/calendar/utils.d.ts.map +1 -0
  54. package/dist/cjs/calendar/utils.js +95 -0
  55. package/dist/cjs/core/theme.d.ts.map +1 -1
  56. package/dist/cjs/core/theme.js +2 -4
  57. package/dist/cjs/datePicker/components/pickerPanel.d.ts +6 -0
  58. package/dist/cjs/datePicker/components/pickerPanel.d.ts.map +1 -0
  59. package/dist/cjs/datePicker/components/pickerPanel.js +25 -0
  60. package/dist/cjs/datePicker/dateInput.d.ts +11 -0
  61. package/dist/cjs/datePicker/dateInput.d.ts.map +1 -0
  62. package/dist/cjs/datePicker/dateInput.js +92 -0
  63. package/dist/cjs/datePicker/datePicker.d.ts +5 -0
  64. package/dist/cjs/datePicker/datePicker.d.ts.map +1 -0
  65. package/dist/cjs/datePicker/datePicker.js +138 -0
  66. package/dist/cjs/datePicker/datePicker.types.d.ts +22 -0
  67. package/dist/cjs/datePicker/datePicker.types.d.ts.map +1 -0
  68. package/dist/cjs/datePicker/datePicker.types.js +2 -0
  69. package/dist/cjs/datePicker/index.d.ts +4 -0
  70. package/dist/cjs/datePicker/index.d.ts.map +1 -0
  71. package/dist/cjs/datePicker/index.js +24 -0
  72. package/dist/cjs/datePicker/theme.d.ts +8 -0
  73. package/dist/cjs/datePicker/theme.d.ts.map +1 -0
  74. package/dist/cjs/datePicker/theme.js +12 -0
  75. package/dist/cjs/header/loggedInHeader.d.ts.map +1 -1
  76. package/dist/cjs/icons/baseIcons/conc/conAnalytics.d.ts +4 -0
  77. package/dist/cjs/icons/baseIcons/conc/conAnalytics.d.ts.map +1 -0
  78. package/dist/cjs/icons/baseIcons/conc/conAnalytics.js +8 -0
  79. package/dist/cjs/icons/baseIcons/conc/conCircularEconomy.d.ts +4 -0
  80. package/dist/cjs/icons/baseIcons/conc/conCircularEconomy.d.ts.map +1 -0
  81. package/dist/cjs/icons/baseIcons/conc/conCircularEconomy.js +8 -0
  82. package/dist/cjs/icons/baseIcons/conc/conCleanAir.d.ts +4 -0
  83. package/dist/cjs/icons/baseIcons/conc/conCleanAir.d.ts.map +1 -0
  84. package/dist/cjs/icons/baseIcons/conc/conCleanAir.js +7 -0
  85. package/dist/cjs/icons/baseIcons/conc/conCleanWater.d.ts +4 -0
  86. package/dist/cjs/icons/baseIcons/conc/conCleanWater.d.ts.map +1 -0
  87. package/dist/cjs/icons/baseIcons/conc/conCleanWater.js +7 -0
  88. package/dist/cjs/icons/baseIcons/conc/conDataFabric.d.ts +4 -0
  89. package/dist/cjs/icons/baseIcons/conc/conDataFabric.d.ts.map +1 -0
  90. package/dist/cjs/icons/baseIcons/conc/conDataFabric.js +7 -0
  91. package/dist/cjs/icons/baseIcons/conc/conDeepSearch.d.ts +4 -0
  92. package/dist/cjs/icons/baseIcons/conc/conDeepSearch.d.ts.map +1 -0
  93. package/dist/cjs/icons/baseIcons/conc/conDeepSearch.js +8 -0
  94. package/dist/cjs/icons/baseIcons/conc/conElectricCar.d.ts +4 -0
  95. package/dist/cjs/icons/baseIcons/conc/conElectricCar.d.ts.map +1 -0
  96. package/dist/cjs/icons/baseIcons/conc/conElectricCar.js +8 -0
  97. package/dist/cjs/icons/baseIcons/conc/conEnergyEfficiency.d.ts +4 -0
  98. package/dist/cjs/icons/baseIcons/conc/conEnergyEfficiency.d.ts.map +1 -0
  99. package/dist/cjs/icons/baseIcons/conc/conEnergyEfficiency.js +7 -0
  100. package/dist/cjs/icons/baseIcons/conc/conIdentitySafe.d.ts +4 -0
  101. package/dist/cjs/icons/baseIcons/conc/conIdentitySafe.d.ts.map +1 -0
  102. package/dist/cjs/icons/baseIcons/conc/conIdentitySafe.js +7 -0
  103. package/dist/cjs/icons/baseIcons/conc/conMarketplace.d.ts +4 -0
  104. package/dist/cjs/icons/baseIcons/conc/conMarketplace.d.ts.map +1 -0
  105. package/dist/cjs/icons/baseIcons/conc/conMarketplace.js +7 -0
  106. package/dist/cjs/icons/baseIcons/conc/conNetwork.d.ts +4 -0
  107. package/dist/cjs/icons/baseIcons/conc/conNetwork.d.ts.map +1 -0
  108. package/dist/cjs/icons/baseIcons/conc/conNetwork.js +7 -0
  109. package/dist/cjs/icons/baseIcons/conc/conNotifications.d.ts +4 -0
  110. package/dist/cjs/icons/baseIcons/conc/conNotifications.d.ts.map +1 -0
  111. package/dist/cjs/icons/baseIcons/conc/conNotifications.js +7 -0
  112. package/dist/cjs/icons/baseIcons/conc/conNotifications2.d.ts +4 -0
  113. package/dist/cjs/icons/baseIcons/conc/conNotifications2.d.ts.map +1 -0
  114. package/dist/cjs/icons/baseIcons/conc/conNotifications2.js +7 -0
  115. package/dist/cjs/icons/baseIcons/conc/conRecycling.d.ts +4 -0
  116. package/dist/cjs/icons/baseIcons/conc/conRecycling.d.ts.map +1 -0
  117. package/dist/cjs/icons/baseIcons/conc/conRecycling.js +8 -0
  118. package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWater.d.ts +4 -0
  119. package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWater.d.ts.map +1 -0
  120. package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWater.js +8 -0
  121. package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWind.d.ts +4 -0
  122. package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWind.d.ts.map +1 -0
  123. package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWind.js +8 -0
  124. package/dist/cjs/icons/baseIcons/conc/conServices.d.ts +4 -0
  125. package/dist/cjs/icons/baseIcons/conc/conServices.d.ts.map +1 -0
  126. package/dist/cjs/icons/baseIcons/conc/conServices.js +7 -0
  127. package/dist/cjs/icons/baseIcons/conc/conSmartPowerGrid.d.ts +4 -0
  128. package/dist/cjs/icons/baseIcons/conc/conSmartPowerGrid.d.ts.map +1 -0
  129. package/dist/cjs/icons/baseIcons/conc/conSmartPowerGrid.js +8 -0
  130. package/dist/cjs/icons/baseIcons/conc/conSustainableForestry.d.ts +4 -0
  131. package/dist/cjs/icons/baseIcons/conc/conSustainableForestry.d.ts.map +1 -0
  132. package/dist/cjs/icons/baseIcons/conc/conSustainableForestry.js +7 -0
  133. package/dist/cjs/icons/baseIcons/conc/conVeracityAdapter.d.ts +4 -0
  134. package/dist/cjs/icons/baseIcons/conc/conVeracityAdapter.d.ts.map +1 -0
  135. package/dist/cjs/icons/baseIcons/conc/conVeracityAdapter.js +7 -0
  136. package/dist/cjs/icons/baseIcons/conc/conWindmill.d.ts +4 -0
  137. package/dist/cjs/icons/baseIcons/conc/conWindmill.d.ts.map +1 -0
  138. package/dist/cjs/icons/baseIcons/conc/conWindmill.js +8 -0
  139. package/dist/cjs/icons/baseIcons/icons.d.ts +24 -3
  140. package/dist/cjs/icons/baseIcons/icons.d.ts.map +1 -1
  141. package/dist/cjs/icons/baseIcons/icons.js +57 -14
  142. package/dist/cjs/icons/baseIcons/types.d.ts +1 -1
  143. package/dist/cjs/icons/baseIcons/types.d.ts.map +1 -1
  144. package/dist/cjs/index.d.ts +2 -0
  145. package/dist/cjs/index.d.ts.map +1 -1
  146. package/dist/cjs/index.js +2 -0
  147. package/dist/cjs/input/helpText.d.ts.map +1 -1
  148. package/dist/cjs/input/helpText.js +1 -1
  149. package/dist/cjs/tabs/tabs.d.ts.map +1 -1
  150. package/dist/cjs/tabs/tabs.js +8 -5
  151. package/dist/cjs/tabs/tabsNavBar.d.ts.map +1 -1
  152. package/dist/cjs/tabs/tabsNavBar.js +1 -1
  153. package/dist/cjs/tabs/theme.d.ts.map +1 -1
  154. package/dist/cjs/tabs/theme.js +0 -1
  155. package/dist/cjs/theme/components.d.ts +12 -0
  156. package/dist/cjs/theme/components.d.ts.map +1 -1
  157. package/dist/cjs/theme/components.js +78 -74
  158. package/dist/cjs/theme/defaultTheme.d.ts +12 -0
  159. package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
  160. package/dist/cjs/utils/dates.d.ts +20 -0
  161. package/dist/cjs/utils/dates.d.ts.map +1 -1
  162. package/dist/cjs/utils/dates.js +60 -1
  163. package/dist/cjs/utils/formatDate.d.ts +15 -0
  164. package/dist/cjs/utils/formatDate.d.ts.map +1 -0
  165. package/dist/cjs/utils/formatDate.js +51 -0
  166. package/dist/cjs/utils/index.d.ts +1 -0
  167. package/dist/cjs/utils/index.d.ts.map +1 -1
  168. package/dist/cjs/utils/index.js +1 -0
  169. package/dist/esm/calendar/calendar.d.ts +5 -0
  170. package/dist/esm/calendar/calendar.d.ts.map +1 -0
  171. package/dist/esm/calendar/calendar.js +89 -0
  172. package/dist/esm/calendar/calendar.styles.d.ts +14 -0
  173. package/dist/esm/calendar/calendar.styles.d.ts.map +1 -0
  174. package/dist/esm/calendar/calendar.styles.js +65 -0
  175. package/dist/esm/calendar/calendar.types.d.ts +81 -0
  176. package/dist/esm/calendar/calendar.types.d.ts.map +1 -0
  177. package/dist/esm/calendar/calendar.types.js +1 -0
  178. package/dist/esm/calendar/components/calendarHeader.d.ts +16 -0
  179. package/dist/esm/calendar/components/calendarHeader.d.ts.map +1 -0
  180. package/dist/esm/calendar/components/calendarHeader.js +15 -0
  181. package/dist/esm/calendar/components/dayPicker.d.ts +9 -0
  182. package/dist/esm/calendar/components/dayPicker.d.ts.map +1 -0
  183. package/dist/esm/calendar/components/dayPicker.js +22 -0
  184. package/dist/esm/calendar/components/index.d.ts +6 -0
  185. package/dist/esm/calendar/components/index.d.ts.map +1 -0
  186. package/dist/esm/calendar/components/index.js +5 -0
  187. package/dist/esm/calendar/components/monthPicker.d.ts +9 -0
  188. package/dist/esm/calendar/components/monthPicker.d.ts.map +1 -0
  189. package/dist/esm/calendar/components/monthPicker.js +5 -0
  190. package/dist/esm/calendar/components/timeUnitHeader.d.ts +13 -0
  191. package/dist/esm/calendar/components/timeUnitHeader.d.ts.map +1 -0
  192. package/dist/esm/calendar/components/timeUnitHeader.js +19 -0
  193. package/dist/esm/calendar/components/yearPicker.d.ts +9 -0
  194. package/dist/esm/calendar/components/yearPicker.d.ts.map +1 -0
  195. package/dist/esm/calendar/components/yearPicker.js +3 -0
  196. package/dist/esm/calendar/consts.d.ts +7 -0
  197. package/dist/esm/calendar/consts.d.ts.map +1 -0
  198. package/dist/esm/calendar/consts.js +19 -0
  199. package/dist/esm/calendar/hooks/index.d.ts +5 -0
  200. package/dist/esm/calendar/hooks/index.d.ts.map +1 -0
  201. package/dist/esm/calendar/hooks/index.js +4 -0
  202. package/dist/esm/calendar/hooks/useBoundaries.d.ts +12 -0
  203. package/dist/esm/calendar/hooks/useBoundaries.d.ts.map +1 -0
  204. package/dist/esm/calendar/hooks/useBoundaries.js +12 -0
  205. package/dist/esm/calendar/hooks/useCalendar.d.ts +8 -0
  206. package/dist/esm/calendar/hooks/useCalendar.d.ts.map +1 -0
  207. package/dist/esm/calendar/hooks/useCalendar.js +139 -0
  208. package/dist/esm/calendar/hooks/useDefaultViewMonth.d.ts +8 -0
  209. package/dist/esm/calendar/hooks/useDefaultViewMonth.d.ts.map +1 -0
  210. package/dist/esm/calendar/hooks/useDefaultViewMonth.js +17 -0
  211. package/dist/esm/calendar/hooks/useSelectedDate.d.ts +15 -0
  212. package/dist/esm/calendar/hooks/useSelectedDate.d.ts.map +1 -0
  213. package/dist/esm/calendar/hooks/useSelectedDate.js +16 -0
  214. package/dist/esm/calendar/index.d.ts +5 -0
  215. package/dist/esm/calendar/index.d.ts.map +1 -0
  216. package/dist/esm/calendar/index.js +4 -0
  217. package/dist/esm/calendar/theme.d.ts +8 -0
  218. package/dist/esm/calendar/theme.d.ts.map +1 -0
  219. package/dist/esm/calendar/theme.js +10 -0
  220. package/dist/esm/calendar/utils.d.ts +26 -0
  221. package/dist/esm/calendar/utils.d.ts.map +1 -0
  222. package/dist/esm/calendar/utils.js +81 -0
  223. package/dist/esm/core/theme.d.ts.map +1 -1
  224. package/dist/esm/core/theme.js +2 -4
  225. package/dist/esm/datePicker/components/pickerPanel.d.ts +6 -0
  226. package/dist/esm/datePicker/components/pickerPanel.d.ts.map +1 -0
  227. package/dist/esm/datePicker/components/pickerPanel.js +19 -0
  228. package/dist/esm/datePicker/dateInput.d.ts +11 -0
  229. package/dist/esm/datePicker/dateInput.d.ts.map +1 -0
  230. package/dist/esm/datePicker/dateInput.js +53 -0
  231. package/dist/esm/datePicker/datePicker.d.ts +5 -0
  232. package/dist/esm/datePicker/datePicker.d.ts.map +1 -0
  233. package/dist/esm/datePicker/datePicker.js +98 -0
  234. package/dist/esm/datePicker/datePicker.types.d.ts +22 -0
  235. package/dist/esm/datePicker/datePicker.types.d.ts.map +1 -0
  236. package/dist/esm/datePicker/datePicker.types.js +1 -0
  237. package/dist/esm/datePicker/index.d.ts +4 -0
  238. package/dist/esm/datePicker/index.d.ts.map +1 -0
  239. package/dist/esm/datePicker/index.js +3 -0
  240. package/dist/esm/datePicker/theme.d.ts +8 -0
  241. package/dist/esm/datePicker/theme.d.ts.map +1 -0
  242. package/dist/esm/datePicker/theme.js +10 -0
  243. package/dist/esm/header/loggedInHeader.d.ts.map +1 -1
  244. package/dist/esm/icons/baseIcons/conc/conAnalytics.d.ts +4 -0
  245. package/dist/esm/icons/baseIcons/conc/conAnalytics.d.ts.map +1 -0
  246. package/dist/esm/icons/baseIcons/conc/conAnalytics.js +6 -0
  247. package/dist/esm/icons/baseIcons/conc/conCircularEconomy.d.ts +4 -0
  248. package/dist/esm/icons/baseIcons/conc/conCircularEconomy.d.ts.map +1 -0
  249. package/dist/esm/icons/baseIcons/conc/conCircularEconomy.js +6 -0
  250. package/dist/esm/icons/baseIcons/conc/conCleanAir.d.ts +4 -0
  251. package/dist/esm/icons/baseIcons/conc/conCleanAir.d.ts.map +1 -0
  252. package/dist/esm/icons/baseIcons/conc/conCleanAir.js +5 -0
  253. package/dist/esm/icons/baseIcons/conc/conCleanWater.d.ts +4 -0
  254. package/dist/esm/icons/baseIcons/conc/conCleanWater.d.ts.map +1 -0
  255. package/dist/esm/icons/baseIcons/conc/conCleanWater.js +5 -0
  256. package/dist/esm/icons/baseIcons/conc/conDataFabric.d.ts +4 -0
  257. package/dist/esm/icons/baseIcons/conc/conDataFabric.d.ts.map +1 -0
  258. package/dist/esm/icons/baseIcons/conc/conDataFabric.js +5 -0
  259. package/dist/esm/icons/baseIcons/conc/conDeepSearch.d.ts +4 -0
  260. package/dist/esm/icons/baseIcons/conc/conDeepSearch.d.ts.map +1 -0
  261. package/dist/esm/icons/baseIcons/conc/conDeepSearch.js +6 -0
  262. package/dist/esm/icons/baseIcons/conc/conElectricCar.d.ts +4 -0
  263. package/dist/esm/icons/baseIcons/conc/conElectricCar.d.ts.map +1 -0
  264. package/dist/esm/icons/baseIcons/conc/conElectricCar.js +6 -0
  265. package/dist/esm/icons/baseIcons/conc/conEnergyEfficiency.d.ts +4 -0
  266. package/dist/esm/icons/baseIcons/conc/conEnergyEfficiency.d.ts.map +1 -0
  267. package/dist/esm/icons/baseIcons/conc/conEnergyEfficiency.js +5 -0
  268. package/dist/esm/icons/baseIcons/conc/conIdentitySafe.d.ts +4 -0
  269. package/dist/esm/icons/baseIcons/conc/conIdentitySafe.d.ts.map +1 -0
  270. package/dist/esm/icons/baseIcons/conc/conIdentitySafe.js +5 -0
  271. package/dist/esm/icons/baseIcons/conc/conMarketplace.d.ts +4 -0
  272. package/dist/esm/icons/baseIcons/conc/conMarketplace.d.ts.map +1 -0
  273. package/dist/esm/icons/baseIcons/conc/conMarketplace.js +5 -0
  274. package/dist/esm/icons/baseIcons/conc/conNetwork.d.ts +4 -0
  275. package/dist/esm/icons/baseIcons/conc/conNetwork.d.ts.map +1 -0
  276. package/dist/esm/icons/baseIcons/conc/conNetwork.js +5 -0
  277. package/dist/esm/icons/baseIcons/conc/conNotifications.d.ts +4 -0
  278. package/dist/esm/icons/baseIcons/conc/conNotifications.d.ts.map +1 -0
  279. package/dist/esm/icons/baseIcons/conc/conNotifications.js +5 -0
  280. package/dist/esm/icons/baseIcons/conc/conNotifications2.d.ts +4 -0
  281. package/dist/esm/icons/baseIcons/conc/conNotifications2.d.ts.map +1 -0
  282. package/dist/esm/icons/baseIcons/conc/conNotifications2.js +5 -0
  283. package/dist/esm/icons/baseIcons/conc/conRecycling.d.ts +4 -0
  284. package/dist/esm/icons/baseIcons/conc/conRecycling.d.ts.map +1 -0
  285. package/dist/esm/icons/baseIcons/conc/conRecycling.js +6 -0
  286. package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWater.d.ts +4 -0
  287. package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWater.d.ts.map +1 -0
  288. package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWater.js +6 -0
  289. package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWind.d.ts +4 -0
  290. package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWind.d.ts.map +1 -0
  291. package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWind.js +6 -0
  292. package/dist/esm/icons/baseIcons/conc/conServices.d.ts +4 -0
  293. package/dist/esm/icons/baseIcons/conc/conServices.d.ts.map +1 -0
  294. package/dist/esm/icons/baseIcons/conc/conServices.js +5 -0
  295. package/dist/esm/icons/baseIcons/conc/conSmartPowerGrid.d.ts +4 -0
  296. package/dist/esm/icons/baseIcons/conc/conSmartPowerGrid.d.ts.map +1 -0
  297. package/dist/esm/icons/baseIcons/conc/conSmartPowerGrid.js +6 -0
  298. package/dist/esm/icons/baseIcons/conc/conSustainableForestry.d.ts +4 -0
  299. package/dist/esm/icons/baseIcons/conc/conSustainableForestry.d.ts.map +1 -0
  300. package/dist/esm/icons/baseIcons/conc/conSustainableForestry.js +5 -0
  301. package/dist/esm/icons/baseIcons/conc/conVeracityAdapter.d.ts +4 -0
  302. package/dist/esm/icons/baseIcons/conc/conVeracityAdapter.d.ts.map +1 -0
  303. package/dist/esm/icons/baseIcons/conc/conVeracityAdapter.js +5 -0
  304. package/dist/esm/icons/baseIcons/conc/conWindmill.d.ts +4 -0
  305. package/dist/esm/icons/baseIcons/conc/conWindmill.d.ts.map +1 -0
  306. package/dist/esm/icons/baseIcons/conc/conWindmill.js +6 -0
  307. package/dist/esm/icons/baseIcons/icons.d.ts +24 -3
  308. package/dist/esm/icons/baseIcons/icons.d.ts.map +1 -1
  309. package/dist/esm/icons/baseIcons/icons.js +24 -3
  310. package/dist/esm/icons/baseIcons/types.d.ts +1 -1
  311. package/dist/esm/icons/baseIcons/types.d.ts.map +1 -1
  312. package/dist/esm/index.d.ts +2 -0
  313. package/dist/esm/index.d.ts.map +1 -1
  314. package/dist/esm/index.js +2 -0
  315. package/dist/esm/input/helpText.d.ts.map +1 -1
  316. package/dist/esm/input/helpText.js +1 -1
  317. package/dist/esm/tabs/tabs.d.ts.map +1 -1
  318. package/dist/esm/tabs/tabs.js +7 -4
  319. package/dist/esm/tabs/tabsNavBar.d.ts.map +1 -1
  320. package/dist/esm/tabs/tabsNavBar.js +1 -1
  321. package/dist/esm/tabs/theme.d.ts.map +1 -1
  322. package/dist/esm/tabs/theme.js +0 -1
  323. package/dist/esm/theme/components.d.ts +12 -0
  324. package/dist/esm/theme/components.d.ts.map +1 -1
  325. package/dist/esm/theme/components.js +4 -0
  326. package/dist/esm/theme/defaultTheme.d.ts +12 -0
  327. package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
  328. package/dist/esm/utils/dates.d.ts +20 -0
  329. package/dist/esm/utils/dates.d.ts.map +1 -1
  330. package/dist/esm/utils/dates.js +51 -0
  331. package/dist/esm/utils/formatDate.d.ts +15 -0
  332. package/dist/esm/utils/formatDate.d.ts.map +1 -0
  333. package/dist/esm/utils/formatDate.js +36 -0
  334. package/dist/esm/utils/index.d.ts +1 -0
  335. package/dist/esm/utils/index.d.ts.map +1 -1
  336. package/dist/esm/utils/index.js +1 -0
  337. package/package.json +1 -1
  338. package/src/calendar/calendar.styles.ts +75 -0
  339. package/src/calendar/calendar.tsx +145 -0
  340. package/src/calendar/calendar.types.ts +91 -0
  341. package/src/calendar/components/calendarHeader.tsx +56 -0
  342. package/src/calendar/components/dayPicker.tsx +55 -0
  343. package/src/calendar/components/index.ts +5 -0
  344. package/src/calendar/components/monthPicker.tsx +26 -0
  345. package/src/calendar/components/timeUnitHeader.tsx +47 -0
  346. package/src/calendar/components/yearPicker.tsx +24 -0
  347. package/src/calendar/consts.ts +24 -0
  348. package/src/calendar/hooks/index.ts +4 -0
  349. package/src/calendar/hooks/useBoundaries.ts +16 -0
  350. package/src/calendar/hooks/useCalendar.ts +181 -0
  351. package/src/calendar/hooks/useDefaultViewMonth.ts +18 -0
  352. package/src/calendar/hooks/useSelectedDate.ts +20 -0
  353. package/src/calendar/index.ts +4 -0
  354. package/src/calendar/theme.ts +14 -0
  355. package/src/calendar/utils.ts +100 -0
  356. package/src/core/theme.ts +2 -4
  357. package/src/datePicker/components/pickerPanel.tsx +22 -0
  358. package/src/datePicker/dateInput.tsx +77 -0
  359. package/src/datePicker/datePicker.tsx +172 -0
  360. package/src/datePicker/datePicker.types.ts +25 -0
  361. package/src/datePicker/index.ts +3 -0
  362. package/src/datePicker/theme.ts +14 -0
  363. package/src/header/loggedInHeader.tsx +0 -1
  364. package/src/icons/baseIcons/conc/conAnalytics.ts +9 -0
  365. package/src/icons/baseIcons/conc/conCircularEconomy.ts +9 -0
  366. package/src/icons/baseIcons/conc/conCleanAir.ts +8 -0
  367. package/src/icons/baseIcons/conc/conCleanWater.ts +8 -0
  368. package/src/icons/baseIcons/conc/conDataFabric.ts +8 -0
  369. package/src/icons/baseIcons/conc/conDeepSearch.ts +9 -0
  370. package/src/icons/baseIcons/conc/conElectricCar.ts +9 -0
  371. package/src/icons/baseIcons/conc/conEnergyEfficiency.ts +8 -0
  372. package/src/icons/baseIcons/conc/conIdentitySafe.ts +8 -0
  373. package/src/icons/baseIcons/conc/conMarketplace.ts +8 -0
  374. package/src/icons/baseIcons/conc/conNetwork.ts +8 -0
  375. package/src/icons/baseIcons/conc/conNotifications.ts +8 -0
  376. package/src/icons/baseIcons/conc/conNotifications2.ts +8 -0
  377. package/src/icons/baseIcons/conc/conRecycling.ts +9 -0
  378. package/src/icons/baseIcons/conc/conRenewableCertificateWater.ts +9 -0
  379. package/src/icons/baseIcons/conc/conRenewableCertificateWind.ts +9 -0
  380. package/src/icons/baseIcons/conc/conServices.ts +8 -0
  381. package/src/icons/baseIcons/conc/conSmartPowerGrid.ts +9 -0
  382. package/src/icons/baseIcons/conc/conSustainableForestry.ts +8 -0
  383. package/src/icons/baseIcons/conc/conVeracityAdapter.ts +8 -0
  384. package/src/icons/baseIcons/conc/conWindmill.ts +9 -0
  385. package/src/icons/baseIcons/icons.ts +24 -3
  386. package/src/icons/baseIcons/types.ts +24 -3
  387. package/src/index.ts +2 -0
  388. package/src/input/helpText.tsx +1 -0
  389. package/src/tabs/tabs.tsx +7 -4
  390. package/src/tabs/tabsNavBar.tsx +3 -1
  391. package/src/tabs/theme.ts +0 -1
  392. package/src/theme/components.ts +4 -0
  393. package/src/utils/dates.ts +60 -0
  394. package/src/utils/formatDate.ts +63 -0
  395. package/src/utils/index.ts +1 -0
@@ -0,0 +1,91 @@
1
+ import { BoxProps } from '../box'
2
+ import { ThemingProps } from '../theme'
3
+
4
+ export interface DateRange {
5
+ startDate?: Date
6
+ endDate?: Date
7
+ }
8
+
9
+ export type FlowDirection = 'next' | 'prev'
10
+
11
+ /**
12
+ * Mode for this calendar
13
+ * Should it handle from date, to date or single date mode
14
+ */
15
+ export type CalendarMode = 'exact' | 'from' | 'to' | 'range'
16
+
17
+ export interface DefaultViewMonthProps {
18
+ boundaries?: DateRange
19
+ isStartDate?: boolean
20
+ selectedDate?: Date
21
+ }
22
+
23
+ export interface MonthProps {
24
+ boundaries?: DateRange
25
+ fixedNumberOfWeeks?: boolean
26
+ mode: CalendarMode
27
+ selectedDates?: DateRange
28
+ timeUnitMode?: TimeUnitMode
29
+ viewDate: Date
30
+ }
31
+
32
+ export type ItemProps = {
33
+ boundary?: boolean
34
+ current?: boolean
35
+ isDisabled?: boolean
36
+ isHidden?: boolean
37
+ isToday?: boolean
38
+ isSelected?: boolean
39
+ }
40
+
41
+ /**
42
+ * Single time item like day in a month, month in a year and year in multiple years
43
+ */
44
+ export interface TimeItem {
45
+ /** item is at the edge for a range, marking either start or end of it */
46
+ boundary: boolean
47
+ /** item is clicked and selected by the user */
48
+ current: boolean
49
+ /** the actual time item */
50
+ date: Date
51
+ /** disabled because out of bounds */
52
+ isDisabled: boolean
53
+ /** item should be hidden, for days we hide days that are not in the current month,
54
+ * but still are rendered due to weekDays */
55
+ isHidden: boolean
56
+ /** item is in the selected range between two dates */
57
+ isSelected: boolean
58
+ /** the date is today*/
59
+ isToday: boolean
60
+ }
61
+
62
+ /**
63
+ * All the date items in a view and whether next/prev button should be disabled
64
+ */
65
+ export interface TimeResult {
66
+ items: TimeItem[]
67
+ nextDisabled: boolean
68
+ prevDisabled: boolean
69
+ }
70
+
71
+ /**
72
+ * Time mode for calendar, display days in month, months in year or years in multiple years
73
+ */
74
+ export type TimeUnitMode = 'day' | 'month' | 'year'
75
+
76
+ export type CalendarProps = Omit<BoxProps, 'size' | 'variant'> &
77
+ ThemingProps<'Calendar'> & {
78
+ /** Allowed range to select from */
79
+ boundaries?: DateRange
80
+ className?: string
81
+ disabled?: boolean
82
+ /** Including always 6 weeks into a month (used to have stable height in the calendar) */
83
+ fixedNumberOfWeeks?: boolean
84
+ isStartDate?: boolean
85
+ /** Calendar select mode: 'exact' | 'from' | 'to' | 'range' @default 'exact' */
86
+ mode: CalendarMode
87
+ /** On selecting a day */
88
+ onSelectDates?: (value: DateRange) => void
89
+ /** Selected date */
90
+ selectedDates?: DateRange
91
+ }
@@ -0,0 +1,56 @@
1
+ import React, { FC } from 'react'
2
+
3
+ import Box from '../../box'
4
+ import { IconButton } from '../../button'
5
+ import { cs } from '../../utils'
6
+ import { FlowDirection, TimeUnitMode } from '../calendar.types'
7
+ import { TimeUnitHeader } from './timeUnitHeader'
8
+
9
+ type Props = {
10
+ nextDisabled?: boolean
11
+ onChangeViewItem: (direction: FlowDirection) => void
12
+ onSetTimeUnitMode: (mode: TimeUnitMode) => void
13
+ prevDisabled?: boolean
14
+ timeUnitMode: TimeUnitMode
15
+ viewMonth: Date
16
+ }
17
+
18
+ const size = 40
19
+
20
+ /**
21
+ * Header for the calendar
22
+ */
23
+ export const CalendarHeader: FC<Props> = ({
24
+ nextDisabled,
25
+ onChangeViewItem,
26
+ onSetTimeUnitMode,
27
+ prevDisabled,
28
+ timeUnitMode,
29
+ viewMonth
30
+ }) => (
31
+ <Box borderBottom="1px solid lightgray" centerV className={cs('vui-calendar-header')}>
32
+ <Box className="vui-calendar-header-left">
33
+ <TimeUnitHeader onSetTimeUnitMode={onSetTimeUnitMode} timeUnitMode={timeUnitMode} viewMonth={viewMonth} />
34
+ </Box>
35
+ <Box className="vui-calendar-header-right" flex="1" justify="flex-end">
36
+ <IconButton
37
+ className="icon"
38
+ disabled={prevDisabled}
39
+ h={size}
40
+ icon="falChevronLeft"
41
+ onClick={() => onChangeViewItem('prev')}
42
+ size="sm"
43
+ w={size}
44
+ />
45
+ <IconButton
46
+ className="icon"
47
+ disabled={nextDisabled}
48
+ h={size}
49
+ icon="falChevronRight"
50
+ onClick={() => onChangeViewItem('next')}
51
+ size="sm"
52
+ w={size}
53
+ />
54
+ </Box>
55
+ </Box>
56
+ )
@@ -0,0 +1,55 @@
1
+ import React from 'react'
2
+
3
+ import Box from '../../box'
4
+ import { styled, th } from '../../core'
5
+ import { cs } from '../../utils'
6
+ import { CalendarItem, CalendarItemsContainer } from '../calendar.styles'
7
+ import { ItemProps, TimeResult } from '../calendar.types'
8
+ import { weekDays } from '../consts'
9
+
10
+ type DayPickerProps = {
11
+ calendar: TimeResult
12
+ onSelectDay?: (date: Date) => void
13
+ }
14
+
15
+ const DayItem = styled(CalendarItem)<ItemProps>`
16
+ aspect-ratio: 1;
17
+ position: relative;
18
+ font-size: 14px;
19
+ font-weight: 500;
20
+ width: 40px;
21
+ height: 40px;
22
+ color: ${th.color('seaBlue.main')};
23
+ `
24
+
25
+ const DaysContainer = styled(CalendarItemsContainer)`
26
+ grid-template-columns: repeat(7, 1fr);
27
+ grid-template-rows: auto;
28
+ `
29
+
30
+ export const DayPicker = ({ calendar, onSelectDay }: DayPickerProps) => (
31
+ <DaysContainer className={cs('vui-day-picker')} mt={1} wrap>
32
+ {weekDays.map((day, index) => (
33
+ <Box
34
+ border={0}
35
+ className="dayHeader"
36
+ color="seaBlue.main"
37
+ fontSize={16}
38
+ fontWeight={500}
39
+ key={`week-day-${index}`}
40
+ >
41
+ {day}
42
+ </Box>
43
+ ))}
44
+ {calendar.items.map(item => (
45
+ <DayItem
46
+ className={cs('vui-day-item')}
47
+ key={item.date.getTime()}
48
+ onClick={(!item.isDisabled && onSelectDay?.(item.date)) || undefined}
49
+ {...item}
50
+ >
51
+ {item.date.getUTCDate()}
52
+ </DayItem>
53
+ ))}
54
+ </DaysContainer>
55
+ )
@@ -0,0 +1,5 @@
1
+ export * from './dayPicker'
2
+ export * from './calendarHeader'
3
+ export * from './monthPicker'
4
+ export * from './timeUnitHeader'
5
+ export * from './yearPicker'
@@ -0,0 +1,26 @@
1
+ import React from 'react'
2
+
3
+ import { cs } from '../../utils'
4
+ import { CalendarItem as MonthItem, CalendarItemsContainer } from '../calendar.styles'
5
+ import { TimeResult } from '../calendar.types'
6
+ import { monthsShort } from '../consts'
7
+
8
+ type MonthPickerProps = {
9
+ calendar: TimeResult
10
+ onSelectMonth?: (date: Date) => void
11
+ }
12
+
13
+ export const MonthPicker = ({ calendar, onSelectMonth }: MonthPickerProps) => (
14
+ <CalendarItemsContainer className={cs('vui-month-picker')} gridTemplateRows="repeat(4, 65px)">
15
+ {calendar.items.map(item => (
16
+ <MonthItem
17
+ fontWeight={500}
18
+ key={item.date.getTime()}
19
+ onClick={(!item.isDisabled && onSelectMonth && onSelectMonth(item.date)) || undefined}
20
+ {...item}
21
+ >
22
+ {monthsShort[item.date.getUTCMonth()]}
23
+ </MonthItem>
24
+ ))}
25
+ </CalendarItemsContainer>
26
+ )
@@ -0,0 +1,47 @@
1
+ import React, { FC } from 'react'
2
+
3
+ import { Box } from '../../box'
4
+ import { Button } from '../../button'
5
+ import { cs } from '../../utils'
6
+ import { TimeUnitMode } from '../calendar.types'
7
+ import { months } from '../consts'
8
+ import { isDay, isMonth, isYear } from '../utils'
9
+
10
+ const h = 40
11
+ const fontSize = 16
12
+
13
+ type TimeUnitHeaderProps = {
14
+ onSetTimeUnitMode: (mode: TimeUnitMode) => void
15
+ timeUnitMode: TimeUnitMode
16
+ viewMonth: Date
17
+ }
18
+
19
+ /**
20
+ * Displays the header title with the month and year being viewed
21
+ */
22
+ export const TimeUnitHeader: FC<TimeUnitHeaderProps> = ({ onSetTimeUnitMode, timeUnitMode, viewMonth }) => {
23
+ return (
24
+ <Box center className={cs('vui-time-unit-header')} cursor="pointer" flex="1" justify="start">
25
+ {isDay(timeUnitMode) && (
26
+ <>
27
+ <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('month')} variant="tertiaryDark">
28
+ {months[viewMonth.getUTCMonth()]}
29
+ </Button>
30
+ <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('year')} variant="tertiaryDark">
31
+ {viewMonth.getUTCFullYear()}
32
+ </Button>
33
+ </>
34
+ )}
35
+ {isMonth(timeUnitMode) && (
36
+ <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('year')} variant="tertiaryDark">
37
+ {viewMonth.getUTCFullYear()}
38
+ </Button>
39
+ )}
40
+ {isYear(timeUnitMode) && (
41
+ <Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('day')} variant="tertiaryDark">
42
+ Year
43
+ </Button>
44
+ )}
45
+ </Box>
46
+ )
47
+ }
@@ -0,0 +1,24 @@
1
+ import React from 'react'
2
+
3
+ import { CalendarItem as YearItem, CalendarItemsContainer } from '../calendar.styles'
4
+ import { TimeResult } from '../calendar.types'
5
+
6
+ type YearPickerProps = {
7
+ calendar: TimeResult
8
+ onSelectYear?: (date: Date) => void
9
+ }
10
+
11
+ export const YearPicker = ({ calendar, onSelectYear }: YearPickerProps) => (
12
+ <CalendarItemsContainer className="vui-year-picker">
13
+ {calendar.items.map(item => (
14
+ <YearItem
15
+ fontWeight={500}
16
+ key={item.date.getTime()}
17
+ onClick={(!item.isDisabled && onSelectYear?.(item.date)) || undefined}
18
+ {...item}
19
+ >
20
+ {item.date.getUTCFullYear()}
21
+ </YearItem>
22
+ ))}
23
+ </CalendarItemsContainer>
24
+ )
@@ -0,0 +1,24 @@
1
+ export const viewYears = 12
2
+
3
+ export const maxDateTimestamp = '9000-12-31T23:59:59Z'
4
+
5
+ export const minDateTimestamp = '1753-01-02T00:00:00Z'
6
+
7
+ export const months = [
8
+ 'January',
9
+ 'February',
10
+ 'March',
11
+ 'April',
12
+ 'May',
13
+ 'June',
14
+ 'July',
15
+ 'August',
16
+ 'September',
17
+ 'October',
18
+ 'November',
19
+ 'December'
20
+ ]
21
+
22
+ export const monthsShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
23
+
24
+ export const weekDays = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
@@ -0,0 +1,4 @@
1
+ export * from './useBoundaries'
2
+ export * from './useCalendar'
3
+ export * from './useDefaultViewMonth'
4
+ export * from './useSelectedDate'
@@ -0,0 +1,16 @@
1
+ import { DateRange } from '../calendar.types'
2
+ import { maxDateTimestamp, minDateTimestamp } from '../consts'
3
+
4
+ /**
5
+ * Calculates boundaries for max/min dates allowed
6
+ * Memoized so it will only recalculate when the boundaries changes
7
+ */
8
+ export const useBoundaries = ({ boundaries }: { boundaries?: DateRange }) => {
9
+ const min = new Date(minDateTimestamp)
10
+ const max = new Date(maxDateTimestamp)
11
+
12
+ const minDateTime = boundaries?.startDate || min
13
+ const maxDateTime = boundaries?.endDate || max
14
+
15
+ return { maxDateTime, minDateTime }
16
+ }
@@ -0,0 +1,181 @@
1
+ import { useMemo } from 'react'
2
+
3
+ import { generateDateByUTCValue, getDateUTCValue, sameDate, sameYear, sameYearSameMonth } from '../../utils'
4
+ import { MonthProps, TimeItem, TimeResult } from '../calendar.types'
5
+ import { viewYears } from '../consts'
6
+ import { getNextDate, isDay, isExact, isFrom, isMonth, isRange, isTo, isYear } from '../utils'
7
+ import { useBoundaries } from './useBoundaries'
8
+ import { useSelectedDate } from './useSelectedDate'
9
+
10
+ /**
11
+ * Main hook for doing calendar calculations
12
+ * Calculates for all time unit modes: day, month and year
13
+ * Depends on useBoundaries and useSelectedDate to do initial setup
14
+ */
15
+ export const useCalendar = ({
16
+ boundaries,
17
+ selectedDates,
18
+ mode = 'exact',
19
+ timeUnitMode,
20
+ viewDate,
21
+ fixedNumberOfWeeks
22
+ }: MonthProps) => {
23
+ const boundariesProcessed = useBoundaries({ boundaries })
24
+ const selectedProcessed = useSelectedDate({ selectedDates, mode })
25
+
26
+ return useMemo(() => {
27
+ const { maxDateTime, minDateTime } = boundariesProcessed
28
+ const { currentDateTime, maxSelectedDateTime, minSelectedDateTime } = selectedProcessed
29
+ const { utcYear: viewDateYear, utcMonth: viewDateMonth } = getDateUTCValue(viewDate)
30
+
31
+ let calendarFirstDay: Date
32
+ let calendarLastDay: Date
33
+ let nextFirstDay: Date
34
+ let prevLastDay: Date
35
+ let firstDay: Date
36
+ let lastDay: Date
37
+
38
+ if (isDay(timeUnitMode)) {
39
+ firstDay = generateDateByUTCValue(viewDateYear, viewDateMonth, 1)
40
+ lastDay = generateDateByUTCValue(viewDateYear, viewDateMonth + 1, 0) // lastDay
41
+
42
+ nextFirstDay = generateDateByUTCValue(viewDateYear, viewDateMonth + 1, 1)
43
+ prevLastDay = generateDateByUTCValue(viewDateYear, viewDateMonth, 0)
44
+
45
+ const weekdayFirst = firstDay.getUTCDay()
46
+ const weekdayLast = lastDay.getUTCDay()
47
+
48
+ // Monday preceding the month (or first day of the month if it's on a Monday)
49
+ calendarFirstDay =
50
+ weekdayFirst === 0
51
+ ? new Date(Date.UTC(viewDateYear, viewDateMonth, 2 - 7))
52
+ : new Date(Date.UTC(viewDateYear, viewDateMonth, 2 - weekdayFirst))
53
+
54
+ // Sunday after the month (or last day of the month if it's on a Sunday)
55
+ calendarLastDay =
56
+ weekdayLast === 0
57
+ ? new Date(Date.UTC(viewDateYear, viewDateMonth + 1, 0))
58
+ : new Date(Date.UTC(viewDateYear, viewDateMonth + 1, 8 - weekdayLast))
59
+
60
+ // If calendar must contain constant number of weeks (6 weeks)
61
+ // Missing weeks will be added to the end of the month
62
+ const numberOfWeeks = Math.round((+calendarLastDay - +calendarFirstDay) / (7 * 24 * 60 * 60 * 1000))
63
+ if (fixedNumberOfWeeks) {
64
+ for (let week = numberOfWeeks; week < 6; week++) {
65
+ calendarLastDay = generateDateByUTCValue(
66
+ calendarLastDay.getUTCFullYear(),
67
+ calendarLastDay.getUTCMonth(),
68
+ calendarLastDay.getUTCDate() + 7
69
+ )
70
+ }
71
+ }
72
+ } else if (isMonth(timeUnitMode)) {
73
+ calendarFirstDay = firstDay = generateDateByUTCValue(viewDateYear, 0, 1)
74
+ calendarLastDay = lastDay = generateDateByUTCValue(viewDateYear, 11, 31)
75
+ nextFirstDay = generateDateByUTCValue(viewDateYear + 1, 0, 1)
76
+ prevLastDay = generateDateByUTCValue(viewDateYear - 1, 11, 31)
77
+ } else {
78
+ const calendarStartYear = new Date().getUTCFullYear() - viewYears / 2
79
+ const diffYears = calendarStartYear - viewDateYear
80
+
81
+ const startYear = calendarStartYear - Math.ceil(diffYears / viewYears) * viewYears
82
+ const endYear = startYear + viewYears - 1
83
+
84
+ if (startYear === 1753) calendarFirstDay = firstDay = generateDateByUTCValue(startYear, 0, 2)
85
+ else calendarFirstDay = firstDay = generateDateByUTCValue(startYear, 0, 1)
86
+
87
+ calendarLastDay = lastDay = generateDateByUTCValue(endYear, 11, 31)
88
+ nextFirstDay = generateDateByUTCValue(endYear + 1, 0, 1)
89
+ prevLastDay = generateDateByUTCValue(startYear - 1, 11, 31)
90
+ }
91
+
92
+ const items: TimeItem[] = []
93
+
94
+ // Loops between first and last date
95
+ let dateItem = calendarFirstDay
96
+ do {
97
+ const isHidden = dateItem < firstDay || dateItem >= lastDay
98
+ const isToday = sameDate(dateItem, new Date())
99
+ const { utcYear: minDateYear, utcMonth: minDateMonth } = getDateUTCValue(minDateTime)
100
+
101
+ let minUnitModeDate = minDateTime
102
+ if (isMonth(timeUnitMode))
103
+ // Need to compare with the first day of the month to decide if the month is disabled in the month overview
104
+ minUnitModeDate = generateDateByUTCValue(minDateYear, minDateMonth, 1)
105
+ else if (isYear(timeUnitMode))
106
+ // Need to compare with the first day of the year to decide if the year is disabled in the year overview
107
+ minUnitModeDate = generateDateByUTCValue(minDateYear, 0, 1)
108
+
109
+ const isDisabled = dateItem < minUnitModeDate || dateItem > maxDateTime ? true : false
110
+
111
+ // The calendar only select a single date
112
+ const isExactSelected = isExact(mode) && minSelectedDateTime && +dateItem === +minSelectedDateTime
113
+
114
+ // The calendar selects a range
115
+ const inRangeLow = minSelectedDateTime && dateItem >= minSelectedDateTime
116
+ const inRangeHigh = maxSelectedDateTime && dateItem <= maxSelectedDateTime
117
+
118
+ const inRange =
119
+ !isExact(mode) &&
120
+ ((!isDisabled && inRangeLow && (!maxSelectedDateTime || inRangeHigh)) ||
121
+ (inRangeHigh && (!minSelectedDateTime || inRangeLow)))
122
+
123
+ const isRangeSelected = isRange(mode) && inRange
124
+ const isFromSelected = isFrom(mode) && inRangeLow
125
+ const isToSelected = isTo(mode) && inRangeHigh
126
+
127
+ const isSelected = !!(isExactSelected || isFromSelected || isToSelected || isRangeSelected)
128
+
129
+ let maxSelectedCheck = maxSelectedDateTime
130
+ let minSelectedCheck = minSelectedDateTime
131
+
132
+ if (isYear(timeUnitMode)) {
133
+ if (maxSelectedCheck) maxSelectedCheck = generateDateByUTCValue(maxSelectedCheck.getUTCFullYear(), 0, 1)
134
+ if (minSelectedCheck) minSelectedCheck = generateDateByUTCValue(minSelectedCheck.getUTCFullYear(), 0, 1)
135
+ }
136
+ if (isMonth(timeUnitMode)) {
137
+ if (maxSelectedCheck)
138
+ maxSelectedCheck = generateDateByUTCValue(
139
+ maxSelectedCheck.getUTCFullYear(),
140
+ maxSelectedCheck.getUTCMonth(),
141
+ 1
142
+ )
143
+ if (minSelectedCheck)
144
+ minSelectedCheck = generateDateByUTCValue(
145
+ minSelectedCheck.getUTCFullYear(),
146
+ minSelectedCheck.getUTCMonth(),
147
+ 1
148
+ )
149
+ }
150
+
151
+ const boundary = !isTo(mode) && sameDate(dateItem, minSelectedCheck)
152
+
153
+ let current: boolean
154
+ if (isDay(timeUnitMode)) current = sameDate(dateItem, currentDateTime)
155
+ else if (isMonth(timeUnitMode)) current = sameYearSameMonth(dateItem, currentDateTime)
156
+ else current = sameYear(dateItem, currentDateTime)
157
+
158
+ items.push({
159
+ date: dateItem,
160
+ isHidden,
161
+ isToday,
162
+ isDisabled: boundary ? false : isDisabled,
163
+ isSelected,
164
+ boundary,
165
+ current
166
+ })
167
+
168
+ dateItem = getNextDate(dateItem, timeUnitMode)
169
+ } while (dateItem <= calendarLastDay)
170
+
171
+ // Disables next/prev buttons
172
+ const prevDisabled = minDateTime > prevLastDay
173
+ const nextDisabled = maxDateTime < nextFirstDay
174
+
175
+ return {
176
+ items,
177
+ prevDisabled,
178
+ nextDisabled
179
+ } as TimeResult
180
+ }, [boundaries, selectedDates, mode, timeUnitMode, viewDate])
181
+ }
@@ -0,0 +1,18 @@
1
+ import { DefaultViewMonthProps } from '../calendar.types'
2
+
3
+ /**
4
+ * Calculates the default view date, either using selected date, current date or boundaries
5
+ * Used when initializing, after that viewDate will be set
6
+ * Memoized so will only recalculate when boundaries or selectedDate changes
7
+ */
8
+ export const useDefaultViewMonth = ({ boundaries, selectedDate, isStartDate }: DefaultViewMonthProps) => {
9
+ if (selectedDate) return selectedDate
10
+
11
+ const currentDate = new Date()
12
+ if (!boundaries) return currentDate
13
+
14
+ if (boundaries.endDate && currentDate > boundaries.endDate && !isStartDate) return boundaries.endDate
15
+ if (boundaries.startDate && currentDate > boundaries.startDate && isStartDate) return boundaries.startDate
16
+
17
+ return currentDate
18
+ }
@@ -0,0 +1,20 @@
1
+ import { CalendarMode, DateRange } from '../calendar.types'
2
+ import { isExact, isFrom } from '../utils'
3
+
4
+ /**
5
+ * Calculate the selected dates
6
+ * If we are in single calendar mode, will use the startDate as selected date
7
+ * Memoized so will only recalculate when selectedDates or mode changes
8
+ */
9
+ export const useSelectedDate = ({ selectedDates, mode }: { mode: CalendarMode; selectedDates?: DateRange }) => {
10
+ const currentDateTime = isFrom(mode) || isExact(mode) ? selectedDates?.startDate : selectedDates?.endDate
11
+
12
+ const minSelectedDateTime = selectedDates?.startDate || undefined
13
+ const maxSelectedDateTime = selectedDates?.endDate || undefined
14
+
15
+ return {
16
+ currentDateTime,
17
+ maxSelectedDateTime,
18
+ minSelectedDateTime
19
+ }
20
+ }
@@ -0,0 +1,4 @@
1
+ export * from './calendar'
2
+ export { default } from './calendar'
3
+ export * from './calendar.types'
4
+ export * from './consts'
@@ -0,0 +1,14 @@
1
+ const baseStyle = {}
2
+
3
+ const defaultProps = {}
4
+
5
+ const sizes = {}
6
+
7
+ const variants = {}
8
+
9
+ export default {
10
+ baseStyle,
11
+ defaultProps,
12
+ sizes,
13
+ variants
14
+ }