@koine/react 2.0.0-beta.14 → 2.0.0-beta.16

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 (590) hide show
  1. package/Alert/Alert.js +10 -0
  2. package/Alert/index.d.ts +1 -1
  3. package/Alert/index.js +1 -0
  4. package/Animations/Reveal.d.ts +1 -2
  5. package/Animations/Reveal.js +16 -0
  6. package/Animations/Underline.js +5 -0
  7. package/Animations/index.d.ts +3 -3
  8. package/Animations/index.js +3 -0
  9. package/Animations/useReveal.d.ts +0 -21
  10. package/Animations/useReveal.js +42 -0
  11. package/Autocomplete/AutocompleteDownshift.js +1 -0
  12. package/Autocomplete/AutocompleteDownshiftMultiselect.js +1 -0
  13. package/Autocomplete/AutocompleteMui.d.ts +2 -27
  14. package/Autocomplete/AutocompleteMui.js +93 -0
  15. package/Autocomplete/AutocompleteReach.js +1 -0
  16. package/Autocomplete/components.d.ts +0 -5
  17. package/Autocomplete/components.js +26 -0
  18. package/Autocomplete/helpers.d.ts +1 -1
  19. package/Autocomplete/helpers.js +16 -0
  20. package/Autocomplete/index.d.ts +2 -2
  21. package/Autocomplete/index.js +1 -0
  22. package/Bg/BgColor.d.ts +1 -20
  23. package/Bg/BgColor.js +16 -0
  24. package/Bg/BgPhoto.d.ts +1 -6
  25. package/Bg/BgPhoto.js +16 -0
  26. package/Bg/BgSvg.d.ts +0 -3
  27. package/Bg/BgSvg.js +9 -0
  28. package/Bg/index.d.ts +3 -3
  29. package/Bg/index.js +3 -0
  30. package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  31. package/Breadcrumbs/Breadcrumbs.js +27 -0
  32. package/Breadcrumbs/index.d.ts +1 -1
  33. package/Breadcrumbs/index.js +1 -0
  34. package/Buttons/Button.d.ts +0 -4
  35. package/Buttons/Button.js +10 -0
  36. package/Buttons/ButtonComposite.d.ts +3 -4
  37. package/Buttons/ButtonComposite.js +28 -0
  38. package/Buttons/ButtonFab.d.ts +1 -2
  39. package/Buttons/ButtonFab.js +6 -0
  40. package/Buttons/ButtonLink.d.ts +3 -3
  41. package/Buttons/ButtonLink.js +11 -0
  42. package/Buttons/IconButton.d.ts +1 -2
  43. package/Buttons/IconButton.js +7 -0
  44. package/Buttons/index.d.ts +5 -5
  45. package/Buttons/index.js +5 -0
  46. package/Calendar/CalendarDaygridCell.d.ts +3 -4
  47. package/Calendar/CalendarDaygridCell.js +46 -0
  48. package/Calendar/CalendarDaygridNav.d.ts +2 -2
  49. package/Calendar/CalendarDaygridNav.js +23 -0
  50. package/Calendar/CalendarDaygridTable.d.ts +3 -3
  51. package/Calendar/CalendarDaygridTable.js +45 -0
  52. package/Calendar/CalendarLegend.d.ts +2 -3
  53. package/Calendar/CalendarLegend.js +8 -0
  54. package/Calendar/calendar-api-google.d.ts +1 -9
  55. package/Calendar/calendar-api-google.js +124 -0
  56. package/Calendar/index.d.ts +6 -6
  57. package/Calendar/index.js +6 -0
  58. package/Calendar/types.d.ts +0 -19
  59. package/Calendar/types.js +1 -0
  60. package/Calendar/useCalendar.d.ts +4 -19
  61. package/Calendar/useCalendar.js +176 -0
  62. package/Calendar/utils.d.ts +1 -1
  63. package/Calendar/utils.js +185 -0
  64. package/Carousel/Carousel.js +1 -0
  65. package/Carousel/CarouselCss.d.ts +1 -23
  66. package/Carousel/CarouselCss.js +19 -0
  67. package/Carousel/index.d.ts +1 -1
  68. package/Carousel/index.js +1 -0
  69. package/Collapsable/Collapsable.js +1 -0
  70. package/Collapsable/CollapsableReach.d.ts +0 -6
  71. package/Collapsable/CollapsableReach.js +1 -0
  72. package/Collapsable/index.d.ts +1 -1
  73. package/Collapsable/index.js +1 -0
  74. package/Debug/Debug.js +9 -0
  75. package/Debug/index.d.ts +1 -1
  76. package/Debug/index.js +1 -0
  77. package/Details/Details.d.ts +60 -66
  78. package/Details/Details.js +52 -0
  79. package/Details/index.d.ts +1 -1
  80. package/Details/index.js +1 -0
  81. package/Dialog/DialogMui.d.ts +9 -11
  82. package/Dialog/DialogMui.js +39 -0
  83. package/Dialog/css/bare.d.ts +9 -10
  84. package/Dialog/css/bare.js +21 -0
  85. package/Dialog/index.d.ts +2 -2
  86. package/Dialog/index.js +1 -0
  87. package/Dialog/m/bare.js +3 -0
  88. package/Dialog/m/basic.d.ts +1 -1
  89. package/Dialog/m/basic.js +28 -0
  90. package/Dialog/m/index.d.ts +1 -2
  91. package/Dialog/m/index.js +4 -0
  92. package/Dialog/sc/bare.d.ts +4 -14
  93. package/Dialog/sc/bare.js +31 -0
  94. package/Dialog/sc/framer.d.ts +1 -2
  95. package/Dialog/sc/framer.js +16 -0
  96. package/Dialog/sc/framerMaterial.js +16 -0
  97. package/Dialog/sc/material.d.ts +3 -4
  98. package/Dialog/sc/material.js +21 -0
  99. package/Dialog/tw/bare.d.ts +7 -22
  100. package/Dialog/tw/bare.js +29 -0
  101. package/Dialog/tw/elegant.d.ts +6 -7
  102. package/Dialog/tw/elegant.js +21 -0
  103. package/Dialog/tw/framer.d.ts +3 -4
  104. package/Dialog/tw/framer.js +16 -0
  105. package/Dialog/tw/framerMaterial.d.ts +2 -2
  106. package/Dialog/tw/framerMaterial.js +16 -0
  107. package/Dialog/tw/material.d.ts +6 -7
  108. package/Dialog/tw/material.js +21 -0
  109. package/Editor/Editor--tiptap.js +26 -0
  110. package/Editor/components.js +10 -0
  111. package/Editor/index.d.ts +1 -1
  112. package/Editor/index.js +1 -0
  113. package/FaviconTags.d.ts +0 -10
  114. package/FaviconTags.js +6 -0
  115. package/Form/Form.d.ts +1 -14
  116. package/Form/Form.js +60 -0
  117. package/Form/index.d.ts +1 -1
  118. package/Form/index.js +1 -0
  119. package/Form/sc/bare.d.ts +1 -2
  120. package/Form/sc/bare.js +20 -0
  121. package/Forms/Checkbox/Checkbox.d.ts +1 -5
  122. package/Forms/Checkbox/Checkbox.js +15 -0
  123. package/Forms/Checkbox/index.d.ts +1 -1
  124. package/Forms/Checkbox/index.js +1 -0
  125. package/Forms/Feedback/Feedback.js +9 -0
  126. package/Forms/Feedback/index.d.ts +1 -1
  127. package/Forms/Feedback/index.js +1 -0
  128. package/Forms/Field/Field.d.ts +1 -19
  129. package/Forms/Field/Field.js +25 -0
  130. package/Forms/Field/FieldControl.d.ts +2 -14
  131. package/Forms/Field/FieldControl.js +35 -0
  132. package/Forms/Field/FieldHint.js +4 -0
  133. package/Forms/Field/index.d.ts +2 -2
  134. package/Forms/Field/index.js +2 -0
  135. package/Forms/Input/Input.d.ts +1 -2
  136. package/Forms/Input/Input.js +16 -0
  137. package/Forms/Input/index.d.ts +1 -1
  138. package/Forms/Input/index.js +1 -0
  139. package/Forms/InputGroup/InputGroup.d.ts +1 -2
  140. package/Forms/InputGroup/InputGroup.js +15 -0
  141. package/Forms/InputGroup/index.d.ts +1 -1
  142. package/Forms/InputGroup/index.js +1 -0
  143. package/Forms/Label/Label.js +6 -0
  144. package/Forms/Label/index.d.ts +1 -1
  145. package/Forms/Label/index.js +1 -0
  146. package/Forms/Password/Password.d.ts +1 -2
  147. package/Forms/Password/Password.js +17 -0
  148. package/Forms/Password/index.d.ts +1 -1
  149. package/Forms/Password/index.js +1 -0
  150. package/Forms/Radio/Radio.d.ts +1 -2
  151. package/Forms/Radio/Radio.js +25 -0
  152. package/Forms/Radio/index.d.ts +1 -1
  153. package/Forms/Radio/index.js +1 -0
  154. package/Forms/Switch/Switch.d.ts +1 -5
  155. package/Forms/Switch/Switch.js +17 -0
  156. package/Forms/Switch/index.d.ts +1 -1
  157. package/Forms/Switch/index.js +1 -0
  158. package/Forms/Textarea/Textarea.d.ts +1 -2
  159. package/Forms/Textarea/Textarea.js +12 -0
  160. package/Forms/Textarea/TextareaRich.d.ts +1 -2
  161. package/Forms/Textarea/TextareaRich.js +26 -0
  162. package/Forms/Textarea/index.d.ts +2 -2
  163. package/Forms/Textarea/index.js +2 -0
  164. package/Forms/Toggle/Toggle-tailwind.js +1 -0
  165. package/Forms/Toggle/Toggle.d.ts +0 -1
  166. package/Forms/Toggle/Toggle.js +25 -0
  167. package/Forms/Toggle/index.d.ts +1 -1
  168. package/Forms/Toggle/index.js +1 -0
  169. package/Forms/Toggle/useToggle-tailwind.js +1 -0
  170. package/Forms/Toggle/useToggle.d.ts +1 -31
  171. package/Forms/Toggle/useToggle.js +85 -0
  172. package/Forms/antispam.d.ts +0 -20
  173. package/Forms/antispam.js +29 -0
  174. package/Forms/helpers.d.ts +0 -8
  175. package/Forms/helpers.js +35 -0
  176. package/Forms/index.d.ts +15 -15
  177. package/Forms/index.js +15 -0
  178. package/Forms/styles.d.ts +0 -6
  179. package/Forms/styles.js +19 -0
  180. package/Gauge/Gauge.d.ts +0 -1
  181. package/Gauge/Gauge.js +1 -0
  182. package/Grid/Grid.d.ts +1 -10
  183. package/Grid/Grid.js +52 -0
  184. package/Grid/index.d.ts +1 -1
  185. package/Grid/index.js +1 -0
  186. package/Hamburger/Hamburger.d.ts +0 -1
  187. package/Hamburger/Hamburger.js +47 -0
  188. package/Hamburger/index.d.ts +1 -1
  189. package/Hamburger/index.js +1 -0
  190. package/Header/index.d.ts +1 -1
  191. package/Header/index.js +1 -0
  192. package/Header/useHeader.d.ts +0 -4
  193. package/Header/useHeader.js +31 -0
  194. package/Hidden/Hidden.d.ts +1 -1
  195. package/Hidden/Hidden.js +10 -0
  196. package/Hidden/index.d.ts +1 -1
  197. package/Hidden/index.js +1 -0
  198. package/Img/index.d.ts +1 -1
  199. package/Img/index.js +1 -0
  200. package/Img/sc/bare.js +4 -0
  201. package/Img/types.js +1 -0
  202. package/Link/Link.js +4 -0
  203. package/Link/LinkBlank.js +15 -0
  204. package/Link/index.d.ts +2 -2
  205. package/Link/index.js +2 -0
  206. package/Menu/Menu.js +4 -0
  207. package/Menu/MenuMui.js +1 -0
  208. package/Menu/index.d.ts +1 -1
  209. package/Menu/index.js +1 -0
  210. package/MenuItem/MenuItem.js +4 -0
  211. package/MenuItem/MenuItemMui.js +1 -0
  212. package/MenuItem/index.d.ts +1 -1
  213. package/MenuItem/index.js +1 -0
  214. package/MenuItem/useMenuItem.js +42 -0
  215. package/Meta.d.ts +5 -0
  216. package/Meta.js +6 -0
  217. package/NoJs.js +7 -0
  218. package/Pagination/PaginationNav.d.ts +1 -9
  219. package/Pagination/PaginationNav.js +48 -0
  220. package/Pagination/PaginationResults.js +11 -0
  221. package/Pagination/index.d.ts +2 -2
  222. package/Pagination/index.js +2 -0
  223. package/Pill/Pill.js +7 -0
  224. package/Pill/index.d.ts +1 -1
  225. package/Pill/index.js +1 -0
  226. package/Progress/ProgressCircular.d.ts +1 -7
  227. package/Progress/ProgressCircular.js +12 -0
  228. package/Progress/ProgressLinear.d.ts +1 -8
  229. package/Progress/ProgressLinear.js +21 -0
  230. package/Progress/ProgressOverlay.js +23 -0
  231. package/Progress/index.d.ts +3 -3
  232. package/Progress/index.js +3 -0
  233. package/Rating/Rating.d.ts +0 -8
  234. package/Rating/Rating.js +43 -0
  235. package/Rating/index.d.ts +1 -4
  236. package/Rating/index.js +45 -0
  237. package/Select/SelectDownshift.d.ts +1 -1
  238. package/Select/SelectDownshift.js +1 -0
  239. package/Select/components.js +12 -0
  240. package/Select/index.d.ts +2 -2
  241. package/Select/index.js +1 -0
  242. package/Sidebar/Sidebar.js +23 -0
  243. package/Sidebar/index.d.ts +1 -1
  244. package/Sidebar/index.js +1 -0
  245. package/Spacing/Spacing.d.ts +1 -14
  246. package/Spacing/Spacing.js +32 -0
  247. package/Spacing/index.d.ts +1 -1
  248. package/Spacing/index.js +1 -0
  249. package/Sticky/Sticky.js +1 -0
  250. package/Sticky/StickyCss.js +6 -0
  251. package/Sticky/index.d.ts +1 -1
  252. package/Sticky/index.js +1 -0
  253. package/Tabs/TabsMui.d.ts +6 -7
  254. package/Tabs/TabsMui.js +30 -0
  255. package/Tabs/index.d.ts +1 -1
  256. package/Tabs/index.js +1 -0
  257. package/Tabs/sc/bare.d.ts +0 -5
  258. package/Tabs/sc/bare.js +1 -0
  259. package/Tabs/tw/bare.d.ts +5 -6
  260. package/Tabs/tw/bare.js +17 -0
  261. package/Tabs/tw/material.d.ts +2 -3
  262. package/Tabs/tw/material.js +19 -0
  263. package/Tabs/useTabs.d.ts +0 -22
  264. package/Tabs/useTabs.js +43 -0
  265. package/Typography/CopyPasteVisible.js +4 -0
  266. package/Typography/Native.js +14 -0
  267. package/Typography/ReadMore.d.ts +0 -2
  268. package/Typography/ReadMore.js +42 -0
  269. package/Typography/TextLoop.js +45 -0
  270. package/Typography/TypeStairs.js +42 -0
  271. package/Typography/index.d.ts +5 -5
  272. package/Typography/index.js +5 -0
  273. package/classed.d.ts +8 -0
  274. package/classed.js +43 -0
  275. package/{helpers/createUseMediaQueryWidth.d.ts → createUseMediaQueryWidth.d.ts} +1 -7
  276. package/createUseMediaQueryWidth.js +38 -0
  277. package/css/index.d.ts +1 -2
  278. package/css/index.js +1 -0
  279. package/{helpers/extend-component.d.ts → extendComponent.d.ts} +0 -11
  280. package/extendComponent.js +9 -0
  281. package/index.d.ts +25 -1
  282. package/index.js +24 -0
  283. package/m/MotionProvider.d.ts +0 -32
  284. package/m/MotionProvider.js +7 -0
  285. package/m/index.d.ts +1 -6
  286. package/m/index.js +1 -0
  287. package/{helpers/mergeRefs.mjs → mergeRefs.js} +4 -3
  288. package/package.json +609 -22
  289. package/sc/index.d.ts +29 -30
  290. package/sc/index.js +29 -0
  291. package/scm/index.d.ts +28 -29
  292. package/scm/index.js +28 -0
  293. package/shared/index.d.ts +7 -8
  294. package/shared/index.js +7 -0
  295. package/styles/Body.d.ts +0 -8
  296. package/styles/Body.js +5 -0
  297. package/styles/Global.d.ts +0 -13
  298. package/styles/Global.js +5 -0
  299. package/styles/index.d.ts +7 -7
  300. package/styles/index.js +7 -0
  301. package/styles/media.d.ts +1 -50
  302. package/styles/media.js +74 -0
  303. package/styles/spacing.d.ts +1 -2
  304. package/styles/spacing.js +45 -0
  305. package/styles/styled.d.ts +0 -4
  306. package/styles/styled.js +9 -0
  307. package/styles/theme--vanilla.js +46 -0
  308. package/styles/theme.d.ts +0 -29
  309. package/styles/theme.js +30 -0
  310. package/tw/index.d.ts +1 -2
  311. package/tw/index.js +1 -0
  312. package/twm/index.d.ts +1 -2
  313. package/twm/index.js +1 -0
  314. package/types.d.ts +3 -2
  315. package/types.js +1 -0
  316. package/{hooks/useAsyncFn.d.ts → useAsyncFn.d.ts} +1 -4
  317. package/useAsyncFn.js +33 -0
  318. package/useDateLocale.d.ts +2 -0
  319. package/useDateLocale.js +28 -0
  320. package/useFirstMountState.d.ts +2 -0
  321. package/useFirstMountState.js +10 -0
  322. package/useFixedOffset.d.ts +3 -0
  323. package/useFixedOffset.js +42 -0
  324. package/{hooks/useFocus.d.ts → useFocus.d.ts} +0 -3
  325. package/useFocus.js +9 -0
  326. package/useInterval.d.ts +2 -0
  327. package/useInterval.js +22 -0
  328. package/useIsomorphicLayoutEffect.d.ts +3 -0
  329. package/useIsomorphicLayoutEffect.js +6 -0
  330. package/useKeyUp.js +18 -0
  331. package/{hooks/useMeasure.d.ts → useMeasure.d.ts} +0 -5
  332. package/useMeasure.js +130 -0
  333. package/useMountedState.d.ts +2 -0
  334. package/useMountedState.js +13 -0
  335. package/useNavigateAway.d.ts +3 -0
  336. package/useNavigateAway.js +25 -0
  337. package/usePrevious.d.ts +2 -0
  338. package/usePrevious.js +9 -0
  339. package/{hooks/usePreviousRef.mjs → usePreviousRef.js} +2 -2
  340. package/{hooks/useScrollPosition.d.ts → useScrollPosition.d.ts} +0 -7
  341. package/useScrollPosition.js +61 -0
  342. package/useScrollThreshold.js +26 -0
  343. package/useScrollTo.js +22 -0
  344. package/{hooks/useSmoothScroll.d.ts → useSmoothScroll.d.ts} +0 -6
  345. package/useSmoothScroll.js +32 -0
  346. package/useSpinDelay.d.ts +2 -0
  347. package/useSpinDelay.js +38 -0
  348. package/{hooks/useTraceUpdate.d.ts → useTraceUpdate.d.ts} +0 -3
  349. package/useTraceUpdate.js +18 -0
  350. package/{hooks/useUpdateEffect.d.ts → useUpdateEffect.d.ts} +0 -3
  351. package/useUpdateEffect.js +11 -0
  352. package/useWindowSize.d.ts +3 -0
  353. package/useWindowSize.js +19 -0
  354. package/Alert/Alert.mjs +0 -22
  355. package/Alert/Alert.stories.mjs +0 -18
  356. package/Alert/index.mjs +0 -1
  357. package/Animations/Reveal.mjs +0 -43
  358. package/Animations/Underline.mjs +0 -15
  359. package/Animations/index.mjs +0 -3
  360. package/Animations/useReveal.mjs +0 -73
  361. package/Autocomplete/AutocompleteDownshift.mjs +0 -157
  362. package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
  363. package/Autocomplete/AutocompleteMui.mjs +0 -219
  364. package/Autocomplete/AutocompleteReach.mjs +0 -111
  365. package/Autocomplete/components.mjs +0 -87
  366. package/Autocomplete/helpers.mjs +0 -35
  367. package/Autocomplete/index.mjs +0 -4
  368. package/Bg/BgColor.mjs +0 -42
  369. package/Bg/BgPhoto.mjs +0 -71
  370. package/Bg/BgSvg.mjs +0 -22
  371. package/Bg/index.mjs +0 -3
  372. package/Breadcrumbs/Breadcrumbs.mjs +0 -91
  373. package/Breadcrumbs/index.mjs +0 -1
  374. package/Buttons/Button.mjs +0 -78
  375. package/Buttons/ButtonComposite.mjs +0 -105
  376. package/Buttons/ButtonFab.mjs +0 -8
  377. package/Buttons/ButtonLink.mjs +0 -18
  378. package/Buttons/IconButton.mjs +0 -19
  379. package/Buttons/index.mjs +0 -5
  380. package/Calendar/CalendarDaygridCell.mjs +0 -95
  381. package/Calendar/CalendarDaygridNav.mjs +0 -52
  382. package/Calendar/CalendarDaygridTable.mjs +0 -115
  383. package/Calendar/CalendarLegend.mjs +0 -29
  384. package/Calendar/calendar-api-google.mjs +0 -99
  385. package/Calendar/index.mjs +0 -6
  386. package/Calendar/types.mjs +0 -1
  387. package/Calendar/useCalendar.mjs +0 -225
  388. package/Calendar/utils.mjs +0 -209
  389. package/Carousel/Carousel.mjs +0 -377
  390. package/Carousel/CarouselCss.mjs +0 -44
  391. package/Carousel/index.mjs +0 -1
  392. package/Collapsable/Collapsable.mjs +0 -1
  393. package/Collapsable/CollapsableReach.mjs +0 -250
  394. package/Collapsable/index.mjs +0 -1
  395. package/Debug/Debug.mjs +0 -23
  396. package/Debug/index.mjs +0 -1
  397. package/Details/Details.mjs +0 -90
  398. package/Details/Details.stories.mjs +0 -21
  399. package/Details/index.mjs +0 -1
  400. package/Dialog/DialogMui.mjs +0 -105
  401. package/Dialog/DialogMui.stories.mjs +0 -20
  402. package/Dialog/css/bare.mjs +0 -19
  403. package/Dialog/css/index.stories.mjs +0 -75
  404. package/Dialog/index.mjs +0 -1
  405. package/Dialog/m/bare.mjs +0 -115
  406. package/Dialog/m/basic.mjs +0 -31
  407. package/Dialog/m/index.mjs +0 -4
  408. package/Dialog/sc/bare.mjs +0 -54
  409. package/Dialog/sc/framer.mjs +0 -16
  410. package/Dialog/sc/framerMaterial.mjs +0 -16
  411. package/Dialog/sc/index.stories.mjs +0 -48
  412. package/Dialog/sc/material.mjs +0 -41
  413. package/Dialog/tw/bare.mjs +0 -29
  414. package/Dialog/tw/elegant.mjs +0 -18
  415. package/Dialog/tw/framer.mjs +0 -16
  416. package/Dialog/tw/framerMaterial.mjs +0 -16
  417. package/Dialog/tw/index.stories.mjs +0 -83
  418. package/Dialog/tw/material.mjs +0 -18
  419. package/Editor/Editor--tiptap.mjs +0 -53
  420. package/Editor/components.mjs +0 -28
  421. package/Editor/index.mjs +0 -1
  422. package/FaviconTags.mjs +0 -64
  423. package/Form/Form.mjs +0 -95
  424. package/Form/index.mjs +0 -1
  425. package/Form/sc/bare.mjs +0 -29
  426. package/Forms/Checkbox/Checkbox.mjs +0 -36
  427. package/Forms/Checkbox/index.mjs +0 -1
  428. package/Forms/Feedback/Feedback.mjs +0 -14
  429. package/Forms/Feedback/index.mjs +0 -1
  430. package/Forms/Field/Field.mjs +0 -50
  431. package/Forms/Field/FieldControl.mjs +0 -67
  432. package/Forms/Field/FieldHint.mjs +0 -6
  433. package/Forms/Field/index.mjs +0 -2
  434. package/Forms/Input/Input.mjs +0 -36
  435. package/Forms/Input/index.mjs +0 -1
  436. package/Forms/InputGroup/InputGroup.mjs +0 -57
  437. package/Forms/InputGroup/index.mjs +0 -1
  438. package/Forms/Label/Label.mjs +0 -24
  439. package/Forms/Label/index.mjs +0 -1
  440. package/Forms/Password/Password.mjs +0 -53
  441. package/Forms/Password/index.mjs +0 -1
  442. package/Forms/Radio/Radio.mjs +0 -57
  443. package/Forms/Radio/index.mjs +0 -1
  444. package/Forms/Switch/Switch.mjs +0 -60
  445. package/Forms/Switch/index.mjs +0 -1
  446. package/Forms/Textarea/Textarea.mjs +0 -26
  447. package/Forms/Textarea/TextareaRich.mjs +0 -48
  448. package/Forms/Textarea/index.mjs +0 -2
  449. package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
  450. package/Forms/Toggle/Toggle.mjs +0 -123
  451. package/Forms/Toggle/index.mjs +0 -1
  452. package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
  453. package/Forms/Toggle/useToggle.mjs +0 -163
  454. package/Forms/antispam.mjs +0 -58
  455. package/Forms/helpers.mjs +0 -52
  456. package/Forms/index.mjs +0 -16
  457. package/Forms/styles.mjs +0 -61
  458. package/Gauge/Gauge.mjs +0 -101
  459. package/Grid/Grid.mjs +0 -75
  460. package/Grid/index.mjs +0 -1
  461. package/Hamburger/Hamburger.mjs +0 -79
  462. package/Hamburger/index.mjs +0 -1
  463. package/Header/index.mjs +0 -1
  464. package/Header/useHeader.mjs +0 -36
  465. package/Hidden/Hidden.mjs +0 -10
  466. package/Hidden/index.mjs +0 -1
  467. package/Img/index.mjs +0 -1
  468. package/Img/sc/bare.mjs +0 -36
  469. package/Img/types.mjs +0 -1
  470. package/Link/Link.mjs +0 -2
  471. package/Link/LinkBlank.mjs +0 -32
  472. package/Link/index.mjs +0 -2
  473. package/Menu/Menu.mjs +0 -11
  474. package/Menu/MenuMui.mjs +0 -164
  475. package/Menu/index.mjs +0 -1
  476. package/MenuItem/MenuItem.mjs +0 -20
  477. package/MenuItem/MenuItemMui.mjs +0 -31
  478. package/MenuItem/index.mjs +0 -1
  479. package/MenuItem/useMenuItem.mjs +0 -78
  480. package/Meta/Meta.d.ts +0 -15
  481. package/Meta/Meta.mjs +0 -8
  482. package/Meta/index.d.ts +0 -2
  483. package/Meta/index.mjs +0 -2
  484. package/NoJs/NoJs.mjs +0 -10
  485. package/NoJs/index.d.ts +0 -2
  486. package/NoJs/index.mjs +0 -2
  487. package/Pagination/PaginationNav.mjs +0 -122
  488. package/Pagination/PaginationResults.mjs +0 -34
  489. package/Pagination/index.mjs +0 -2
  490. package/Pill/Pill.mjs +0 -37
  491. package/Pill/index.mjs +0 -1
  492. package/Progress/ProgressCircular.mjs +0 -53
  493. package/Progress/ProgressLinear.mjs +0 -44
  494. package/Progress/ProgressOverlay.mjs +0 -64
  495. package/Progress/index.mjs +0 -3
  496. package/README.md +0 -1
  497. package/Rating/Rating.mjs +0 -154
  498. package/Rating/index.mjs +0 -62
  499. package/Select/SelectDownshift.mjs +0 -37
  500. package/Select/components.mjs +0 -25
  501. package/Select/index.mjs +0 -2
  502. package/Sidebar/Sidebar.mjs +0 -63
  503. package/Sidebar/index.mjs +0 -1
  504. package/Spacing/Spacing.mjs +0 -55
  505. package/Spacing/index.mjs +0 -1
  506. package/Sticky/Sticky.mjs +0 -218
  507. package/Sticky/StickyCss.mjs +0 -10
  508. package/Sticky/index.mjs +0 -1
  509. package/Tabs/TabsMui.mjs +0 -61
  510. package/Tabs/TabsMui.stories.mjs +0 -20
  511. package/Tabs/index.mjs +0 -1
  512. package/Tabs/sc/bare.mjs +0 -85
  513. package/Tabs/sc/index.stories.mjs +0 -0
  514. package/Tabs/tw/bare.mjs +0 -15
  515. package/Tabs/tw/index.stories.mjs +0 -25
  516. package/Tabs/tw/material.mjs +0 -14
  517. package/Tabs/useTabs.mjs +0 -46
  518. package/Typography/CopyPasteVisible.mjs +0 -6
  519. package/Typography/Native.mjs +0 -47
  520. package/Typography/ReadMore.mjs +0 -114
  521. package/Typography/TextLoop.mjs +0 -90
  522. package/Typography/TypeStairs.mjs +0 -61
  523. package/Typography/index.mjs +0 -5
  524. package/css/index.mjs +0 -30
  525. package/helpers/classed.d.ts +0 -27
  526. package/helpers/classed.mjs +0 -65
  527. package/helpers/classed.stories.mjs +0 -121
  528. package/helpers/createUseMediaQueryWidth.mjs +0 -178
  529. package/helpers/extend-component.mjs +0 -13
  530. package/helpers/index.d.ts +0 -4
  531. package/helpers/index.mjs +0 -4
  532. package/hooks/index.d.ts +0 -20
  533. package/hooks/index.mjs +0 -21
  534. package/hooks/types.d.ts +0 -8
  535. package/hooks/types.mjs +0 -3
  536. package/hooks/useAsyncFn.mjs +0 -39
  537. package/hooks/useDateLocale.d.ts +0 -8
  538. package/hooks/useDateLocale.mjs +0 -37
  539. package/hooks/useFirstMountState.d.ts +0 -5
  540. package/hooks/useFirstMountState.mjs +0 -12
  541. package/hooks/useFixedOffset.d.ts +0 -12
  542. package/hooks/useFixedOffset.mjs +0 -56
  543. package/hooks/useFocus.mjs +0 -14
  544. package/hooks/useInterval.d.ts +0 -7
  545. package/hooks/useInterval.mjs +0 -29
  546. package/hooks/useIsomorphicLayoutEffect.d.ts +0 -6
  547. package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
  548. package/hooks/useKeyUp.mjs +0 -21
  549. package/hooks/useMeasure.mjs +0 -174
  550. package/hooks/useMountedState.d.ts +0 -5
  551. package/hooks/useMountedState.mjs +0 -15
  552. package/hooks/useNavigateAway.d.ts +0 -32
  553. package/hooks/useNavigateAway.mjs +0 -69
  554. package/hooks/usePrevious.d.ts +0 -5
  555. package/hooks/usePrevious.mjs +0 -17
  556. package/hooks/useScrollPosition.mjs +0 -70
  557. package/hooks/useScrollThreshold.mjs +0 -33
  558. package/hooks/useScrollTo.mjs +0 -20
  559. package/hooks/useSmoothScroll.mjs +0 -35
  560. package/hooks/useSpinDelay.d.ts +0 -14
  561. package/hooks/useSpinDelay.mjs +0 -52
  562. package/hooks/useTraceUpdate.mjs +0 -23
  563. package/hooks/useUpdateEffect.mjs +0 -14
  564. package/hooks/useWindowSize.d.ts +0 -12
  565. package/hooks/useWindowSize.mjs +0 -32
  566. package/index.mjs +0 -4
  567. package/m/MotionProvider.mjs +0 -40
  568. package/m/index.mjs +0 -5
  569. package/sc/index.mjs +0 -31
  570. package/scm/index.mjs +0 -31
  571. package/shared/index.mjs +0 -43
  572. package/styles/Body.mjs +0 -16
  573. package/styles/Global.mjs +0 -49
  574. package/styles/index.mjs +0 -7
  575. package/styles/media.mjs +0 -151
  576. package/styles/spacing.mjs +0 -46
  577. package/styles/styled.mjs +0 -26
  578. package/styles/theme--vanilla.mjs +0 -65
  579. package/styles/theme.mjs +0 -38
  580. package/tw/index.mjs +0 -30
  581. package/twm/index.mjs +0 -30
  582. package/types.mjs +0 -1
  583. /package/{NoJs/NoJs.d.ts → NoJs.d.ts} +0 -0
  584. /package/m/{lite.mjs → lite.js} +0 -0
  585. /package/m/{max.mjs → max.js} +0 -0
  586. /package/{helpers/mergeRefs.d.ts → mergeRefs.d.ts} +0 -0
  587. /package/{hooks/useKeyUp.d.ts → useKeyUp.d.ts} +0 -0
  588. /package/{hooks/usePreviousRef.d.ts → usePreviousRef.d.ts} +0 -0
  589. /package/{hooks/useScrollThreshold.d.ts → useScrollThreshold.d.ts} +0 -0
  590. /package/{hooks/useScrollTo.d.ts → useScrollTo.d.ts} +0 -0
