@koine/react 2.0.0-beta.75 → 2.0.0-beta.77

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 (182) hide show
  1. package/FaviconTags.js +1 -5
  2. package/Meta.js +1 -5
  3. package/NoJs.js +1 -7
  4. package/Polymorphic.js +1 -1
  5. package/calendar/CalendarDaygridCell.js +1 -42
  6. package/calendar/CalendarDaygridNav.js +1 -22
  7. package/calendar/CalendarDaygridTable.js +1 -50
  8. package/calendar/CalendarLegend.js +1 -4
  9. package/calendar/calendar-api-google.js +1 -90
  10. package/calendar/types.js +1 -1
  11. package/calendar/useCalendar.js +1 -175
  12. package/calendar/useDateLocale.js +1 -16
  13. package/calendar/utils.js +1 -172
  14. package/calendar.js +1 -7
  15. package/{components → cjs}/FaviconTags.d.ts +1 -0
  16. package/cjs/FaviconTags.js +1 -0
  17. package/{components → cjs}/Meta.d.ts +1 -0
  18. package/cjs/Meta.js +1 -0
  19. package/{components → cjs}/NoJs.d.ts +1 -0
  20. package/cjs/NoJs.js +1 -0
  21. package/cjs/Polymorphic.js +1 -0
  22. package/cjs/calendar/CalendarDaygridCell.d.ts +35 -0
  23. package/cjs/calendar/CalendarDaygridCell.js +1 -0
  24. package/cjs/calendar/CalendarDaygridNav.d.ts +27 -0
  25. package/cjs/calendar/CalendarDaygridNav.js +1 -0
  26. package/cjs/calendar/CalendarDaygridTable.d.ts +25 -0
  27. package/cjs/calendar/CalendarDaygridTable.js +1 -0
  28. package/cjs/calendar/CalendarLegend.d.ts +18 -0
  29. package/cjs/calendar/CalendarLegend.js +1 -0
  30. package/cjs/calendar/calendar-api-google.d.ts +10 -0
  31. package/cjs/calendar/calendar-api-google.js +1 -0
  32. package/cjs/calendar/types.d.ts +62 -0
  33. package/cjs/calendar/types.js +1 -0
  34. package/cjs/calendar/useCalendar.d.ts +35 -0
  35. package/cjs/calendar/useCalendar.js +1 -0
  36. package/cjs/calendar/useDateLocale.d.ts +2 -0
  37. package/cjs/calendar/useDateLocale.js +1 -0
  38. package/cjs/calendar/utils.d.ts +11 -0
  39. package/cjs/calendar/utils.js +1 -0
  40. package/cjs/calendar.d.ts +7 -0
  41. package/cjs/calendar.js +1 -0
  42. package/{utils → cjs}/classed.d.ts +2 -2
  43. package/cjs/classed.js +1 -0
  44. package/{utils → cjs}/createUseMediaQueryWidth.d.ts +1 -1
  45. package/cjs/createUseMediaQueryWidth.js +1 -0
  46. package/{utils → cjs}/extendComponent.d.ts +1 -1
  47. package/cjs/extendComponent.js +1 -0
  48. package/cjs/forms/antispam.d.ts +27 -0
  49. package/cjs/forms/antispam.js +1 -0
  50. package/cjs/forms.d.ts +1 -0
  51. package/cjs/forms.js +1 -0
  52. package/{hooks → cjs}/index.d.ts +9 -0
  53. package/cjs/index.js +1 -0
  54. package/{utils → cjs}/mergeRefs.d.ts +1 -0
  55. package/cjs/mergeRefs.js +1 -0
  56. package/cjs/package.json +31 -0
  57. package/cjs/types.d.ts +2 -0
  58. package/cjs/types.js +1 -0
  59. package/{hooks → cjs}/useAsyncFn.d.ts +1 -1
  60. package/cjs/useAsyncFn.js +1 -0
  61. package/{hooks → cjs}/useFirstMountState.d.ts +1 -0
  62. package/cjs/useFirstMountState.js +1 -0
  63. package/{hooks → cjs}/useFixedOffset.d.ts +1 -0
  64. package/cjs/useFixedOffset.js +1 -0
  65. package/{hooks → cjs}/useFocus.d.ts +1 -0
  66. package/cjs/useFocus.js +1 -0
  67. package/{hooks → cjs}/useInterval.d.ts +1 -0
  68. package/cjs/useInterval.js +1 -0
  69. package/cjs/useIsomorphicLayoutEffect.d.ts +3 -0
  70. package/cjs/useIsomorphicLayoutEffect.js +1 -0
  71. package/{hooks → cjs}/useKeyUp.d.ts +1 -0
  72. package/cjs/useKeyUp.js +1 -0
  73. package/{hooks → cjs}/useMeasure.d.ts +1 -1
  74. package/cjs/useMeasure.js +1 -0
  75. package/{hooks → cjs}/useMountedState.d.ts +1 -0
  76. package/cjs/useMountedState.js +1 -0
  77. package/{hooks → cjs}/useNavigateAway.d.ts +1 -0
  78. package/cjs/useNavigateAway.js +1 -0
  79. package/{hooks → cjs}/usePrevious.d.ts +1 -0
  80. package/cjs/usePrevious.js +1 -0
  81. package/{hooks → cjs}/usePreviousRef.d.ts +1 -0
  82. package/cjs/usePreviousRef.js +1 -0
  83. package/{hooks → cjs}/useReveal.d.ts +1 -0
  84. package/cjs/useReveal.js +1 -0
  85. package/{hooks → cjs}/useScrollPosition.d.ts +1 -1
  86. package/cjs/useScrollPosition.js +1 -0
  87. package/{hooks → cjs}/useScrollThreshold.d.ts +1 -0
  88. package/cjs/useScrollThreshold.js +1 -0
  89. package/{hooks → cjs}/useScrollTo.d.ts +1 -0
  90. package/cjs/useScrollTo.js +1 -0
  91. package/{hooks → cjs}/useSmoothScroll.d.ts +1 -0
  92. package/cjs/useSmoothScroll.js +1 -0
  93. package/{hooks → cjs}/useSpinDelay.d.ts +1 -0
  94. package/cjs/useSpinDelay.js +1 -0
  95. package/{hooks → cjs}/useTraceUpdate.d.ts +1 -0
  96. package/cjs/useTraceUpdate.js +1 -0
  97. package/{hooks → cjs}/useUpdateEffect.d.ts +1 -0
  98. package/cjs/useUpdateEffect.js +1 -0
  99. package/{hooks → cjs}/useWindowSize.d.ts +1 -0
  100. package/cjs/useWindowSize.js +1 -0
  101. package/classed.d.ts +1 -1
  102. package/classed.js +1 -41
  103. package/createUseMediaQueryWidth.js +1 -38
  104. package/extendComponent.js +1 -9
  105. package/forms/antispam.js +1 -29
  106. package/forms.js +1 -1
  107. package/index.js +1 -26
  108. package/mergeRefs.js +1 -13
  109. package/package.json +53 -136
  110. package/types.js +1 -1
  111. package/useAsyncFn.js +1 -26
  112. package/useFirstMountState.js +1 -10
  113. package/useFixedOffset.js +1 -42
  114. package/useFocus.js +1 -9
  115. package/useInterval.js +1 -20
  116. package/useIsomorphicLayoutEffect.d.ts +2 -2
  117. package/useIsomorphicLayoutEffect.js +1 -4
  118. package/useKeyUp.js +1 -16
  119. package/useMeasure.js +1 -119
  120. package/useMountedState.js +1 -13
  121. package/useNavigateAway.js +1 -25
  122. package/usePrevious.js +1 -9
  123. package/usePreviousRef.js +1 -9
  124. package/useReveal.js +1 -42
  125. package/useScrollPosition.js +1 -58
  126. package/useScrollThreshold.js +1 -26
  127. package/useScrollTo.js +1 -18
  128. package/useSmoothScroll.js +1 -32
  129. package/useSpinDelay.js +1 -36
  130. package/useTraceUpdate.js +1 -17
  131. package/useUpdateEffect.js +1 -11
  132. package/useWindowSize.js +1 -20
  133. package/README.md +0 -1
  134. package/calendar.cjs.d.ts +0 -1
  135. package/calendar.cjs.default.js +0 -1
  136. package/calendar.cjs.js +0 -62
  137. package/calendar.cjs.mjs +0 -2
  138. package/calendar.esm.js +0 -35
  139. package/components/FaviconTags.js +0 -4
  140. package/components/Meta.js +0 -4
  141. package/components/NoJs.js +0 -6
  142. package/forms.cjs.d.ts +0 -1
  143. package/forms.cjs.default.js +0 -1
  144. package/forms.cjs.js +0 -11
  145. package/forms.cjs.mjs +0 -2
  146. package/forms.esm.js +0 -6
  147. package/hooks/index.js +0 -19
  148. package/hooks/useAsyncFn.js +0 -25
  149. package/hooks/useFirstMountState.js +0 -9
  150. package/hooks/useFixedOffset.js +0 -41
  151. package/hooks/useFocus.js +0 -8
  152. package/hooks/useInterval.js +0 -19
  153. package/hooks/useIsomorphicLayoutEffect.d.ts +0 -2
  154. package/hooks/useIsomorphicLayoutEffect.js +0 -3
  155. package/hooks/useKeyUp.js +0 -15
  156. package/hooks/useMeasure.js +0 -118
  157. package/hooks/useMountedState.js +0 -12
  158. package/hooks/useNavigateAway.js +0 -24
  159. package/hooks/usePrevious.js +0 -8
  160. package/hooks/usePreviousRef.js +0 -8
  161. package/hooks/useReveal.js +0 -41
  162. package/hooks/useScrollPosition.js +0 -57
  163. package/hooks/useScrollThreshold.js +0 -25
  164. package/hooks/useScrollTo.js +0 -17
  165. package/hooks/useSmoothScroll.js +0 -31
  166. package/hooks/useSpinDelay.js +0 -35
  167. package/hooks/useTraceUpdate.js +0 -16
  168. package/hooks/useUpdateEffect.js +0 -10
  169. package/hooks/useWindowSize.js +0 -19
  170. package/index.cjs.d.ts +0 -1
  171. package/index.cjs.default.js +0 -1
  172. package/index.cjs.js +0 -87
  173. package/index.cjs.mjs +0 -2
  174. package/index.esm.js +0 -58
  175. package/utils/Polymorphic.js +0 -1
  176. package/utils/classed.js +0 -40
  177. package/utils/createUseMediaQueryWidth.js +0 -37
  178. package/utils/extendComponent.js +0 -8
  179. package/utils/index.d.ts +0 -5
  180. package/utils/index.js +0 -4
  181. package/utils/mergeRefs.js +0 -12
  182. /package/{utils → cjs}/Polymorphic.d.ts +0 -0
