@koine/react 2.0.0-beta.80 → 2.0.0-beta.82

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 (63) hide show
  1. package/FaviconTags.cjs.js +1 -3
  2. package/FaviconTags.esm.js +1 -3
  3. package/Meta.cjs.js +1 -3
  4. package/Meta.esm.js +1 -3
  5. package/NoJs.cjs.js +1 -5
  6. package/NoJs.esm.js +1 -5
  7. package/calendar.cjs.js +8 -534
  8. package/calendar.esm.js +8 -534
  9. package/classed.cjs.js +1 -39
  10. package/classed.esm.js +1 -39
  11. package/createUseMediaQueryWidth.cjs.js +1 -34
  12. package/createUseMediaQueryWidth.d.ts +1 -1
  13. package/createUseMediaQueryWidth.esm.js +1 -34
  14. package/extendComponent.cjs.js +1 -7
  15. package/extendComponent.d.ts +1 -1
  16. package/extendComponent.esm.js +1 -7
  17. package/forms/antispam.d.ts +1 -1
  18. package/forms.cjs.js +1 -27
  19. package/forms.esm.js +1 -27
  20. package/mergeRefs.cjs.js +1 -12
  21. package/mergeRefs.d.ts +1 -1
  22. package/mergeRefs.esm.js +1 -12
  23. package/package.json +3 -3
  24. package/useAsyncFn.cjs.js +1 -23
  25. package/useAsyncFn.esm.js +1 -23
  26. package/useFirstMountState.cjs.js +1 -8
  27. package/useFirstMountState.esm.js +1 -8
  28. package/useFixedOffset.cjs.js +1 -37
  29. package/useFixedOffset.esm.js +2 -38
  30. package/useFocus.cjs.js +1 -7
  31. package/useFocus.esm.js +1 -7
  32. package/useInterval.cjs.js +1 -17
  33. package/useInterval.esm.js +1 -17
  34. package/useIsomorphicLayoutEffect.cjs.js +1 -1
  35. package/useIsomorphicLayoutEffect.esm.js +1 -1
  36. package/useKeyUp.cjs.js +1 -13
  37. package/useKeyUp.esm.js +1 -13
  38. package/useMeasure.cjs.js +1 -115
  39. package/useMeasure.esm.js +1 -115
  40. package/useMountedState.cjs.js +1 -11
  41. package/useMountedState.esm.js +1 -11
  42. package/useNavigateAway.cjs.js +1 -22
  43. package/useNavigateAway.esm.js +1 -22
  44. package/usePrevious.cjs.js +1 -7
  45. package/usePrevious.esm.js +1 -7
  46. package/usePreviousRef.cjs.js +1 -7
  47. package/usePreviousRef.esm.js +1 -7
  48. package/useScrollPosition.cjs.js +1 -53
  49. package/useScrollPosition.esm.js +1 -53
  50. package/useScrollThreshold.cjs.js +1 -22
  51. package/useScrollThreshold.esm.js +1 -22
  52. package/useScrollTo.cjs.js +1 -16
  53. package/useScrollTo.esm.js +1 -16
  54. package/useSmoothScroll.cjs.js +1 -27
  55. package/useSmoothScroll.esm.js +1 -27
  56. package/useSpinDelay.cjs.js +1 -34
  57. package/useSpinDelay.esm.js +1 -34
  58. package/useTraceUpdate.cjs.js +1 -15
  59. package/useTraceUpdate.esm.js +1 -15
  60. package/useUpdateEffect.cjs.js +1 -8
  61. package/useUpdateEffect.esm.js +1 -8
  62. package/useWindowSize.cjs.js +1 -17
  63. package/useWindowSize.esm.js +1 -17
@@ -6,40 +6,7 @@ var react = require('react');
6
6
  var utils = require('@koine/utils');
7
7
  var useIsomorphicLayoutEffect = require('./useIsomorphicLayoutEffect.cjs.js');
