@koine/react 2.0.0-beta.5 → 2.0.0-beta.50

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 (667) hide show
  1. package/{Calendar → calendar}/CalendarDaygridCell.d.ts +2 -3
  2. package/{Calendar → calendar}/CalendarDaygridNav.d.ts +1 -1
  3. package/{Calendar → calendar}/CalendarDaygridTable.d.ts +2 -2
  4. package/{Calendar → calendar}/CalendarLegend.d.ts +1 -2
  5. package/calendar/calendar-api-google.d.ts +10 -0
  6. package/{Calendar → calendar}/types.d.ts +0 -19
  7. package/{Calendar → calendar}/useCalendar.d.ts +1 -16
  8. package/calendar/useDateLocale.d.ts +2 -0
  9. package/calendar/utils.d.ts +11 -0
  10. package/calendar.cjs.d.ts +1 -0
  11. package/calendar.cjs.default.js +1 -0
  12. package/calendar.cjs.js +62 -0
  13. package/calendar.cjs.mjs +2 -0
  14. package/calendar.d.ts +7 -0
  15. package/calendar.esm.js +35 -0
  16. package/components/FaviconTags.d.ts +8 -0
  17. package/components/Meta.d.ts +4 -0
  18. package/components/NoJs.d.ts +2 -0
  19. package/forms/antispam.d.ts +27 -0
  20. package/forms.cjs.d.ts +1 -0
  21. package/forms.cjs.default.js +1 -0
  22. package/forms.cjs.js +11 -0
  23. package/forms.cjs.mjs +2 -0
  24. package/forms.d.ts +1 -0
  25. package/forms.esm.js +6 -0
  26. package/hooks/index.d.ts +0 -1
  27. package/hooks/useAsyncFn.d.ts +3 -6
  28. package/hooks/useFirstMountState.d.ts +1 -5
  29. package/hooks/useFixedOffset.d.ts +1 -12
  30. package/hooks/useFocus.d.ts +1 -6
  31. package/hooks/useInterval.d.ts +1 -7
  32. package/hooks/useIsomorphicLayoutEffect.d.ts +2 -6
  33. package/hooks/useKeyUp.d.ts +1 -2
  34. package/hooks/useMeasure.d.ts +2 -7
  35. package/hooks/useMountedState.d.ts +1 -5
  36. package/hooks/useNavigateAway.d.ts +1 -31
  37. package/hooks/usePrevious.d.ts +1 -5
  38. package/hooks/usePreviousRef.d.ts +1 -2
  39. package/hooks/useReveal.d.ts +12 -0
  40. package/hooks/useScrollPosition.d.ts +2 -10
  41. package/hooks/useScrollThreshold.d.ts +1 -2
  42. package/hooks/useScrollTo.d.ts +1 -2
  43. package/hooks/useSmoothScroll.d.ts +1 -8
  44. package/hooks/useSpinDelay.d.ts +1 -14
  45. package/hooks/useTraceUpdate.d.ts +1 -5
  46. package/hooks/useUpdateEffect.d.ts +1 -5
  47. package/hooks/useWindowSize.d.ts +2 -12
  48. package/index.cjs.d.ts +1 -0
  49. package/index.cjs.default.js +1 -0
  50. package/index.cjs.js +77 -0
  51. package/index.cjs.mjs +2 -0
  52. package/index.d.ts +3 -1
  53. package/index.esm.js +51 -0
  54. package/package.json +28 -56
  55. package/types.d.ts +2 -2
  56. package/utils/Polymorphic.d.ts +26 -0
  57. package/utils/classed.d.ts +8 -0
  58. package/utils/createUseMediaQueryWidth.d.ts +6 -0
  59. package/{helpers/extend-component.d.ts → utils/extendComponent.d.ts} +2 -14
  60. package/utils/index.d.ts +5 -0
  61. package/utils/mergeRefs.d.ts +1 -0
  62. package/Alert/Alert.d.ts +0 -5
  63. package/Alert/Alert.js +0 -29
  64. package/Alert/Alert.mjs +0 -18
  65. package/Alert/Alert.stories.js +0 -36
  66. package/Alert/Alert.stories.mjs +0 -15
  67. package/Alert/index.d.ts +0 -1
  68. package/Alert/index.js +0 -6
  69. package/Alert/index.mjs +0 -1
  70. package/Animations/Reveal.d.ts +0 -4
  71. package/Animations/Reveal.js +0 -51
  72. package/Animations/Reveal.mjs +0 -41
  73. package/Animations/Underline.d.ts +0 -1
  74. package/Animations/Underline.js +0 -26
  75. package/Animations/Underline.mjs +0 -15
  76. package/Animations/index.d.ts +0 -3
  77. package/Animations/index.js +0 -8
  78. package/Animations/index.mjs +0 -3
  79. package/Animations/useReveal.d.ts +0 -34
  80. package/Animations/useReveal.js +0 -83
  81. package/Animations/useReveal.mjs +0 -73
  82. package/Autocomplete/AutocompleteDownshift.d.ts +0 -1
  83. package/Autocomplete/AutocompleteDownshift.js +0 -167
  84. package/Autocomplete/AutocompleteDownshift.mjs +0 -157
  85. package/Autocomplete/AutocompleteDownshiftMultiselect.d.ts +0 -1
  86. package/Autocomplete/AutocompleteDownshiftMultiselect.js +0 -362
  87. package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +0 -352
  88. package/Autocomplete/AutocompleteMui.d.ts +0 -47
  89. package/Autocomplete/AutocompleteMui.js +0 -154
  90. package/Autocomplete/AutocompleteMui.mjs +0 -190
  91. package/Autocomplete/AutocompleteReach.d.ts +0 -1
  92. package/Autocomplete/AutocompleteReach.js +0 -121
  93. package/Autocomplete/AutocompleteReach.mjs +0 -111
  94. package/Autocomplete/components.d.ts +0 -21
  95. package/Autocomplete/components.js +0 -132
  96. package/Autocomplete/components.mjs +0 -87
  97. package/Autocomplete/helpers.d.ts +0 -3
  98. package/Autocomplete/helpers.js +0 -34
  99. package/Autocomplete/helpers.mjs +0 -35
  100. package/Autocomplete/index.d.ts +0 -2
  101. package/Autocomplete/index.js +0 -15
  102. package/Autocomplete/index.mjs +0 -4
  103. package/Bg/BgColor.d.ts +0 -36
  104. package/Bg/BgColor.js +0 -59
  105. package/Bg/BgColor.mjs +0 -37
  106. package/Bg/BgPhoto.d.ts +0 -13
  107. package/Bg/BgPhoto.js +0 -80
  108. package/Bg/BgPhoto.mjs +0 -69
  109. package/Bg/BgSvg.d.ts +0 -7
  110. package/Bg/BgSvg.js +0 -29
  111. package/Bg/BgSvg.mjs +0 -20
  112. package/Bg/index.d.ts +0 -3
  113. package/Bg/index.js +0 -8
  114. package/Bg/index.mjs +0 -3
  115. package/Breadcrumbs/Breadcrumbs.d.ts +0 -13
  116. package/Breadcrumbs/Breadcrumbs.js +0 -90
  117. package/Breadcrumbs/Breadcrumbs.mjs +0 -78
  118. package/Breadcrumbs/index.d.ts +0 -1
  119. package/Breadcrumbs/index.js +0 -6
  120. package/Breadcrumbs/index.mjs +0 -1
  121. package/Buttons/Button.d.ts +0 -18
  122. package/Buttons/Button.js +0 -106
  123. package/Buttons/Button.mjs +0 -78
  124. package/Buttons/ButtonComposite.d.ts +0 -23
  125. package/Buttons/ButtonComposite.js +0 -83
  126. package/Buttons/ButtonComposite.mjs +0 -72
  127. package/Buttons/ButtonFab.d.ts +0 -7
  128. package/Buttons/ButtonFab.js +0 -27
  129. package/Buttons/ButtonFab.mjs +0 -8
  130. package/Buttons/ButtonLink.d.ts +0 -8
  131. package/Buttons/ButtonLink.js +0 -28
  132. package/Buttons/ButtonLink.mjs +0 -17
  133. package/Buttons/IconButton.d.ts +0 -11
  134. package/Buttons/IconButton.js +0 -41
  135. package/Buttons/IconButton.mjs +0 -19
  136. package/Buttons/index.d.ts +0 -5
  137. package/Buttons/index.js +0 -10
  138. package/Buttons/index.mjs +0 -5
  139. package/Calendar/CalendarDaygridCell.js +0 -82
  140. package/Calendar/CalendarDaygridCell.mjs +0 -72
  141. package/Calendar/CalendarDaygridNav.js +0 -49
  142. package/Calendar/CalendarDaygridNav.mjs +0 -38
  143. package/Calendar/CalendarDaygridTable.js +0 -101
  144. package/Calendar/CalendarDaygridTable.mjs +0 -90
  145. package/Calendar/CalendarLegend.js +0 -26
  146. package/Calendar/CalendarLegend.mjs +0 -16
  147. package/Calendar/calendar-api-google.d.ts +0 -18
  148. package/Calendar/calendar-api-google.js +0 -110
  149. package/Calendar/calendar-api-google.mjs +0 -99
  150. package/Calendar/index.d.ts +0 -6
  151. package/Calendar/index.js +0 -11
  152. package/Calendar/index.mjs +0 -6
  153. package/Calendar/types.js +0 -4
  154. package/Calendar/types.mjs +0 -1
  155. package/Calendar/useCalendar.js +0 -235
  156. package/Calendar/useCalendar.mjs +0 -225
  157. package/Calendar/utils.d.ts +0 -11
  158. package/Calendar/utils.js +0 -252
  159. package/Calendar/utils.mjs +0 -209
  160. package/Carousel/Carousel.d.ts +0 -1
  161. package/Carousel/Carousel.js +0 -387
  162. package/Carousel/Carousel.mjs +0 -377
  163. package/Carousel/CarouselCss.d.ts +0 -52
  164. package/Carousel/CarouselCss.js +0 -62
  165. package/Carousel/CarouselCss.mjs +0 -42
  166. package/Carousel/index.d.ts +0 -1
  167. package/Carousel/index.js +0 -6
  168. package/Carousel/index.mjs +0 -1
  169. package/Collapsable/Collapsable.d.ts +0 -1
  170. package/Collapsable/Collapsable.js +0 -11
  171. package/Collapsable/Collapsable.mjs +0 -1
  172. package/Collapsable/CollapsableReach.d.ts +0 -6
  173. package/Collapsable/CollapsableReach.js +0 -251
  174. package/Collapsable/CollapsableReach.mjs +0 -250
  175. package/Collapsable/index.d.ts +0 -1
  176. package/Collapsable/index.js +0 -7
  177. package/Collapsable/index.mjs +0 -1
  178. package/Debug/Debug.d.ts +0 -4
  179. package/Debug/Debug.js +0 -31
  180. package/Debug/Debug.mjs +0 -20
  181. package/Debug/index.d.ts +0 -1
  182. package/Debug/index.js +0 -6
  183. package/Debug/index.mjs +0 -1
  184. package/Details/Details.d.ts +0 -404
  185. package/Details/Details.js +0 -109
  186. package/Details/Details.mjs +0 -82
  187. package/Details/Details.stories.js +0 -38
  188. package/Details/Details.stories.mjs +0 -20
  189. package/Details/index.d.ts +0 -1
  190. package/Details/index.js +0 -6
  191. package/Details/index.mjs +0 -1
  192. package/Dialog/DialogMui.d.ts +0 -484
  193. package/Dialog/DialogMui.js +0 -130
  194. package/Dialog/DialogMui.mjs +0 -92
  195. package/Dialog/DialogMui.stories.js +0 -37
  196. package/Dialog/DialogMui.stories.mjs +0 -19
  197. package/Dialog/css/bare.d.ts +0 -490
  198. package/Dialog/css/bare.js +0 -55
  199. package/Dialog/css/bare.mjs +0 -19
  200. package/Dialog/css/index.stories.js +0 -85
  201. package/Dialog/css/index.stories.mjs +0 -67
  202. package/Dialog/index.d.ts +0 -2
  203. package/Dialog/index.js +0 -11
  204. package/Dialog/index.mjs +0 -1
  205. package/Dialog/m/bare.d.ts +0 -400
  206. package/Dialog/m/bare.js +0 -80
  207. package/Dialog/m/bare.mjs +0 -70
  208. package/Dialog/m/basic.d.ts +0 -4
  209. package/Dialog/m/basic.js +0 -50
  210. package/Dialog/m/basic.mjs +0 -31
  211. package/Dialog/m/index.d.ts +0 -3
  212. package/Dialog/m/index.js +0 -14
  213. package/Dialog/m/index.mjs +0 -4
  214. package/Dialog/sc/bare.d.ts +0 -449
  215. package/Dialog/sc/bare.js +0 -83
  216. package/Dialog/sc/bare.mjs +0 -54
  217. package/Dialog/sc/framer.d.ts +0 -432
  218. package/Dialog/sc/framer.js +0 -26
  219. package/Dialog/sc/framer.mjs +0 -16
  220. package/Dialog/sc/framerMaterial.d.ts +0 -431
  221. package/Dialog/sc/framerMaterial.js +0 -26
  222. package/Dialog/sc/framerMaterial.mjs +0 -16
  223. package/Dialog/sc/index.stories.js +0 -74
  224. package/Dialog/sc/index.stories.mjs +0 -47
  225. package/Dialog/sc/material.d.ts +0 -439
  226. package/Dialog/sc/material.js +0 -78
  227. package/Dialog/sc/material.mjs +0 -41
  228. package/Dialog/tw/bare.d.ts +0 -541
  229. package/Dialog/tw/bare.js +0 -55
  230. package/Dialog/tw/bare.mjs +0 -29
  231. package/Dialog/tw/elegant.d.ts +0 -589
  232. package/Dialog/tw/elegant.js +0 -54
  233. package/Dialog/tw/elegant.mjs +0 -18
  234. package/Dialog/tw/framer.d.ts +0 -460
  235. package/Dialog/tw/framer.js +0 -26
  236. package/Dialog/tw/framer.mjs +0 -16
  237. package/Dialog/tw/framerMaterial.d.ts +0 -515
  238. package/Dialog/tw/framerMaterial.js +0 -26
  239. package/Dialog/tw/framerMaterial.mjs +0 -16
  240. package/Dialog/tw/index.stories.js +0 -112
  241. package/Dialog/tw/index.stories.mjs +0 -82
  242. package/Dialog/tw/material.d.ts +0 -589
  243. package/Dialog/tw/material.js +0 -54
  244. package/Dialog/tw/material.mjs +0 -18
  245. package/Editor/Editor--tiptap.d.ts +0 -9
  246. package/Editor/Editor--tiptap.js +0 -57
  247. package/Editor/Editor--tiptap.mjs +0 -38
  248. package/Editor/components.d.ts +0 -7
  249. package/Editor/components.js +0 -59
  250. package/Editor/components.mjs +0 -28
  251. package/Editor/index.d.ts +0 -1
  252. package/Editor/index.js +0 -6
  253. package/Editor/index.mjs +0 -1
  254. package/FaviconTags.d.ts +0 -19
  255. package/FaviconTags.js +0 -59
  256. package/FaviconTags.mjs +0 -50
  257. package/Form/Form.d.ts +0 -138
  258. package/Form/Form.js +0 -113
  259. package/Form/Form.mjs +0 -78
  260. package/Form/index.d.ts +0 -1
  261. package/Form/index.js +0 -6
  262. package/Form/index.mjs +0 -1
  263. package/Form/sc/bare.d.ts +0 -58
  264. package/Form/sc/bare.js +0 -55
  265. package/Form/sc/bare.mjs +0 -29
  266. package/Forms/Checkbox/Checkbox.d.ts +0 -11
  267. package/Forms/Checkbox/Checkbox.js +0 -48
  268. package/Forms/Checkbox/Checkbox.mjs +0 -22
  269. package/Forms/Checkbox/index.d.ts +0 -1
  270. package/Forms/Checkbox/index.js +0 -6
  271. package/Forms/Checkbox/index.mjs +0 -1
  272. package/Forms/Feedback/Feedback.d.ts +0 -5
  273. package/Forms/Feedback/Feedback.js +0 -23
  274. package/Forms/Feedback/Feedback.mjs +0 -12
  275. package/Forms/Feedback/index.d.ts +0 -1
  276. package/Forms/Feedback/index.js +0 -6
  277. package/Forms/Feedback/index.mjs +0 -1
  278. package/Forms/Field/Field.d.ts +0 -38
  279. package/Forms/Field/Field.js +0 -69
  280. package/Forms/Field/Field.mjs +0 -44
  281. package/Forms/Field/FieldControl.d.ts +0 -26
  282. package/Forms/Field/FieldControl.js +0 -55
  283. package/Forms/Field/FieldControl.mjs +0 -53
  284. package/Forms/Field/FieldHint.d.ts +0 -1
  285. package/Forms/Field/FieldHint.js +0 -17
  286. package/Forms/Field/FieldHint.mjs +0 -6
  287. package/Forms/Field/index.d.ts +0 -2
  288. package/Forms/Field/index.js +0 -7
  289. package/Forms/Field/index.mjs +0 -2
  290. package/Forms/Input/Input.d.ts +0 -9
  291. package/Forms/Input/Input.js +0 -59
  292. package/Forms/Input/Input.mjs +0 -28
  293. package/Forms/Input/index.d.ts +0 -1
  294. package/Forms/Input/index.js +0 -6
  295. package/Forms/Input/index.mjs +0 -1
  296. package/Forms/InputGroup/InputGroup.d.ts +0 -13
  297. package/Forms/InputGroup/InputGroup.js +0 -75
  298. package/Forms/InputGroup/InputGroup.mjs +0 -47
  299. package/Forms/InputGroup/index.d.ts +0 -1
  300. package/Forms/InputGroup/index.js +0 -6
  301. package/Forms/InputGroup/index.mjs +0 -1
  302. package/Forms/Label/Label.d.ts +0 -3
  303. package/Forms/Label/Label.js +0 -46
  304. package/Forms/Label/Label.mjs +0 -24
  305. package/Forms/Label/index.d.ts +0 -1
  306. package/Forms/Label/index.js +0 -6
  307. package/Forms/Label/index.mjs +0 -1
  308. package/Forms/Password/Password.d.ts +0 -5
  309. package/Forms/Password/Password.js +0 -58
  310. package/Forms/Password/Password.mjs +0 -39
  311. package/Forms/Password/index.d.ts +0 -1
  312. package/Forms/Password/index.js +0 -6
  313. package/Forms/Password/index.mjs +0 -1
  314. package/Forms/Radio/Radio.d.ts +0 -12
  315. package/Forms/Radio/Radio.js +0 -49
  316. package/Forms/Radio/Radio.mjs +0 -38
  317. package/Forms/Radio/index.d.ts +0 -1
  318. package/Forms/Radio/index.js +0 -6
  319. package/Forms/Radio/index.mjs +0 -1
  320. package/Forms/Switch/Switch.d.ts +0 -9
  321. package/Forms/Switch/Switch.js +0 -68
  322. package/Forms/Switch/Switch.mjs +0 -48
  323. package/Forms/Switch/index.d.ts +0 -1
  324. package/Forms/Switch/index.js +0 -6
  325. package/Forms/Switch/index.mjs +0 -1
  326. package/Forms/Textarea/Textarea.d.ts +0 -5
  327. package/Forms/Textarea/Textarea.js +0 -37
  328. package/Forms/Textarea/Textarea.mjs +0 -18
  329. package/Forms/Textarea/TextareaRich.d.ts +0 -6
  330. package/Forms/Textarea/TextareaRich.js +0 -50
  331. package/Forms/Textarea/TextareaRich.mjs +0 -40
  332. package/Forms/Textarea/index.d.ts +0 -2
  333. package/Forms/Textarea/index.js +0 -7
  334. package/Forms/Textarea/index.mjs +0 -2
  335. package/Forms/Toggle/Toggle-tailwind.d.ts +0 -0
  336. package/Forms/Toggle/Toggle-tailwind.js +0 -99
  337. package/Forms/Toggle/Toggle-tailwind.mjs +0 -98
  338. package/Forms/Toggle/Toggle.d.ts +0 -19
  339. package/Forms/Toggle/Toggle.js +0 -156
  340. package/Forms/Toggle/Toggle.mjs +0 -104
  341. package/Forms/Toggle/index.d.ts +0 -1
  342. package/Forms/Toggle/index.js +0 -6
  343. package/Forms/Toggle/index.mjs +0 -1
  344. package/Forms/Toggle/useToggle-tailwind.d.ts +0 -0
  345. package/Forms/Toggle/useToggle-tailwind.js +0 -202
  346. package/Forms/Toggle/useToggle-tailwind.mjs +0 -201
  347. package/Forms/Toggle/useToggle.d.ts +0 -46
  348. package/Forms/Toggle/useToggle.js +0 -139
  349. package/Forms/Toggle/useToggle.mjs +0 -157
  350. package/Forms/antispam.d.ts +0 -47
  351. package/Forms/antispam.js +0 -59
  352. package/Forms/antispam.mjs +0 -58
  353. package/Forms/helpers.d.ts +0 -26
  354. package/Forms/helpers.js +0 -72
  355. package/Forms/helpers.mjs +0 -52
  356. package/Forms/index.d.ts +0 -15
  357. package/Forms/index.js +0 -19
  358. package/Forms/index.mjs +0 -16
  359. package/Forms/styles.d.ts +0 -19
  360. package/Forms/styles.js +0 -93
  361. package/Forms/styles.mjs +0 -60
  362. package/Gauge/Gauge.d.ts +0 -5
  363. package/Gauge/Gauge.js +0 -111
  364. package/Gauge/Gauge.mjs +0 -101
  365. package/Grid/Grid.d.ts +0 -65
  366. package/Grid/Grid.js +0 -106
  367. package/Grid/Grid.mjs +0 -75
  368. package/Grid/index.d.ts +0 -1
  369. package/Grid/index.js +0 -6
  370. package/Grid/index.mjs +0 -1
  371. package/Hamburger/Hamburger.d.ts +0 -6
  372. package/Hamburger/Hamburger.js +0 -83
  373. package/Hamburger/Hamburger.mjs +0 -72
  374. package/Hamburger/index.d.ts +0 -1
  375. package/Hamburger/index.js +0 -6
  376. package/Hamburger/index.mjs +0 -1
  377. package/Header/index.d.ts +0 -1
  378. package/Header/index.js +0 -6
  379. package/Header/index.mjs +0 -1
  380. package/Header/useHeader.d.ts +0 -24
  381. package/Header/useHeader.js +0 -54
  382. package/Header/useHeader.mjs +0 -36
  383. package/Hidden/Hidden.d.ts +0 -6
  384. package/Hidden/Hidden.js +0 -21
  385. package/Hidden/Hidden.mjs +0 -10
  386. package/Hidden/index.d.ts +0 -1
  387. package/Hidden/index.js +0 -6
  388. package/Hidden/index.mjs +0 -1
  389. package/Img/index.d.ts +0 -1
  390. package/Img/index.js +0 -6
  391. package/Img/index.mjs +0 -1
  392. package/Img/sc/bare.d.ts +0 -2
  393. package/Img/sc/bare.js +0 -43
  394. package/Img/sc/bare.mjs +0 -36
  395. package/Img/types.d.ts +0 -9
  396. package/Img/types.js +0 -6
  397. package/Img/types.mjs +0 -1
  398. package/Link/Link.d.ts +0 -5
  399. package/Link/Link.js +0 -13
  400. package/Link/Link.mjs +0 -2
  401. package/Link/LinkBlank.d.ts +0 -8
  402. package/Link/LinkBlank.js +0 -45
  403. package/Link/LinkBlank.mjs +0 -25
  404. package/Link/index.d.ts +0 -2
  405. package/Link/index.js +0 -7
  406. package/Link/index.mjs +0 -2
  407. package/Menu/Menu.d.ts +0 -1
  408. package/Menu/Menu.js +0 -22
  409. package/Menu/Menu.mjs +0 -11
  410. package/Menu/MenuMui.d.ts +0 -0
  411. package/Menu/MenuMui.js +0 -165
  412. package/Menu/MenuMui.mjs +0 -164
  413. package/Menu/index.d.ts +0 -1
  414. package/Menu/index.js +0 -6
  415. package/Menu/index.mjs +0 -1
  416. package/MenuItem/MenuItem.d.ts +0 -4
  417. package/MenuItem/MenuItem.js +0 -31
  418. package/MenuItem/MenuItem.mjs +0 -20
  419. package/MenuItem/MenuItemMui.d.ts +0 -0
  420. package/MenuItem/MenuItemMui.js +0 -32
  421. package/MenuItem/MenuItemMui.mjs +0 -31
  422. package/MenuItem/index.d.ts +0 -1
  423. package/MenuItem/index.js +0 -6
  424. package/MenuItem/index.mjs +0 -1
  425. package/MenuItem/useMenuItem.d.ts +0 -9
  426. package/MenuItem/useMenuItem.js +0 -96
  427. package/MenuItem/useMenuItem.mjs +0 -78
  428. package/Meta/Meta.d.ts +0 -15
  429. package/Meta/Meta.js +0 -25
  430. package/Meta/Meta.mjs +0 -7
  431. package/Meta/index.d.ts +0 -2
  432. package/Meta/index.js +0 -12
  433. package/Meta/index.mjs +0 -2
  434. package/NoJs/NoJs.d.ts +0 -3
  435. package/NoJs/NoJs.js +0 -27
  436. package/NoJs/NoJs.mjs +0 -9
  437. package/NoJs/index.d.ts +0 -2
  438. package/NoJs/index.js +0 -12
  439. package/NoJs/index.mjs +0 -2
  440. package/Pagination/PaginationNav.d.ts +0 -22
  441. package/Pagination/PaginationNav.js +0 -107
  442. package/Pagination/PaginationNav.mjs +0 -103
  443. package/Pagination/PaginationResults.d.ts +0 -3
  444. package/Pagination/PaginationResults.js +0 -40
  445. package/Pagination/PaginationResults.mjs +0 -29
  446. package/Pagination/index.d.ts +0 -2
  447. package/Pagination/index.js +0 -7
  448. package/Pagination/index.mjs +0 -2
  449. package/Pill/Pill.d.ts +0 -5
  450. package/Pill/Pill.js +0 -62
  451. package/Pill/Pill.mjs +0 -37
  452. package/Pill/index.d.ts +0 -1
  453. package/Pill/index.js +0 -6
  454. package/Pill/index.mjs +0 -1
  455. package/Progress/ProgressCircular.d.ts +0 -19
  456. package/Progress/ProgressCircular.js +0 -60
  457. package/Progress/ProgressCircular.mjs +0 -51
  458. package/Progress/ProgressLinear.d.ts +0 -22
  459. package/Progress/ProgressLinear.js +0 -51
  460. package/Progress/ProgressLinear.mjs +0 -42
  461. package/Progress/ProgressOverlay.d.ts +0 -4
  462. package/Progress/ProgressOverlay.js +0 -69
  463. package/Progress/ProgressOverlay.mjs +0 -58
  464. package/Progress/index.d.ts +0 -3
  465. package/Progress/index.js +0 -8
  466. package/Progress/index.mjs +0 -3
  467. package/Rating/Rating.d.ts +0 -35
  468. package/Rating/Rating.js +0 -162
  469. package/Rating/Rating.mjs +0 -128
  470. package/Rating/index.d.ts +0 -11
  471. package/Rating/index.js +0 -85
  472. package/Rating/index.mjs +0 -62
  473. package/Select/SelectDownshift.d.ts +0 -5
  474. package/Select/SelectDownshift.js +0 -47
  475. package/Select/SelectDownshift.mjs +0 -37
  476. package/Select/components.d.ts +0 -6
  477. package/Select/components.js +0 -42
  478. package/Select/components.mjs +0 -23
  479. package/Select/index.d.ts +0 -2
  480. package/Select/index.js +0 -13
  481. package/Select/index.mjs +0 -2
  482. package/Sidebar/Sidebar.d.ts +0 -3
  483. package/Sidebar/Sidebar.js +0 -65
  484. package/Sidebar/Sidebar.mjs +0 -54
  485. package/Sidebar/index.d.ts +0 -1
  486. package/Sidebar/index.js +0 -6
  487. package/Sidebar/index.mjs +0 -1
  488. package/Spacing/Spacing.d.ts +0 -30
  489. package/Spacing/Spacing.js +0 -52
  490. package/Spacing/Spacing.mjs +0 -52
  491. package/Spacing/index.d.ts +0 -1
  492. package/Spacing/index.js +0 -6
  493. package/Spacing/index.mjs +0 -1
  494. package/Sticky/Sticky.d.ts +0 -2
  495. package/Sticky/Sticky.js +0 -228
  496. package/Sticky/Sticky.mjs +0 -218
  497. package/Sticky/StickyCss.d.ts +0 -5
  498. package/Sticky/StickyCss.js +0 -19
  499. package/Sticky/StickyCss.mjs +0 -9
  500. package/Sticky/index.d.ts +0 -1
  501. package/Sticky/index.js +0 -19
  502. package/Sticky/index.mjs +0 -1
  503. package/Tabs/TabsMui.d.ts +0 -374
  504. package/Tabs/TabsMui.js +0 -82
  505. package/Tabs/TabsMui.mjs +0 -52
  506. package/Tabs/TabsMui.stories.js +0 -37
  507. package/Tabs/TabsMui.stories.mjs +0 -19
  508. package/Tabs/index.d.ts +0 -1
  509. package/Tabs/index.js +0 -6
  510. package/Tabs/index.mjs +0 -1
  511. package/Tabs/sc/bare.d.ts +0 -5
  512. package/Tabs/sc/bare.js +0 -86
  513. package/Tabs/sc/bare.mjs +0 -85
  514. package/Tabs/sc/index.stories.js +0 -1
  515. package/Tabs/sc/index.stories.mjs +0 -0
  516. package/Tabs/tw/bare.d.ts +0 -375
  517. package/Tabs/tw/bare.js +0 -45
  518. package/Tabs/tw/bare.mjs +0 -15
  519. package/Tabs/tw/index.stories.js +0 -45
  520. package/Tabs/tw/index.stories.mjs +0 -24
  521. package/Tabs/tw/material.d.ts +0 -444
  522. package/Tabs/tw/material.js +0 -44
  523. package/Tabs/tw/material.mjs +0 -14
  524. package/Tabs/useTabs.d.ts +0 -43
  525. package/Tabs/useTabs.js +0 -66
  526. package/Tabs/useTabs.mjs +0 -46
  527. package/Typography/CopyPasteVisible.d.ts +0 -1
  528. package/Typography/CopyPasteVisible.js +0 -17
  529. package/Typography/CopyPasteVisible.mjs +0 -6
  530. package/Typography/Native.d.ts +0 -10
  531. package/Typography/Native.js +0 -90
  532. package/Typography/Native.mjs +0 -47
  533. package/Typography/ReadMore.d.ts +0 -12
  534. package/Typography/ReadMore.js +0 -110
  535. package/Typography/ReadMore.mjs +0 -99
  536. package/Typography/TextLoop.d.ts +0 -16
  537. package/Typography/TextLoop.js +0 -100
  538. package/Typography/TextLoop.mjs +0 -82
  539. package/Typography/TypeStairs.d.ts +0 -6
  540. package/Typography/TypeStairs.js +0 -63
  541. package/Typography/TypeStairs.mjs +0 -53
  542. package/Typography/index.d.ts +0 -5
  543. package/Typography/index.js +0 -10
  544. package/Typography/index.mjs +0 -5
  545. package/css/index.d.ts +0 -2
  546. package/css/index.js +0 -33
  547. package/css/index.mjs +0 -30
  548. package/helpers/classed.d.ts +0 -27
  549. package/helpers/classed.js +0 -66
  550. package/helpers/classed.mjs +0 -65
  551. package/helpers/classed.stories.js +0 -122
  552. package/helpers/classed.stories.mjs +0 -103
  553. package/helpers/createUseMediaQueryWidth.d.ts +0 -12
  554. package/helpers/createUseMediaQueryWidth.js +0 -193
  555. package/helpers/createUseMediaQueryWidth.mjs +0 -178
  556. package/helpers/extend-component.js +0 -32
  557. package/helpers/extend-component.mjs +0 -13
  558. package/helpers/index.d.ts +0 -4
  559. package/helpers/index.js +0 -9
  560. package/helpers/index.mjs +0 -4
  561. package/helpers/mergeRefs.d.ts +0 -3
  562. package/helpers/mergeRefs.js +0 -30
  563. package/helpers/mergeRefs.mjs +0 -12
  564. package/hooks/index.js +0 -92
  565. package/hooks/index.mjs +0 -21
  566. package/hooks/types.d.ts +0 -8
  567. package/hooks/types.js +0 -6
  568. package/hooks/types.mjs +0 -3
  569. package/hooks/useAsyncFn.js +0 -56
  570. package/hooks/useAsyncFn.mjs +0 -39
  571. package/hooks/useDateLocale.d.ts +0 -8
  572. package/hooks/useDateLocale.js +0 -51
  573. package/hooks/useDateLocale.mjs +0 -37
  574. package/hooks/useFirstMountState.js +0 -28
  575. package/hooks/useFirstMountState.mjs +0 -12
  576. package/hooks/useFixedOffset.js +0 -67
  577. package/hooks/useFixedOffset.mjs +0 -56
  578. package/hooks/useFocus.js +0 -30
  579. package/hooks/useFocus.mjs +0 -14
  580. package/hooks/useInterval.js +0 -44
  581. package/hooks/useInterval.mjs +0 -29
  582. package/hooks/useIsomorphicLayoutEffect.js +0 -23
  583. package/hooks/useIsomorphicLayoutEffect.mjs +0 -6
  584. package/hooks/useKeyUp.js +0 -40
  585. package/hooks/useKeyUp.mjs +0 -21
  586. package/hooks/useMeasure.js +0 -189
  587. package/hooks/useMeasure.mjs +0 -174
  588. package/hooks/useMountedState.js +0 -31
  589. package/hooks/useMountedState.mjs +0 -15
  590. package/hooks/useNavigateAway.js +0 -69
  591. package/hooks/useNavigateAway.mjs +0 -69
  592. package/hooks/usePrevious.js +0 -33
  593. package/hooks/usePrevious.mjs +0 -17
  594. package/hooks/usePreviousRef.js +0 -27
  595. package/hooks/usePreviousRef.mjs +0 -9
  596. package/hooks/useScrollPosition.js +0 -83
  597. package/hooks/useScrollPosition.mjs +0 -70
  598. package/hooks/useScrollThreshold.js +0 -52
  599. package/hooks/useScrollThreshold.mjs +0 -33
  600. package/hooks/useScrollTo.js +0 -39
  601. package/hooks/useScrollTo.mjs +0 -20
  602. package/hooks/useSmoothScroll.js +0 -49
  603. package/hooks/useSmoothScroll.mjs +0 -35
  604. package/hooks/useSpinDelay.js +0 -59
  605. package/hooks/useSpinDelay.mjs +0 -52
  606. package/hooks/useTraceUpdate.js +0 -39
  607. package/hooks/useTraceUpdate.mjs +0 -23
  608. package/hooks/useUpdateEffect.js +0 -30
  609. package/hooks/useUpdateEffect.mjs +0 -14
  610. package/hooks/useWindowSize.js +0 -43
  611. package/hooks/useWindowSize.mjs +0 -32
  612. package/index.js +0 -10
  613. package/index.mjs +0 -4
  614. package/m/MotionProvider.d.ts +0 -38
  615. package/m/MotionProvider.js +0 -25
  616. package/m/MotionProvider.mjs +0 -38
  617. package/m/index.d.ts +0 -6
  618. package/m/index.js +0 -10
  619. package/m/index.mjs +0 -5
  620. package/m/lite.d.ts +0 -2
  621. package/m/lite.js +0 -12
  622. package/m/lite.mjs +0 -2
  623. package/m/max.d.ts +0 -2
  624. package/m/max.js +0 -12
  625. package/m/max.mjs +0 -2
  626. package/sc/index.d.ts +0 -30
  627. package/sc/index.js +0 -49
  628. package/sc/index.mjs +0 -31
  629. package/scm/index.d.ts +0 -29
  630. package/scm/index.js +0 -40
  631. package/scm/index.mjs +0 -31
  632. package/shared/index.d.ts +0 -8
  633. package/shared/index.js +0 -13
  634. package/shared/index.mjs +0 -43
  635. package/styles/Body.d.ts +0 -10
  636. package/styles/Body.js +0 -28
  637. package/styles/Body.mjs +0 -16
  638. package/styles/Global.d.ts +0 -15
  639. package/styles/Global.js +0 -55
  640. package/styles/Global.mjs +0 -49
  641. package/styles/index.d.ts +0 -7
  642. package/styles/index.js +0 -142
  643. package/styles/index.mjs +0 -7
  644. package/styles/media.d.ts +0 -67
  645. package/styles/media.js +0 -139
  646. package/styles/media.mjs +0 -151
  647. package/styles/spacing.d.ts +0 -13
  648. package/styles/spacing.js +0 -70
  649. package/styles/spacing.mjs +0 -46
  650. package/styles/styled.d.ts +0 -12
  651. package/styles/styled.js +0 -58
  652. package/styles/styled.mjs +0 -26
  653. package/styles/theme--vanilla.d.ts +0 -17
  654. package/styles/theme--vanilla.js +0 -80
  655. package/styles/theme--vanilla.mjs +0 -63
  656. package/styles/theme.d.ts +0 -82
  657. package/styles/theme.js +0 -49
  658. package/styles/theme.mjs +0 -38
  659. package/tw/index.d.ts +0 -2
  660. package/tw/index.js +0 -33
  661. package/tw/index.mjs +0 -30
  662. package/twm/index.d.ts +0 -2
  663. package/twm/index.js +0 -33
  664. package/twm/index.mjs +0 -30
  665. package/types.js +0 -4
  666. package/types.mjs +0 -1
  667. package/typings.d.ts +0 -99
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
1
  import type { KoineComponent, KoineComponentProps } from "../types";