@@ -4,4 +4,4 @@ type Position = {
4
4
  };
5
5
  type ElementRef = React.MutableRefObject<HTMLElement | undefined>;
6
6
  export declare let useScrollPosition: (effect: (currentPosition: Position, prevPosition: Position) => void, deps?: import("react").DependencyList, element?: ElementRef, boundingElement?: ElementRef, wait?: number) => void;
7
- export {};
7
+ export default useScrollPosition;
@@ -0,0 +1 @@
1
+ import{useRef as t}from"react";import{isBrowser as r}from"@koine/utils";import{listenScroll as e}from"@koine/dom";import{useIsomorphicLayoutEffect as o}from"./useIsomorphicLayoutEffect";let l={x:0,y:0},n=t=>t?.getBoundingClientRect(),u=(t,e)=>{if(!r)return l;if(!e)return{x:window.scrollX,y:window.scrollY};let o=n(t?.current||document.body),u=n(e.current);return o?u?{x:(u.x||0)-(o.x||0),y:(u.y||0)-(o.y||0)}:{x:o.left,y:o.top}:l};export let useScrollPosition=(l,n=[],i,c,m)=>{let f=t(u(null,c)),s=null,d=()=>{let t=u(i,c);l(t,f.current),f.current=t,s=null};o(()=>{if(!r)return;let t=e(()=>{m?null===s&&(s=window.setTimeout(d,m)):d()},c?.current);return()=>{t(),s&&clearTimeout(s)}},n)};export default useScrollPosition;
@@ -1 +1,2 @@
1
1
  export declare let useScrollThreshold: (threshold?: number, callback?: ((isAbove: boolean, isBelow: boolean) => void) | undefined) => boolean;