8
8
 
9
- let createUseMediaQueryWidth = (customBreakpoints) => {
10
- const queryResolvers = utils.getMediaQueryWidthResolvers(customBreakpoints);
11
- return function useMediaQueryWidth(media, serverValue) {
12
- const definition = media.substring(1);
13
- let [rule, ruleBreakpoint] = definition.split("-");
14
- if (utils.isUndefined(ruleBreakpoint)) {
15
- ruleBreakpoint = rule;
16
- }
17
- if (utils.isUndefined(rule)) {
18
- rule = "min";
19
- }
20
- const [br1, br2] = ruleBreakpoint.split("_");
21
- const query = queryResolvers[rule](br1, br2);
22
- const [matches, setMatches] = react.useState(utils.isUndefined(serverValue) ? null : serverValue);
23
- useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
24
- const mq = window.matchMedia(query);
25
- const handleChange = (event) => {
26
- setMatches(event.matches);
27
- };
28
- setMatches(mq.matches);
29
- if (!mq.addEventListener) {
30
- mq.addListener(handleChange);
31
- return () => {
32
- mq.removeListener(handleChange);
33
- };
34
- }
35
- mq.addEventListener("change", handleChange);
36
- return () => {
37
- mq.removeEventListener("change", handleChange);
38
- };
39
- }, [query]);
40
- return matches;
41
- };
42
- };
9
+ let createUseMediaQueryWidth=n=>{let a=utils.getMediaQueryWidthResolvers(n);return function(t,n){let[o,s]=t.substring(1).split("-");utils.isUndefined(s)&&(s=o),utils.isUndefined(o)&&(o="min");let[d,m]=s.split("_"),u=a[o](d,m),[c,l]=react.useState(utils.isUndefined(n)?null:n);return useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(()=>{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}};
43
10
 
44
11
  exports.createUseMediaQueryWidth = createUseMediaQueryWidth;
45
12
  exports["default"] = createUseMediaQueryWidth;
@@ -2,5 +2,5 @@ import { type GetMediaQueryWidthResolversBreakpoints } from "@koine/utils";
2
2
  type _MediaQuerWidthDefExplicit<TBreakpoint extends string> = `min-${TBreakpoint}` | `max-${TBreakpoint}` | `up-${TBreakpoint}` | `down-${TBreakpoint}` | `between-${TBreakpoint}_${TBreakpoint}` | `only-${TBreakpoint}`;
3
3
  export type MediaQuerWidthDef<TBreakpoint extends string> = `${TBreakpoint}` | _MediaQuerWidthDefExplicit<TBreakpoint>;
4
4
  export type MediaQueryWidth<TBreakpoint extends string> = `@${MediaQuerWidthDef<TBreakpoint>}`;
5
- export declare let createUseMediaQueryWidth: <TBreakpointsConfig extends GetMediaQueryWidthResolversBreakpoints>(customBreakpoints: TBreakpointsConfig) => <TBreakpoints extends Extract<keyof TBreakpointsConfig, string>>(media: `@${TBreakpoints}` | `@min-${TBreakpoints}` | `@max-${TBreakpoints}` | `@up-${TBreakpoints}` | `@down-${TBreakpoints}` | `@between-${TBreakpoints}_${TBreakpoints}` | `@only-${TBreakpoints}`, serverValue?: null | boolean) => boolean | null;
5
+ export declare let createUseMediaQueryWidth: <TBreakpointsConfig extends GetMediaQueryWidthResolversBreakpoints>(customBreakpoints: TBreakpointsConfig) => <TBreakpoints extends Extract<keyof TBreakpointsConfig, string>>(media: MediaQueryWidth<TBreakpoints>, serverValue?: null | boolean) => boolean | null;
6
6
  export default createUseMediaQueryWidth;
@@ -2,39 +2,6 @@ import { useState } from 'react';
2
2
  import { getMediaQueryWidthResolvers, isUndefined } from '@koine/utils';
3
3
  import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.esm.js';
4
4
 
5
- let createUseMediaQueryWidth = (customBreakpoints) => {
6
- const queryResolvers = getMediaQueryWidthResolvers(customBreakpoints);
7
- return function useMediaQueryWidth(media, serverValue) {
8
- const definition = media.substring(1);
9
- let [rule, ruleBreakpoint] = definition.split("-");
10
- if (isUndefined(ruleBreakpoint)) {
11
- ruleBreakpoint = rule;
12
- }
13
- if (isUndefined(rule)) {
14
- rule = "min";
15
- }
16
- const [br1, br2] = ruleBreakpoint.split("_");
17
- const query = queryResolvers[rule](br1, br2);
18
- const [matches, setMatches] = useState(isUndefined(serverValue) ? null : serverValue);
19
- useIsomorphicLayoutEffect(() => {
20
- const mq = window.matchMedia(query);
21
- const handleChange = (event) => {
22
- setMatches(event.matches);
23
- };
24
- setMatches(mq.matches);
25
- if (!mq.addEventListener) {
26
- mq.addListener(handleChange);
27
- return () => {
28
- mq.removeListener(handleChange);
29
- };
30
- }
31
- mq.addEventListener("change", handleChange);
32
- return () => {
33
- mq.removeEventListener("change", handleChange);
34
- };
35
- }, [query]);
36
- return matches;
37
- };
38
- };
5
+ let createUseMediaQueryWidth=n=>{let a=getMediaQueryWidthResolvers(n);return function(t,n){let[o,s]=t.substring(1).split("-");isUndefined(s)&&(s=o),isUndefined(o)&&(o="min");let[d,m]=s.split("_"),u=a[o](d,m),[c,l]=useState(isUndefined(n)?null:n);return useIsomorphicLayoutEffect(()=>{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}};
39
6
 
40
7
  export { createUseMediaQueryWidth, createUseMediaQueryWidth as default };
@@ -4,13 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var react = require('react');
6
6
 
7
- let extendComponent = (component, defaultProps) => {
8
- const NewComponent = (props) => react.createElement(component, props);
9
- return Object.assign(NewComponent, {
10
- ...defaultProps,
11
- defaultProps,
12
- });
13
- };
7
+ let extendComponent=(t,o)=>Object.assign(o=>react.createElement(t,o),{...o,defaultProps:o});
14
8
 
15
9
  exports["default"] = extendComponent;
16
10
  exports.extendComponent = extendComponent;
@@ -1,5 +1,5 @@
1
1
  export type ExtendableComponent<Props = any> = React.ForwardRefExoticComponent<Props> | React.ExoticComponent<Props> | React.FC<Props> | ((props: Props) => JSX.Element);
2
- export declare let extendComponent: <Component extends ExtendableComponent<any>, DefaultProps extends {}>(component: Component, defaultProps: DefaultProps) => ((props: import("react").ComponentProps<Component>) => import("react").FunctionComponentElement<any>) & DefaultProps & {
2
+ export declare let extendComponent: <Component extends ExtendableComponent<any>, DefaultProps extends {}>(component: Component, defaultProps: DefaultProps) => ((props: React.ComponentProps<Component>) => import("react").FunctionComponentElement<any>) & DefaultProps & {
3
3
  defaultProps: DefaultProps;
4
4
  };
5
5
  export interface OverridableComponents {
@@ -1,11 +1,5 @@
1
1
  import { createElement } from 'react';
2
2
 
3
- let extendComponent = (component, defaultProps) => {
4
- const NewComponent = (props) => createElement(component, props);
5
- return Object.assign(NewComponent, {
6
- ...defaultProps,
7
- defaultProps,
8
- });
9
- };
3
+ let extendComponent=(t,o)=>Object.assign(o=>createElement(t,o),{...o,defaultProps:o});
10
4
 
11
5
  export { extendComponent as default, extendComponent };
@@ -24,4 +24,4 @@ export declare let encodeForm: <T extends ObjectShape = {}>(validationRules: T)
24
24
  }, "">;
25
25
  encodedNames: Record<keyof T, string>;
26
26
  };
27
- export declare let decodeForm: <ReturnAs extends Record<string, unknown> = {}, FormData_1 extends Record<string, unknown> = {}>(formData: FormData_1) => ReturnAs;
27
+ export declare let decodeForm: <ReturnAs extends Record<string, unknown> = {}, FormData extends Record<string, unknown> = {}>(formData: FormData) => ReturnAs;
package/forms.cjs.js CHANGED
@@ -5,33 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var yup = require('@kuus/yup');
6
6
  var utils = require('@koine/utils');
7
7
 
8
- let encodeForm = (validationRules) => {
9
- const encoded = {};
10
- const encodedNames = {};
11
- for (const name in validationRules) {
12
- if (!name.startsWith("_")) {
13
- const encodedName = utils.encode(name);
14
- encoded[encodedName] = validationRules[name];
15
- encodedNames[name] = encodedName;
16
- }
17
- }
18
- const encodedSchema = yup.object(encoded).required();
19
- return { encodedSchema, encodedNames };
20
- };
21
- let decodeForm = (formData) => {
22
- const json = {};
23
- for (const encodedName in formData) {
24
- const decodedName = utils.decode(encodedName);
25
- if (encodedName.startsWith("_")) {
26
- json[encodedName.substring(1)] = formData[encodedName];
27
- }
28
- else if (!utils.isUndefined(formData[encodedName]) &&
29
- formData[decodedName] === "") {
30
- json[decodedName] = formData[encodedName];
31
- }
32
- }
33
- return json;
34
- };
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};
35
9
 
36
10
  exports.decodeForm = decodeForm;
37
11
  exports.encodeForm = encodeForm;
package/forms.esm.js CHANGED
@@ -1,32 +1,6 @@
1
1
  import { object } from '@kuus/yup';
2
2
  import { encode, decode, isUndefined } from '@koine/utils';
3
3
 
4
- let encodeForm = (validationRules) => {
5
- const encoded = {};
6
- const encodedNames = {};
7
- for (const name in validationRules) {
8
- if (!name.startsWith("_")) {
9
- const encodedName = encode(name);
10
- encoded[encodedName] = validationRules[name];
11
- encodedNames[name] = encodedName;
12
- }
13
- }
14
- const encodedSchema = object(encoded).required();
15
- return { encodedSchema, encodedNames };
16
- };
17
- let decodeForm = (formData) => {
18
- const json = {};
19
- for (const encodedName in formData) {
20
- const decodedName = decode(encodedName);
21
- if (encodedName.startsWith("_")) {
22
- json[encodedName.substring(1)] = formData[encodedName];
23
- }
24
- else if (!isUndefined(formData[encodedName]) &&
25
- formData[decodedName] === "") {
26
- json[decodedName] = formData[encodedName];
27
- }
28
- }
29
- return json;
30
- };
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};
31
5
 
32
6
  export { decodeForm, encodeForm };
package/mergeRefs.cjs.js CHANGED
@@ -2,18 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- let mergeRefs = (refs) => {
6
- return (value) => {
7
- refs.forEach((ref) => {
8
- if (typeof ref === "function") {
9
- ref(value);
10
- }
11
- else if (ref != null) {
12
- ref.current = value;
13
- }
14
- });
15
- };
16
- };
5
+ let mergeRefs=e=>r=>{e.forEach(e=>{"function"==typeof e?e(r):null!=e&&(e.current=r);});};
17
6
 
18
7
  exports["default"] = mergeRefs;
19
8
  exports.mergeRefs = mergeRefs;
package/mergeRefs.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare let mergeRefs: <T = Element>(refs: (import("react").MutableRefObject<T> | import("react").LegacyRef<T>)[]) => (instance: T | null) => void;
1
+ export declare let mergeRefs: <T = Element>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>) => React.RefCallback<T>;
2
2
  export default mergeRefs;
package/mergeRefs.esm.js CHANGED
@@ -1,14 +1,3 @@
1
- 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
- };
1
+ let mergeRefs=e=>r=>{e.forEach(e=>{"function"==typeof e?e(r):null!=e&&(e.current=r);});};
13
2
 