3
2
  import type { CalendarView, CalendarViewDayProps, CalendarViewEvent, CalendarsMap } from "./types";
4
- import { UseCalendarReturn } from "./useCalendar";
3
+ import type { UseCalendarReturn } from "./useCalendar";
5
4
  export type KoineCalendarDaygridCellProps = {
6
5
  eventClicked?: UseCalendarReturn["eventClicked"];
7
6
  setEventClicked: UseCalendarReturn["setEventClicked"];
@@ -33,4 +32,4 @@ export type CalendarDaygridCellComponents = {
33
32
  CellEventStart?: KoineComponent;
34
33
  };
35
34
  export type CalendarDaygridCellProps = KoineComponentProps<KoineCalendarDaygridCellProps, CalendarDaygridCellComponents>;
36
- export declare const CalendarDaygridCell: ({ eventClicked, setEventClicked, setEventHovered, view, maxEvents, events, calendarsMap, Cell, CellOverflow, CellEvent, CellEventBtn, CellEventTitle, CellEventStart, }: CalendarDaygridCellProps) => import("react/jsx-runtime").JSX.Element;
35
+ export declare let CalendarDaygridCell: ({ eventClicked, setEventClicked, setEventHovered, view, maxEvents, events, calendarsMap, Cell, CellOverflow, CellEvent, CellEventBtn, CellEventTitle, CellEventStart, }: CalendarDaygridCellProps) => import("react/jsx-runtime").JSX.Element;
@@ -24,4 +24,4 @@ export type CalendarDaygridNavProps = KoineComponentProps<KoineCalendarDaygridNa
24
24
  NavBtnViewMonth?: KoineComponent;
25
25
  NavBtnViewWeek?: KoineComponent;
26
26
  }>;