2
+ export default useScrollThreshold;
@@ -0,0 +1 @@
1
+ import{useCallback as r,useEffect as e,useState as o}from"react";import{noop as t}from"@koine/utils";import{listenScroll as l}from"@koine/dom";export let useScrollThreshold=(i,m)=>{let[u,f]=o(!1),n=r(()=>{if(i){let r=window.scrollY,e=r<i,o=r>i;f(o),m&&m(e,o)}},[i,m]);return e(()=>{if(i){let r=l(n);return n(),r}return t},[i,n]),u};export default useScrollThreshold;
@@ -1 +1,2 @@
1
1
  export declare let useScrollTo: (id?: string, offset?: number) => void;
2
+ export default useScrollTo;
@@ -0,0 +1 @@
1
+ import{isBrowser as e}from"@koine/utils";export let useScrollTo=(o="",t=0)=>{if(!e)return;let l=document.getElementById(o),r=0;if(l&&l.offsetParent)do r+=l.offsetTop;while(l=l.offsetParent)r-=t,r-=0,window.scroll(0,r)};export default useScrollTo;
@@ -1 +1,2 @@
1
1
  export declare let useSmoothScroll: (disregardAutomaticFixedOffset?: boolean) => (to?: number | string, customOffset?: number, callback?: () => void, fallbackTimeout?: number, behavior?: ScrollBehavior) => void;
2
+ export default useSmoothScroll;
@@ -0,0 +1 @@
1
+ import{useCallback as e}from"react";import{isNumber as t}from"@koine/utils";import{getOffsetTopSlim as o,scrollTo as r}from"@koine/dom";import{useFixedOffset as l}from"./useFixedOffset";export let useSmoothScroll=m=>{let i=l();return e((e,l,f,u,n)=>{let c;let p=!1;if(t(e))c=e;else if(e){let t=document.getElementById(e);t&&(c=o(t)-i.current,p=!0)}t(c)&&r(c=c+(l||0)+(m||p?0:i.current),f,u,n)},[m,i])};export default useSmoothScroll;
@@ -1 +1,2 @@
1
1
  export declare let useSpinDelay: (loading: boolean, delay?: number, minDuration?: number) => boolean;
2
+ export default useSpinDelay;
@@ -0,0 +1 @@
1
+ import{useEffect as e,useRef as r,useState as t}from"react";export let useSpinDelay=(u,c=500,i=200)=>{let[n,o]=t(0),l=r();return e(()=>{u&&0===n&&(clearTimeout(l.current),l.current=setTimeout(()=>{if(!u)return o(0);l.current=setTimeout(()=>{o(3)},i),o(2)},c),o(1)),u||2===n||(clearTimeout(l.current),o(0))},[u,n,c,i]),e(()=>()=>clearTimeout(l.current),[]),2===n||3===n};export default useSpinDelay;
@@ -1 +1,2 @@
1
1
  export declare let useTraceUpdate: (props: any) => void;
