@koine/react 2.0.0-beta.72 → 2.0.0-beta.74

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 (107) hide show
  1. package/FaviconTags.d.ts +9 -0
  2. package/FaviconTags.js +5 -0
  3. package/Meta.d.ts +5 -0
  4. package/Meta.js +5 -0
  5. package/NoJs.d.ts +3 -0
  6. package/NoJs.js +7 -0
  7. package/Polymorphic.d.ts +26 -0
  8. package/Polymorphic.js +1 -0
  9. package/calendar/CalendarDaygridCell.js +42 -0
  10. package/calendar/CalendarDaygridNav.js +22 -0
  11. package/calendar/CalendarDaygridTable.js +50 -0
  12. package/calendar/CalendarLegend.js +4 -0
  13. package/calendar/calendar-api-google.js +90 -0
  14. package/calendar/types.js +1 -0
  15. package/calendar/useCalendar.js +175 -0
  16. package/calendar/useDateLocale.js +16 -0
  17. package/calendar/utils.js +172 -0
  18. package/calendar.js +7 -0
  19. package/classed.d.ts +8 -0
  20. package/classed.js +41 -0
  21. package/components/FaviconTags.js +4 -0
  22. package/components/Meta.js +4 -0
  23. package/components/NoJs.js +6 -0
  24. package/createUseMediaQueryWidth.d.ts +6 -0
  25. package/createUseMediaQueryWidth.js +38 -0
  26. package/extendComponent.d.ts +16 -0
  27. package/extendComponent.js +9 -0
  28. package/forms/antispam.js +29 -0
  29. package/forms.js +1 -0
  30. package/hooks/index.js +19 -0
  31. package/hooks/useAsyncFn.js +25 -0
  32. package/hooks/useFirstMountState.js +9 -0
  33. package/hooks/useFixedOffset.js +41 -0
  34. package/hooks/useFocus.js +8 -0
  35. package/hooks/useInterval.js +19 -0
  36. package/hooks/useIsomorphicLayoutEffect.js +3 -0
  37. package/hooks/useKeyUp.js +15 -0
  38. package/hooks/useMeasure.js +118 -0
  39. package/hooks/useMountedState.js +12 -0
  40. package/hooks/useNavigateAway.js +24 -0
  41. package/hooks/usePrevious.js +8 -0
  42. package/hooks/usePreviousRef.js +8 -0
  43. package/hooks/useReveal.js +41 -0
  44. package/hooks/useScrollPosition.js +57 -0
  45. package/hooks/useScrollThreshold.js +25 -0
  46. package/hooks/useScrollTo.js +17 -0
  47. package/hooks/useSmoothScroll.js +31 -0
  48. package/hooks/useSpinDelay.js +35 -0
  49. package/hooks/useTraceUpdate.js +16 -0
  50. package/hooks/useUpdateEffect.js +10 -0
  51. package/hooks/useWindowSize.js +19 -0
  52. package/index.cjs.js +33 -23
  53. package/index.d.ts +28 -3
  54. package/index.esm.js +33 -26
  55. package/index.js +26 -0
  56. package/mergeRefs.d.ts +2 -0
  57. package/mergeRefs.js +13 -0
  58. package/package.json +3 -3
  59. package/types.js +1 -0
  60. package/useAsyncFn.d.ts +24 -0
  61. package/useAsyncFn.js +26 -0
  62. package/useFirstMountState.d.ts +2 -0
  63. package/useFirstMountState.js +10 -0
  64. package/useFixedOffset.d.ts +2 -0
  65. package/useFixedOffset.js +42 -0
  66. package/useFocus.d.ts +2 -0
  67. package/useFocus.js +9 -0
  68. package/useInterval.d.ts +2 -0
  69. package/useInterval.js +20 -0
  70. package/useIsomorphicLayoutEffect.d.ts +3 -0
  71. package/useIsomorphicLayoutEffect.js +4 -0
  72. package/useKeyUp.d.ts +2 -0
  73. package/useKeyUp.js +16 -0
  74. package/useMeasure.d.ts +22 -0
  75. package/useMeasure.js +119 -0
  76. package/useMountedState.d.ts +2 -0
  77. package/useMountedState.js +13 -0
  78. package/useNavigateAway.d.ts +3 -0
  79. package/useNavigateAway.js +25 -0
  80. package/usePrevious.d.ts +2 -0
  81. package/usePrevious.js +9 -0
  82. package/usePreviousRef.d.ts +2 -0
  83. package/usePreviousRef.js +9 -0
  84. package/useReveal.d.ts +13 -0
  85. package/useReveal.js +42 -0
  86. package/useScrollPosition.d.ts +7 -0
  87. package/useScrollPosition.js +58 -0
  88. package/useScrollThreshold.d.ts +2 -0
  89. package/useScrollThreshold.js +26 -0
  90. package/useScrollTo.d.ts +2 -0
  91. package/useScrollTo.js +18 -0
  92. package/useSmoothScroll.d.ts +2 -0
  93. package/useSmoothScroll.js +32 -0
  94. package/useSpinDelay.d.ts +2 -0
  95. package/useSpinDelay.js +36 -0
  96. package/useTraceUpdate.d.ts +2 -0
  97. package/useTraceUpdate.js +17 -0
  98. package/useUpdateEffect.d.ts +3 -0
  99. package/useUpdateEffect.js +11 -0
  100. package/useWindowSize.d.ts +3 -0
  101. package/useWindowSize.js +20 -0
  102. package/utils/Polymorphic.js +1 -0
  103. package/utils/classed.js +40 -0
  104. package/utils/createUseMediaQueryWidth.js +37 -0
  105. package/utils/extendComponent.js +8 -0
  106. package/utils/index.js +4 -0
  107. package/utils/mergeRefs.js +12 -0