27
- export declare const KoineCalendarDaygridNav: ({ range, view, todayInView, handlePrev, handleNext, handleToday, handleView, locale: localeCode, NavRoot, NavTitle, NavBtns, NavBtnPrev, NavBtnNext, NavBtnToday, NavBtnViewMonth, NavBtnViewWeek, }: CalendarDaygridNavProps) => import("react/jsx-runtime").JSX.Element;
27
+ export declare let KoineCalendarDaygridNav: ({ range, view, todayInView, handlePrev, handleNext, handleToday, handleView, locale: localeCode, NavRoot, NavTitle, NavBtns, NavBtnPrev, NavBtnNext, NavBtnToday, NavBtnViewMonth, NavBtnViewWeek, }: CalendarDaygridNavProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import type { KoineComponent, KoineComponentProps } from "../types";
2
- import { CalendarDaygridCellComponents, CalendarDaygridCellProps } from "./CalendarDaygridCell";
2
+ import { type CalendarDaygridCellComponents, type CalendarDaygridCellProps } from "./CalendarDaygridCell";
3
3
  import type { CalendarEventsMap, CalendarRange, CalendarView, CalendarViewDayProps } from "./types";
4
4
  export type CalendarDaygridTableBodyCellProps = CalendarViewDayProps;
5
5
  export type CalendarDaygridTableBodyCellDateProps = CalendarViewDayProps;
@@ -22,4 +22,4 @@ export type CalendarDaygridTableProps = KoineComponentProps<KoineCalendarDaygrid
22
22
  TableBodyCellDate?: KoineComponent<CalendarDaygridTableBodyCellDateProps>;
23
23
  TableBodyRow?: KoineComponent;
24
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) => import("react/jsx-runtime").JSX.Element;
25
+ export declare let 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) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { KoineComponent, KoineComponentProps } from "../types";
3
2
  import type { CalendarsMap } from "./types";