2
+ export default useTraceUpdate;
@@ -0,0 +1 @@
1
+ import{useEffect as e,useRef as t}from"react";export let useTraceUpdate=r=>{let c=t(r);e(()=>{let e=Object.entries(r).reduce((e,[t,r])=>(c.current[t]!==r&&(e[t]=[c.current[t],r]),e),{});Object.keys(e).length>0&&console.info("[@koine/react:useTraceUpdate] changed props:",e),c.current=r})};export default useTraceUpdate;
@@ -1,2 +1,3 @@
1
1
  import { useEffect } from "react";
2
2
  export declare let useUpdateEffect: typeof useEffect;
3
+ export default useUpdateEffect;
@@ -0,0 +1 @@
1
+ import{useEffect as t}from"react";import{useFirstMountState as e}from"./useFirstMountState";export let useUpdateEffect=(r,f)=>{let o=e();t(()=>{if(!o)return r()},f)};export default useUpdateEffect;
@@ -1,2 +1,3 @@
1
1
  import { debounce } from "@koine/utils";
2
2
  export declare let useWindowSize: (wait?: Parameters<typeof debounce>[1], immediate?: Parameters<typeof debounce>[2]) => readonly [number, number];
3
+ export default useWindowSize;
@@ -0,0 +1 @@
1
+ import{useEffect as e,useState as i}from"react";import{listenResize as r,listenResizeDebounced as t}from"@koine/dom";export let useWindowSize=(o,n)=>{let[d,w]=i(0),[m,u]=i(0);return e(()=>{let e=()=>{w(window.innerWidth),u(window.innerHeight)},i=o?t(0,e,o,n):r(e);return e(),i},[o,n]),[d,m]};export default useWindowSize;
package/classed.d.ts CHANGED
@@ -4,5 +4,5 @@ type ClassedAugmentedProps<Props> = Props & {
4
4
  ref?: React.Ref<any>;
5
5
  };
6
6
  type ClassedFinalProps<Props, Component> = Component extends React.ReactHTML ? React.HTMLProps<Component> & ClassedAugmentedProps<Props> : ClassedAugmentedProps<Props>;
7
- export declare let classed: <Props, Component extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = any>(component: Component) => (strings: TemplateStringsArray, ...args: ((props: Props) => string)[] | string[]) => React.ForwardRefExoticComponent<React.PropsWithoutRef<ClassedFinalProps<Props, Component>> & React.RefAttributes<Component>>;
7
+ export declare let classed: <Props, Component extends React.ElementType<any, keyof React.JSX.IntrinsicElements> = any>(component: Component) => (strings: TemplateStringsArray, ...args: string[] | ((props: Props) => string)[]) => React.ForwardRefExoticComponent<React.PropsWithoutRef<ClassedFinalProps<Props, Component>> & React.RefAttributes<Component>>;
8
8
  export default classed;