14
3
  export { mergeRefs as 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.80",
6
- "@koine/utils": "2.0.0-beta.80"
5
+ "@koine/dom": "2.0.0-beta.82",
6
+ "@koine/utils": "2.0.0-beta.82"
7
7
  },
8
8
  "peerDependencies": {
9
9
  "@kuus/yup": "1.0.0-beta.7",
@@ -190,5 +190,5 @@
190
190
  },
191
191
  "module": "./index.esm.js",
192
192
  "main": "./index.cjs.js",
193
- "version": "2.0.0-beta.80"
193
+ "version": "2.0.0-beta.82"
194
194
  }
package/useAsyncFn.cjs.js CHANGED
@@ -5,29 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var react = require('react');
6
6
  var useMountedState = require('./useMountedState.cjs.js');
7
7
 
8
- let useAsyncFn = (fn, deps = [], initialState = { loading: false }) => {
9
- const lastCallId = react.useRef(0);
10
- const isMounted = useMountedState.useMountedState();
11
- const [state, set] = react.useState(initialState);
12
- const callback = react.useCallback((...args) => {
13
- const callId = ++lastCallId.current;
14
- if (!state.loading) {
15
- set((prevState) => ({ ...prevState, loading: true }));
16
- }
17
- return fn(...args).then((value) => {
18
- isMounted() &&
19
- callId === lastCallId.current &&
20
- set({ value, loading: false });
21
- return value;
22
- }, (error) => {
23
- isMounted() &&
24
- callId === lastCallId.current &&
25
- set({ error, loading: false });
26
- return error;
27
- });
28
- }, deps);
29
- return [state, callback];
30
- };
8
+ let useAsyncFn=(o,u=[],l={loading:!1})=>{let a=react.useRef(0),d=useMountedState.useMountedState(),[i,c]=react.useState(l),g=react.useCallback((...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]};
31
9
 
32
10
  exports["default"] = useAsyncFn;
33
11
  exports.useAsyncFn = useAsyncFn;
package/useAsyncFn.esm.js CHANGED
@@ -1,28 +1,6 @@
1
1
  import { useRef, useState, useCallback } from 'react';
2
2
  import { useMountedState } from './useMountedState.esm.js';
3
3
 
4
- let useAsyncFn = (fn, deps = [], initialState = { loading: false }) => {
5
- const lastCallId = useRef(0);
6
- const isMounted = useMountedState();
7
- const [state, set] = useState(initialState);
8
- const callback = useCallback((...args) => {
9
- const callId = ++lastCallId.current;
10
- if (!state.loading) {
11
- set((prevState) => ({ ...prevState, loading: true }));
12
- }
13
- return fn(...args).then((value) => {
14
- isMounted() &&
15
- callId === lastCallId.current &&
16
- set({ value, loading: false });
17
- return value;
18
- }, (error) => {
19
- isMounted() &&
20
- callId === lastCallId.current &&
21
- set({ error, loading: false });
22
- return error;
23
- });
24
- }, deps);
25
- return [state, callback];
26
- };
4
+ let useAsyncFn=(o,u=[],l={loading:!1})=>{let a=useRef(0),d=useMountedState(),[i,c]=useState(l),g=useCallback((...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]};
27
5
 
28
6
  export { useAsyncFn as default, useAsyncFn };
@@ -4,14 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var react = require('react');
6
6
 
7
- let useFirstMountState = () => {
8
- const isFirst = react.useRef(true);
9
- if (isFirst.current) {
10
- isFirst.current = false;
11
- return true;
12
- }
13
- return isFirst.current;
14
- };
7
+ let useFirstMountState=()=>{let r=react.useRef(!0);return r.current?(r.current=!1,!0):r.current};
15
8
 
16
9
  exports["default"] = useFirstMountState;
17
10
  exports.useFirstMountState = useFirstMountState;
@@ -1,12 +1,5 @@
1
1
  import { useRef } from 'react';
2
2
 
3
- let useFirstMountState = () => {
4
- const isFirst = useRef(true);
5
- if (isFirst.current) {
6
- isFirst.current = false;
7
- return true;
8
- }
9
- return isFirst.current;
10
- };
3
+ let useFirstMountState=()=>{let r=useRef(!0);return r.current?(r.current=!1,!0):r.current};
11
4
 
12
5
  export { useFirstMountState as default, useFirstMountState };
@@ -7,43 +7,7 @@ var utils = require('@koine/utils');
7
7
  var dom = require('@koine/dom');
8
8
  var useIsomorphicLayoutEffect = require('./useIsomorphicLayoutEffect.cjs.js');
9
9
 
10
- const inject = (value) => {
11
- dom.injectCss("useFixedOffset", `html{scroll-padding-top: ${value}px}`);
12
- };
13
- let useFixedOffset = (selector) => {
14
- const fixedOffset = react.useRef(0);
15
- useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
16
- const update = () => {
17
- const newFixedOffset = dom.calculateFixedOffset();
18
- fixedOffset.current = newFixedOffset;
19
- inject(newFixedOffset);
20
- };
21
- update();
22
- if (ResizeObserver) {
23
- const observer = new ResizeObserver((entries) => {
24
- let newFixedOffset = 0;
25
- entries.forEach((entry) => {
26
- newFixedOffset += entry.contentRect.height;
27
- });
28
- fixedOffset.current = newFixedOffset;
29
- const updateOnResize = utils.debounce(() => inject(newFixedOffset), 400, true);
30
- updateOnResize();
31
- });
32
- dom.domEach(selector || "[data-fixed]", ($el) => {
33
- if (observer)
34
- observer.observe($el);
35
- });
36
- return () => {
37
- observer?.disconnect();
38
- };
39
- }
40
- else {
41
- const listener = dom.listenResizeDebounced(0, update);
42
- return listener;
43
- }
44
- }, [selector]);
45
- return fixedOffset;
46
- };
10
+ let n=e=>{dom.injectCss("useFixedOffset",`html{scroll-padding-top: ${e}px}`);};let useFixedOffset=i=>{let l=react.useRef(0);return useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(()=>{let e=()=>{let e=dom.calculateFixedOffset();l.current=e,n(e);};if(e(),!ResizeObserver)return dom.listenResizeDebounced(0,e);{let e=new ResizeObserver(e=>{let r=0;e.forEach(e=>{r+=e.contentRect.height;}),l.current=r,utils.debounce(()=>n(r),400,!0)();});return dom.domEach(i||"[data-fixed]",t=>{e&&e.observe(t);}),()=>{e?.disconnect();}}},[i]),l};
47
11
 