@@ -0,0 +1,37 @@
1
+ import { useState } from "react";
2
+ import { getMediaQueryWidthResolvers, isUndefined, } from "@koine/utils";
3
+ import { useIsomorphicLayoutEffect } from "../hooks";
4
+ export let createUseMediaQueryWidth = (customBreakpoints) => {
5
+ const queryResolvers = getMediaQueryWidthResolvers(customBreakpoints);
6
+ return function useMediaQueryWidth(media, serverValue) {
7
+ const definition = media.substring(1);
8
+ let [rule, ruleBreakpoint] = definition.split("-");
9
+ if (isUndefined(ruleBreakpoint)) {
10
+ ruleBreakpoint = rule;
11
+ }
12
+ if (isUndefined(rule)) {
13
+ rule = "min";
14
+ }
15
+ const [br1, br2] = ruleBreakpoint.split("_");
16
+ const query = queryResolvers[rule](br1, br2);
17
+ const [matches, setMatches] = useState(isUndefined(serverValue) ? null : serverValue);
18
+ useIsomorphicLayoutEffect(() => {
19
+ const mq = window.matchMedia(query);
20
+ const handleChange = (event) => {
21
+ setMatches(event.matches);
22
+ };
23
+ setMatches(mq.matches);
24
+ if (!mq.addEventListener) {
25
+ mq.addListener(handleChange);
26
+ return () => {
27
+ mq.removeListener(handleChange);
28
+ };
29
+ }
30
+ mq.addEventListener("change", handleChange);
31
+ return () => {
32
+ mq.removeEventListener("change", handleChange);
33
+ };
34
+ }, [query]);
35
+ return matches;
36
+ };
37
+ };
@@ -0,0 +1,8 @@
1
+ import { createElement } from "react";
2
+ export let extendComponent = (component, defaultProps) => {
3
+ const NewComponent = (props) => createElement(component, props);
4
+ return Object.assign(NewComponent, {
5
+ ...defaultProps,
6
+ defaultProps,
7
+ });
8
+ };
package/utils/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { classed } from "./classed";
2
+ export { createUseMediaQueryWidth, } from "./createUseMediaQueryWidth";
3
+ export { extendComponent, } from "./extendComponent";
4
+ export { mergeRefs } from "./mergeRefs";
@@ -0,0 +1,12 @@
1
+ export let mergeRefs = (refs) => {
2
+ return (value) => {
3
+ refs.forEach((ref) => {
4
+ if (typeof ref === "function") {
5
+ ref(value);
6
+ }
7
+ else if (ref != null) {
8
+ ref.current = value;
9
+ }
10
+ });
11
+ };
12
+ };