package/classed.js CHANGED
@@ -1,41 +1 @@
1
- import React, { createElement, forwardRef } from "react";
2
- export let classed = (component) => {
3
- const type = component.type || component;
4
- return function (strings, ...args) {
5
- const WrappedComponent = forwardRef(function (props, ref) {
6
- const argResolved = args
7
- .map((arg, index) => {
8
- let result = "";
9
- if (typeof arg === "function") {
10
- result = arg(props);
11
- }
12
- else if (typeof arg !== "undefined") {
13
- result = arg.toString();
14
- }
15
- return strings[index] + result;
16
- })
17
- .join("");
18
- const isNativeHtmlElement = typeof type === "string";
19
- const propsToForward = isNativeHtmlElement
20
- ? {}
21
- : props;
22
- if (isNativeHtmlElement) {
23
- for (const key in props) {
24
- if (!key.startsWith("$")) {
25
- propsToForward[key] = props[key];
26
- }
27
- }
28
- }
29
- let className = argResolved || strings[0];
30
- className = className.match(/class="([^"]*)/)?.[1] || className;
31
- className += props?.className ? " " + props?.className : "";
32
- return createElement(type, {
33
- ...propsToForward,
34
- className: className || undefined,
35
- ref,
36
- });
37
- });
38
- return WrappedComponent;
39
- };
40
- };
41
- export default classed;
1
+ import{createElement as t,forwardRef as e}from"react";export let classed=r=>{let s=r.type||r;return function(r,...a){return e(function(e,n){let o=a.map((t,s)=>{let a="";return"function"==typeof t?a=t(e):void 0!==t&&(a=t.toString()),r[s]+a}).join(""),l="string"==typeof s,i=l?{}:e;if(l)for(let t in e)t.startsWith("$")||(i[t]=e[t]);let c=o||r[0];return c=(c.match(/class="([^"]*)/)?.[1]||c)+(e?.className?" "+e?.className:""),t(s,{...i,className:c||void 0,ref:n})})}};export default classed;
@@ -1,38 +1 @@
1
- import { useState } from "react";
2
- import { getMediaQueryWidthResolvers, isUndefined, } from "@koine/utils";
3
- import { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
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
- };
38
- export default createUseMediaQueryWidth;
1
+ import{useState as e}from"react";import{getMediaQueryWidthResolvers as t,isUndefined as r}from"@koine/utils";import{useIsomorphicLayoutEffect as i}from"./useIsomorphicLayoutEffect";export let createUseMediaQueryWidth=n=>{let a=t(n);return function(t,n){let[o,s]=t.substring(1).split("-");r(s)&&(s=o),r(o)&&(o="min");let[d,m]=s.split("_"),u=a[o](d,m),[c,l]=e(r(n)?null:n);return i(()=>{let e=window.matchMedia(u),t=e=>{l(e.matches)};return(l(e.matches),e.addEventListener)?(e.addEventListener("change",t),()=>{e.removeEventListener("change",t)}):(e.addListener(t),()=>{e.removeListener(t)})},[u]),c}};export default createUseMediaQueryWidth;
@@ -1,9 +1 @@
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
- };
9
- export default extendComponent;
1
+ import{createElement as e}from"react";export let extendComponent=(t,o)=>Object.assign(o=>e(t,o),{...o,defaultProps:o});export default extendComponent;
package/forms/antispam.js CHANGED
@@ -1,29 +1 @@
1
- import { object } from "@kuus/yup";
2
- import { decode, encode, isUndefined } from "@koine/utils";
3
- export let encodeForm = (validationRules) => {
4
- const encoded = {};
5
- const encodedNames = {};
6
- for (const name in validationRules) {
7
- if (!name.startsWith("_")) {
8
- const encodedName = encode(name);
9
- encoded[encodedName] = validationRules[name];
10
- encodedNames[name] = encodedName;
11
- }
12
- }
13
- const encodedSchema = object(encoded).required();
14
- return { encodedSchema, encodedNames };
15
- };
16
- export let decodeForm = (formData) => {
17
- const json = {};
18
- for (const encodedName in formData) {
19
- const decodedName = decode(encodedName);
20
- if (encodedName.startsWith("_")) {
21
- json[encodedName.substring(1)] = formData[encodedName];
22
- }
23
- else if (!isUndefined(formData[encodedName]) &&
24
- formData[decodedName] === "") {
25
- json[decodedName] = formData[encodedName];
26
- }
27
- }
28
- return json;
29
- };
1
+ import{object as e}from"@kuus/yup";import{decode as t,encode as r,isUndefined as o}from"@koine/utils";export let encodeForm=t=>{let o={},i={};for(let e in t)if(!e.startsWith("_")){let l=r(e);o[l]=t[e],i[e]=l}return{encodedSchema:e(o).required(),encodedNames:i}};export let decodeForm=e=>{let r={};for(let i in e){let l=t(i);i.startsWith("_")?r[i.substring(1)]=e[i]:o(e[i])||""!==e[l]||(r[l]=e[i])}return r};
package/forms.js CHANGED
@@ -1 +1 @@
1
- export * from "./forms/antispam";
1
+ export*from"./forms/antispam";
package/index.js CHANGED
@@ -1,26 +1 @@
1
- export { classed } from "./classed";
2
- export { createUseMediaQueryWidth, } from "./createUseMediaQueryWidth";
3
- export { extendComponent, } from "./extendComponent";
4
- export { FaviconTags } from "./FaviconTags";
5
- export { mergeRefs } from "./mergeRefs";
6
- export { Meta } from "./Meta";
7
- export { NoJs } from "./NoJs";
8
- export { useAsyncFn, } from "./useAsyncFn";
9
- export { useFirstMountState } from "./useFirstMountState";
10
- export { useFixedOffset } from "./useFixedOffset";
11
- export { useFocus } from "./useFocus";
12
- export { useInterval } from "./useInterval";
13
- export { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect";
14
- export { useKeyUp } from "./useKeyUp";
15
- export { useMeasure, } from "./useMeasure";
16
- export { useMountedState } from "./useMountedState";
17
- export { useNavigateAway, } from "./useNavigateAway";
18
- export { usePrevious } from "./usePrevious";
19
- export { usePreviousRef } from "./usePreviousRef";
20
- export { useScrollPosition } from "./useScrollPosition";
21
- export { useScrollThreshold } from "./useScrollThreshold";
22
- export { useSmoothScroll } from "./useSmoothScroll";
23
- export { useSpinDelay } from "./useSpinDelay";
24
- export { useTraceUpdate } from "./useTraceUpdate";
25
- export { useUpdateEffect } from "./useUpdateEffect";
26
- export { useWindowSize } from "./useWindowSize";
1
+ export{classed}from"./classed";export{createUseMediaQueryWidth}from"./createUseMediaQueryWidth";export{extendComponent}from"./extendComponent";export{FaviconTags}from"./FaviconTags";export{mergeRefs}from"./mergeRefs";export{Meta}from"./Meta";export{NoJs}from"./NoJs";export{useAsyncFn}from"./useAsyncFn";export{useFirstMountState}from"./useFirstMountState";export{useFixedOffset}from"./useFixedOffset";export{useFocus}from"./useFocus";export{useInterval}from"./useInterval";export{useIsomorphicLayoutEffect}from"./useIsomorphicLayoutEffect";export{useKeyUp}from"./useKeyUp";export{useMeasure}from"./useMeasure";export{useMountedState}from"./useMountedState";export{useNavigateAway}from"./useNavigateAway";export{usePrevious}from"./usePrevious";export{usePreviousRef}from"./usePreviousRef";export{useScrollPosition}from"./useScrollPosition";export{useScrollThreshold}from"./useScrollThreshold";export{useSmoothScroll}from"./useSmoothScroll";export{useSpinDelay}from"./useSpinDelay";export{useTraceUpdate}from"./useTraceUpdate";export{useUpdateEffect}from"./useUpdateEffect";export{useWindowSize}from"./useWindowSize";
package/mergeRefs.js CHANGED
@@ -1,13 +1 @@
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
- };
13
- export default mergeRefs;
1
+ export let mergeRefs=e=>r=>{e.forEach(e=>{"function"==typeof e?e(r):null!=e&&(e.current=r)})};export default mergeRefs;
package/package.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "name": "@koine/react",
3
3
  "sideEffects": false,