48
12
  exports["default"] = useFixedOffset;
49
13
  exports.useFixedOffset = useFixedOffset;
@@ -1,44 +1,8 @@
1
1
  import { useRef } from 'react';
2
2
  import { debounce } from '@koine/utils';
3
- import { domEach, listenResizeDebounced, calculateFixedOffset, injectCss } from '@koine/dom';
3
+ import { listenResizeDebounced, domEach, calculateFixedOffset, injectCss } from '@koine/dom';
4
4
  import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.esm.js';
5
5
 
6
- const inject = (value) => {
7
- injectCss("useFixedOffset", `html{scroll-padding-top: ${value}px}`);
8
- };
9
- let useFixedOffset = (selector) => {
10
- const fixedOffset = useRef(0);
11
- useIsomorphicLayoutEffect(() => {
12
- const update = () => {
13
- const newFixedOffset = calculateFixedOffset();
14
- fixedOffset.current = newFixedOffset;
15
- inject(newFixedOffset);
16
- };
17
- update();
18
- if (ResizeObserver) {
19
- const observer = new ResizeObserver((entries) => {
20
- let newFixedOffset = 0;
21
- entries.forEach((entry) => {
22
- newFixedOffset += entry.contentRect.height;
23
- });
24
- fixedOffset.current = newFixedOffset;
25
- const updateOnResize = debounce(() => inject(newFixedOffset), 400, true);
26
- updateOnResize();
27
- });
28
- domEach(selector || "[data-fixed]", ($el) => {
29
- if (observer)
30
- observer.observe($el);
31
- });
32
- return () => {
33
- observer?.disconnect();
34
- };
35
- }
36
- else {
37
- const listener = listenResizeDebounced(0, update);
38
- return listener;
39
- }
40
- }, [selector]);
41
- return fixedOffset;
42
- };
6
+ let n=e=>{injectCss("useFixedOffset",`html{scroll-padding-top: ${e}px}`);};let useFixedOffset=i=>{let l=useRef(0);return useIsomorphicLayoutEffect(()=>{let e=()=>{let e=calculateFixedOffset();l.current=e,n(e);};if(e(),!ResizeObserver)return listenResizeDebounced(0,e);{let e=new ResizeObserver(e=>{let r=0;e.forEach(e=>{r+=e.contentRect.height;}),l.current=r,debounce(()=>n(r),400,!0)();});return domEach(i||"[data-fixed]",t=>{e&&e.observe(t);}),()=>{e?.disconnect();}}},[i]),l};
43
7
 