4
3
  export type KoineCalendarLegendProps = {
@@ -16,4 +15,4 @@ export type CalendarLegendProps = KoineComponentProps<KoineCalendarLegendProps,
16
15
  LegendItemLabel?: KoineComponent;
17
16
  LegendItemEvents?: KoineComponent;
18
17
  }>;
19
- export declare const KoineCalendarLegend: ({ calendarsMap, toggleCalendarVisibility, LegendItem, LegendItemStatus, LegendItemLabel, LegendItemEvents, }: CalendarLegendProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare let KoineCalendarLegend: ({ calendarsMap, toggleCalendarVisibility, LegendItem, LegendItemStatus, LegendItemLabel, LegendItemEvents, }: CalendarLegendProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import type { CalendarEventsMap, Calendars } from "./types";
2
+ type GetCalendarsEventsFromGoogleOptions = {
3
+ apiKey?: string;
4
+ start: Date;
5
+ end: Date;
6
+ timeZone?: string;
7
+ calendars: Calendars;
8
+ };
9
+ export declare let getCalendarsEventsFromGoogle: ({ calendars, ...options }: GetCalendarsEventsFromGoogleOptions) => Promise<CalendarEventsMap>;
10
+ export {};
@@ -1,10 +1,6 @@
1
1
  export type Calendar = {
2
2
  id: string;
3
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
4
  name?: string;
9
5
  };
10
6
  export type Calendars = Calendar[];
@@ -16,17 +12,8 @@ export type CalendarRange = [Date, Date];
16
12
  export type CalendarView = "month" | "week";
17
13
  export type CalendarEvent = {
18
14
  calendar: Calendar;
19
- /**
20
- * List of day timestamps across which the event spans
21
- */
22
15
  days: number[];
23
- /**
24
- * Lookup object for day timestamps across which the event spans
25
- */
26
16
  daysMap: Record<number, 1>;
27
- /**
28
- * Flag for events that spans across multiple days
29
- */
30
17
  multi: boolean;
31
18
  allDay: boolean;
32
19
  link: string;
@@ -40,13 +27,7 @@ export type CalendarEvent = {
40
27
  description: string;
41
28
  uid: string;
42
29
  };
43
- /**
44
- * Calendar events mapped by day `timestamp` number
45
- */
46
30
  export type CalendarEventsByTimestamp = Record<number, CalendarEventsMap>;
47
- /**
48
- * Calendar events map by `uid`
49
- */
50
31
  export type CalendarEventsMap = Record<CalendarEvent["uid"], CalendarEvent>;
51
32
  export type CalendarViewWeeks = CalendarViewWeek[];
52
33
  export type CalendarViewWeek = {
@@ -1,30 +1,15 @@
1
- /// <reference types="react" />
2
1
  import type { KoineCalendarDaygridNavProps } from "./CalendarDaygridNav";
3
2
  import type { KoineCalendarDaygridTableProps } from "./CalendarDaygridTable";
4
3
  import type { KoineCalendarLegendProps } from "./CalendarLegend";
5
4
  import type { CalendarEvent, CalendarEventsMap, CalendarView, Calendars } from "./types";
6
5
  export type UseCalendarProps = {
7
- /** The locale to format with `date-fns` */
8
6
  locale: string;
9
- /** Calendars infos to use */
10
7
  calendars: Calendars;
11
- /** Fall back to `process.env.GOOGLE_CALENDAR_API_KEY */
12
8
  apiKey?: string;
13
- /** The key is the event `uid` */
14
9
  events?: CalendarEventsMap;
15
- /** It defaults to the first of the current month */
16
10
  start?: Date;
17
- /** It defaults to the last day of the current month */
18
11
  end?: Date;
19
- /**
20
- * The calendar view
21
- * @default "month"
22
- */
23
12
  view?: CalendarView;
24
- /**
25
- * The default is the time zone of the calendar
26
- * @see https://developers.google.com/calendar/api/v3/reference/events/list
27
- */
28
13
  timeZone?: string;
29
14
  onError?: (e: any) => void;
30
15
  };
@@ -38,7 +23,7 @@ export type CalendarsUpdateActionVisibility = {
38
23
  payload: string | string[];
39
24
  };
40
25
  export type CalendarsUpdateAction = CalendarsUpdateActionEvents | CalendarsUpdateActionVisibility;
41
- export declare function useCalendar({ locale, apiKey, calendars, events: initialEvents, start: initialStart, end: initialEnd, view: initialView, timeZone, onError, }: UseCalendarProps): {
26
+ export declare let useCalendar: ({ locale, apiKey, calendars, events: initialEvents, start: initialStart, end: initialEnd, view: initialView, timeZone, onError, }: UseCalendarProps) => {
42
27
  view: "month" | "week";
43
28
  eventClicked: CalendarEvent | null;
44
29
  setEventClicked: import("react").Dispatch<import("react").SetStateAction<CalendarEvent | null>>;
@@ -0,0 +1,2 @@
1
+ import type { Locale } from "date-fns";
2
+ export declare let useDateLocale: (locale?: string, defaultLocale?: string) => Locale | undefined;
@@ -0,0 +1,11 @@
1
+ import type { CalendarEventsMap, CalendarView, CalendarViewWeeks } from "./types";
2
+ export declare let getEventTimestamp: (dateLike: number | Date | string) => number;
3
+ export declare let getDisplayTime: (date: Date) => string;
4
+ export declare let getStartDate: (date: Date, view: CalendarView) => Date;
5
+ export declare let getEndDate: (start: Date, view: CalendarView) => Date;
6
+ export declare let getPrevDate: (date: Date, view: CalendarView) => Date;
7
+ export declare let getNextDate: (date: Date, view: CalendarView) => Date;
8
+ export declare let isTodayInView: (start: Date, end: Date) => boolean;
9
+ export declare let mergeCalendarEvents: (first: CalendarEventsMap, second: CalendarEventsMap) => CalendarEventsMap;
10
+ export declare let addCalendarEvents: (toAdd: CalendarEventsMap, toExtend: CalendarEventsMap) => CalendarEventsMap;
11
+ export declare let processEventsInView: (eventsMap: CalendarEventsMap, calendarView: CalendarView, month: number, weeks: Date[]) => CalendarViewWeeks;
@@ -0,0 +1 @@
1
+ export * from "./calendar";
@@ -0,0 +1 @@
1
+ exports._default = require('./calendar.cjs.js').default;
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
7
+ var addDays = require('date-fns/addDays');
8
+ var addMonths = require('date-fns/addMonths');
9
+ var addWeeks = require('date-fns/addWeeks');
10
+ var endOfMonth = require('date-fns/endOfMonth');
11
+ var endOfWeek = require('date-fns/endOfWeek');
12
+ var isWithinInterval = require('date-fns/isWithinInterval');
13
+ var startOfWeek = require('date-fns/startOfWeek');
14
+ var subMonths = require('date-fns/subMonths');
15
+ var subWeeks = require('date-fns/subWeeks');
16
+ var format = require('date-fns/format');
17
+ var eachWeekOfInterval = require('date-fns/eachWeekOfInterval');
18
+ var reactSwipeable = require('react-swipeable');
19
+ var differenceInDays = require('date-fns/differenceInDays');
20
+ var subDays = require('date-fns/subDays');
21
+ var utils = require('@koine/utils');
22
+
23
+ function _interopNamespace(e) {
24
+ if (e && e.__esModule) return e;
25
+ var n = Object.create(null);
26
+ if (e) {
27
+ Object.keys(e).forEach(function (k) {
28
+ if (k !== 'default') {
29
+ var d = Object.getOwnPropertyDescriptor(e, k);
30
+ Object.defineProperty(n, k, d.get ? d : {
31
+ enumerable: true,
32
+ get: function () { return e[k]; }
33
+ });
34
+ }
35
+ });
36
+ }
37
+ n["default"] = e;
38
+ return Object.freeze(n);
39
+ }
40
+
41
+ let getEventTimestamp=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.valueOf()/1e3};let getDisplayTime=e=>e.getHours()+":"+"0".repeat(2-e.getMinutes().toString().length)+e.getMinutes();let getStartDate=(e,t)=>(e.setHours(0,0,0),"month"===t?e.setDate(1):"week"===t&&(e=startOfWeek.startOfWeek(e,{weekStartsOn:1})),e);let getEndDate=(e,t)=>{let r=e;return "month"===t?r=endOfMonth.endOfMonth(e):"week"===t&&(r=endOfWeek.endOfWeek(e,{weekStartsOn:1})),r.setHours(23,59,59),r};let getPrevDate=(e,t)=>"month"===t?subMonths.subMonths(e,1):subWeeks.subWeeks(e,1);let getNextDate=(e,a)=>"month"===a?addMonths.addMonths(e,1):addWeeks.addWeeks(e,1);let isTodayInView=(e,t)=>isWithinInterval.isWithinInterval(new Date,{start:e,end:t});let addCalendarEvents=(e,t)=>{for(let r in e){let a=e[r];t[r]=a;}return t};let i=e=>{let t={};for(let r in e){let a=e[r];a.days.forEach(e=>{t[e]=t[e]||{},t[e][r]=a;});}return t},d$1=e=>{let t=[];for(let r in e)t.push(e[r]);return t.sort((e,t)=>{let r=Number(t.multi)-Number(e.multi),a=Number(t.allDay)-Number(e.allDay),n=e.start.getTime()-t.start.getTime(),s=e.created.getTime()-t.created.getTime();return r||a||n||s}),t};let processEventsInView=(t,r,a,n)=>{let s=i(t),o=d$1(t),l=new Date,m=getEventTimestamp(l),p={},f=[];for(let t=0;t<n.length;t++){let i={props:{key:`week.${t}`},days:[]},d=n[t],u=d.getDate(),g=getEventTimestamp(new Date(d)),h=getEventTimestamp(addDays.addDays(new Date(d),6));for(let e=0;e<7;e++){let t=new Date(new Date(d).setDate(u+e)),n=getEventTimestamp(t),f={$isToday:m===n,$isOutOfRange:"month"===r&&t.getMonth()!==a},v={props:{key:`day.${n}`,...f},timestamp:n+"",label:t.getDate()+"",events:[]};if(s?.[n]){let t=Object.keys(s[n]).map(()=>0);for(let r=0;r<o.length;r++){let a;let s=o[r],m=1,i=0;if(s.daysMap[n]){if(s.multi&&(m=s.days.filter(e=>e>=g&&e<=h).length,(0===s.days.indexOf(n)||0===e)&&(a=!0)),p[s.uid])i=p[s.uid];else for(let e=0;e<t.length;e++)if(1!==t[e]){i=e;break}t[i]=1,a&&(p[s.uid]=i),v.events.push({key:`event.${n}-${i}`,...f,...s,isPast:l>s.end,firstOfMulti:a,top:i,width:m});}}for(let e=0;e<t.length;e++)1!==t[e]&&v.events.push({key:`event.${n}-${e}}`,placeholder:!0,top:e});v.events.sort((e,t)=>e.top-t.top);}i.days.push(v);}f.push(i);}return f};
42
+
43
+ let d=l=>jsxRuntime.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",...l,children:[jsxRuntime.jsx("path",{d:"M0 0h24v24H0z"}),jsxRuntime.jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})]}),o$1={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"};let CalendarDaygridCell=({eventClicked:a,setEventClicked:s,setEventHovered:h,view:c,maxEvents:u,events:p,calendarsMap:v,Cell:f="div",CellOverflow:y="div",CellEvent:$="div",CellEventBtn:m="div",CellEventTitle:w="span",CellEventStart:g="span"})=>{let[x,M]=react.useState(!1),O=p.filter(e=>!e.placeholder);return jsxRuntime.jsx(f,{children:p.map((t,p)=>{if(p===u&&!x)return jsxRuntime.jsxs(y,{onClick:()=>M(!0),children:[jsxRuntime.jsx(d,{}),O.length-u]},"overflowMessage"+p);if(p>u&&!x)return null;if(t.placeholder)return jsxRuntime.jsx(react.Fragment,{children:jsxRuntime.jsx($,{$placeholder:!0,children:jsxRuntime.jsx(m,{"aria-hidden":"true",style:{visibility:"hidden"},$placeholder:!0,children:jsxRuntime.jsx(w,{children:" "})})})},t.key);let f={zIndex:t.firstOfMulti?1:0,position:"relative",width:t.firstOfMulti?`${100*t.width}%`:"100%"};v[t.calendar.id].on||(o$1.display="none");let k={$view:c,$selected:a?.uid===t.uid,$past:t.isPast,$color:t.color,$isOutOfRange:t.$isOutOfRange,$isToday:t.$isToday};return jsxRuntime.jsx(react.Fragment,{children:jsxRuntime.jsx($,{style:f,...k,children:jsxRuntime.jsx(m,{role:"button",style:o$1,...k,onClick:()=>s(e=>e?.uid===t.uid?null:t),onMouseEnter:()=>h(t),onMouseLeave:()=>h(null),children:t.allDay?jsxRuntime.jsx(w,{children:t.title}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(g,{children:getDisplayTime(t.start)}),jsxRuntime.jsx(w,{children:t.title})]})})})},t.key)})})};
44
+
45
+ let useDateLocale=(a,l="en")=>{let[r,n]=react.useState(),[o,c]=react.useState(l);return react.useEffect(()=>{let e=async()=>{let e=await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('date-fns/locale/en-US')); });c(a||o),n(e.enUS);};a!==o&&e();},[a,o]),r};
46
+
47
+ let KoineCalendarDaygridNav=({range:a,view:l,todayInView:r,handlePrev:i,handleNext:M,handleToday:d,handleView:y,locale:c,NavRoot:m="nav",NavTitle:s="div",NavBtns:b="div",NavBtnPrev:k="button",NavBtnNext:u="button",NavBtnToday:h="button",NavBtnViewMonth:f="button",NavBtnViewWeek:g="button"})=>{let[C,p]=a,v={locale:useDateLocale(c)},x="";return "month"===l&&(x=format.format(C,"MMMM yyyy",v)),"week"===l&&(x=C.getMonth()===p.getMonth()?format.format(C,"# MMMM yyyy",v).replace("#",`${C.getDate()}-${p.getDate()}`):`${format.format(C,"d MMMM",v)} - ${format.format(p,"d MMMM yyyy",v)}`),jsxRuntime.jsxs(m,{children:[jsxRuntime.jsxs(b,{children:[jsxRuntime.jsx(k,{onClick:i}),jsxRuntime.jsx(u,{onClick:M}),jsxRuntime.jsx(h,{onClick:d,disabled:r}),jsxRuntime.jsx(f,{onClick:()=>y("month"),disabled:"month"===l}),jsxRuntime.jsx(g,{onClick:()=>y("week"),disabled:"week"===l})]}),jsxRuntime.jsx(s,{range:a,formatted:x})]})};
48
+
49
+ let KoineCalendarDaygridTable=({locale:d,handlePrev:s,handleNext:c,events:h,dayLabels:f,view:b,range:u,eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,calendarsMap:x={},maxEvents:j=5,Table:C="table",TableHead:D="thead",TableHeadCell:S="th",TableBody:k="tbody",TableBodyRow:z="tr",TableBodyCell:L="td",TableBodyCellDate:O="div",Cell:I,CellOverflow:K,CellEvent:M,CellEventBtn:R,CellEventTitle:T,CellEventStart:W})=>{let q={Cell:I,CellOverflow:K,CellEvent:M,CellEventBtn:R,CellEventTitle:T,CellEventStart:W},[A,B]=react.useState(f||[0,1,2,3,4,5,6]),[E,F]=react.useState([]),G=useDateLocale(d),{month:H,weeks:J}=react.useMemo(()=>(function(e){let[t,a]=e,i=eachWeekOfInterval.eachWeekOfInterval({start:t,end:a},{weekStartsOn:1});return {month:t.getMonth(),weeks:i}})(u),[u]),N=reactSwipeable.useSwipeable({onSwipedLeft:c,onSwipedRight:s});return react.useEffect(()=>{F(processEventsInView(h,b,H,J));},[h,b,H,J]),react.useEffect(()=>{G&&G.localize&&!f&&B([1,2,3,4,5,6,0].map(e=>G.localize.day(e,{width:"abbreviated"})));},[G,f]),jsxRuntime.jsxs(C,{...N,children:[jsxRuntime.jsx(D,{children:jsxRuntime.jsx("tr",{children:A.map(t=>jsxRuntime.jsx(S,{scope:"column",children:t},t))})}),jsxRuntime.jsx(k,{children:E.map((r,a)=>jsxRuntime.jsx(z,{...r.props,children:r.days.map(r=>jsxRuntime.jsxs(L,{...r.props,children:[jsxRuntime.jsx(O,{...r.props,children:r.label}),r.events.length>0&&jsxRuntime.jsx(CalendarDaygridCell,{eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,view:b,maxEvents:j,events:r.events,timestamp:r.timestamp,calendarsMap:x,...q})]}))}))})]})};
50
+
51
+ let KoineCalendarLegend=({calendarsMap:a={},toggleCalendarVisibility:s,LegendItem:d="div",LegendItemStatus:i="span",LegendItemLabel:l="span",LegendItemEvents:t="span"})=>jsxRuntime.jsx(jsxRuntime.Fragment,{children:Object.entries(a).map(([r,a])=>jsxRuntime.jsxs(d,{onClick:()=>s(r),$color:a.color,$empty:0===a.events,disabled:0===a.events,children:[jsxRuntime.jsx(i,{children:a.on?"⬤":"⭘"}),jsxRuntime.jsx(l,{children:a.name}),jsxRuntime.jsx(t,{children:a.events})]},"CalendarLegend."+r))});
52
+
53
+ let getCalendarsEventsFromGoogle=async({calendars:e,...t})=>{let a={};return await Promise.all(e.map(async e=>{addCalendarEvents(await o({calendar:e,...t}),a);})),a};async function o({apiKey:i,calendar:o,timeZone:m="",start:d,end:l}){let c={},u=new URLSearchParams({calendarId:o.id,timeZone:m,singleEvents:"true",maxAttendees:"1",maxResults:"9999",sanitizeHtml:"true",timeMin:d.toISOString(),timeMax:l.toISOString(),key:i||process.env.GOOGLE_CALENDAR_API_KEY||""}).toString(),f="https://www.googleapis.com/calendar/v3/calendars/"+o.id+"/events?"+u;try{let i=await fetch(f,{method:"GET"}),m=await i.json();o.name=o.name||m.summary,m.items.forEach(i=>{let m=function(i,o){let m=new Date(i.created),d=i.htmlLink,l=i.summary,c=i.status,u=new Date(i.start.date||i.start.dateTime),f=new Date(i.end.date||i.end.dateTime),w=o.color,g=utils.isUndefined(i.end.dateTime)&&utils.isString(i.end.date),p=i.location||"",D=i.description||"",h=m.getTime()+""+u.getTime();g&&f>u&&(f=subDays.subDays(f,1)).setHours(23,59,59);let y=function(){let t=new Date(u),a=new Date(f),n=[getEventTimestamp(t)];for(;differenceInDays.differenceInDays(a,t);)t.setDate(t.getDate()+1),n.push(getEventTimestamp(t));return n}(),E=utils.arrayToLookup(y),S=y.length>1;return {calendar:o,created:m,link:d,title:l,status:c,start:u,end:f,days:y,daysMap:E,multi:S,color:w,allDay:g,location:p,description:D,uid:h}}(i,o);c[m.uid]=m;});}catch(e){}return c}
54
+
55
+ let useCalendar=({locale:d,apiKey:c,calendars:p,events:g,start:m,end:y,view:v="month",timeZone:f="",onError:b})=>{let[w,T]=react.useState(v),D=m||getStartDate(new Date,w),h=y||getEndDate(D,w),[O,P]=react.useState([D,h]),[j,x]=react.useState(isTodayInView(D,h)),[C,L]=react.useState(g||{}),[N,k]=react.useState(null),[q,z]=react.useState(null),[A,B]=react.useReducer((e,t)=>{let{type:l}=t;switch(l){case"events":{let l=t.payload;return Object.entries(e).reduce((e,[t,n])=>(e[t]={...n,events:l[t]||0},e),{})}case"visibility":{let l=t.payload;if("string"==typeof l)return {...e,[l]:{...e[l],on:!e[l].on}};return Object.entries(e).reduce((e,[t,n])=>(e[t]={...n,on:l.indexOf(t)>-1},e),{})}default:return e}},p.reduce((e,t)=>(e[t.id]={...t,name:t.name||"",on:!0,events:0},e),{})),E=react.useCallback(e=>{B({type:"visibility",payload:e});},[B]),F=react.useCallback(e=>{let t={};for(let l in e){let{id:n}=e[l].calendar;t[n]=t[n]||0,t[n]++;}B({type:"events",payload:t});},[]),G=react.useCallback(async(e,t,l)=>{try{let n=await getCalendarsEventsFromGoogle({apiKey:c,calendars:e,timeZone:f,start:t,end:l});L(n);}catch(e){b&&b(e);}},[L,c,f,b]),H=react.useCallback(()=>{let[e,t]=O,l=getStartDate(new Date,w),n=getEndDate(l,w);P([l,n]),(e.getTime()!==l.getTime()||t.getTime()!==n.getTime())&&(z(null),k(null));},[w,O]),I=react.useCallback(()=>{P(([e])=>{let t=getPrevDate(e,w),l=getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),J=react.useCallback(()=>{P(([e])=>{let t=getNextDate(e,w),l=getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),K=react.useCallback(e=>{let t=getStartDate(D,e),l=getEndDate(t,e);P([t,l]),T(e),z(null),k(null);},[D]);return react.useEffect(()=>{let[e,t]=O;G(p,e,t),x(isTodayInView(e,t));},[O]),react.useEffect(()=>{C&&F(C);},[C,F]),react.useEffect(()=>{q&&!A[q.calendar.id].on&&z(null);},[A,q,z]),{view:w,eventClicked:q,setEventClicked:z,eventHovered:N,setEventHovered:k,getDaygridNavProps:()=>({locale:d,handlePrev:I,handleNext:J,handleToday:H,handleView:K,todayInView:j,range:O,view:w}),getDaygridTableProps:()=>({locale:d,events:C,eventClicked:q,setEventClicked:z,eventHovered:N,setEventHovered:k,handlePrev:I,handleNext:J,calendarsMap:A,range:O,view:w}),getLegendProps:()=>({calendarsMap:A,toggleCalendarVisibility:E})}};
56
+
57
+ exports.CalendarDaygridCell = CalendarDaygridCell;
58
+ exports.KoineCalendarDaygridNav = KoineCalendarDaygridNav;
59
+ exports.KoineCalendarDaygridTable = KoineCalendarDaygridTable;
60
+ exports.KoineCalendarLegend = KoineCalendarLegend;
61
+ exports.useCalendar = useCalendar;
62
+ exports.useDateLocale = useDateLocale;
@@ -0,0 +1,2 @@
1
+ export * from './calendar.cjs.js';
2
+ export { _default as default } from './calendar.cjs.default.js';
package/calendar.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from "./calendar/CalendarDaygridCell";
2
+ export * from "./calendar/CalendarDaygridNav";
3
+ export * from "./calendar/CalendarDaygridTable";
4
+ export * from "./calendar/CalendarLegend";
5
+ export * from "./calendar/useCalendar";
6
+ export * from "./calendar/useDateLocale";
7
+ export * from "./calendar/types";
@@ -0,0 +1,35 @@
1
+ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
2
+ import { useState, Fragment, useEffect, useMemo, useReducer, useCallback } from 'react';
3
+ import { addDays } from 'date-fns/addDays';
4
+ import { addMonths } from 'date-fns/addMonths';
5
+ import { addWeeks } from 'date-fns/addWeeks';
6
+ import { endOfMonth } from 'date-fns/endOfMonth';
7
+ import { endOfWeek } from 'date-fns/endOfWeek';
8
+ import { isWithinInterval } from 'date-fns/isWithinInterval';
9
+ import { startOfWeek } from 'date-fns/startOfWeek';
10
+ import { subMonths } from 'date-fns/subMonths';
11
+ import { subWeeks } from 'date-fns/subWeeks';
12
+ import { format } from 'date-fns/format';
13
+ import { eachWeekOfInterval } from 'date-fns/eachWeekOfInterval';
14
+ import { useSwipeable } from 'react-swipeable';
15
+ import { differenceInDays } from 'date-fns/differenceInDays';
16
+ import { subDays } from 'date-fns/subDays';
17
+ import { isUndefined, isString, arrayToLookup } from '@koine/utils';
18
+
19
+ let getEventTimestamp=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.valueOf()/1e3};let getDisplayTime=e=>e.getHours()+":"+"0".repeat(2-e.getMinutes().toString().length)+e.getMinutes();let getStartDate=(e,t)=>(e.setHours(0,0,0),"month"===t?e.setDate(1):"week"===t&&(e=startOfWeek(e,{weekStartsOn:1})),e);let getEndDate=(e,t)=>{let r=e;return "month"===t?r=endOfMonth(e):"week"===t&&(r=endOfWeek(e,{weekStartsOn:1})),r.setHours(23,59,59),r};let getPrevDate=(e,t)=>"month"===t?subMonths(e,1):subWeeks(e,1);let getNextDate=(e,a)=>"month"===a?addMonths(e,1):addWeeks(e,1);let isTodayInView=(e,t)=>isWithinInterval(new Date,{start:e,end:t});let addCalendarEvents=(e,t)=>{for(let r in e){let a=e[r];t[r]=a;}return t};let i=e=>{let t={};for(let r in e){let a=e[r];a.days.forEach(e=>{t[e]=t[e]||{},t[e][r]=a;});}return t},d$1=e=>{let t=[];for(let r in e)t.push(e[r]);return t.sort((e,t)=>{let r=Number(t.multi)-Number(e.multi),a=Number(t.allDay)-Number(e.allDay),n=e.start.getTime()-t.start.getTime(),s=e.created.getTime()-t.created.getTime();return r||a||n||s}),t};let processEventsInView=(t,r,a,n)=>{let s=i(t),o=d$1(t),l=new Date,m=getEventTimestamp(l),p={},f=[];for(let t=0;t<n.length;t++){let i={props:{key:`week.${t}`},days:[]},d=n[t],u=d.getDate(),g=getEventTimestamp(new Date(d)),h=getEventTimestamp(addDays(new Date(d),6));for(let e=0;e<7;e++){let t=new Date(new Date(d).setDate(u+e)),n=getEventTimestamp(t),f={$isToday:m===n,$isOutOfRange:"month"===r&&t.getMonth()!==a},v={props:{key:`day.${n}`,...f},timestamp:n+"",label:t.getDate()+"",events:[]};if(s?.[n]){let t=Object.keys(s[n]).map(()=>0);for(let r=0;r<o.length;r++){let a;let s=o[r],m=1,i=0;if(s.daysMap[n]){if(s.multi&&(m=s.days.filter(e=>e>=g&&e<=h).length,(0===s.days.indexOf(n)||0===e)&&(a=!0)),p[s.uid])i=p[s.uid];else for(let e=0;e<t.length;e++)if(1!==t[e]){i=e;break}t[i]=1,a&&(p[s.uid]=i),v.events.push({key:`event.${n}-${i}`,...f,...s,isPast:l>s.end,firstOfMulti:a,top:i,width:m});}}for(let e=0;e<t.length;e++)1!==t[e]&&v.events.push({key:`event.${n}-${e}}`,placeholder:!0,top:e});v.events.sort((e,t)=>e.top-t.top);}i.days.push(v);}f.push(i);}return f};
20
+
21
+ let d=l=>jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"none",...l,children:[jsx("path",{d:"M0 0h24v24H0z"}),jsx("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"})]}),o$1={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"};let CalendarDaygridCell=({eventClicked:a,setEventClicked:s,setEventHovered:h,view:c,maxEvents:u,events:p,calendarsMap:v,Cell:f="div",CellOverflow:y="div",CellEvent:$="div",CellEventBtn:m="div",CellEventTitle:w="span",CellEventStart:g="span"})=>{let[x,M]=useState(!1),O=p.filter(e=>!e.placeholder);return jsx(f,{children:p.map((t,p)=>{if(p===u&&!x)return jsxs(y,{onClick:()=>M(!0),children:[jsx(d,{}),O.length-u]},"overflowMessage"+p);if(p>u&&!x)return null;if(t.placeholder)return jsx(Fragment,{children:jsx($,{$placeholder:!0,children:jsx(m,{"aria-hidden":"true",style:{visibility:"hidden"},$placeholder:!0,children:jsx(w,{children:" "})})})},t.key);let f={zIndex:t.firstOfMulti?1:0,position:"relative",width:t.firstOfMulti?`${100*t.width}%`:"100%"};v[t.calendar.id].on||(o$1.display="none");let k={$view:c,$selected:a?.uid===t.uid,$past:t.isPast,$color:t.color,$isOutOfRange:t.$isOutOfRange,$isToday:t.$isToday};return jsx(Fragment,{children:jsx($,{style:f,...k,children:jsx(m,{role:"button",style:o$1,...k,onClick:()=>s(e=>e?.uid===t.uid?null:t),onMouseEnter:()=>h(t),onMouseLeave:()=>h(null),children:t.allDay?jsx(w,{children:t.title}):jsxs(Fragment$1,{children:[jsx(g,{children:getDisplayTime(t.start)}),jsx(w,{children:t.title})]})})})},t.key)})})};
22
+
23
+ let useDateLocale=(a,l="en")=>{let[r,n]=useState(),[o,c]=useState(l);return useEffect(()=>{let e=async()=>{let e=await import('date-fns/locale/en-US');c(a||o),n(e.enUS);};a!==o&&e();},[a,o]),r};
24
+
25
+ let KoineCalendarDaygridNav=({range:a,view:l,todayInView:r,handlePrev:i,handleNext:M,handleToday:d,handleView:y,locale:c,NavRoot:m="nav",NavTitle:s="div",NavBtns:b="div",NavBtnPrev:k="button",NavBtnNext:u="button",NavBtnToday:h="button",NavBtnViewMonth:f="button",NavBtnViewWeek:g="button"})=>{let[C,p]=a,v={locale:useDateLocale(c)},x="";return "month"===l&&(x=format(C,"MMMM yyyy",v)),"week"===l&&(x=C.getMonth()===p.getMonth()?format(C,"# MMMM yyyy",v).replace("#",`${C.getDate()}-${p.getDate()}`):`${format(C,"d MMMM",v)} - ${format(p,"d MMMM yyyy",v)}`),jsxs(m,{children:[jsxs(b,{children:[jsx(k,{onClick:i}),jsx(u,{onClick:M}),jsx(h,{onClick:d,disabled:r}),jsx(f,{onClick:()=>y("month"),disabled:"month"===l}),jsx(g,{onClick:()=>y("week"),disabled:"week"===l})]}),jsx(s,{range:a,formatted:x})]})};
26
+
27
+ let KoineCalendarDaygridTable=({locale:d,handlePrev:s,handleNext:c,events:h,dayLabels:f,view:b,range:u,eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,calendarsMap:x={},maxEvents:j=5,Table:C="table",TableHead:D="thead",TableHeadCell:S="th",TableBody:k="tbody",TableBodyRow:z="tr",TableBodyCell:L="td",TableBodyCellDate:O="div",Cell:I,CellOverflow:K,CellEvent:M,CellEventBtn:R,CellEventTitle:T,CellEventStart:W})=>{let q={Cell:I,CellOverflow:K,CellEvent:M,CellEventBtn:R,CellEventTitle:T,CellEventStart:W},[A,B]=useState(f||[0,1,2,3,4,5,6]),[E,F]=useState([]),G=useDateLocale(d),{month:H,weeks:J}=useMemo(()=>(function(e){let[t,a]=e,i=eachWeekOfInterval({start:t,end:a},{weekStartsOn:1});return {month:t.getMonth(),weeks:i}})(u),[u]),N=useSwipeable({onSwipedLeft:c,onSwipedRight:s});return useEffect(()=>{F(processEventsInView(h,b,H,J));},[h,b,H,J]),useEffect(()=>{G&&G.localize&&!f&&B([1,2,3,4,5,6,0].map(e=>G.localize.day(e,{width:"abbreviated"})));},[G,f]),jsxs(C,{...N,children:[jsx(D,{children:jsx("tr",{children:A.map(t=>jsx(S,{scope:"column",children:t},t))})}),jsx(k,{children:E.map((r,a)=>jsx(z,{...r.props,children:r.days.map(r=>jsxs(L,{...r.props,children:[jsx(O,{...r.props,children:r.label}),r.events.length>0&&jsx(CalendarDaygridCell,{eventClicked:v,setEventClicked:g,eventHovered:w,setEventHovered:y,view:b,maxEvents:j,events:r.events,timestamp:r.timestamp,calendarsMap:x,...q})]}))}))})]})};
28
+
29
+ let KoineCalendarLegend=({calendarsMap:a={},toggleCalendarVisibility:s,LegendItem:d="div",LegendItemStatus:i="span",LegendItemLabel:l="span",LegendItemEvents:t="span"})=>jsx(Fragment$1,{children:Object.entries(a).map(([r,a])=>jsxs(d,{onClick:()=>s(r),$color:a.color,$empty:0===a.events,disabled:0===a.events,children:[jsx(i,{children:a.on?"⬤":"⭘"}),jsx(l,{children:a.name}),jsx(t,{children:a.events})]},"CalendarLegend."+r))});
30
+
31
+ let getCalendarsEventsFromGoogle=async({calendars:e,...t})=>{let a={};return await Promise.all(e.map(async e=>{addCalendarEvents(await o({calendar:e,...t}),a);})),a};async function o({apiKey:i,calendar:o,timeZone:m="",start:d,end:l}){let c={},u=new URLSearchParams({calendarId:o.id,timeZone:m,singleEvents:"true",maxAttendees:"1",maxResults:"9999",sanitizeHtml:"true",timeMin:d.toISOString(),timeMax:l.toISOString(),key:i||process.env.GOOGLE_CALENDAR_API_KEY||""}).toString(),f="https://www.googleapis.com/calendar/v3/calendars/"+o.id+"/events?"+u;try{let i=await fetch(f,{method:"GET"}),m=await i.json();o.name=o.name||m.summary,m.items.forEach(i=>{let m=function(i,o){let m=new Date(i.created),d=i.htmlLink,l=i.summary,c=i.status,u=new Date(i.start.date||i.start.dateTime),f=new Date(i.end.date||i.end.dateTime),w=o.color,g=isUndefined(i.end.dateTime)&&isString(i.end.date),p=i.location||"",D=i.description||"",h=m.getTime()+""+u.getTime();g&&f>u&&(f=subDays(f,1)).setHours(23,59,59);let y=function(){let t=new Date(u),a=new Date(f),n=[getEventTimestamp(t)];for(;differenceInDays(a,t);)t.setDate(t.getDate()+1),n.push(getEventTimestamp(t));return n}(),E=arrayToLookup(y),S=y.length>1;return {calendar:o,created:m,link:d,title:l,status:c,start:u,end:f,days:y,daysMap:E,multi:S,color:w,allDay:g,location:p,description:D,uid:h}}(i,o);c[m.uid]=m;});}catch(e){}return c}
32
+
33
+ let useCalendar=({locale:d,apiKey:c,calendars:p,events:g,start:m,end:y,view:v="month",timeZone:f="",onError:b})=>{let[w,T]=useState(v),D=m||getStartDate(new Date,w),h=y||getEndDate(D,w),[O,P]=useState([D,h]),[j,x]=useState(isTodayInView(D,h)),[C,L]=useState(g||{}),[N,k]=useState(null),[q,z]=useState(null),[A,B]=useReducer((e,t)=>{let{type:l}=t;switch(l){case"events":{let l=t.payload;return Object.entries(e).reduce((e,[t,n])=>(e[t]={...n,events:l[t]||0},e),{})}case"visibility":{let l=t.payload;if("string"==typeof l)return {...e,[l]:{...e[l],on:!e[l].on}};return Object.entries(e).reduce((e,[t,n])=>(e[t]={...n,on:l.indexOf(t)>-1},e),{})}default:return e}},p.reduce((e,t)=>(e[t.id]={...t,name:t.name||"",on:!0,events:0},e),{})),E=useCallback(e=>{B({type:"visibility",payload:e});},[B]),F=useCallback(e=>{let t={};for(let l in e){let{id:n}=e[l].calendar;t[n]=t[n]||0,t[n]++;}B({type:"events",payload:t});},[]),G=useCallback(async(e,t,l)=>{try{let n=await getCalendarsEventsFromGoogle({apiKey:c,calendars:e,timeZone:f,start:t,end:l});L(n);}catch(e){b&&b(e);}},[L,c,f,b]),H=useCallback(()=>{let[e,t]=O,l=getStartDate(new Date,w),n=getEndDate(l,w);P([l,n]),(e.getTime()!==l.getTime()||t.getTime()!==n.getTime())&&(z(null),k(null));},[w,O]),I=useCallback(()=>{P(([e])=>{let t=getPrevDate(e,w),l=getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),J=useCallback(()=>{P(([e])=>{let t=getNextDate(e,w),l=getEndDate(t,w);return [t,l]}),z(null),k(null);},[w]),K=useCallback(e=>{let t=getStartDate(D,e),l=getEndDate(t,e);P([t,l]),T(e),z(null),k(null);},[D]);return useEffect(()=>{let[e,t]=O;G(p,e,t),x(isTodayInView(e,t));},[O]),useEffect(()=>{C&&F(C);},[C,F]),useEffect(()=>{q&&!A[q.calendar.id].on&&z(null);},[A,q,z]),{view:w,eventClicked:q,setEventClicked:z,eventHovered:N,setEventHovered:k,getDaygridNavProps:()=>({locale:d,handlePrev:I,handleNext:J,handleToday:H,handleView:K,todayInView:j,range:O,view:w}),getDaygridTableProps:()=>({locale:d,events:C,eventClicked:q,setEventClicked:z,eventHovered:N,setEventHovered:k,handlePrev:I,handleNext:J,calendarsMap:A,range:O,view:w}),getLegendProps:()=>({calendarsMap:A,toggleCalendarVisibility:E})}};
34
+
35
+ export { CalendarDaygridCell, KoineCalendarDaygridNav, KoineCalendarDaygridTable, KoineCalendarLegend, useCalendar, useDateLocale };
@@ -0,0 +1,8 @@
1
+ export type FaviconTagsProps = {
2
+ name: string;
3
+ color?: string;
4
+ safariTabColor?: string;
5
+ tileColor?: string;
6
+ themeColor?: string;
7
+ };
8
+ export declare let FaviconTags: ({ name, color, safariTabColor, tileColor, themeColor, }: FaviconTagsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ export type MetaProps = {
2
+ zoom?: boolean;
3
+ };
4
+ export declare let Meta: ({ zoom }: MetaProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export type NoJsProps = object;
2
+ export declare let NoJs: (_props: NoJsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { type ObjectShape } from "@kuus/yup";
2
+ export declare let encodeForm: <T extends ObjectShape = {}>(validationRules: T) => {
3
+ encodedSchema: import("@kuus/yup").ObjectSchema<{
4
+ [x: string]: T[keyof T] extends import("@kuus/yup").ISchema<any, any, any, any> ? T[keyof T]["__outputType"] : T[keyof T] extends {
5
+ readonly key: string;
6
+ readonly isContext: boolean;
7
+ readonly isValue: boolean;
8
+ readonly isSibling: boolean;
9
+ readonly path: any;
10
+ readonly getter: (data: unknown) => unknown;
11
+ readonly map?: ((value: unknown) => infer T_1) | undefined;
12
+ readonly __isYupRef: boolean;
13
+ getValue(value: any, parent?: {} | undefined, context?: {} | undefined): infer T_1;
14
+ cast(value: any, options?: {
15
+ parent?: {} | undefined;
16
+ context?: {} | undefined;
17
+ } | undefined): infer T_1;
18
+ resolve(): any;
19
+ describe(): import("@kuus/yup").SchemaRefDescription;
20
+ toString(): string;
21
+ } ? T_1 : unknown;
22
+ }, import("@kuus/yup").AnyObject, {
23
+ [x: string]: T[keyof T] extends import("@kuus/yup").ISchema<any, import("@kuus/yup").AnyObject, any, any> ? T[keyof T]["__default"] : undefined;
24
+ }, "">;
25
+ encodedNames: Record<keyof T, string>;
26
+ };
27
+ export declare let decodeForm: <ReturnAs extends Record<string, unknown> = {}, FormData_1 extends Record<string, unknown> = {}>(formData: FormData_1) => ReturnAs;
package/forms.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./forms";
@@ -0,0 +1 @@
1
+ exports._default = require('./forms.cjs.js').default;
package/forms.cjs.js ADDED
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var yup = require('@kuus/yup');
6
+ var utils = require('@koine/utils');
7
+
8
+ let encodeForm=t=>{let o={},i={};for(let e in t)if(!e.startsWith("_")){let l=utils.encode(e);o[l]=t[e],i[e]=l;}return {encodedSchema:yup.object(o).required(),encodedNames:i}};let decodeForm=e=>{let r={};for(let i in e){let l=utils.decode(i);i.startsWith("_")?r[i.substring(1)]=e[i]:utils.isUndefined(e[i])||""!==e[l]||(r[l]=e[i]);}return r};
9
+
10
+ exports.decodeForm = decodeForm;
11
+ exports.encodeForm = encodeForm;
package/forms.cjs.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export * from './forms.cjs.js';
2
+ export { _default as default } from './forms.cjs.default.js';
package/forms.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./forms/antispam";
package/forms.esm.js ADDED
@@ -0,0 +1,6 @@
1
+ import { object } from '@kuus/yup';
2
+ import { encode, decode, isUndefined } from '@koine/utils';
3
+
4
+ let encodeForm=t=>{let o={},i={};for(let e in t)if(!e.startsWith("_")){let l=encode(e);o[l]=t[e],i[e]=l;}return {encodedSchema:object(o).required(),encodedNames:i}};let decodeForm=e=>{let r={};for(let i in e){let l=decode(i);i.startsWith("_")?r[i.substring(1)]=e[i]:isUndefined(e[i])||""!==e[l]||(r[l]=e[i]);}return r};
5
+
6
+ export { decodeForm, encodeForm };
package/hooks/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  export { useAsyncFn, type UseAsyncFnReturn, type UseAsyncState, } from "./useAsyncFn";
2
- export { useDateLocale } from "./useDateLocale";
3
2
  export { useFirstMountState } from "./useFirstMountState";
4
3
  export { useFixedOffset } from "./useFixedOffset";
5
4
  export { useFocus } from "./useFocus";
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { FunctionReturningPromise, PromiseType } from "./types";
2
+ import type { FunctionReturningPromise, PromiseType } from "../types";
3
3
  export type UseAsyncState<T> = {
4
4
  loading: boolean;
5
5
  error?: undefined;
@@ -19,8 +19,5 @@ export type UseAsyncState<T> = {
19
19
  };
20
20
  type StateFromFunctionReturningPromise<T extends FunctionReturningPromise> = UseAsyncState<PromiseType<ReturnType<T>>>;
21
21
  export type UseAsyncFnReturn<T extends FunctionReturningPromise = FunctionReturningPromise> = [StateFromFunctionReturningPromise<T>, T];
22
- /**
23
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useAsyncFn.ts)
24
- */
25
- export declare function useAsyncFn<T extends FunctionReturningPromise>(fn: T, deps?: React.DependencyList, initialState?: StateFromFunctionReturningPromise<T>): UseAsyncFnReturn<T>;
26
- export default useAsyncFn;
22
+ export declare let useAsyncFn: <T extends FunctionReturningPromise>(fn: T, deps?: React.DependencyList, initialState?: StateFromFunctionReturningPromise<T>) => UseAsyncFnReturn<T>;
23
+ export {};
@@ -1,5 +1 @@
1
- /**
2
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useFirstMountState.ts)
3
- */
4
- export declare function useFirstMountState(): boolean;
5
- export default useFirstMountState;
1
+ export declare let useFirstMountState: () => boolean;
@@ -1,12 +1 @@
1
- /// <reference types="react" />
2
- /**
3
- * # Use fixed offset
4
- *
5
- * Maybe use [ResizeObserver polyfill](https://github.com/juggle/resize-observer)
6
- *
7
- * @see https://web.dev/resize-observer/
8
- *
9
- * @param selector By default `[data-fixed]`: anyhting with the data attribute `data-fixed`
10
- */
11
- export declare function useFixedOffset(selector?: string): import("react").MutableRefObject<number>;
12
- export default useFixedOffset;
1
+ export declare let useFixedOffset: (selector?: string) => import("react").MutableRefObject<number>;
@@ -1,6 +1 @@
1
- /// <reference types="react" />
2
- /**
3
- * @see https://stackoverflow.com/a/54159564/1938970
4
- */
5
- export declare const useFocus: () => (import("react").RefObject<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> | (() => void))[];
6
- export default useFocus;
1
+ export declare let useFocus: () => (import("react").RefObject<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement> | (() => void))[];
@@ -1,7 +1 @@
1
- /**
2
- * @borrows [dan abramov](https://overreacted.io/making-setinterval-declarative-with-react-hooks/)
3
- *
4
- * We just add `deps` array argument and typescript support
5
- */
6
- export declare function useInterval<T extends () => unknown>(callback: T, delay: number, deps?: unknown[]): void;
7
- export default useInterval;
1
+ export declare let useInterval: <T extends () => unknown>(callback: T, delay: number, deps?: unknown[]) => void;
@@ -1,6 +1,2 @@
1
- import { useEffect } from "react";
2
- /**
3
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts)
4
- */
5
- export declare const useIsomorphicLayoutEffect: typeof useEffect;
6
- export default useIsomorphicLayoutEffect;
1
+ import { useLayoutEffect } from "react";
2
+ export declare let useIsomorphicLayoutEffect: typeof useLayoutEffect;
@@ -1,2 +1 @@
1
- export declare function useKeyUp(callback: (event: KeyboardEvent) => void, deps?: unknown[]): void;
2
- export default useKeyUp;
1
+ export declare let useKeyUp: (callback: (event: KeyboardEvent) => void, deps?: unknown[]) => void;
@@ -18,10 +18,5 @@ export type UseMeasureReturn = [
18
18
  RectReadOnly,
19
19
  () => void
20
20
  ];
21
- /**
22
- * Use measure hook
23
- *
24
- * @borrows [pmndrs/react-use-measure](https://github.com/pmndrs/react-use-measure)
25
- */
26
- export declare function useMeasure(options?: UseMeasureOptions): UseMeasureReturn;
27
- export default useMeasure;
21
+ export declare let useMeasure: (options?: UseMeasureOptions) => UseMeasureReturn;
22
+ export {};
@@ -1,5 +1 @@
1
- /**
2
- * @borrows [streamich/react-use](https://github.com/streamich/react-use/blob/master/src/useMountedState.ts)
3
- */
4
- export declare function useMountedState(): () => boolean;
5
- export default useMountedState;
1
+ export declare let useMountedState: () => (() => boolean);
@@ -1,32 +1,2 @@
1
- /**
2
- * @return A custom error message (most browser will ignore it), or just a
3
- * boolean to signal whether we want to prompt the user
4
- *
5
- * We might instead return an array with the above as first element and two
6
- * callbacks, but the callback technique is too cumbersome and unreliable
7
- * probably:
8
- * 2) A callback on confirmed leaving
9
- * 3) A callback on cancel, user stays on page
10
- */
11
1
  export type UseNavigateAwayHandler = (event: BeforeUnloadEvent) => string | boolean;
12
- /**
13
- * @resources
14
- *
15
- * About browser's specs see:
16
- * - https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event
17
- * - https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5
18
- * - https://stackoverflow.com/questions/58009424/pagehide-event-on-google-chrome
19
- *
20
- * About react see:
21
- * - https://github.com/jacobbuck/react-beforeunload
22
- * - https://github.com/dioscarey/react-beforeunload-component
23
- *
24
- * About next.js see:
25
- * - https://github.com/vercel/next.js/issues/2476
26
- * - https://github.com/vercel/next.js/issues/2694
27
- *
28
- * For the callback technique see:
29
- * - https://stackoverflow.com/a/11835394/1938970
30
- */
31
- export declare const useNavigateAway: (handler: UseNavigateAwayHandler) => void;
32
- export default useNavigateAway;
2
+ export declare let useNavigateAway: (handler: UseNavigateAwayHandler) => void;
@@ -1,5 +1 @@
1
- /**
2
- * @borrows [samselikoff/animated-carousel](https://github.com/samselikoff/2022-06-02-animated-carousel/blob/main/pages/final.jsx)
3
- */
4
- export declare function usePrevious<T>(state: T, defaulValue: T): T;
5
- export default usePrevious;
1
+ export declare let usePrevious: <T extends unknown>(state: T, defaulValue: T) => T;
@@ -1,2 +1 @@
1
- export declare function usePreviousRef<T>(value: T): T | undefined;
2
- export default usePreviousRef;
1
+ export declare let usePreviousRef: <T extends unknown>(value: T) => T | undefined;
@@ -0,0 +1,12 @@
1
+ export type UseRevealOptions = {
2
+ direction?: "left" | "right";
3
+ offsetStartY?: number;
4
+ offsetEndY?: number;
5
+ offsetStartX?: number | "all";
6
+ };
7
+ export declare let useReveal: <T extends HTMLElement = HTMLDivElement>({ direction, offsetStartY, offsetEndY, offsetStartX, }: UseRevealOptions) => {
8
+ ref: import("react").RefObject<T>;
9
+ startY: number;
10
+ endY: number;
11
+ startX: number;
12
+ };
@@ -1,15 +1,7 @@
1
- /// <reference types="react" />
2
1
  type Position = {
3
2
  x: number;
4
3
  y: number;
5
4
  };
6
5
  type ElementRef = React.MutableRefObject<HTMLElement | undefined>;
7
- /**
8
- * @borrows [@n8tb1t/use-scroll-position@2.0.3](https://github.com/n8tb1t/use-scroll-position) by `n8tb1t <n8tb1t@gmail.com>`
9
- *
10
- * We've just:
11
- * - reused internal helper functions
12
- * - compacted object arguments in functions as plain argument list to improve compression
13
- */
14
- export declare const useScrollPosition: (effect: (currentPosition: Position, prevPosition: Position) => void, deps?: import("react").DependencyList, element?: ElementRef, boundingElement?: ElementRef, wait?: number) => void;
15
- export default useScrollPosition;
6
+ export declare let useScrollPosition: (effect: (currentPosition: Position, prevPosition: Position) => void, deps?: import("react").DependencyList, element?: ElementRef, boundingElement?: ElementRef, wait?: number) => void;
7
+ export {};
@@ -1,2 +1 @@
1
- export declare const useScrollThreshold: (threshold?: number, callback?: ((isAbove: boolean, isBelow: boolean) => void) | undefined) => boolean;
2
- export default useScrollThreshold;
1
+ export declare let useScrollThreshold: (threshold?: number, callback?: ((isAbove: boolean, isBelow: boolean) => void) | undefined) => boolean;
@@ -1,2 +1 @@
1
- export declare function useScrollTo(id?: string, offset?: number): void;
2
- export default useScrollTo;
1
+ export declare let useScrollTo: (id?: string, offset?: number) => void;
@@ -1,8 +1 @@
1
- /**
2
- *
3
- * @param disregardAutomaticFixedOffset When the `to` scroll argument is a DOM
4
- * selector we will keep into account the _fixedOffset_ despite this option.
5
- * @returns
6
- */
7
- export declare function useSmoothScroll(disregardAutomaticFixedOffset?: boolean): (to?: number | string, customOffset?: number, callback?: () => void, fallbackTimeout?: number, behavior?: ScrollBehavior) => void;
8
- export default useSmoothScroll;
1
+ export declare let useSmoothScroll: (disregardAutomaticFixedOffset?: boolean) => (to?: number | string, customOffset?: number, callback?: () => void, fallbackTimeout?: number, behavior?: ScrollBehavior) => void;