@@ -1,95 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Fragment, useState } from "react";
3
- import { MdAdd as IconExpand } from "react-icons/md";
4
- import { getDisplayTime } from "./utils";
5
- /**
6
- * Style for button within a event cell
7
- *
8
- * Here we might differentiate week/month view where the first does not get
9
- * ellipsed btn texts, with `Start` as block element and underneath the `Title`
10
- * on multiple lines, but that would mean that we loose the ability to interweave
11
- * single-day events among the spaces left by wider multi-days events.
12
- */ const styleBtn = {
13
- overflow: "hidden",
14
- whiteSpace: "nowrap",
15
- textOverflow: "ellipsis"
16
- };
17
- export const CalendarDaygridCell = ({ eventClicked, setEventClicked, // eventHovered,
18
- setEventHovered, view, maxEvents, events, calendarsMap, Cell = "div", CellOverflow = "div", CellEvent = "div", CellEventBtn = "div", CellEventTitle = "span", CellEventStart = "span" })=>{
19
- const [isExpanded, expand] = useState(false);
20
- const eventsWithoutPlaceholders = events.filter((event)=>!event.placeholder);
21
- return /*#__PURE__*/ _jsx(Cell, {
22
- children: events.map((event, i)=>{
23
- if (i === maxEvents && !isExpanded) {
24
- return /*#__PURE__*/ _jsxs(CellOverflow, {
25
- onClick: ()=>expand(true),
26
- children: [
27
- /*#__PURE__*/ _jsx(IconExpand, {}),
28
- eventsWithoutPlaceholders.length - maxEvents
29
- ]
30
- }, "overflowMessage" + i);
31
- }
32
- if (i > maxEvents && !isExpanded) return null;
33
- if (event.placeholder) {
34
- return /*#__PURE__*/ _jsx(Fragment, {
35
- children: /*#__PURE__*/ _jsx(CellEvent, {
36
- $placeholder: true,
37
- children: /*#__PURE__*/ _jsx(CellEventBtn, {
38
- "aria-hidden": "true",
39
- style: {
40
- visibility: "hidden"
41
- },
42
- $placeholder: true,
43
- children: /*#__PURE__*/ _jsx(CellEventTitle, {
44
- children: "\xa0"
45
- })
46
- })
47
- })
48
- }, event.key);
49
- }
50
- const styleEvent = {
51
- zIndex: event.firstOfMulti ? 1 : 0,
52
- position: "relative",
53
- width: event.firstOfMulti ? `${100 * event.width}%` : "100%"
54
- };
55
- if (!calendarsMap[event.calendar.id].on) {
56
- // @ts-expect-error nevermind
57
- styleBtn.display = "none";
58
- }
59
- const styledProps = {
60
- $view: view,
61
- $selected: eventClicked?.uid === event.uid,
62
- $past: event.isPast,
63
- $color: event.color,
64
- $isOutOfRange: event.$isOutOfRange,
65
- $isToday: event.$isToday
66
- };
67
- return /*#__PURE__*/ _jsx(Fragment, {
68
- children: /*#__PURE__*/ _jsx(CellEvent, {
69
- style: styleEvent,
70
- ...styledProps,
71
- children: /*#__PURE__*/ _jsx(CellEventBtn, {
72
- role: "button",
73
- style: styleBtn,
74
- ...styledProps,
75
- onClick: ()=>setEventClicked((prev)=>prev?.uid === event.uid ? null : event),
76
- onMouseEnter: ()=>setEventHovered(event),
77
- onMouseLeave: ()=>setEventHovered(null),
78
- children: event.allDay ? /*#__PURE__*/ _jsx(CellEventTitle, {
79
- children: event.title
80
- }) : /*#__PURE__*/ _jsxs(_Fragment, {
81
- children: [
82
- /*#__PURE__*/ _jsx(CellEventStart, {
83
- children: getDisplayTime(event.start)
84
- }),
85
- /*#__PURE__*/ _jsx(CellEventTitle, {
86
- children: event.title
87
- })
88
- ]
89
- })
90
- })
91
- })
92
- }, event.key);
93
- })
94
- });
95
- };
@@ -1,52 +0,0 @@
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 const KoineCalendarDaygridNav = ({ range, view, todayInView, handlePrev, handleNext, handleToday, handleView, locale: localeCode, NavRoot = "nav", NavTitle = "div", NavBtns = "div", NavBtnPrev = "button", NavBtnNext = "button", NavBtnToday = "button", NavBtnViewMonth = "button", NavBtnViewWeek = "button" })=>{
5
- const [start, end] = range;
6
- const locale = useDateLocale(localeCode);
7
- const opts = {
8
- locale
9
- };
10
- let formatted = "";
11
- if (view === "month") {
12
- formatted = format(start, "MMMM yyyy", opts);
13
- }
14
- if (view === "week") {
15
- const inSameMonth = start.getMonth() === end.getMonth();
16
- if (inSameMonth) {
17
- formatted = format(start, "# MMMM yyyy", opts).replace("#", `${start.getDate()}-${end.getDate()}`);
18
- } else {
19
- formatted = `${format(start, "d MMMM", opts)} - ${format(end, "d MMMM yyyy", opts)}`;
20
- }
21
- }
22
- return /*#__PURE__*/ _jsxs(NavRoot, {
23
- children: [
24
- /*#__PURE__*/ _jsxs(NavBtns, {
25
- children: [
26
- /*#__PURE__*/ _jsx(NavBtnPrev, {
27
- onClick: handlePrev
28
- }),
29
- /*#__PURE__*/ _jsx(NavBtnNext, {
30
- onClick: handleNext
31
- }),
32
- /*#__PURE__*/ _jsx(NavBtnToday, {
33
- onClick: handleToday,
34
- disabled: todayInView
35
- }),
36
- /*#__PURE__*/ _jsx(NavBtnViewMonth, {
37
- onClick: ()=>handleView("month"),
38
- disabled: view === "month"
39
- }),
40
- /*#__PURE__*/ _jsx(NavBtnViewWeek, {
41
- onClick: ()=>handleView("week"),
42
- disabled: view === "week"
43
- })
44
- ]
45
- }),
46
- /*#__PURE__*/ _jsx(NavTitle, {
47
- range: range,
48
- formatted: formatted
49
- })
50
- ]
51
- });
52
- };
@@ -1,115 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import eachWeekOfInterval from "date-fns/eachWeekOfInterval";
3
- import { useEffect, useMemo, useState } from "react";
4
- import { useSwipeable } from "react-swipeable";
5
- import { useDateLocale } from "../hooks";
6
- import { CalendarDaygridCell } from "./CalendarDaygridCell";
7
- import { processEventsInView } from "./utils";
8
- function getView(range) {
9
- const [start, end] = range;
10
- const weeks = eachWeekOfInterval({
11
- start,
12
- end
13
- }, {
14
- weekStartsOn: 1
15
- });
16
- return {
17
- month: start.getMonth(),
18
- weeks
19
- };
20
- }
21
- export const KoineCalendarDaygridTable = ({ locale: localeCode, handlePrev, handleNext, events, dayLabels, view, range, eventClicked, setEventClicked, eventHovered, setEventHovered, calendarsMap = {}, maxEvents = 5, Table = "table", TableHead = "thead", TableHeadCell = "th", TableBody = "tbody", TableBodyRow = "tr", TableBodyCell = "td", TableBodyCellDate = "div", Cell, CellOverflow, CellEvent, CellEventBtn, CellEventTitle, CellEventStart })=>{
22
- const restKoine = {
23
- Cell,
24
- CellOverflow,
25
- CellEvent,
26
- CellEventBtn,
27
- CellEventTitle,
28
- CellEventStart
29
- };
30
- const [days, setDays] = useState(dayLabels || [
31
- 0,
32
- 1,
33
- 2,
34
- 3,
35
- 4,
36
- 5,
37
- 6
38
- ]);
39
- const [weeksEvents, setWeeksEvents] = useState([]);
40
- // const [days, setDays] = useState(dayLabels || [...Array(7).keys()]);
41
- const locale = useDateLocale(localeCode);
42
- const { month, weeks } = useMemo(()=>getView(range), [
43
- range
44
- ]);
45
- const swipeableHandlers = useSwipeable({
46
- onSwipedLeft: handleNext,
47
- onSwipedRight: handlePrev
48
- });
49
- useEffect(()=>{
50
- setWeeksEvents(processEventsInView(events, view, month, weeks));
51
- }, [
52
- events,
53
- view,
54
- month,
55
- weeks
56
- ]);
57
- useEffect(()=>{
58
- if (locale && locale.localize && !dayLabels) {
59
- setDays([
60
- 1,
61
- 2,
62
- 3,
63
- 4,
64
- 5,
65
- 6,
66
- 0
67
- ].map(// @ts-expect-error nevermind
68
- (i)=>locale.localize.day(i, {
69
- width: "abbreviated"
70
- })));
71
- }
72
- }, [
73
- locale,
74
- dayLabels
75
- ]);
76
- return /*#__PURE__*/ _jsxs(Table, {
77
- ...swipeableHandlers,
78
- children: [
79
- /*#__PURE__*/ _jsx(TableHead, {
80
- children: /*#__PURE__*/ _jsx("tr", {
81
- children: days.map((day)=>/*#__PURE__*/ _jsx(TableHeadCell, {
82
- scope: "column",
83
- children: day
84
- }, day))
85
- })
86
- }),
87
- /*#__PURE__*/ _jsx(TableBody, {
88
- children: weeksEvents.map((week, i)=>/*#__PURE__*/ _jsx(TableBodyRow, {
89
- ...week.props,
90
- children: week.days.map((day)=>/*#__PURE__*/ _jsxs(TableBodyCell, {
91
- ...day.props,
92
- children: [
93
- /*#__PURE__*/ _jsx(TableBodyCellDate, {
94
- ...day.props,
95
- children: day.label
96
- }),
97
- day.events.length > 0 && /*#__PURE__*/ _jsx(CalendarDaygridCell, {
98
- eventClicked,
99
- setEventClicked,
100
- eventHovered,
101
- setEventHovered,
102
- view,
103
- maxEvents,
104
- events: day.events,
105
- timestamp: day.timestamp,
106
- calendarsMap,
107
- ...restKoine
108
- })
109
- ]
110
- }))
111
- }))
112
- })
113
- ]
114
- });
115
- };
@@ -1,29 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- export const KoineCalendarLegend = ({ calendarsMap = {}, toggleCalendarVisibility, LegendItem = "div", LegendItemStatus = "span", LegendItemLabel = "span", LegendItemEvents = "span" })=>{
3
- // const sorted = Object.entries(calendarsMap).sort((a, b) => {
4
- // const { name: nameA } = a[1];
5
- // const { name: nameB } = b[1];
6
- // if (nameA < nameB) return -1;
7
- // else if (nameA > nameB) return 1;
8
- // else return 0;
9
- // });
10
- return /*#__PURE__*/ _jsx(_Fragment, {
11
- children: Object.entries(calendarsMap).map(([id, calendar])=>/*#__PURE__*/ _jsxs(LegendItem, {
12
- onClick: ()=>toggleCalendarVisibility(id),
13
- $color: calendar.color,
14
- $empty: calendar.events === 0,
15
- disabled: calendar.events === 0,
16
- children: [
17
- /*#__PURE__*/ _jsx(LegendItemStatus, {
18
- children: calendar.on ? "\u2b24" : "\u2b58"
19
- }),
20
- /*#__PURE__*/ _jsx(LegendItemLabel, {
21
- children: calendar.name
22
- }),
23
- /*#__PURE__*/ _jsx(LegendItemEvents, {
24
- children: calendar.events
25
- })
26
- ]
27
- }, "CalendarLegend." + id))
28
- });
29
- };
@@ -1,99 +0,0 @@
1
- import differenceInDays from "date-fns/differenceInDays";
2
- import subDays from "date-fns/subDays";
3
- import arrayToLookup from "@koine/utils/arrayToLookup";
4
- import isString from "@koine/utils/isString";
5
- import isUndefined from "@koine/utils/isUndefined";
6
- import { addCalendarEvents, getEventTimestamp } from "./utils";
7
- const baseURL = "https://www.googleapis.com/calendar/v3/calendars/";
8
- export async function getCalendarsEventsFromGoogle({ calendars, ...options }) {
9
- const allEvents = {};
10
- await Promise.all(calendars.map(async (calendar)=>{
11
- const events = await getCalendarEventsFromGoogle({
12
- calendar,
13
- ...options
14
- });
15
- addCalendarEvents(events, allEvents);
16
- }));
17
- return allEvents;
18
- }
19
- async function getCalendarEventsFromGoogle({ apiKey, calendar, timeZone = "", start, end }) {
20
- const events = {};
21
- const params = new URLSearchParams({
22
- calendarId: calendar.id,
23
- timeZone,
24
- singleEvents: "true",
25
- maxAttendees: "1",
26
- maxResults: "9999",
27
- sanitizeHtml: "true",
28
- timeMin: start.toISOString(),
29
- timeMax: end.toISOString(),
30
- key: apiKey || process.env["GOOGLE_CALENDAR_API_KEY"] || ""
31
- }).toString();
32
- const url = baseURL + calendar.id + "/events?" + params;
33
- try {
34
- const response = await fetch(url, {
35
- method: "GET"
36
- });
37
- const data = await response.json();
38
- calendar.name = calendar.name || data.summary;
39
- data.items.forEach((googleEvent)=>{
40
- const event = transformCalendarEventFromGoogle(googleEvent, calendar);
41
- events[event.uid] = event;
42
- });
43
- } catch (e) {
44
- // if (onError) onError(e);
45
- }
46
- return events;
47
- }
48
- function transformCalendarEventFromGoogle(event, calendar) {
49
- const created = new Date(event.created);
50
- const link = event.htmlLink;
51
- const title = event.summary;
52
- const status = event.status;
53
- const start = new Date(event.start.date || event.start.dateTime);
54
- let end = new Date(event.end.date || event.end.dateTime);
55
- const color = calendar.color;
56
- const allDay = isUndefined(event.end.dateTime) && isString(event.end.date);
57
- const location = event.location || "";
58
- const description = event.description || ""; // FIXME: he.decode(event.description || '');
59
- const uid = created.getTime() + "" + start.getTime();
60
- // multi-days all day events has as end date the date after to what we actually
61
- // 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
62
- if (allDay && end > start) {
63
- end = subDays(end, 1);
64
- end.setHours(23, 59, 59);
65
- }
66
- const days = getDays();
67
- const daysMap = arrayToLookup(days);
68
- const multi = days.length > 1;
69
- function getDays() {
70
- const from = new Date(start);
71
- const to = new Date(end);
72
- const days = [
73
- getEventTimestamp(from)
74
- ];
75
- while(differenceInDays(to, from)){
76
- // console.log(title, differenceInDays(to, from))
77
- from.setDate(from.getDate() + 1);
78
- days.push(getEventTimestamp(from));
79
- }
80
- return days;
81
- }
82
- return {
83
- calendar,
84
- created,
85
- link,
86
- title,
87
- status,
88
- start,
89
- end,
90
- days,
91
- daysMap,
92
- multi,
93
- color,
94
- allDay,
95
- location,
96
- description,
97
- uid
98
- };
99
- }
@@ -1,6 +0,0 @@
1
- export * from "./CalendarDaygridCell";
2
- export * from "./CalendarDaygridNav";
3
- export * from "./CalendarDaygridTable";
4
- export * from "./CalendarLegend";
5
- export * from "./useCalendar";
6
- export * from "./types";
@@ -1 +0,0 @@
1
- export { };
@@ -1,225 +0,0 @@
1
- import { useCallback, useEffect, useReducer, useState } from "react";
2
- import { getCalendarsEventsFromGoogle } from "./calendar-api-google";
3
- import { getEndDate, getNextDate, getPrevDate, getStartDate, isTodayInView } from "./utils";
4
- export function useCalendar({ locale, apiKey, calendars, events: initialEvents, start: initialStart, end: initialEnd, view: initialView = "month", timeZone = "", onError }) {
5
- const [view, setView] = useState(initialView);
6
- const start = initialStart || getStartDate(new Date(), view);
7
- const end = initialEnd || getEndDate(start, view);
8
- const [range, setRange] = useState([
9
- start,
10
- end
11
- ]);
12
- const [todayInView, setTodayInView] = useState(isTodayInView(start, end));
13
- const [events, setEvents] = useState(initialEvents || {});
14
- const [eventHovered, setEventHovered] = useState(null);
15
- const [eventClicked, setEventClicked] = useState(null);
16
- const [calendarsMap, updateCalendars] = useReducer((state, action)=>{
17
- const { type } = action;
18
- switch(type){
19
- case "events":
20
- {
21
- const events = action.payload;
22
- return Object.entries(state).reduce((map, [id, calendar])=>{
23
- map[id] = {
24
- ...calendar,
25
- events: events[id] || 0
26
- };
27
- return map;
28
- }, {});
29
- }
30
- case "visibility":
31
- {
32
- const visible = action.payload;
33
- if (typeof visible === "string") {
34
- return {
35
- ...state,
36
- [visible]: {
37
- ...state[visible],
38
- on: !state[visible].on
39
- }
40
- };
41
- } else {
42
- return Object.entries(state).reduce((map, [id, calendar])=>{
43
- map[id] = {
44
- ...calendar,
45
- on: visible.indexOf(id) > -1
46
- };
47
- return map;
48
- }, {});
49
- }
50
- }
51
- default:
52
- return state;
53
- }
54
- }, // initial state
55
- calendars.reduce((map, calendar)=>{
56
- map[calendar.id] = {
57
- ...calendar,
58
- name: calendar.name || "",
59
- on: true,
60
- events: 0
61
- };
62
- return map;
63
- }, {}));
64
- const toggleCalendarVisibility = useCallback((idOrIds)=>{
65
- updateCalendars({
66
- type: "visibility",
67
- payload: idOrIds
68
- });
69
- }, [
70
- updateCalendars
71
- ]);
72
- const updateCalendarsBasedOnEvents = useCallback((events)=>{
73
- const payload = {};
74
- for(const uid in events){
75
- const { id } = events[uid].calendar;
76
- payload[id] = payload[id] || 0;
77
- payload[id]++;
78
- }
79
- updateCalendars({
80
- type: "events",
81
- payload
82
- });
83
- }, []);
84
- const loadCalendars = useCallback(async (calendars, start, end)=>{
85
- try {
86
- const newEvents = await getCalendarsEventsFromGoogle({
87
- apiKey,
88
- calendars,
89
- timeZone,
90
- start,
91
- end
92
- });
93
- // setEvents(mergeCalendarEvents(events, newEvents));
94
- setEvents(newEvents);
95
- } catch (e) {
96
- if (onError) onError(e);
97
- }
98
- }, [
99
- setEvents,
100
- apiKey,
101
- timeZone,
102
- onError
103
- ]);
104
- const handleToday = useCallback(()=>{
105
- const [start, end] = range;
106
- const newStart = getStartDate(new Date(), view);
107
- const newEnd = getEndDate(newStart, view);
108
- setRange([
109
- newStart,
110
- newEnd
111
- ]);
112
- // reset event only if we are not on the current view already
113
- if (start.getTime() !== newStart.getTime() || end.getTime() !== newEnd.getTime()) {
114
- setEventClicked(null);
115
- setEventHovered(null);
116
- }
117
- }, [
118
- view,
119
- range
120
- ]);
121
- const handlePrev = useCallback(()=>{
122
- setRange(([start])=>{
123
- const newStart = getPrevDate(start, view);
124
- const newEnd = getEndDate(newStart, view);
125
- return [
126
- newStart,
127
- newEnd
128
- ];
129
- });
130
- setEventClicked(null);
131
- setEventHovered(null);
132
- }, [
133
- view
134
- ]);
135
- const handleNext = useCallback(()=>{
136
- setRange(([start])=>{
137
- const newStart = getNextDate(start, view);
138
- const newEnd = getEndDate(newStart, view);
139
- return [
140
- newStart,
141
- newEnd
142
- ];
143
- });
144
- setEventClicked(null);
145
- setEventHovered(null);
146
- }, [
147
- view
148
- ]);
149
- const handleView = useCallback((newView)=>{
150
- const newStart = getStartDate(start, newView);
151
- const newEnd = getEndDate(newStart, newView);
152
- setRange([
153
- newStart,
154
- newEnd
155
- ]);
156
- setView(newView);
157
- setEventClicked(null);
158
- setEventHovered(null);
159
- }, [
160
- start
161
- ]);
162
- useEffect(()=>{
163
- const [start, end] = range;
164
- loadCalendars(calendars, start, end);
165
- setTodayInView(isTodayInView(start, end));
166
- // eslint-disable-next-line react-hooks/exhaustive-deps
167
- }, [
168
- range
169
- ]);
170
- useEffect(()=>{
171
- if (events) {
172
- updateCalendarsBasedOnEvents(events);
173
- }
174
- }, [
175
- events,
176
- updateCalendarsBasedOnEvents
177
- ]);
178
- // when toggling a calendar we also remove the clicked event if that belongs
179
- // to a now hidden calendar
180
- useEffect(()=>{
181
- if (eventClicked) {
182
- if (!calendarsMap[eventClicked.calendar.id].on) {
183
- setEventClicked(null);
184
- }
185
- }
186
- }, [
187
- calendarsMap,
188
- eventClicked,
189
- setEventClicked
190
- ]);
191
- return {
192
- view,
193
- eventClicked,
194
- setEventClicked,
195
- eventHovered,
196
- setEventHovered,
197
- getDaygridNavProps: ()=>({
198
- locale,
199
- handlePrev,
200
- handleNext,
201
- handleToday,
202
- handleView,
203
- todayInView,
204
- range,
205
- view
206
- }),
207
- getDaygridTableProps: ()=>({
208
- locale,
209
- events,
210
- eventClicked,
211
- setEventClicked,
212
- eventHovered,
213
- setEventHovered,
214
- handlePrev,
215
- handleNext,
216
- calendarsMap,
217
- range,
218
- view
219
- }),
220
- getLegendProps: ()=>({
221
- calendarsMap,
222
- toggleCalendarVisibility
223
- })
224
- };
225
- }