@koine/react 1.0.10 → 1.0.13

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 (445) hide show
  1. package/Alert/Alert.d.ts +5 -0
  2. package/Alert/Alert.js +10 -0
  3. package/Alert/index.d.ts +1 -0
  4. package/Alert/index.js +1 -0
  5. package/Alert/package.json +6 -0
  6. package/Animations/Reveal.d.ts +4 -0
  7. package/Animations/Reveal.js +17 -0
  8. package/Animations/Underline.d.ts +1 -0
  9. package/Animations/Underline.js +5 -0
  10. package/Animations/index.d.ts +3 -0
  11. package/Animations/index.js +3 -0
  12. package/Animations/package.json +6 -0
  13. package/Animations/useReveal.d.ts +33 -0
  14. package/Animations/useReveal.js +71 -0
  15. package/Autocomplete/AutocompleteDownshift.d.ts +1 -0
  16. package/Autocomplete/AutocompleteDownshift.js +158 -0
  17. package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +1 -0
  18. package/Autocomplete/AutocompleteDownshiftMultiselect.js +353 -0
  19. package/Autocomplete/AutocompleteMui.d.ts +47 -0
  20. package/Autocomplete/AutocompleteMui.js +182 -0
  21. package/Autocomplete/AutocompleteReach.d.ts +1 -0
  22. package/Autocomplete/AutocompleteReach.js +112 -0
  23. package/Autocomplete/components.d.ts +21 -0
  24. package/Autocomplete/components.js +34 -0
  25. package/Autocomplete/helpers.d.ts +3 -0
  26. package/Autocomplete/helpers.js +28 -0
  27. package/Autocomplete/index.d.ts +2 -0
  28. package/Autocomplete/index.js +3 -0
  29. package/Autocomplete/package.json +6 -0
  30. package/Bg/BgColor.d.ts +36 -0
  31. package/Bg/BgColor.js +21 -0
  32. package/Bg/BgPhoto.d.ts +13 -0
  33. package/Bg/BgPhoto.js +16 -0
  34. package/Bg/BgSvg.d.ts +7 -0
  35. package/Bg/BgSvg.js +12 -0
  36. package/Bg/index.d.ts +3 -0
  37. package/Bg/index.js +3 -0
  38. package/Bg/package.json +6 -0
  39. package/Breadcrumbs/Breadcrumbs.d.ts +13 -0
  40. package/Breadcrumbs/Breadcrumbs.js +27 -0
  41. package/Breadcrumbs/index.d.ts +1 -0
  42. package/Breadcrumbs/index.js +1 -0
  43. package/Breadcrumbs/package.json +6 -0
  44. package/Buttons/Button.d.ts +18 -0
  45. package/Buttons/Button.js +14 -0
  46. package/Buttons/ButtonComposite.d.ts +23 -0
  47. package/Buttons/ButtonComposite.js +28 -0
  48. package/Buttons/ButtonFab.d.ts +7 -0
  49. package/Buttons/ButtonFab.js +6 -0
  50. package/Buttons/ButtonLink.d.ts +8 -0
  51. package/Buttons/ButtonLink.js +11 -0
  52. package/Buttons/IconButton.d.ts +11 -0
  53. package/Buttons/IconButton.js +7 -0
  54. package/Buttons/index.d.ts +5 -0
  55. package/Buttons/index.js +5 -0
  56. package/Buttons/package.json +6 -0
  57. package/Calendar/CalendarDaygridCell.d.ts +36 -0
  58. package/Calendar/CalendarDaygridCell.js +57 -0
  59. package/Calendar/CalendarDaygridNav.d.ts +27 -0
  60. package/Calendar/CalendarDaygridNav.js +23 -0
  61. package/Calendar/CalendarDaygridTable.d.ts +25 -0
  62. package/Calendar/CalendarDaygridTable.js +57 -0
  63. package/Calendar/CalendarLegend.d.ts +19 -0
  64. package/Calendar/CalendarLegend.js +16 -0
  65. package/Calendar/calendar-api-google.d.ts +18 -0
  66. package/Calendar/calendar-api-google.js +127 -0
  67. package/Calendar/index.d.ts +6 -0
  68. package/Calendar/index.js +6 -0
  69. package/Calendar/package.json +6 -0
  70. package/Calendar/types.d.ts +81 -0
  71. package/Calendar/types.js +1 -0
  72. package/Calendar/useCalendar.d.ts +49 -0
  73. package/Calendar/useCalendar.js +183 -0
  74. package/Calendar/utils.d.ts +11 -0
  75. package/Calendar/utils.js +202 -0
  76. package/Carousel/Carousel.d.ts +1 -0
  77. package/Carousel/Carousel.js +378 -0
  78. package/Carousel/CarouselCss.d.ts +47 -0
  79. package/Carousel/CarouselCss.js +23 -0
  80. package/Carousel/index.d.ts +1 -0
  81. package/Carousel/index.js +1 -0
  82. package/Carousel/package.json +6 -0
  83. package/Collapsable/Collapsable.d.ts +1 -0
  84. package/Collapsable/Collapsable.js +1 -0
  85. package/Collapsable/CollapsableReach.d.ts +6 -0
  86. package/Collapsable/CollapsableReach.js +253 -0
  87. package/Collapsable/index.d.ts +1 -0
  88. package/Collapsable/index.js +2 -0
  89. package/Collapsable/package.json +6 -0
  90. package/Debug/Debug.d.ts +4 -0
  91. package/Debug/Debug.js +9 -0
  92. package/Debug/index.d.ts +1 -0
  93. package/Debug/index.js +1 -0
  94. package/Debug/package.json +6 -0
  95. package/Details/Details.d.ts +114 -0
  96. package/Details/Details.js +65 -0
  97. package/Details/index.d.ts +1 -0
  98. package/Details/index.js +1 -0
  99. package/Details/package.json +6 -0
  100. package/Dialog/DialogMui.d.ts +139 -0
  101. package/Dialog/DialogMui.js +80 -0
  102. package/Dialog/css/bare.d.ts +145 -0
  103. package/Dialog/css/bare.js +21 -0
  104. package/Dialog/index.d.ts +2 -0
  105. package/Dialog/index.js +1 -0
  106. package/Dialog/m/bare.d.ts +56 -0
  107. package/Dialog/m/bare.js +52 -0
  108. package/Dialog/m/basic.d.ts +4 -0
  109. package/Dialog/m/basic.js +31 -0
  110. package/Dialog/m/index.d.ts +2 -0
  111. package/Dialog/m/index.js +4 -0
  112. package/Dialog/m/package.json +6 -0
  113. package/Dialog/package.json +6 -0
  114. package/Dialog/sc/bare.d.ts +105 -0
  115. package/Dialog/sc/bare.js +43 -0
  116. package/Dialog/sc/framer.d.ts +80 -0
  117. package/Dialog/sc/framer.js +16 -0
  118. package/Dialog/sc/framerMaterial.d.ts +79 -0
  119. package/Dialog/sc/framerMaterial.js +16 -0
  120. package/Dialog/sc/material.d.ts +94 -0
  121. package/Dialog/sc/material.js +21 -0
  122. package/Dialog/tw/bare.d.ts +196 -0
  123. package/Dialog/tw/bare.js +42 -0
  124. package/Dialog/tw/elegant.d.ts +244 -0
  125. package/Dialog/tw/elegant.js +20 -0
  126. package/Dialog/tw/framer.d.ts +112 -0
  127. package/Dialog/tw/framer.js +16 -0
  128. package/Dialog/tw/framerMaterial.d.ts +167 -0
  129. package/Dialog/tw/framerMaterial.js +16 -0
  130. package/Dialog/tw/material.d.ts +244 -0
  131. package/Dialog/tw/material.js +20 -0
  132. package/Editor/Editor--tiptap.d.ts +9 -0
  133. package/Editor/Editor--tiptap.js +26 -0
  134. package/Editor/components.d.ts +7 -0
  135. package/Editor/components.js +10 -0
  136. package/Editor/index.d.ts +1 -0
  137. package/Editor/index.js +1 -0
  138. package/Editor/package.json +6 -0
  139. package/Favicon/FaviconTags.d.ts +18 -0
  140. package/Favicon/FaviconTags.js +15 -0
  141. package/Favicon/index.d.ts +1 -0
  142. package/Favicon/index.js +1 -0
  143. package/Favicon/package.json +6 -0
  144. package/Form/Form.d.ts +111 -0
  145. package/Form/Form.js +61 -0
  146. package/Form/index.d.ts +1 -0
  147. package/Form/index.js +1 -0
  148. package/Form/package.json +6 -0
  149. package/Form/sc/bare.d.ts +33 -0
  150. package/Form/sc/bare.js +20 -0
  151. package/Forms/Checkbox/Checkbox.d.ts +11 -0
  152. package/Forms/Checkbox/Checkbox.js +18 -0
  153. package/Forms/Checkbox/index.d.ts +1 -0
  154. package/Forms/Checkbox/index.js +1 -0
  155. package/Forms/Checkbox/package.json +6 -0
  156. package/Forms/Feedback/Feedback.d.ts +5 -0
  157. package/Forms/Feedback/Feedback.js +9 -0
  158. package/Forms/Feedback/index.d.ts +1 -0
  159. package/Forms/Feedback/index.js +1 -0
  160. package/Forms/Feedback/package.json +6 -0
  161. package/Forms/Field/Field.d.ts +15 -0
  162. package/Forms/Field/Field.js +48 -0
  163. package/Forms/Field/FieldControl.d.ts +26 -0
  164. package/Forms/Field/FieldControl.js +47 -0
  165. package/Forms/Field/FieldHint.d.ts +1 -0
  166. package/Forms/Field/FieldHint.js +4 -0
  167. package/Forms/Field/index.d.ts +2 -0
  168. package/Forms/Field/index.js +2 -0
  169. package/Forms/Field/package.json +6 -0
  170. package/Forms/Input/Input.d.ts +9 -0
  171. package/Forms/Input/Input.js +17 -0
  172. package/Forms/Input/index.d.ts +1 -0
  173. package/Forms/Input/index.js +1 -0
  174. package/Forms/Input/package.json +6 -0
  175. package/Forms/InputGroup/InputGroup.d.ts +13 -0
  176. package/Forms/InputGroup/InputGroup.js +15 -0
  177. package/Forms/InputGroup/index.d.ts +1 -0
  178. package/Forms/InputGroup/index.js +1 -0
  179. package/Forms/InputGroup/package.json +6 -0
  180. package/Forms/Label/Label.d.ts +3 -0
  181. package/Forms/Label/Label.js +6 -0
  182. package/Forms/Label/index.d.ts +1 -0
  183. package/Forms/Label/index.js +1 -0
  184. package/Forms/Label/package.json +6 -0
  185. package/Forms/Password/Password.d.ts +5 -0
  186. package/Forms/Password/Password.js +17 -0
  187. package/Forms/Password/index.d.ts +1 -0
  188. package/Forms/Password/index.js +1 -0
  189. package/Forms/Password/package.json +6 -0
  190. package/Forms/Radio/Radio.d.ts +12 -0
  191. package/Forms/Radio/Radio.js +25 -0
  192. package/Forms/Radio/index.d.ts +1 -0
  193. package/Forms/Radio/index.js +1 -0
  194. package/Forms/Radio/package.json +6 -0
  195. package/Forms/Switch/Switch.d.ts +9 -0
  196. package/Forms/Switch/Switch.js +20 -0
  197. package/Forms/Switch/index.d.ts +1 -0
  198. package/Forms/Switch/index.js +1 -0
  199. package/Forms/Switch/package.json +6 -0
  200. package/Forms/Textarea/Textarea.d.ts +5 -0
  201. package/Forms/Textarea/Textarea.js +12 -0
  202. package/Forms/Textarea/TextareaRich.d.ts +6 -0
  203. package/Forms/Textarea/TextareaRich.js +28 -0
  204. package/Forms/Textarea/index.d.ts +2 -0
  205. package/Forms/Textarea/index.js +2 -0
  206. package/Forms/Textarea/package.json +6 -0
  207. package/Forms/Toggle/Toggle.d.ts +19 -0
  208. package/Forms/Toggle/Toggle.js +32 -0
  209. package/Forms/Toggle/index.d.ts +1 -0
  210. package/Forms/Toggle/index.js +1 -0
  211. package/Forms/Toggle/package.json +6 -0
  212. package/Forms/Toggle/useToggle.d.ts +46 -0
  213. package/Forms/Toggle/useToggle.js +145 -0
  214. package/Forms/antispam.d.ts +24 -0
  215. package/Forms/antispam.js +56 -0
  216. package/Forms/helpers.d.ts +26 -0
  217. package/Forms/helpers.js +45 -0
  218. package/Forms/index.d.ts +15 -0
  219. package/Forms/index.js +16 -0
  220. package/Forms/package.json +6 -0
  221. package/Forms/styles.d.ts +19 -0
  222. package/Forms/styles.js +29 -0
  223. package/Gauge/Gauge.d.ts +5 -0
  224. package/Gauge/Gauge.js +102 -0
  225. package/Grid/Grid.d.ts +64 -0
  226. package/Grid/Grid.js +53 -0
  227. package/Grid/index.d.ts +1 -0
  228. package/Grid/index.js +1 -0
  229. package/Grid/package.json +6 -0
  230. package/Hamburger/Hamburger.d.ts +6 -0
  231. package/Hamburger/Hamburger.js +52 -0
  232. package/Hamburger/index.d.ts +1 -0
  233. package/Hamburger/index.js +1 -0
  234. package/Hamburger/package.json +6 -0
  235. package/Header/index.d.ts +1 -0
  236. package/Header/index.js +1 -0
  237. package/Header/package.json +6 -0
  238. package/Header/useHeader.d.ts +24 -0
  239. package/Header/useHeader.js +30 -0
  240. package/Hidden/Hidden.d.ts +6 -0
  241. package/Hidden/Hidden.js +10 -0
  242. package/Hidden/index.d.ts +1 -0
  243. package/Hidden/index.js +1 -0
  244. package/Hidden/package.json +6 -0
  245. package/Img/index.d.ts +1 -0
  246. package/Img/index.js +1 -0
  247. package/Img/package.json +6 -0
  248. package/Img/sc/bare.d.ts +2 -0
  249. package/Img/sc/bare.js +39 -0
  250. package/Img/types.d.ts +9 -0
  251. package/Img/types.js +1 -0
  252. package/Link/Link.d.ts +5 -0
  253. package/Link/Link.js +4 -0
  254. package/Link/LinkBlank.d.ts +8 -0
  255. package/Link/LinkBlank.js +17 -0
  256. package/Link/index.d.ts +2 -0
  257. package/Link/index.js +2 -0
  258. package/Link/package.json +6 -0
  259. package/Menu/Menu.d.ts +1 -0
  260. package/Menu/Menu.js +4 -0
  261. package/Menu/index.d.ts +1 -0
  262. package/Menu/index.js +1 -0
  263. package/Menu/package.json +6 -0
  264. package/MenuItem/MenuItem.d.ts +4 -0
  265. package/MenuItem/MenuItem.js +4 -0
  266. package/MenuItem/index.d.ts +1 -0
  267. package/MenuItem/index.js +1 -0
  268. package/MenuItem/package.json +6 -0
  269. package/Meta/Meta.d.ts +14 -0
  270. package/Meta/Meta.js +5 -0
  271. package/Meta/index.d.ts +1 -0
  272. package/Meta/index.js +1 -0
  273. package/Meta/package.json +6 -0
  274. package/NoJs/NoJs.d.ts +2 -0
  275. package/NoJs/NoJs.js +6 -0
  276. package/NoJs/index.d.ts +1 -0
  277. package/NoJs/index.js +1 -0
  278. package/NoJs/package.json +6 -0
  279. package/Pagination/PaginationNav.d.ts +22 -0
  280. package/Pagination/PaginationNav.js +61 -0
  281. package/Pagination/PaginationResults.d.ts +3 -0
  282. package/Pagination/PaginationResults.js +11 -0
  283. package/Pagination/index.d.ts +2 -0
  284. package/Pagination/index.js +2 -0
  285. package/Pagination/package.json +6 -0
  286. package/Pill/Pill.d.ts +5 -0
  287. package/Pill/Pill.js +7 -0
  288. package/Pill/index.d.ts +1 -0
  289. package/Pill/index.js +1 -0
  290. package/Pill/package.json +6 -0
  291. package/Progress/ProgressCircular.d.ts +19 -0
  292. package/Progress/ProgressCircular.js +15 -0
  293. package/Progress/ProgressLinear.d.ts +22 -0
  294. package/Progress/ProgressLinear.js +24 -0
  295. package/Progress/ProgressOverlay.d.ts +4 -0
  296. package/Progress/ProgressOverlay.js +24 -0
  297. package/Progress/index.d.ts +3 -0
  298. package/Progress/index.js +3 -0
  299. package/Progress/package.json +6 -0
  300. package/Rating/Rating.d.ts +35 -0
  301. package/Rating/Rating.js +71 -0
  302. package/Rating/index.d.ts +11 -0
  303. package/Rating/index.js +49 -0
  304. package/Rating/package.json +6 -0
  305. package/Select/SelectDownshift.d.ts +5 -0
  306. package/Select/SelectDownshift.js +38 -0
  307. package/Select/components.d.ts +6 -0
  308. package/Select/components.js +12 -0
  309. package/Select/index.d.ts +2 -0
  310. package/Select/index.js +3 -0
  311. package/Select/package.json +6 -0
  312. package/Sidebar/Sidebar.d.ts +3 -0
  313. package/Sidebar/Sidebar.js +23 -0
  314. package/Sidebar/index.d.ts +1 -0
  315. package/Sidebar/index.js +1 -0
  316. package/Sidebar/package.json +6 -0
  317. package/Spacing/Spacing.d.ts +30 -0
  318. package/Spacing/Spacing.js +45 -0
  319. package/Spacing/index.d.ts +1 -0
  320. package/Spacing/index.js +1 -0
  321. package/Spacing/package.json +6 -0
  322. package/Sticky/Sticky.d.ts +2 -0
  323. package/Sticky/Sticky.js +219 -0
  324. package/Sticky/StickyCss.d.ts +5 -0
  325. package/Sticky/StickyCss.js +6 -0
  326. package/Sticky/index.d.ts +1 -0
  327. package/Sticky/index.js +1 -0
  328. package/Sticky/package.json +6 -0
  329. package/Tabs/TabsMui.d.ts +244 -0
  330. package/Tabs/TabsMui.js +46 -0
  331. package/Tabs/index.d.ts +1 -0
  332. package/Tabs/index.js +1 -0
  333. package/Tabs/package.json +6 -0
  334. package/Tabs/sc/bare.d.ts +5 -0
  335. package/Tabs/sc/bare.js +87 -0
  336. package/Tabs/tw/bare.d.ts +248 -0
  337. package/Tabs/tw/bare.js +17 -0
  338. package/Tabs/tw/material.d.ts +472 -0
  339. package/Tabs/tw/material.js +18 -0
  340. package/Tabs/useTabs.d.ts +43 -0
  341. package/Tabs/useTabs.js +44 -0
  342. package/Typography/CopyPasteVisible.d.ts +1 -0
  343. package/Typography/CopyPasteVisible.js +4 -0
  344. package/Typography/Native.d.ts +10 -0
  345. package/Typography/Native.js +14 -0
  346. package/Typography/ReadMore.d.ts +12 -0
  347. package/Typography/ReadMore.js +43 -0
  348. package/Typography/TextLoop.d.ts +16 -0
  349. package/Typography/TextLoop.js +46 -0
  350. package/Typography/TypeStairs.d.ts +6 -0
  351. package/Typography/TypeStairs.js +50 -0
  352. package/Typography/index.d.ts +5 -0
  353. package/Typography/index.js +5 -0
  354. package/Typography/package.json +6 -0
  355. package/css/index.d.ts +2 -0
  356. package/css/index.js +31 -0
  357. package/css/package.json +6 -0
  358. package/helpers/classed.d.ts +22 -0
  359. package/helpers/classed.js +68 -0
  360. package/helpers/extend-component.d.ts +28 -0
  361. package/helpers/extend-component.js +12 -0
  362. package/helpers/index.d.ts +3 -0
  363. package/helpers/index.js +2 -0
  364. package/helpers/package.json +6 -0
  365. package/hooks/index.d.ts +14 -0
  366. package/hooks/index.js +15 -0
  367. package/hooks/package.json +6 -0
  368. package/hooks/types.d.ts +8 -0
  369. package/hooks/types.js +1 -0
  370. package/hooks/useAsyncFn.d.ts +26 -0
  371. package/hooks/useAsyncFn.js +36 -0
  372. package/hooks/useDateLocale.d.ts +7 -0
  373. package/hooks/useDateLocale.js +38 -0
  374. package/hooks/useEffectOnce.d.ts +5 -0
  375. package/hooks/useEffectOnce.js +8 -0
  376. package/hooks/useFirstMountState.d.ts +4 -0
  377. package/hooks/useFirstMountState.js +12 -0
  378. package/hooks/useFocus.d.ts +4 -0
  379. package/hooks/useFocus.js +11 -0
  380. package/hooks/useId.d.ts +4 -0
  381. package/hooks/useId.js +8 -0
  382. package/hooks/useIsomorphicLayoutEffect.d.ts +5 -0
  383. package/hooks/useIsomorphicLayoutEffect.js +8 -0
  384. package/hooks/useMount.d.ts +4 -0
  385. package/hooks/useMount.js +9 -0
  386. package/hooks/useMountedState.d.ts +4 -0
  387. package/hooks/useMountedState.js +15 -0
  388. package/hooks/usePrevious.d.ts +1 -0
  389. package/hooks/usePrevious.js +8 -0
  390. package/hooks/useScrollPosition.d.ts +15 -0
  391. package/hooks/useScrollPosition.js +80 -0
  392. package/hooks/useScrollTo.d.ts +1 -0
  393. package/hooks/useScrollTo.js +21 -0
  394. package/hooks/useTraceUpdate.d.ts +4 -0
  395. package/hooks/useTraceUpdate.js +21 -0
  396. package/hooks/useUpdateEffect.d.ts +5 -0
  397. package/hooks/useUpdateEffect.js +14 -0
  398. package/hooks/useWindowSize.d.ts +1 -0
  399. package/hooks/useWindowSize.js +13 -0
  400. package/index.d.ts +1 -0
  401. package/index.js +5 -0
  402. package/m/MotionProvider.d.ts +37 -0
  403. package/m/MotionProvider.js +39 -0
  404. package/m/index.d.ts +6 -0
  405. package/m/index.js +6 -0
  406. package/m/lite.d.ts +2 -0
  407. package/m/lite.js +2 -0
  408. package/m/max.d.ts +2 -0
  409. package/m/max.js +2 -0
  410. package/m/package.json +6 -0
  411. package/package.json +6 -9
  412. package/sc/index.d.ts +30 -0
  413. package/sc/index.js +31 -0
  414. package/sc/package.json +6 -0
  415. package/scm/index.d.ts +29 -0
  416. package/scm/index.js +31 -0
  417. package/scm/package.json +6 -0
  418. package/shared/index.d.ts +8 -0
  419. package/shared/index.js +8 -0
  420. package/shared/package.json +6 -0
  421. package/styles/Body.d.ts +10 -0
  422. package/styles/Body.js +13 -0
  423. package/styles/Global.d.ts +15 -0
  424. package/styles/Global.js +18 -0
  425. package/styles/index.d.ts +7 -0
  426. package/styles/index.js +7 -0
  427. package/styles/media.d.ts +67 -0
  428. package/styles/media.js +155 -0
  429. package/styles/package.json +6 -0
  430. package/styles/spacing.d.ts +13 -0
  431. package/styles/spacing.js +45 -0
  432. package/styles/styled.d.ts +12 -0
  433. package/styles/styled.js +13 -0
  434. package/styles/theme--vanilla.d.ts +18 -0
  435. package/styles/theme--vanilla.js +55 -0
  436. package/styles/theme.d.ts +82 -0
  437. package/styles/theme.js +41 -0
  438. package/tw/index.d.ts +2 -0
  439. package/tw/index.js +31 -0
  440. package/tw/package.json +6 -0
  441. package/twm/index.d.ts +2 -0
  442. package/twm/index.js +31 -0
  443. package/twm/package.json +6 -0
  444. package/types.d.ts +10 -0
  445. package/types.js +1 -0