44
8
  export { useFixedOffset as default, useFixedOffset };
package/useFocus.cjs.js CHANGED
@@ -4,13 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var react = require('react');
6
6
 
7
- let useFocus = () => {
8
- const elementRef = react.useRef(null);
9
- const setFocus = () => {
10
- elementRef.current && elementRef.current.focus();
11
- };
12
- return [elementRef, setFocus];
13
- };
7
+ let useFocus=()=>{let r=react.useRef(null);return [r,()=>{r.current&&r.current.focus();}]};
14
8
 
15
9
  exports["default"] = useFocus;
16
10
  exports.useFocus = useFocus;
package/useFocus.esm.js CHANGED
@@ -1,11 +1,5 @@
1
1
  import { useRef } from 'react';
2
2
 
3
- let useFocus = () => {
4
- const elementRef = useRef(null);
5
- const setFocus = () => {
6
- elementRef.current && elementRef.current.focus();
7
- };
8
- return [elementRef, setFocus];
9
- };
3
+ let useFocus=()=>{let r=useRef(null);return [r,()=>{r.current&&r.current.focus();}]};
10
4
 
11
5
  export { useFocus as default, useFocus };
@@ -5,23 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var react = require('react');
6
6
  var utils = require('@koine/utils');
7
7
 
8
- let useInterval = (callback, delay, deps = []) => {
9
- const savedCallback = react.useRef();
10
- react.useEffect(() => {
11
- savedCallback.current = callback;
12
- }, [callback, ...deps]);
13
- react.useEffect(() => {
14
- function tick() {
15
- if (savedCallback.current)
16
- savedCallback.current();
17
- }
18
- if (delay !== null) {
19
- const id = setInterval(tick, delay);
20
- return () => clearInterval(id);
21
- }
22
- return utils.noop;
23
- }, [delay]);
24
- };
8
+ let useInterval=(n,l,u=[])=>{let o=react.useRef();react.useEffect(()=>{o.current=n;},[n,...u]),react.useEffect(()=>{if(null!==l){let r=setInterval(function(){o.current&&o.current();},l);return ()=>clearInterval(r)}return utils.noop},[l]);};
25
9
 
