@aiszlab/relax 1.2.57 → 1.2.58

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 (133) hide show
  1. package/dist/_virtual/_rollupPluginBabelHelpers.js +138 -0
  2. package/dist/dom/contains.d.ts +1 -0
  3. package/dist/dom/contains.js +20 -0
  4. package/dist/dom/index.d.ts +3 -0
  5. package/dist/dom/index.js +2 -0
  6. package/dist/dom/scroll-to.d.ts +19 -0
  7. package/dist/dom/scroll-to.js +69 -0
  8. package/dist/hooks/use-boolean.d.ts +19 -0
  9. package/dist/hooks/use-boolean.js +34 -0
  10. package/dist/hooks/use-controlled-state.d.ts +17 -0
  11. package/dist/hooks/use-controlled-state.js +40 -0
  12. package/dist/hooks/use-counter.d.ts +33 -0
  13. package/dist/hooks/use-counter.js +59 -0
  14. package/dist/hooks/use-debounce-callback.d.ts +18 -0
  15. package/dist/hooks/use-debounce-callback.js +81 -0
  16. package/dist/hooks/use-default.d.ts +8 -0
  17. package/dist/hooks/use-default.js +14 -0
  18. package/dist/hooks/use-device-pixel-ratio.d.ts +6 -0
  19. package/dist/hooks/use-device-pixel-ratio.js +20 -0
  20. package/dist/hooks/use-event.d.ts +2 -0
  21. package/dist/hooks/use-event.js +12 -0
  22. package/dist/hooks/use-focus.d.ts +15 -0
  23. package/dist/hooks/use-focus.js +31 -0
  24. package/dist/hooks/use-force-update.d.ts +7 -0
  25. package/dist/hooks/use-force-update.js +21 -0
  26. package/dist/hooks/use-hover.d.ts +8 -0
  27. package/dist/hooks/use-hover.js +25 -0
  28. package/dist/hooks/use-identity.d.ts +5 -0
  29. package/dist/hooks/use-identity.js +20 -0
  30. package/dist/hooks/use-image-loader.d.ts +12 -0
  31. package/dist/hooks/use-image-loader.js +54 -0
  32. package/dist/hooks/use-media-query.d.ts +7 -0
  33. package/dist/hooks/use-memorable.d.ts +1 -0
  34. package/dist/hooks/use-memorable.js +14 -0
  35. package/dist/hooks/use-mount.d.ts +8 -0
  36. package/dist/hooks/use-mount.js +16 -0
  37. package/dist/hooks/use-mounted.d.ts +8 -0
  38. package/dist/hooks/use-mounted.js +16 -0
  39. package/dist/hooks/use-mutate-observer.d.ts +1 -0
  40. package/dist/hooks/use-mutate-observer.js +28 -0
  41. package/dist/hooks/use-raf.d.ts +7 -0
  42. package/dist/hooks/use-raf.js +26 -0
  43. package/dist/hooks/use-reactive.d.ts +6 -0
  44. package/dist/hooks/use-refs.d.ts +5 -0
  45. package/dist/hooks/use-refs.js +31 -0
  46. package/dist/hooks/use-scroll-locker.d.ts +5 -0
  47. package/dist/hooks/use-scroll-locker.js +92 -0
  48. package/dist/hooks/use-scrollable.d.ts +17 -0
  49. package/dist/hooks/use-scrollable.js +43 -0
  50. package/dist/hooks/use-throttle-callback.d.ts +18 -0
  51. package/dist/hooks/use-throttle-callback.js +83 -0
  52. package/dist/hooks/use-timeout.d.ts +10 -0
  53. package/dist/hooks/use-timeout.js +68 -0
  54. package/dist/hooks/use-togglable.d.ts +48 -0
  55. package/dist/hooks/use-togglable.js +177 -0
  56. package/dist/hooks/use-update-effect.d.ts +3 -0
  57. package/dist/hooks/use-update-effect.js +19 -0
  58. package/dist/index.d.ts +64 -0
  59. package/dist/index.js +52 -0
  60. package/dist/is/is-array.d.ts +5 -0
  61. package/dist/is/is-array.js +9 -0
  62. package/dist/is/is-complex.d.ts +5 -0
  63. package/dist/is/is-complex.js +11 -0
  64. package/dist/is/is-dom-usable.d.ts +5 -0
  65. package/dist/is/is-dom-usable.js +9 -0
  66. package/dist/is/is-empty.d.ts +7 -0
  67. package/dist/is/is-empty.js +25 -0
  68. package/dist/is/is-function.d.ts +5 -0
  69. package/dist/is/is-function.js +9 -0
  70. package/dist/is/is-map.d.ts +5 -0
  71. package/dist/is/is-mobile.d.ts +5 -0
  72. package/dist/is/is-mobile.js +13 -0
  73. package/dist/is/is-null.d.ts +5 -0
  74. package/dist/is/is-null.js +9 -0
  75. package/dist/is/is-overflow.d.ts +5 -0
  76. package/dist/is/is-overflow.js +14 -0
  77. package/dist/is/is-pointer-usable.d.ts +5 -0
  78. package/dist/is/is-primitive.d.ts +5 -0
  79. package/dist/is/is-primitive.js +9 -0
  80. package/dist/is/is-refable.d.ts +5 -0
  81. package/dist/is/is-refable.js +34 -0
  82. package/dist/is/is-set.d.ts +5 -0
  83. package/dist/is/is-set.js +9 -0
  84. package/dist/is/is-state-getter.d.ts +6 -0
  85. package/dist/is/is-state-getter.js +9 -0
  86. package/dist/is/is-style-element.d.ts +5 -0
  87. package/dist/is/is-style-element.js +9 -0
  88. package/dist/is/is-thenable.d.ts +5 -0
  89. package/dist/is/is-thenable.js +9 -0
  90. package/dist/is/is-undefined.d.ts +5 -0
  91. package/dist/is/is-undefined.js +9 -0
  92. package/dist/is/is-void.d.ts +5 -0
  93. package/dist/is/is-void.js +12 -0
  94. package/dist/types/first.d.ts +1 -0
  95. package/dist/types/index.d.ts +8 -0
  96. package/dist/types/last.d.ts +1 -0
  97. package/dist/types/nullable.d.ts +5 -0
  98. package/dist/types/partialable.d.ts +5 -0
  99. package/dist/types/required-in.d.ts +5 -0
  100. package/dist/types/state.d.ts +10 -0
  101. package/dist/types/thenable-effect-callback.d.ts +6 -0
  102. package/dist/types/voidable.d.ts +7 -0
  103. package/dist/utils/chain.d.ts +2 -0
  104. package/dist/utils/chain.js +15 -0
  105. package/dist/utils/clamp.d.ts +9 -0
  106. package/dist/utils/clamp.js +13 -0
  107. package/dist/utils/clone.d.ts +6 -0
  108. package/dist/utils/clone.js +17 -0
  109. package/dist/utils/debounce.d.ts +23 -0
  110. package/dist/utils/debounce.js +32 -0
  111. package/dist/utils/effect.d.ts +7 -0
  112. package/dist/utils/effect.js +16 -0
  113. package/dist/utils/exclude.d.ts +10 -0
  114. package/dist/utils/exclude.js +18 -0
  115. package/dist/utils/range.d.ts +7 -0
  116. package/dist/utils/range.js +16 -0
  117. package/dist/utils/set-style.d.ts +6 -0
  118. package/dist/utils/set-style.js +21 -0
  119. package/dist/utils/throttle.d.ts +5 -0
  120. package/dist/utils/throttle.js +32 -0
  121. package/dist/utils/to-array.d.ts +18 -0
  122. package/dist/utils/to-array.js +25 -0
  123. package/dist/utils/to-form-data.d.ts +5 -0
  124. package/dist/utils/to-form-data.js +27 -0
  125. package/dist/utils/to-function.d.ts +1 -0
  126. package/dist/utils/to-function.js +13 -0
  127. package/dist/utils/toggle.d.ts +8 -0
  128. package/dist/utils/toggle.js +30 -0
  129. package/dist/utils/unique.d.ts +10 -0
  130. package/dist/utils/unique.js +16 -0
  131. package/dist/utils/waitable.d.ts +36 -0
  132. package/dist/utils/waitable.js +90 -0
  133. package/package.json +1 -1