4
4
  "dependencies": {
5
- "@koine/dom": "2.0.0-beta.75",
6
- "@koine/utils": "2.0.0-beta.75"
5
+ "@koine/dom": "2.0.0-beta.77",
6
+ "@koine/utils": "2.0.0-beta.77"
7
7
  },
8
8
  "peerDependencies": {
9
9
  "@kuus/yup": "1.0.0-beta.7",
@@ -25,265 +25,182 @@
25
25
  "optional": true
26
26
  }
27
27
  },
28
+ "module": "./index.js",
29
+ "type": "module",
30
+ "main": "./cjs/index.js",
28
31
  "exports": {
29
32
  ".": {
30
- "module": "./index.esm.js",
31
- "import": "./index.cjs.mjs",
32
- "default": "./index.cjs.js"
33
+ "require": "./cjs/index.js",
34
+ "import": "./index.js"
33
35
  },
34
36
  "./FaviconTags": {
37
+ "require": "./cjs/FaviconTags.js",
35
38
  "import": "./FaviconTags.js"
36
39
  },
37
40
  "./Meta": {
41
+ "require": "./cjs/Meta.js",
38
42
  "import": "./Meta.js"
39
43
  },
40
44
  "./NoJs": {
45
+ "require": "./cjs/NoJs.js",
41
46
  "import": "./NoJs.js"
42
47
  },
43
48
  "./Polymorphic": {
49
+ "require": "./cjs/Polymorphic.js",
44
50
  "import": "./Polymorphic.js"
45
51
  },
46
- "./calendar.cjs.default": {
47
- "import": "./calendar.cjs.default.js"
48
- },
49
- "./calendar.cjs": {
50
- "import": "./calendar.cjs.js"
51
- },
52
- "./calendar.esm": {
53
- "import": "./calendar.esm.js"
54
- },
55
52
  "./calendar": {
56
- "module": "./calendar.esm.js",
57
- "import": "./calendar.cjs.mjs",
58
- "default": "./calendar.cjs.js"
53
+ "require": "./cjs/calendar.js",
54
+ "import": "./calendar.js"
59
55
  },
60
56
  "./calendar/CalendarDaygridCell": {
57
+ "require": "./cjs/calendar/CalendarDaygridCell.js",
61
58
  "import": "./calendar/CalendarDaygridCell.js"
62
59
  },
63
60
  "./calendar/CalendarDaygridNav": {
61
+ "require": "./cjs/calendar/CalendarDaygridNav.js",
64
62
  "import": "./calendar/CalendarDaygridNav.js"
65
63
  },
66
64
  "./calendar/CalendarDaygridTable": {
65
+ "require": "./cjs/calendar/CalendarDaygridTable.js",
67
66
  "import": "./calendar/CalendarDaygridTable.js"
68
67
  },
69
68
  "./calendar/CalendarLegend": {
69
+ "require": "./cjs/calendar/CalendarLegend.js",
70
70
  "import": "./calendar/CalendarLegend.js"
71
71
  },
72
72
  "./calendar/calendar-api-google": {
73
+ "require": "./cjs/calendar/calendar-api-google.js",
73
74
  "import": "./calendar/calendar-api-google.js"
74
75
  },
75
76
  "./calendar/types": {
77
+ "require": "./cjs/calendar/types.js",
76
78
  "import": "./calendar/types.js"
77
79
  },
78
80
  "./calendar/useCalendar": {
81
+ "require": "./cjs/calendar/useCalendar.js",
79
82
  "import": "./calendar/useCalendar.js"
80
83
  },
81
84
  "./calendar/useDateLocale": {
85
+ "require": "./cjs/calendar/useDateLocale.js",
82
86
  "import": "./calendar/useDateLocale.js"
83
87
  },
84
88
  "./calendar/utils": {
89
+ "require": "./cjs/calendar/utils.js",
85
90
  "import": "./calendar/utils.js"
86
91
  },
87
92
  "./classed": {
93
+ "require": "./cjs/classed.js",
88
94
  "import": "./classed.js"
89
95
  },
90
- "./components/FaviconTags": {
91
- "import": "./components/FaviconTags.js"
92
- },
93
- "./components/Meta": {
94
- "import": "./components/Meta.js"
95
- },
96
- "./components/NoJs": {
97
- "import": "./components/NoJs.js"
98
- },
99
96
  "./createUseMediaQueryWidth": {
97
+ "require": "./cjs/createUseMediaQueryWidth.js",
100
98
  "import": "./createUseMediaQueryWidth.js"
101
99
  },
102
100
  "./extendComponent": {
101
+ "require": "./cjs/extendComponent.js",
103
102
  "import": "./extendComponent.js"
104
103
  },
105
- "./forms.cjs.default": {
106
- "import": "./forms.cjs.default.js"
107
- },
108
- "./forms.cjs": {
109
- "import": "./forms.cjs.js"
110
- },
111
- "./forms.esm": {
112
- "import": "./forms.esm.js"
113
- },
114
104
  "./forms": {
115
- "module": "./forms.esm.js",
116
- "import": "./forms.cjs.mjs",
117
- "default": "./forms.cjs.js"
105
+ "require": "./cjs/forms.js",
106
+ "import": "./forms.js"
118
107
  },
119
108
  "./forms/antispam": {
109
+ "require": "./cjs/forms/antispam.js",
120
110
  "import": "./forms/antispam.js"
121
111
  },
122
- "./hooks": {
123
- "import": "./hooks/index.js"
124
- },
125
- "./hooks/useAsyncFn": {
126
- "import": "./hooks/useAsyncFn.js"
127
- },
128
- "./hooks/useFirstMountState": {
129
- "import": "./hooks/useFirstMountState.js"
130
- },
131
- "./hooks/useFixedOffset": {
132
- "import": "./hooks/useFixedOffset.js"
133
- },
134
- "./hooks/useFocus": {
135
- "import": "./hooks/useFocus.js"
136
- },
137
- "./hooks/useInterval": {
138
- "import": "./hooks/useInterval.js"
139
- },
140
- "./hooks/useIsomorphicLayoutEffect": {
141
- "import": "./hooks/useIsomorphicLayoutEffect.js"
142
- },
143
- "./hooks/useKeyUp": {
144
- "import": "./hooks/useKeyUp.js"
145
- },
146
- "./hooks/useMeasure": {
147
- "import": "./hooks/useMeasure.js"
148
- },
149
- "./hooks/useMountedState": {
150
- "import": "./hooks/useMountedState.js"
151
- },
152
- "./hooks/useNavigateAway": {
153
- "import": "./hooks/useNavigateAway.js"
154
- },
155
- "./hooks/usePrevious": {
156
- "import": "./hooks/usePrevious.js"
157
- },
158
- "./hooks/usePreviousRef": {
159
- "import": "./hooks/usePreviousRef.js"
160
- },
161
- "./hooks/useReveal": {
162
- "import": "./hooks/useReveal.js"
163
- },
164
- "./hooks/useScrollPosition": {
165
- "import": "./hooks/useScrollPosition.js"
166
- },
167
- "./hooks/useScrollThreshold": {
168
- "import": "./hooks/useScrollThreshold.js"
169
- },
170
- "./hooks/useScrollTo": {
171
- "import": "./hooks/useScrollTo.js"
172
- },
173
- "./hooks/useSmoothScroll": {
174
- "import": "./hooks/useSmoothScroll.js"
175
- },
176
- "./hooks/useSpinDelay": {
177
- "import": "./hooks/useSpinDelay.js"
178
- },
179
- "./hooks/useTraceUpdate": {
180
- "import": "./hooks/useTraceUpdate.js"
181
- },
182
- "./hooks/useUpdateEffect": {
183
- "import": "./hooks/useUpdateEffect.js"
184
- },
185
- "./hooks/useWindowSize": {
186
- "import": "./hooks/useWindowSize.js"
187
- },
188
- "./index.cjs.default": {
189
- "import": "./index.cjs.default.js"
190
- },
191
- "./index.cjs": {
192
- "import": "./index.cjs.js"
193
- },
194
- "./index.esm": {
195
- "import": "./index.esm.js"
196
- },
197
112
  "./mergeRefs": {
113
+ "require": "./cjs/mergeRefs.js",
198
114
  "import": "./mergeRefs.js"
199
115
  },
200
116
  "./types": {
117
+ "require": "./cjs/types.js",
201
118
  "import": "./types.js"
202
119
  },
203
120
  "./useAsyncFn": {
121
+ "require": "./cjs/useAsyncFn.js",
204
122
  "import": "./useAsyncFn.js"
205
123
  },
206
124
  "./useFirstMountState": {
125
+ "require": "./cjs/useFirstMountState.js",
207
126
  "import": "./useFirstMountState.js"
208
127
  },
209
128
  "./useFixedOffset": {
129
+ "require": "./cjs/useFixedOffset.js",
210
130
  "import": "./useFixedOffset.js"
211
131
  },
212
132
  "./useFocus": {
133
+ "require": "./cjs/useFocus.js",
213
134
  "import": "./useFocus.js"
214
135
  },
215
136
  "./useInterval": {
137
+ "require": "./cjs/useInterval.js",
216
138
  "import": "./useInterval.js"
217
139
  },
218
140
  "./useIsomorphicLayoutEffect": {
141
+ "require": "./cjs/useIsomorphicLayoutEffect.js",
219
142
  "import": "./useIsomorphicLayoutEffect.js"
220
143
  },
221
144
  "./useKeyUp": {
145
+ "require": "./cjs/useKeyUp.js",
222
146
  "import": "./useKeyUp.js"
223
147
  },
224
148
  "./useMeasure": {
149
+ "require": "./cjs/useMeasure.js",
225
150
  "import": "./useMeasure.js"
226
151
  },
227
152
  "./useMountedState": {
153
+ "require": "./cjs/useMountedState.js",
228
154
  "import": "./useMountedState.js"
229
155
  },
230
156
  "./useNavigateAway": {
157
+ "require": "./cjs/useNavigateAway.js",
231
158
  "import": "./useNavigateAway.js"
232
159
  },
233
160
  "./usePrevious": {
161
+ "require": "./cjs/usePrevious.js",
234
162
  "import": "./usePrevious.js"
235
163
  },
236
164
  "./usePreviousRef": {
165
+ "require": "./cjs/usePreviousRef.js",
237
166
  "import": "./usePreviousRef.js"
238
167
  },
239
168
  "./useReveal": {
169
+ "require": "./cjs/useReveal.js",
240
170
  "import": "./useReveal.js"
241
171
  },
242
172
  "./useScrollPosition": {
173
+ "require": "./cjs/useScrollPosition.js",
243
174
  "import": "./useScrollPosition.js"
244
175
  },
245
176
  "./useScrollThreshold": {
177
+ "require": "./cjs/useScrollThreshold.js",
246
178
  "import": "./useScrollThreshold.js"
247
179
  },
248
180
  "./useScrollTo": {
181
+ "require": "./cjs/useScrollTo.js",
249
182
  "import": "./useScrollTo.js"
250
183
  },
251
184
  "./useSmoothScroll": {
185
+ "require": "./cjs/useSmoothScroll.js",
252
186
  "import": "./useSmoothScroll.js"
253
187
  },
254
188
  "./useSpinDelay": {
189
+ "require": "./cjs/useSpinDelay.js",
255
190
  "import": "./useSpinDelay.js"
256
191
  },
257
192
  "./useTraceUpdate": {
193
+ "require": "./cjs/useTraceUpdate.js",
258
194
  "import": "./useTraceUpdate.js"
259
195
  },
260
196
  "./useUpdateEffect": {
197
+ "require": "./cjs/useUpdateEffect.js",
261
198
  "import": "./useUpdateEffect.js"
262
199
  },
263
200
  "./useWindowSize": {
201
+ "require": "./cjs/useWindowSize.js",
264
202
  "import": "./useWindowSize.js"
265
- },
266
- "./utils/Polymorphic": {
267
- "import": "./utils/Polymorphic.js"
268
- },
269
- "./utils/classed": {
270
- "import": "./utils/classed.js"
271
- },
272
- "./utils/createUseMediaQueryWidth": {
273
- "import": "./utils/createUseMediaQueryWidth.js"
274
- },
275
- "./utils/extendComponent": {
276
- "import": "./utils/extendComponent.js"
277
- },
278
- "./utils": {
279
- "import": "./utils/index.js"
280
- },
281
- "./utils/mergeRefs": {
282
- "import": "./utils/mergeRefs.js"
283
- },
284
- "./package.json": "./package.json"
203
+ }
285
204
  },