26
10
  exports["default"] = useInterval;
27
11
  exports.useInterval = useInterval;
@@ -1,22 +1,6 @@
1
1
  import { useRef, useEffect } from 'react';
2
2
  import { noop } from '@koine/utils';
3
3
 
4
- let useInterval = (callback, delay, deps = []) => {
5
- const savedCallback = useRef();
6
- useEffect(() => {
7
- savedCallback.current = callback;
8
- }, [callback, ...deps]);
9
- useEffect(() => {
10
- function tick() {
11
- if (savedCallback.current)
12
- savedCallback.current();
13
- }
14
- if (delay !== null) {
15
- const id = setInterval(tick, delay);
16
- return () => clearInterval(id);
17
- }
18
- return noop;
19
- }, [delay]);
20
- };
4
+ let useInterval=(n,l,u=[])=>{let o=useRef();useEffect(()=>{o.current=n;},[n,...u]),useEffect(()=>{if(null!==l){let r=setInterval(function(){o.current&&o.current();},l);return ()=>clearInterval(r)}return noop},[l]);};
21
5
 
22
6
  export { useInterval as default, useInterval };
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var react = require('react');
6
6
  var utils = require('@koine/utils');
7
7
 
8
- let useIsomorphicLayoutEffect = utils.isBrowser ? react.useLayoutEffect : react.useEffect;
8
+ let useIsomorphicLayoutEffect=utils.isBrowser?react.useLayoutEffect:react.useEffect;
9
9
 