@@ -0,0 +1,68 @@
1
+ import { useRef, useEffect } from 'react';
2
+ import { Observable, timer } from 'rxjs';
3
+ import { useEvent } from './use-event.js';
4
+ import { useMounted } from './use-mounted.js';
5
+
6
+ /**
7
+ * @author murukal
8
+ *
9
+ * @description
10
+ * timeout effect
11
+ */
12
+ var useTimeout = function useTimeout(callback, wait) {
13
+ var trigger = useRef(null);
14
+ var timed = useRef(null);
15
+ var callable = useEvent(callback);
16
+ useMounted(function () {
17
+ new Observable(function (_) {
18
+ trigger.current = _;
19
+ }).subscribe({
20
+ complete: function complete() {
21
+ return callable();
22
+ }
23
+ });
24
+ });
25
+ // when user what to flush timeout handler
26
+ // if trigger already registed, just complete trigger
27
+ // not registed, call `handler` manaully
28
+ var flush = useEvent(function () {
29
+ var _timed$current;
30
+ if (trigger.current) {
31
+ trigger.current.complete();
32
+ } else {
33
+ callback();
34
+ }
35
+ (_timed$current = timed.current) === null || _timed$current === void 0 || _timed$current.unsubscribe();
36
+ timed.current = null;
37
+ trigger.current = null;
38
+ });
39
+ // cancel
40
+ var cancel = useEvent(function () {
41
+ var _trigger$current, _timed$current2;
42
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 || _trigger$current.error();
43
+ (_timed$current2 = timed.current) === null || _timed$current2 === void 0 || _timed$current2.unsubscribe();
44
+ timed.current = null;
45
+ });
46
+ // add timer for `wait`
47
+ useEffect(function () {
48
+ // if 0, always mean not need to set timeout
49
+ if (wait <= 0) {
50
+ return;
51
+ }
52
+ var _timed = timer(wait).subscribe(function () {
53
+ var _trigger$current2;
54
+ (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 || _trigger$current2.complete();
55
+ });
56
+ timed.current = _timed;
57
+ return function () {
58
+ _timed.unsubscribe();
59
+ timed.current = null;
60
+ };
61
+ }, [wait]);
62
+ return {
63
+ flush: flush,
64
+ cancel: cancel
65
+ };
66
+ };
67
+
68
+ export { useTimeout };
@@ -0,0 +1,48 @@
1
+ import { type Key } from "react";
2
+ /**
3
+ * @description
4
+ * togglable key
5
+ */
6
+ type TogglableKey = {
7
+ /**
8
+ * @description
9
+ * unique key
10
+ */
11
+ key: Key;
12
+ /**
13
+ * @description
14
+ * children
15
+ */
16
+ children?: TogglableKey[];
17
+ };
18
+ /**
19
+ * @description
20
+ * extra options
21
+ */
22
+ type Options = {
23
+ /**
24
+ * @description
25
+ * default toggled
26
+ */
27
+ isDefaultToggled?: boolean;
28
+ /**
29
+ * @description
30
+ * toggled keys
31
+ */
32
+ toggledKeys?: Key[];
33
+ /**
34
+ * @description
35
+ * on toggle callback
36
+ */
37
+ onToggle?: (keys: Key[]) => void;
38
+ };
39
+ /**
40
+ * @description
41
+ * toggle able
42
+ */
43
+ export declare const useTogglable: (togglableKeys: TogglableKey[], { onToggle, ...options }?: Options) => {
44
+ toggledKeys: Set<Key>;
45
+ isToggled: (key: Key) => boolean;
46
+ toggle: (key: Key) => void;
47
+ };
48
+ export {};
@@ -0,0 +1,177 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, createClass as _createClass, classPrivateFieldGet2 as _classPrivateFieldGet2, classCallCheck as _classCallCheck, classPrivateFieldInitSpec as _classPrivateFieldInitSpec, classPrivateFieldSet2 as _classPrivateFieldSet2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { useMemo, useCallback } from 'react';
3
+ import { useControlledState } from './use-controlled-state.js';
4
+ import { useEvent } from './use-event.js';
5
+
6
+ var _excluded = ["onToggle"];
7
+ var _groupedLeaves = /*#__PURE__*/new WeakMap();
8
+ var Tree = /*#__PURE__*/function () {
9
+ function Tree() {
10
+ _classCallCheck(this, Tree);
11
+ _classPrivateFieldInitSpec(this, _groupedLeaves, void 0);
12
+ _classPrivateFieldSet2(_groupedLeaves, this, new Map());
13
+ }
14
+ return _createClass(Tree, [{
15
+ key: "groupedLeaves",
16
+ get: function get() {
17
+ return _classPrivateFieldGet2(_groupedLeaves, this);
18
+ }
19
+ }, {
20
+ key: "grow",
21
+ value: function grow(togglableKey) {
22
+ // create leaf, leaf will auto trigger tree collect callback
23
+ new Leaf({
24
+ key: togglableKey.key,
25
+ parent: null,
26
+ belongTo: this
27
+ }).grow(togglableKey.children);
28
+ return this;
29
+ }
30
+ }, {
31
+ key: "collect",
32
+ value: function collect(leaf) {
33
+ _classPrivateFieldGet2(_groupedLeaves, this).has(leaf.key) ? _classPrivateFieldGet2(_groupedLeaves, this).get(leaf.key).add(leaf) : _classPrivateFieldGet2(_groupedLeaves, this).set(leaf.key, new Set([leaf]));
34
+ }
35
+ }, {
36
+ key: "toggle",
37
+ value: function toggle(key, toggledKeys) {
38
+ var hasToggled = toggledKeys.has(key);
39
+ var isToggled = !hasToggled;
40
+ return this.toggleBy(key, isToggled, toggledKeys);
41
+ }
42
+ }, {
43
+ key: "toggleBy",
44
+ value: function toggleBy(key, isToggled, toggledKeys) {
45
+ var _classPrivateFieldGet2$1;
46
+ return Array.from((_classPrivateFieldGet2$1 = _classPrivateFieldGet2(_groupedLeaves, this).get(key)) !== null && _classPrivateFieldGet2$1 !== void 0 ? _classPrivateFieldGet2$1 : []).reduce(function (prev, leaf) {
47
+ // deep fall, add or remove child key
48
+ // deep rise, add or remove parent key
49
+ return leaf.rise(isToggled, leaf.fall(isToggled, prev));
50
+ }, new Set(toggledKeys));
51
+ }
52
+ }]);
53
+ }();
54
+ var _key = /*#__PURE__*/new WeakMap();
55
+ var _belongTo = /*#__PURE__*/new WeakMap();
56
+ var _parent = /*#__PURE__*/new WeakMap();
57
+ var _children = /*#__PURE__*/new WeakMap();
58
+ var Leaf = /*#__PURE__*/function () {
59
+ function Leaf(props) {
60
+ _classCallCheck(this, Leaf);
61
+ _classPrivateFieldInitSpec(this, _key, void 0);
62
+ _classPrivateFieldInitSpec(this, _belongTo, void 0);
63
+ _classPrivateFieldInitSpec(this, _parent, void 0);
64
+ _classPrivateFieldInitSpec(this, _children, void 0);
65
+ _classPrivateFieldSet2(_key, this, props.key);
66
+ _classPrivateFieldSet2(_parent, this, props.parent);
67
+ _classPrivateFieldSet2(_belongTo, this, props.belongTo);
68
+ _classPrivateFieldSet2(_children, this, []);
69
+ // when leaf has grew, let tree collect leaf
70
+ _classPrivateFieldGet2(_belongTo, this).collect(this);
71
+ }
72
+ return _createClass(Leaf, [{
73
+ key: "key",
74
+ get: function get() {
75
+ return _classPrivateFieldGet2(_key, this);
76
+ }
77
+ }, {
78
+ key: "grow",
79
+ value: function grow() {
80
+ var _this = this;
81
+ var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
82
+ if (children.length === 0) return this;
83
+ children.forEach(function (node) {
84
+ var child = new Leaf({
85
+ key: node.key,
86
+ parent: _this,
87
+ belongTo: _classPrivateFieldGet2(_belongTo, _this)
88
+ }).grow(node.children);
89
+ _classPrivateFieldGet2(_children, _this).push(child);
90
+ });
91
+ return this;
92
+ }
93
+ }, {
94
+ key: "rise",
95
+ value: function rise(isToggled, toggledKeys) {
96
+ var rised = new Set(toggledKeys);
97
+ if (isToggled) {
98
+ rised.add(_classPrivateFieldGet2(_key, this));
99
+ } else {
100
+ rised["delete"](_classPrivateFieldGet2(_key, this));
101
+ }
102
+ if (_classPrivateFieldGet2(_parent, this)) {
103
+ return _classPrivateFieldGet2(_parent, this).rise(isToggled, rised);
104
+ }
105
+ return rised;
106
+ }
107
+ }, {
108
+ key: "fall",
109
+ value: function fall(isToggled, toggledKeys) {
110
+ return _classPrivateFieldGet2(_children, this).reduce(function (prev, leaf) {
111
+ // deep loop, remove or add key
112
+ var fell = leaf.fall(isToggled, prev);
113
+ // toggle true, add current leaf key
114
+ // toggle false, remove current leaf key
115
+ if (isToggled) {
116
+ fell.add(leaf.key);
117
+ } else {
118
+ fell["delete"](leaf.key);
119
+ }
120
+ return fell;
121
+ }, new Set(toggledKeys));
122
+ }
123
+ }]);
124
+ }();
125
+ /**
126
+ * @description
127
+ * toggle able
128
+ */
129
+ var useTogglable = function useTogglable(togglableKeys) {
130
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
131
+ onToggle = _ref.onToggle,
132
+ options = _objectWithoutProperties(_ref, _excluded);
133
+ /// re-create tree when togglable keys changed
134
+ var tree = useMemo(function () {
135
+ return togglableKeys.reduce(function (_tree, togglable) {
136
+ return _tree.grow(togglable);
137
+ }, new Tree());
138
+ }, [togglableKeys]);
139
+ /// use controlled state to record toggled keys
140
+ var _useControlledState = useControlledState(options.toggledKeys, {
141
+ defaultState: function defaultState() {
142
+ return options.isDefaultToggled ? Array.from(Array.from(tree.groupedLeaves.values()).reduce(function (prev, leaves) {
143
+ leaves.forEach(function (leaf) {
144
+ return prev.add(leaf.key);
145
+ });
146
+ return prev;
147
+ }, new Set())) : [];
148
+ }
149
+ }),
150
+ _useControlledState2 = _slicedToArray(_useControlledState, 2),
151
+ _toggledKeys = _useControlledState2[0],
152
+ _setToggledKeys = _useControlledState2[1];
153
+ /// use set for toggled keys to make it read-only
154
+ var readableToggledKeys = useMemo(function () {
155
+ return new Set(_toggledKeys);
156
+ }, [_toggledKeys]);
157
+ /// check current key is toggled
158
+ var isToggled = useCallback(function (key) {
159
+ return !readableToggledKeys || readableToggledKeys.has(key);
160
+ }, [readableToggledKeys]);
161
+ /// toggle one key
162
+ var toggle = useEvent(function (key) {
163
+ // get new toggled keys by toggle current key
164
+ var _toggledKeys = Array.from(tree.toggle(key, readableToggledKeys));
165
+ // set state
166
+ _setToggledKeys(_toggledKeys);
167
+ // trigger on toggle callback
168
+ onToggle === null || onToggle === void 0 || onToggle(_toggledKeys);
169
+ });
170
+ return {
171
+ toggledKeys: readableToggledKeys,
172
+ isToggled: isToggled,
173
+ toggle: toggle
174
+ };
175
+ };
176
+
177
+ export { useTogglable };
@@ -0,0 +1,3 @@
1
+ import { type DependencyList } from "react";
2
+ import type { ThenableEffectCallback } from "../types";
3
+ export declare const useUpdateEffect: (callback: ThenableEffectCallback, deps?: DependencyList) => void;
@@ -0,0 +1,19 @@
1
+ import { useRef, useEffect } from 'react';
2
+ import { useMounted } from './use-mounted.js';
3
+ import { effect } from '../utils/effect.js';
4
+
5
+ var useUpdateEffect = function useUpdateEffect(callback, deps) {
6
+ var isMounted = useRef(false);
7
+ useEffect(function () {
8
+ if (!isMounted.current) return;
9
+ return effect(callback);
10
+ }, deps);
11
+ useMounted(function () {
12
+ isMounted.current = true;
13
+ return function () {
14
+ isMounted.current = false;
15
+ };
16
+ });
17
+ };
18
+
19
+ export { useUpdateEffect };
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @description
3
+ * hooks
4
+ */
5
+ export { useBoolean } from "./hooks/use-boolean";
6
+ export { useDebounceCallback } from "./hooks/use-debounce-callback";
7
+ export { useThrottleCallback } from "./hooks/use-throttle-callback";
8
+ export { useImageLoader } from "./hooks/use-image-loader";
9
+ export { useMount } from "./hooks/use-mount";
10
+ export { useMounted } from "./hooks/use-mounted";
11
+ export { useTimeout } from "./hooks/use-timeout";
12
+ export { useControlledState } from "./hooks/use-controlled-state";
13
+ export { useDefault } from "./hooks/use-default";
14
+ export { useScrollLocker } from "./hooks/use-scroll-locker";
15
+ export { useForceUpdate } from "./hooks/use-force-update";
16
+ export { useScrollable } from "./hooks/use-scrollable";
17
+ export { useRefs } from "./hooks/use-refs";
18
+ export { useTogglable } from "./hooks/use-togglable";
19
+ export { useEvent } from "./hooks/use-event";
20
+ export { useUpdateEffect } from "./hooks/use-update-effect";
21
+ export { useCounter } from "./hooks/use-counter";
22
+ export { useHover } from "./hooks/use-hover";
23
+ export { useFocus } from "./hooks/use-focus";
24
+ export { useMemorable } from "./hooks/use-memorable";
25
+ export { useMutateObserver } from "./hooks/use-mutate-observer";
26
+ export { useRaf } from "./hooks/use-raf";
27
+ export { useDevicePixelRatio } from "./hooks/use-device-pixel-ratio";
28
+ export { useIdentity } from "./hooks/use-identity";
29
+ /**
30
+ * @description
31
+ * is
32
+ */
33
+ export { isRefable } from "./is/is-refable";
34
+ export { isUndefined } from "./is/is-undefined";
35
+ export { isStateGetter } from "./is/is-state-getter";
36
+ export { isNull } from "./is/is-null";
37
+ export { isVoid } from "./is/is-void";
38
+ export { isArray } from "./is/is-array";
39
+ export { isComplex } from "./is/is-complex";
40
+ export { isEmpty } from "./is/is-empty";
41
+ export { isDomUsable } from "./is/is-dom-usable";
42
+ export { isMobile } from "./is/is-mobile";
43
+ export { isOverflow } from "./is/is-overflow";
44
+ export { isStyleElement } from "./is/is-style-element";
45
+ export { isFunction } from "./is/is-function";
46
+ export { isThenable } from "./is/is-thenable";
47
+ /**
48
+ * @description
49
+ * utils
50
+ */
51
+ export { effect } from "./utils/effect";
52
+ export { unique, uniqueBy } from "./utils/unique";
53
+ export { range } from "./utils/range";
54
+ export { clamp } from "./utils/clamp";
55
+ export { chain } from "./utils/chain";
56
+ export { debounce } from "./utils/debounce";
57
+ export { toArray } from "./utils/to-array";
58
+ export { toFunction } from "./utils/to-function";
59
+ export { exclude } from "./utils/exclude";
60
+ export { toFormData } from "./utils/to-form-data";
61
+ export { setStyle } from "./utils/set-style";
62
+ export { throttle } from "./utils/throttle";
63
+ export { clone } from "./utils/clone";
64
+ export { toggle } from "./utils/toggle";
package/dist/index.js ADDED
@@ -0,0 +1,52 @@
1
+ export { useBoolean } from './hooks/use-boolean.js';
2
+ export { useDebounceCallback } from './hooks/use-debounce-callback.js';
3
+ export { useThrottleCallback } from './hooks/use-throttle-callback.js';
4
+ export { useImageLoader } from './hooks/use-image-loader.js';
5
+ export { useMount } from './hooks/use-mount.js';
6
+ export { useMounted } from './hooks/use-mounted.js';
7
+ export { useTimeout } from './hooks/use-timeout.js';
8
+ export { useControlledState } from './hooks/use-controlled-state.js';
9
+ export { useDefault } from './hooks/use-default.js';
10
+ export { useScrollLocker } from './hooks/use-scroll-locker.js';
11
+ export { useForceUpdate } from './hooks/use-force-update.js';
12
+ export { useScrollable } from './hooks/use-scrollable.js';
13
+ export { useRefs } from './hooks/use-refs.js';
14
+ export { useTogglable } from './hooks/use-togglable.js';
15
+ export { useEvent } from './hooks/use-event.js';
16
+ export { useUpdateEffect } from './hooks/use-update-effect.js';
17
+ export { useCounter } from './hooks/use-counter.js';
18
+ export { useHover } from './hooks/use-hover.js';
19
+ export { useFocus } from './hooks/use-focus.js';
20
+ export { useMemorable } from './hooks/use-memorable.js';
21
+ export { useMutateObserver } from './hooks/use-mutate-observer.js';
22
+ export { useRaf } from './hooks/use-raf.js';
23
+ export { useDevicePixelRatio } from './hooks/use-device-pixel-ratio.js';
24
+ export { useIdentity } from './hooks/use-identity.js';
25
+ export { isRefable } from './is/is-refable.js';
26
+ export { isUndefined } from './is/is-undefined.js';
27
+ export { isStateGetter } from './is/is-state-getter.js';
28
+ export { isNull } from './is/is-null.js';
29
+ export { isVoid } from './is/is-void.js';
30
+ export { isArray } from './is/is-array.js';
31
+ export { isComplex } from './is/is-complex.js';
32
+ export { isEmpty } from './is/is-empty.js';
33
+ export { isDomUsable } from './is/is-dom-usable.js';
34
+ export { isMobile } from './is/is-mobile.js';
35
+ export { isOverflow } from './is/is-overflow.js';
36
+ export { isStyleElement } from './is/is-style-element.js';
37
+ export { isFunction } from './is/is-function.js';
38
+ export { isThenable } from './is/is-thenable.js';
39
+ export { effect } from './utils/effect.js';
40
+ export { unique, uniqueBy } from './utils/unique.js';
41
+ export { range } from './utils/range.js';
42
+ export { clamp } from './utils/clamp.js';
43
+ export { chain } from './utils/chain.js';
44
+ export { debounce } from './utils/debounce.js';
45
+ export { toArray } from './utils/to-array.js';
46
+ export { toFunction } from './utils/to-function.js';
47
+ export { exclude } from './utils/exclude.js';
48
+ export { toFormData } from './utils/to-form-data.js';
49
+ export { setStyle } from './utils/set-style.js';
50
+ export { throttle } from './utils/throttle.js';
51
+ export { clone } from './utils/clone.js';
52
+ export { toggle } from './utils/toggle.js';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * is array
4
+ */
5
+ export declare const isArray: <T>(value: T | T[] | readonly T[]) => value is T[];
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description
3
+ * is array
4
+ */
5
+ var isArray = function isArray(value) {
6
+ return Array.isArray(value);
7
+ };
8
+
9
+ export { isArray };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * complex
4
+ */
5
+ export declare const isComplex: (value: unknown) => value is Object;
@@ -0,0 +1,11 @@
1
+ import { typeof as _typeof } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+
3
+ /**
4
+ * @description
5
+ * complex
6
+ */
7
+ var isComplex = function isComplex(value) {
8
+ return _typeof(value) === "object" || typeof value === "function";
9
+ };
10
+
11
+ export { isComplex };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * if there is dom
4
+ */
5
+ export declare const isDomUsable: () => boolean;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description
3
+ * if there is dom
4
+ */
5
+ var isDomUsable = function isDomUsable() {
6
+ return !!(typeof window !== "undefined" && window.document && window.document.createElement);
7
+ };
8
+
9
+ export { isDomUsable };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @author murukal
3
+ *
4
+ * @description
5
+ * is empty
6
+ */
7
+ export declare const isEmpty: (value?: Object | unknown[] | string | number | boolean | null) => boolean;
@@ -0,0 +1,25 @@
1
+ import { typeof as _typeof } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { isVoid } from './is-void.js';
3
+ import { isArray } from './is-array.js';
4
+
5
+ /**
6
+ * @author murukal
7
+ *
8
+ * @description
9
+ * is empty
10
+ */
11
+ var isEmpty = function isEmpty(value) {
12
+ // null or undefined
13
+ if (isVoid(value)) return true;
14
+ // object
15
+ if (_typeof(value) === "object") {
16
+ return Object.keys(value).length === 0;
17
+ }
18
+ // array
19
+ if (isArray(value)) {
20
+ return value.length === 0;
21
+ }
22
+ return !!value;
23
+ };
24
+
25
+ export { isEmpty };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * if is function
4
+ */
5
+ export declare const isFunction: (value: unknown) => value is Function;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description
3
+ * if is function
4
+ */
5
+ var isFunction = function isFunction(value) {
6
+ return typeof value === "function";
7
+ };
8
+
9
+ export { isFunction };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * is set
4
+ */
5
+ export declare const isMap: (value: unknown) => value is Map<unknown, unknown>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * is mobile
4
+ */
5
+ export declare const isMobile: () => boolean;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @description
3
+ * is mobile
4
+ */
5
+ var isMobile = function isMobile() {
6
+ if (typeof navigator === "undefined" || typeof window === "undefined") {
7
+ return false;
8
+ }
9
+ var agent = navigator.userAgent || navigator.vendor || window.opera;
10
+ return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substring(0, 4));
11
+ };
12
+
13
+ export { isMobile };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * is null
4
+ */
5
+ export declare const isNull: (value: unknown) => value is null;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description
3
+ * is null
4
+ */
5
+ var isNull = function isNull(value) {
6
+ return value === null;
7
+ };
8
+
9
+ export { isNull };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * if is overflow
4
+ */
5
+ export declare function isOverflow(element?: HTMLElement): boolean;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description
3
+ * if is overflow
4
+ */
5
+ function isOverflow() {
6
+ var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.body;
7
+ if (element === document.body) {
8
+ return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;
9
+ }
10
+ // not body
11
+ return element.scrollHeight > element.clientHeight;
12
+ }
13
+
14
+ export { isOverflow };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * if pointer event is usable
4
+ */
5
+ export declare const isPointerUsable: () => boolean;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description
3
+ * string/number/... is primitive type
4
+ */
5
+ export declare const isPrimitive: (value: unknown) => boolean;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description
3
+ * string/number/... is primitive type
4
+ */
5
+ var isPrimitive = function isPrimitive(value) {
6
+ return value !== Object(value);
7
+ };
8
+
9
+ export { isPrimitive };
@@ -0,0 +1,5 @@
1
+ import { type ReactNode } from "react";
2
+ /**
3
+ * @description
4
+ */
5
+ export declare const isRefable: (node: ReactNode) => boolean;