@@ -0,0 +1,36 @@
1
+ /// <reference types="react" />
2
+ import type { KoineComponentProps, KoineComponent } from "../types";
3
+ import type { CalendarsMap, CalendarView, CalendarViewEvent, CalendarViewDayProps } from "./types";
4
+ import { UseCalendarReturn } from "./useCalendar";
5
+ export declare type KoineCalendarDaygridCellProps = {
6
+ eventClicked?: UseCalendarReturn["eventClicked"];
7
+ setEventClicked: UseCalendarReturn["setEventClicked"];
8
+ eventHovered?: UseCalendarReturn["eventHovered"];
9
+ setEventHovered: UseCalendarReturn["setEventHovered"];
10
+ view: CalendarView;
11
+ maxEvents: number;
12
+ events: CalendarViewEvent[];
13
+ calendarsMap: CalendarsMap;
14
+ };
15
+ export declare type CalendarDaygridCellStyledProps = CalendarViewDayProps & {
16
+ $view: CalendarView;
17
+ $selected?: boolean;
18
+ $past?: boolean;
19
+ $color: string;
20
+ };
21
+ export declare type CalendarDaygridCellEventProps = React.ComponentPropsWithoutRef<"div"> & ((CalendarDaygridCellStyledProps & {
22
+ $placeholder?: false;
23
+ }) | {
24
+ $placeholder: true;
25
+ });
26
+ export declare type CalendarDaygridCellEventBtnProps = CalendarDaygridCellEventProps;
27
+ export declare type CalendarDaygridCellComponents = {
28
+ Cell?: KoineComponent;
29
+ CellOverflow?: KoineComponent;
30
+ CellEvent?: KoineComponent<CalendarDaygridCellEventProps>;
31
+ CellEventBtn?: KoineComponent<CalendarDaygridCellEventBtnProps>;
32
+ CellEventTitle?: KoineComponent;
33
+ CellEventStart?: KoineComponent;
34
+ };
35
+ export declare type CalendarDaygridCellProps = KoineComponentProps<KoineCalendarDaygridCellProps, CalendarDaygridCellComponents>;
36
+ export declare const CalendarDaygridCell: ({ eventClicked, setEventClicked, setEventHovered, view, maxEvents, events, calendarsMap, Cell, CellOverflow, CellEvent, CellEventBtn, CellEventTitle, CellEventStart, }: CalendarDaygridCellProps) => JSX.Element;
@@ -0,0 +1,57 @@
1
+ import { __assign } from "tslib";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Fragment, useState } from "react";
4
+ import { MdAdd as IconExpand } from "react-icons/md";
5
+ import { getDisplayTime } from "./utils";
6
+ /**
7
+ * Style for button within a event cell
8
+ *
9
+ * Here we might differentiate week/month view where the first does not get
10
+ * ellipsed btn texts, with `Start` as block element and underneath the `Title`
11
+ * on multiple lines, but that would mean that we loose the ability to interweave
12
+ * single-day events among the spaces left by wider multi-days events.
13
+ */
14
+ var styleBtn = {
15
+ overflow: "hidden",
16
+ whiteSpace: "nowrap",
17
+ textOverflow: "ellipsis",
18
+ };
19
+ export var CalendarDaygridCell = function (_a) {
20
+ var eventClicked = _a.eventClicked, setEventClicked = _a.setEventClicked,
21
+ // eventHovered,
22
+ setEventHovered = _a.setEventHovered, view = _a.view, maxEvents = _a.maxEvents, events = _a.events, calendarsMap = _a.calendarsMap, _b = _a.Cell, Cell = _b === void 0 ? "div" : _b, _c = _a.CellOverflow, CellOverflow = _c === void 0 ? "div" : _c, _d = _a.CellEvent, CellEvent = _d === void 0 ? "div" : _d, _e = _a.CellEventBtn, CellEventBtn = _e === void 0 ? "div" : _e, _f = _a.CellEventTitle, CellEventTitle = _f === void 0 ? "span" : _f, _g = _a.CellEventStart, CellEventStart = _g === void 0 ? "span" : _g;
23
+ var _h = useState(false), isExpanded = _h[0], expand = _h[1];
24
+ var eventsWithoutPlaceholders = events.filter(function (event) { return !event.placeholder; });
25
+ return (_jsx(Cell, { children: events.map(function (event, i) {
26
+ if (i === maxEvents && !isExpanded) {
27
+ return (_jsxs(CellOverflow, __assign({ onClick: function () { return expand(true); } }, { children: [_jsx(IconExpand, {}), eventsWithoutPlaceholders.length - maxEvents] }), "overflowMessage" + i));
28
+ }
29
+ if (i > maxEvents && !isExpanded)
30
+ return null;
31
+ if (event.placeholder) {
32
+ return (_jsx(Fragment, { children: _jsx(CellEvent, __assign({ "$placeholder": true }, { children: _jsx(CellEventBtn, __assign({ "aria-hidden": "true", style: { visibility: "hidden" }, "$placeholder": true }, { children: _jsx(CellEventTitle, { children: "\u00A0" }) })) })) }, event.key));
33
+ }
34
+ var styleEvent = {
35
+ zIndex: event.firstOfMulti ? 1 : 0,
36
+ position: "relative",
37
+ width: event.firstOfMulti ? "".concat(100 * event.width, "%") : "100%",
38
+ };
39
+ if (!calendarsMap[event.calendar.id].on) {
40
+ // @ts-expect-error nevermind
41
+ styleBtn.display = "none";
42
+ }
43
+ var styledProps = {
44
+ $view: view,
45
+ $selected: (eventClicked === null || eventClicked === void 0 ? void 0 : eventClicked.uid) === event.uid,
46
+ $past: event.isPast,
47
+ $color: event.color,
48
+ $isOutOfRange: event.$isOutOfRange,
49
+ $isToday: event.$isToday,
50
+ };
51
+ return (_jsx(Fragment, { children: _jsx(CellEvent, __assign({ style: styleEvent }, styledProps, { children: _jsx(CellEventBtn, __assign({ role: "button", style: styleBtn }, styledProps, { onClick: function () {
52
+ return setEventClicked(function (prev) {
53
+ return (prev === null || prev === void 0 ? void 0 : prev.uid) === event.uid ? null : event;
54
+ });
55
+ }, onMouseEnter: function () { return setEventHovered(event); }, onMouseLeave: function () { return setEventHovered(null); } }, { children: event.allDay ? (_jsx(CellEventTitle, { children: event.title })) : (_jsxs(_Fragment, { children: [_jsx(CellEventStart, { children: getDisplayTime(event.start) }), _jsx(CellEventTitle, { children: event.title })] })) })) })) }, event.key));
56
+ }) }));
57
+ };
@@ -0,0 +1,27 @@
1
+ import type { KoineComponentProps, KoineComponent } from "../types";
2
+ import type { CalendarRange, CalendarView } from "./types";
3
+ export declare type KoineCalendarDaygridNavProps = {
4
+ locale: string;
5
+ range: CalendarRange;
6
+ view: CalendarView;
7
+ todayInView?: boolean;
8
+ handlePrev: () => any;
9
+ handleNext: () => any;
10
+ handleToday: () => any;
11
+ handleView: (view: CalendarView) => any;
12
+ };
13
+ export declare type CalendarDaygridNavTitleProps = {
14
+ range: CalendarRange;
15
+ formatted: string;
16
+ };
17
+ export declare type CalendarDaygridNavProps = KoineComponentProps<KoineCalendarDaygridNavProps, {
18
+ NavRoot?: KoineComponent;
19
+ NavTitle?: KoineComponent<CalendarDaygridNavTitleProps>;
20
+ NavBtns?: KoineComponent;
21
+ NavBtnPrev?: KoineComponent;
22
+ NavBtnNext?: KoineComponent;
23
+ NavBtnToday?: KoineComponent;
24
+ NavBtnViewMonth?: KoineComponent;
25
+ NavBtnViewWeek?: KoineComponent;
26
+ }>;
27
+ export declare const KoineCalendarDaygridNav: ({ range, view, todayInView, handlePrev, handleNext, handleToday, handleView, locale: localeCode, NavRoot, NavTitle, NavBtns, NavBtnPrev, NavBtnNext, NavBtnToday, NavBtnViewMonth, NavBtnViewWeek, }: CalendarDaygridNavProps) => JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import format from "date-fns/format";
3
+ import { useDateLocale } from "../hooks/useDateLocale";
4
+ export var KoineCalendarDaygridNav = function (_a) {
5
+ var range = _a.range, view = _a.view, todayInView = _a.todayInView, handlePrev = _a.handlePrev, handleNext = _a.handleNext, handleToday = _a.handleToday, handleView = _a.handleView, localeCode = _a.locale, _b = _a.NavRoot, NavRoot = _b === void 0 ? "nav" : _b, _c = _a.NavTitle, NavTitle = _c === void 0 ? "div" : _c, _d = _a.NavBtns, NavBtns = _d === void 0 ? "div" : _d, _e = _a.NavBtnPrev, NavBtnPrev = _e === void 0 ? "button" : _e, _f = _a.NavBtnNext, NavBtnNext = _f === void 0 ? "button" : _f, _g = _a.NavBtnToday, NavBtnToday = _g === void 0 ? "button" : _g, _h = _a.NavBtnViewMonth, NavBtnViewMonth = _h === void 0 ? "button" : _h, _j = _a.NavBtnViewWeek, NavBtnViewWeek = _j === void 0 ? "button" : _j;
6
+ var start = range[0], end = range[1];
7
+ var locale = useDateLocale(localeCode);
8
+ var opts = { locale: locale };
9
+ var formatted = "";
10
+ if (view === "month") {
11
+ formatted = format(start, "MMMM yyyy", opts);
12
+ }
13
+ if (view === "week") {
14
+ var inSameMonth = start.getMonth() === end.getMonth();
15
+ if (inSameMonth) {
16
+ formatted = format(start, "# MMMM yyyy", opts).replace("#", "".concat(start.getDate(), "-").concat(end.getDate()));
17
+ }
18
+ else {
19
+ formatted = "".concat(format(start, "d MMMM", opts), " - ").concat(format(end, "d MMMM yyyy", opts));
20
+ }
21
+ }
22
+ return (_jsxs(NavRoot, { children: [_jsxs(NavBtns, { children: [_jsx(NavBtnPrev, { onClick: handlePrev }), _jsx(NavBtnNext, { onClick: handleNext }), _jsx(NavBtnToday, { onClick: handleToday, disabled: todayInView }), _jsx(NavBtnViewMonth, { onClick: function () { return handleView("month"); }, disabled: view === "month" }), _jsx(NavBtnViewWeek, { onClick: function () { return handleView("week"); }, disabled: view === "week" })] }), _jsx(NavTitle, { range: range, formatted: formatted })] }));
23
+ };
@@ -0,0 +1,25 @@
1
+ import type { KoineComponentProps, KoineComponent } from "../types";
2
+ import type { CalendarRange, CalendarEventsMap, CalendarView, CalendarViewDayProps } from "./types";
3
+ import { CalendarDaygridCellProps, CalendarDaygridCellComponents } from "./CalendarDaygridCell";
4
+ export declare type CalendarDaygridTableBodyCellProps = CalendarViewDayProps;
5
+ export declare type CalendarDaygridTableBodyCellDateProps = CalendarViewDayProps;
6
+ export declare type KoineCalendarDaygridTableProps = {
7
+ maxEvents?: CalendarDaygridCellProps["maxEvents"];
8
+ locale: string;
9
+ events: CalendarEventsMap;
10
+ handlePrev: () => any;
11
+ handleNext: () => any;
12
+ view: CalendarView;
13
+ range: CalendarRange;
14
+ dayLabels?: string[];
15
+ } & Pick<CalendarDaygridCellProps, "eventClicked" | "setEventClicked" | "eventHovered" | "setEventHovered" | "calendarsMap">;
16
+ export declare type CalendarDaygridTableProps = KoineComponentProps<KoineCalendarDaygridTableProps, {
17
+ Table?: KoineComponent;
18
+ TableHead?: KoineComponent;
19
+ TableHeadCell?: KoineComponent;
20
+ TableBody?: KoineComponent;
21
+ TableBodyCell?: KoineComponent<CalendarDaygridTableBodyCellProps>;
22
+ TableBodyCellDate?: KoineComponent<CalendarDaygridTableBodyCellDateProps>;
23
+ TableBodyRow?: KoineComponent;
24
+ } & CalendarDaygridCellComponents>;
25
+ export declare const KoineCalendarDaygridTable: ({ locale: localeCode, handlePrev, handleNext, events, dayLabels, view, range, eventClicked, setEventClicked, eventHovered, setEventHovered, calendarsMap, maxEvents, Table, TableHead, TableHeadCell, TableBody, TableBodyRow, TableBodyCell, TableBodyCellDate, Cell, CellOverflow, CellEvent, CellEventBtn, CellEventTitle, CellEventStart, }: CalendarDaygridTableProps) => JSX.Element;
@@ -0,0 +1,57 @@
1
+ import { __assign } from "tslib";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useMemo, useState } from "react";
4
+ import eachWeekOfInterval from "date-fns/eachWeekOfInterval";
5
+ import { useSwipeable } from "react-swipeable";
6
+ import { useDateLocale } from "../hooks";
7
+ import { processEventsInView } from "./utils";
8
+ import { CalendarDaygridCell, } from "./CalendarDaygridCell";
9
+ function getView(range) {
10
+ var start = range[0], end = range[1];
11
+ var weeks = eachWeekOfInterval({ start: start, end: end }, { weekStartsOn: 1 });
12
+ return {
13
+ month: start.getMonth(),
14
+ weeks: weeks,
15
+ };
16
+ }
17
+ export var KoineCalendarDaygridTable = function (_a) {
18
+ var localeCode = _a.locale, handlePrev = _a.handlePrev, handleNext = _a.handleNext, events = _a.events, dayLabels = _a.dayLabels, view = _a.view, range = _a.range, eventClicked = _a.eventClicked, setEventClicked = _a.setEventClicked, eventHovered = _a.eventHovered, setEventHovered = _a.setEventHovered, _b = _a.calendarsMap, calendarsMap = _b === void 0 ? {} : _b, _c = _a.maxEvents, maxEvents = _c === void 0 ? 5 : _c, _d = _a.Table, Table = _d === void 0 ? "table" : _d, _e = _a.TableHead, TableHead = _e === void 0 ? "thead" : _e, _f = _a.TableHeadCell, TableHeadCell = _f === void 0 ? "th" : _f, _g = _a.TableBody, TableBody = _g === void 0 ? "tbody" : _g, _h = _a.TableBodyRow, TableBodyRow = _h === void 0 ? "tr" : _h, _j = _a.TableBodyCell, TableBodyCell = _j === void 0 ? "td" : _j, _k = _a.TableBodyCellDate, TableBodyCellDate = _k === void 0 ? "div" : _k, Cell = _a.Cell, CellOverflow = _a.CellOverflow, CellEvent = _a.CellEvent, CellEventBtn = _a.CellEventBtn, CellEventTitle = _a.CellEventTitle, CellEventStart = _a.CellEventStart;
19
+ var restKoine = {
20
+ Cell: Cell,
21
+ CellOverflow: CellOverflow,
22
+ CellEvent: CellEvent,
23
+ CellEventBtn: CellEventBtn,
24
+ CellEventTitle: CellEventTitle,
25
+ CellEventStart: CellEventStart,
26
+ };
27
+ var _l = useState(dayLabels || [0, 1, 2, 3, 4, 5, 6]), days = _l[0], setDays = _l[1];
28
+ var _m = useState([]), weeksEvents = _m[0], setWeeksEvents = _m[1];
29
+ // const [days, setDays] = useState(dayLabels || [...Array(7).keys()]);
30
+ var locale = useDateLocale(localeCode);
31
+ var _o = useMemo(function () { return getView(range); }, [range]), month = _o.month, weeks = _o.weeks;
32
+ var swipeableHandlers = useSwipeable({
33
+ onSwipedLeft: handleNext,
34
+ onSwipedRight: handlePrev,
35
+ });
36
+ useEffect(function () {
37
+ setWeeksEvents(processEventsInView(events, view, month, weeks));
38
+ }, [events, view, month, weeks]);
39
+ useEffect(function () {
40
+ if (locale && locale.localize && !dayLabels) {
41
+ setDays([1, 2, 3, 4, 5, 6, 0].map(
42
+ // @ts-expect-error nevermind
43
+ function (i) { return locale.localize.day(i, { width: "abbreviated" }); }));
44
+ }
45
+ }, [locale, dayLabels]);
46
+ return (_jsxs(Table, __assign({}, swipeableHandlers, { children: [_jsx(TableHead, { children: _jsx("tr", { children: days.map(function (day) { return (_jsx(TableHeadCell, __assign({ scope: "column" }, { children: day }), day)); }) }) }), _jsx(TableBody, { children: weeksEvents.map(function (week, i) { return (_jsx(TableBodyRow, __assign({}, week.props, { children: week.days.map(function (day) { return (_jsxs(TableBodyCell, __assign({}, day.props, { children: [_jsx(TableBodyCellDate, __assign({}, day.props, { children: day.label })), day.events.length > 0 && (_jsx(CalendarDaygridCell, __assign({}, {
47
+ eventClicked: eventClicked,
48
+ setEventClicked: setEventClicked,
49
+ eventHovered: eventHovered,
50
+ setEventHovered: setEventHovered,
51
+ view: view,
52
+ maxEvents: maxEvents,
53
+ events: day.events,
54
+ timestamp: day.timestamp,
55
+ calendarsMap: calendarsMap,
56
+ }, restKoine)))] }))); }) }))); }) })] })));
57
+ };
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import type { CalendarsMap } from "./types";
3
+ import type { KoineComponentProps, KoineComponent } from "../types";
4
+ export declare type KoineCalendarLegendProps = {
5
+ toggleCalendarVisibility: (id: string) => void;
6
+ calendarsMap: CalendarsMap;
7
+ };
8
+ export declare type CalendarLegendItemProps = React.ComponentPropsWithoutRef<"div"> & {
9
+ $color: string;
10
+ $empty: boolean;
11
+ disabled: boolean;
12
+ };
13
+ export declare type CalendarLegendProps = KoineComponentProps<KoineCalendarLegendProps, {
14
+ LegendItem?: KoineComponent<CalendarLegendItemProps>;
15
+ LegendItemStatus?: KoineComponent;
16
+ LegendItemLabel?: KoineComponent;
17
+ LegendItemEvents?: KoineComponent;
18
+ }>;
19
+ export declare const KoineCalendarLegend: ({ calendarsMap, toggleCalendarVisibility, LegendItem, LegendItemStatus, LegendItemLabel, LegendItemEvents, }: CalendarLegendProps) => JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { __assign } from "tslib";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ export var KoineCalendarLegend = function (_a) {
4
+ // const sorted = Object.entries(calendarsMap).sort((a, b) => {
5
+ // const { name: nameA } = a[1];
6
+ // const { name: nameB } = b[1];
7
+ // if (nameA < nameB) return -1;
8
+ // else if (nameA > nameB) return 1;
9
+ // else return 0;
10
+ // });
11
+ var _b = _a.calendarsMap, calendarsMap = _b === void 0 ? {} : _b, toggleCalendarVisibility = _a.toggleCalendarVisibility, _c = _a.LegendItem, LegendItem = _c === void 0 ? "div" : _c, _d = _a.LegendItemStatus, LegendItemStatus = _d === void 0 ? "span" : _d, _e = _a.LegendItemLabel, LegendItemLabel = _e === void 0 ? "span" : _e, _f = _a.LegendItemEvents, LegendItemEvents = _f === void 0 ? "span" : _f;
12
+ return (_jsx(_Fragment, { children: Object.entries(calendarsMap).map(function (_a) {
13
+ var id = _a[0], calendar = _a[1];
14
+ return (_jsxs(LegendItem, __assign({ onClick: function () { return toggleCalendarVisibility(id); }, "$color": calendar.color, "$empty": calendar.events === 0, disabled: calendar.events === 0 }, { children: [_jsx(LegendItemStatus, { children: calendar.on ? "\u2b24" : "\u2b58" }), _jsx(LegendItemLabel, { children: calendar.name }), _jsx(LegendItemEvents, { children: calendar.events })] }), "CalendarLegend." + id));
15
+ }) }));
16
+ };
@@ -0,0 +1,18 @@
1
+ import type { Calendars, CalendarEventsMap } from "./types";
2
+ declare type GetCalendarsEventsFromGoogleOptions = {
3
+ /** Fall back to `process.env.GOOGLE_CALENDAR_API_KEY */
4
+ apiKey?: string;
5
+ /** Start gethering events from date */
6
+ start: Date;
7
+ /** End gethering events at date */
8
+ end: Date;
9
+ /**
10
+ * The default is the time zone of the calendar
11
+ * @see https://developers.google.com/calendar/api/v3/reference/events/list
12
+ */
13
+ timeZone?: string;
14
+ /** The calendars settings */
15
+ calendars: Calendars;
16
+ };
17
+ export declare function getCalendarsEventsFromGoogle({ calendars, ...options }: GetCalendarsEventsFromGoogleOptions): Promise<CalendarEventsMap>;
18
+ export {};
@@ -0,0 +1,127 @@
1
+ import { __assign, __awaiter, __generator, __rest } from "tslib";
2
+ import { arrayToLookup, isString, isUndefined } from "@koine/utils";
3
+ import differenceInDays from "date-fns/differenceInDays";
4
+ import subDays from "date-fns/subDays";
5
+ import { getEventTimestamp, addCalendarEvents } from "./utils";
6
+ var baseURL = "https://www.googleapis.com/calendar/v3/calendars/";
7
+ export function getCalendarsEventsFromGoogle(_a) {
8
+ var calendars = _a.calendars, options = __rest(_a, ["calendars"]);
9
+ return __awaiter(this, void 0, void 0, function () {
10
+ var allEvents;
11
+ var _this = this;
12
+ return __generator(this, function (_b) {
13
+ switch (_b.label) {
14
+ case 0:
15
+ allEvents = {};
16
+ return [4 /*yield*/, Promise.all(calendars.map(function (calendar) { return __awaiter(_this, void 0, void 0, function () {
17
+ var events;
18
+ return __generator(this, function (_a) {
19
+ switch (_a.label) {
20
+ case 0: return [4 /*yield*/, getCalendarEventsFromGoogle(__assign({ calendar: calendar }, options))];
21
+ case 1:
22
+ events = _a.sent();
23
+ addCalendarEvents(events, allEvents);
24
+ return [2 /*return*/];
25
+ }
26
+ });
27
+ }); }))];
28
+ case 1:
29
+ _b.sent();
30
+ return [2 /*return*/, allEvents];
31
+ }
32
+ });
33
+ });
34
+ }
35
+ function getCalendarEventsFromGoogle(_a) {
36
+ var apiKey = _a.apiKey, calendar = _a.calendar, _b = _a.timeZone, timeZone = _b === void 0 ? "" : _b, start = _a.start, end = _a.end;
37
+ return __awaiter(this, void 0, void 0, function () {
38
+ var events, params, url, response, data, e_1;
39
+ return __generator(this, function (_c) {
40
+ switch (_c.label) {
41
+ case 0:
42
+ events = {};
43
+ params = new URLSearchParams({
44
+ calendarId: calendar.id,
45
+ timeZone: timeZone,
46
+ singleEvents: "true",
47
+ maxAttendees: "1",
48
+ maxResults: "9999",
49
+ sanitizeHtml: "true",
50
+ timeMin: start.toISOString(),
51
+ timeMax: end.toISOString(),
52
+ key: apiKey || process.env["GOOGLE_CALENDAR_API_KEY"] || "",
53
+ }).toString();
54
+ url = baseURL + calendar.id + "/events?" + params;
55
+ _c.label = 1;
56
+ case 1:
57
+ _c.trys.push([1, 4, , 5]);
58
+ return [4 /*yield*/, fetch(url, { method: "GET" })];
59
+ case 2:
60
+ response = _c.sent();
61
+ return [4 /*yield*/, response.json()];
62
+ case 3:
63
+ data = (_c.sent());
64
+ calendar.name = calendar.name || data.summary;
65
+ data.items.forEach(function (googleEvent) {
66
+ var event = transformCalendarEventFromGoogle(googleEvent, calendar);
67
+ events[event.uid] = event;
68
+ });
69
+ return [3 /*break*/, 5];
70
+ case 4:
71
+ e_1 = _c.sent();
72
+ return [3 /*break*/, 5];
73
+ case 5: return [2 /*return*/, events];
74
+ }
75
+ });
76
+ });
77
+ }
78
+ function transformCalendarEventFromGoogle(event, calendar) {
79
+ var created = new Date(event.created);
80
+ var link = event.htmlLink;
81
+ var title = event.summary;
82
+ var status = event.status;
83
+ var start = new Date(event.start.date || event.start.dateTime);
84
+ var end = new Date(event.end.date || event.end.dateTime);
85
+ var color = calendar.color;
86
+ var allDay = isUndefined(event.end.dateTime) && isString(event.end.date);
87
+ var location = event.location || "";
88
+ var description = event.description || ""; // FIXME: he.decode(event.description || '');
89
+ var uid = created.getTime() + "" + start.getTime();
90
+ // multi-days all day events has as end date the date after to what we actually
91
+ // mean, hence we subtract one day. @see https://support.google.com/calendar/thread/10074544/google-calendar-all-day-events-are-showing-up-as-a-24-hr-event-across-time-zones?hl=en
92
+ if (allDay && end > start) {
93
+ end = subDays(end, 1);
94
+ end.setHours(23, 59, 59);
95
+ }
96
+ var days = getDays();
97
+ var daysMap = arrayToLookup(days);
98
+ var multi = days.length > 1;
99
+ function getDays() {
100
+ var from = new Date(start);
101
+ var to = new Date(end);
102
+ var days = [getEventTimestamp(from)];
103
+ while (differenceInDays(to, from)) {
104
+ // console.log(title, differenceInDays(to, from))
105
+ from.setDate(from.getDate() + 1);
106
+ days.push(getEventTimestamp(from));
107
+ }
108
+ return days;
109
+ }
110
+ return {
111
+ calendar: calendar,
112
+ created: created,
113
+ link: link,
114
+ title: title,
115
+ status: status,
116
+ start: start,
117
+ end: end,
118
+ days: days,
119
+ daysMap: daysMap,
120
+ multi: multi,
121
+ color: color,
122
+ allDay: allDay,
123
+ location: location,
124
+ description: description,
125
+ uid: uid,
126
+ };
127
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./CalendarDaygridCell";
2
+ export * from "./CalendarDaygridNav";
3
+ export * from "./CalendarDaygridTable";
4
+ export * from "./CalendarLegend";
5
+ export * from "./useCalendar";
6
+ export * from "./types";
@@ -0,0 +1,6 @@
1
+ export * from "./CalendarDaygridCell";
2
+ export * from "./CalendarDaygridNav";
3
+ export * from "./CalendarDaygridTable";
4
+ export * from "./CalendarLegend";
5
+ export * from "./useCalendar";
6
+ export * from "./types";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/Calendar/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,81 @@
1
+ export declare type Calendar = {
2
+ id: string;
3
+ color: string;
4
+ /**
5
+ * If not defined the name is gathered from the remote calendar response,
6
+ * for google calendars that comes from the `summary` value.
7
+ */
8
+ name?: string;
9
+ };
10
+ export declare type Calendars = Calendar[];
11
+ export declare type CalendarsMap = Record<Calendar["id"], Required<Calendar> & {
12
+ on?: boolean;
13
+ events?: number;
14
+ }>;
15
+ export declare type CalendarRange = [Date, Date];
16
+ export declare type CalendarView = "month" | "week";
17
+ export declare type CalendarEvent = {
18
+ calendar: Calendar;
19
+ /**
20
+ * List of day timestamps across which the event spans
21
+ */
22
+ days: number[];
23
+ /**
24
+ * Lookup object for day timestamps across which the event spans
25
+ */
26
+ daysMap: Record<number, 1>;
27
+ /**
28
+ * Flag for events that spans across multiple days
29
+ */
30
+ multi: boolean;
31
+ allDay: boolean;
32
+ link: string;
33
+ title: string;
34
+ status: string;
35
+ created: Date;
36
+ start: Date;
37
+ end: Date;
38
+ color: string;
39
+ location: string;
40
+ description: string;
41
+ uid: string;
42
+ };
43
+ /**
44
+ * Calendar events mapped by day `timestamp` number
45
+ */
46
+ export declare type CalendarEventsByTimestamp = Record<number, CalendarEventsMap>;
47
+ /**
48
+ * Calendar events map by `uid`
49
+ */
50
+ export declare type CalendarEventsMap = Record<CalendarEvent["uid"], CalendarEvent>;
51
+ export declare type CalendarViewWeeks = CalendarViewWeek[];
52
+ export declare type CalendarViewWeek = {
53
+ props: {
54
+ key: string;
55
+ };
56
+ days: CalendarViewDay[];
57
+ };
58
+ export declare type CalendarViewDay = {
59
+ props: {
60
+ key: string;
61
+ } & CalendarViewDayProps;
62
+ label: string;
63
+ timestamp: string;
64
+ events: CalendarViewEvent[];
65
+ };
66
+ export declare type CalendarViewDayProps = {
67
+ $isToday?: boolean;
68
+ $isOutOfRange?: boolean;
69
+ };
70
+ export declare type CalendarViewEvent = {
71
+ key: string;
72
+ placeholder: true;
73
+ top: number;
74
+ } | (CalendarEvent & CalendarViewDayProps & {
75
+ key: string;
76
+ placeholder?: false;
77
+ top: number;
78
+ width: number;
79
+ firstOfMulti?: boolean;
80
+ isPast?: boolean;
81
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,49 @@
1
+ import type { Calendars, CalendarEvent, CalendarEventsMap, CalendarView } from "./types";
2
+ import type { KoineCalendarLegendProps } from "./CalendarLegend";
3
+ import type { KoineCalendarDaygridNavProps } from "./CalendarDaygridNav";
4
+ import type { KoineCalendarDaygridTableProps } from "./CalendarDaygridTable";
5
+ export declare type UseCalendarProps = {
6
+ /** The locale to format with `date-fns` */
7
+ locale: string;
8
+ /** Calendars infos to use */
9
+ calendars: Calendars;
10
+ /** Fall back to `process.env.GOOGLE_CALENDAR_API_KEY */
11
+ apiKey?: string;
12
+ /** The key is the event `uid` */
13
+ events?: CalendarEventsMap;
14
+ /** It defaults to the first of the current month */
15
+ start?: Date;
16
+ /** It defaults to the last day of the current month */
17
+ end?: Date;
18
+ /**
19
+ * The calendar view
20
+ * @default "month"
21
+ */
22
+ view?: CalendarView;
23
+ /**
24
+ * The default is the time zone of the calendar
25
+ * @see https://developers.google.com/calendar/api/v3/reference/events/list
26
+ */
27
+ timeZone?: string;
28
+ onError?: (e: any) => void;
29
+ };
30
+ export declare type UseCalendarReturn = ReturnType<typeof useCalendar>;
31
+ export declare type CalendarsUpdateActionEvents = {
32
+ type: "events";
33
+ payload: Record<string, number>;
34
+ };
35
+ export declare type CalendarsUpdateActionVisibility = {
36
+ type: "visibility";
37
+ payload: string | string[];
38
+ };
39
+ export declare type CalendarsUpdateAction = CalendarsUpdateActionEvents | CalendarsUpdateActionVisibility;
40
+ export declare function useCalendar({ locale, apiKey, calendars, events: initialEvents, start: initialStart, end: initialEnd, view: initialView, timeZone, onError, }: UseCalendarProps): {
41
+ view: "month" | "week";
42
+ eventClicked: CalendarEvent | null;
43
+ setEventClicked: import("react").Dispatch<import("react").SetStateAction<CalendarEvent | null>>;
44
+ eventHovered: CalendarEvent | null;
45
+ setEventHovered: import("react").Dispatch<import("react").SetStateAction<CalendarEvent | null>>;
46
+ getDaygridNavProps: () => KoineCalendarDaygridNavProps;
47
+ getDaygridTableProps: () => KoineCalendarDaygridTableProps;
48
+ getLegendProps: () => KoineCalendarLegendProps;
49
+ };