286
- "module": "./index.esm.js",
287
- "main": "./index.cjs.js",
288
- "version": "2.0.0-beta.75"
205
+ "version": "2.0.0-beta.77"
289
206
  }
package/types.js CHANGED
@@ -1 +1 @@
1
- export {};
1
+ export{};
package/useAsyncFn.js CHANGED
@@ -1,26 +1 @@
1
- import React, { useCallback, useRef, useState } from "react";
2
- import { useMountedState } from "./useMountedState";
3
- export let useAsyncFn = (fn, deps = [], initialState = { loading: false }) => {
4
- const lastCallId = useRef(0);
5
- const isMounted = useMountedState();
6
- const [state, set] = useState(initialState);
7
- const callback = useCallback((...args) => {
8
- const callId = ++lastCallId.current;
9
- if (!state.loading) {
10
- set((prevState) => ({ ...prevState, loading: true }));
11
- }
12
- return fn(...args).then((value) => {
13
- isMounted() &&
14
- callId === lastCallId.current &&
15
- set({ value, loading: false });
16
- return value;
17
- }, (error) => {
18
- isMounted() &&
19
- callId === lastCallId.current &&
20
- set({ error, loading: false });
21
- return error;
22
- });
23
- }, deps);
24
- return [state, callback];
25
- };
26
- export default useAsyncFn;
1
+ import{useCallback as e,useRef as t,useState as r}from"react";import{useMountedState as n}from"./useMountedState";export let useAsyncFn=(o,u=[],l={loading:!1})=>{let a=t(0),d=n(),[i,c]=r(l),g=e((...e)=>{let t=++a.current;return i.loading||c(e=>({...e,loading:!0})),o(...e).then(e=>(d()&&t===a.current&&c({value:e,loading:!1}),e),e=>(d()&&t===a.current&&c({error:e,loading:!1}),e))},u);return[i,g]};export default useAsyncFn;
@@ -1,10 +1 @@
1
- import { useRef } from "react";
2
- export let useFirstMountState = () => {
3
- const isFirst = useRef(true);
4
- if (isFirst.current) {
5
- isFirst.current = false;
6
- return true;
7
- }
8
- return isFirst.current;
9
- };
10
- export default useFirstMountState;
1
+ import{useRef as t}from"react";export let useFirstMountState=()=>{let r=t(!0);return r.current?(r.current=!1,!0):r.current};export default useFirstMountState;