10
10
  exports["default"] = useIsomorphicLayoutEffect;
11
11
  exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
@@ -1,6 +1,6 @@
1
1
  import { useLayoutEffect, useEffect } from 'react';
2
2
  import { isBrowser } from '@koine/utils';
3
3
 
4
- let useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
4
+ let useIsomorphicLayoutEffect=isBrowser?useLayoutEffect:useEffect;
5
5
 
6
6
  export { useIsomorphicLayoutEffect as default, useIsomorphicLayoutEffect };
package/useKeyUp.cjs.js CHANGED
@@ -5,19 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var react = require('react');
6
6
  var dom = require('@koine/dom');
7
7
 
8
- let useKeyUp = (callback, deps = []) => {
9
- react.useEffect(() => {
10
- const listener = dom.on(window, "keyup", (event) => {
11
- if (!event.ctrlKey &&
12
- !event.altKey &&
13
- !event.shiftKey &&
14
- !event.metaKey) {
15
- callback(event);
16
- }
17
- });
18
- return listener;
19
- }, [callback, ...deps]);
20
- };
8
+ let useKeyUp=(o,r=[])=>{react.useEffect(()=>dom.on(window,"keyup",e=>{e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||o(e);}),[o,...r]);};
21
9
 
22
10
  exports["default"] = useKeyUp;
23
11
  exports.useKeyUp = useKeyUp;
package/useKeyUp.esm.js CHANGED
@@ -1,18 +1,6 @@
1
1
  import { useEffect } from 'react';
2
2
  import { on } from '@koine/dom';
3
3
 
4
- let useKeyUp = (callback, deps = []) => {
5
- useEffect(() => {
6
- const listener = on(window, "keyup", (event) => {
7
- if (!event.ctrlKey &&
8
- !event.altKey &&
9
- !event.shiftKey &&
10
- !event.metaKey) {
11
- callback(event);
12
- }
13
- });
14
- return listener;
15
- }, [callback, ...deps]);
16
- };
4
+ let useKeyUp=(o,r=[])=>{useEffect(()=>on(window,"keyup",e=>{e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||o(e);}),[o,...r]);};
17
5
 
18
6
  export { useKeyUp as default, useKeyUp };