react-simplikit 0.0.53 → 0.2.0

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 (153) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.md +2 -42
  3. package/dist/hooks/useAsyncEffect/useAsyncEffect.cjs +1 -0
  4. package/dist/hooks/useAsyncEffect/useAsyncEffect.mjs +1 -0
  5. package/dist/hooks/useCallbackOncePerRender/useCallbackOncePerRender.cjs +1 -0
  6. package/dist/hooks/useCallbackOncePerRender/useCallbackOncePerRender.mjs +1 -0
  7. package/dist/hooks/useConditionalEffect/useConditionalEffect.cjs +1 -0
  8. package/dist/hooks/useConditionalEffect/useConditionalEffect.mjs +1 -0
  9. package/dist/hooks/useDebouncedCallback/useDebouncedCallback.cjs +24 -6
  10. package/dist/hooks/useDebouncedCallback/useDebouncedCallback.d.cts +17 -7
  11. package/dist/hooks/useDebouncedCallback/useDebouncedCallback.d.mts +17 -7
  12. package/dist/hooks/useDebouncedCallback/useDebouncedCallback.mjs +24 -6
  13. package/dist/hooks/useDoubleClick/useDoubleClick.cjs +0 -4
  14. package/dist/hooks/useDoubleClick/useDoubleClick.d.cts +0 -4
  15. package/dist/hooks/useDoubleClick/useDoubleClick.d.mts +0 -4
  16. package/dist/hooks/useDoubleClick/useDoubleClick.mjs +0 -4
  17. package/dist/hooks/useGeolocation/useGeolocation.cjs +0 -4
  18. package/dist/hooks/useGeolocation/useGeolocation.d.cts +0 -4
  19. package/dist/hooks/useGeolocation/useGeolocation.d.mts +0 -4
  20. package/dist/hooks/useGeolocation/useGeolocation.mjs +0 -4
  21. package/dist/hooks/useImpressionRef/useImpressionRef.cjs +7 -5
  22. package/dist/hooks/useImpressionRef/useImpressionRef.d.cts +0 -4
  23. package/dist/hooks/useImpressionRef/useImpressionRef.d.mts +0 -4
  24. package/dist/hooks/useImpressionRef/useImpressionRef.mjs +7 -5
  25. package/dist/hooks/useInputState/useInputState.cjs +9 -3
  26. package/dist/hooks/useInputState/useInputState.d.cts +11 -4
  27. package/dist/hooks/useInputState/useInputState.d.mts +11 -4
  28. package/dist/hooks/useInputState/useInputState.mjs +9 -3
  29. package/dist/hooks/useIntersectionObserver/useIntersectionObserver.cjs +1 -5
  30. package/dist/hooks/useIntersectionObserver/useIntersectionObserver.d.cts +1 -5
  31. package/dist/hooks/useIntersectionObserver/useIntersectionObserver.d.mts +1 -5
  32. package/dist/hooks/useIntersectionObserver/useIntersectionObserver.mjs +1 -5
  33. package/dist/hooks/useList/useList.cjs +11 -8
  34. package/dist/hooks/useList/useList.d.cts +12 -9
  35. package/dist/hooks/useList/useList.d.mts +12 -9
  36. package/dist/hooks/useList/useList.mjs +11 -8
  37. package/dist/hooks/useLoading/useLoading.cjs +3 -5
  38. package/dist/hooks/useLoading/useLoading.d.cts +2 -5
  39. package/dist/hooks/useLoading/useLoading.d.mts +2 -5
  40. package/dist/hooks/useLoading/useLoading.mjs +3 -5
  41. package/dist/hooks/useLongPress/useLongPress.cjs +0 -4
  42. package/dist/hooks/useLongPress/useLongPress.d.cts +0 -4
  43. package/dist/hooks/useLongPress/useLongPress.d.mts +0 -4
  44. package/dist/hooks/useLongPress/useLongPress.mjs +0 -4
  45. package/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.cjs +0 -4
  46. package/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.d.cts +0 -4
  47. package/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.d.mts +0 -4
  48. package/dist/hooks/useOutsideClickEffect/useOutsideClickEffect.mjs +0 -4
  49. package/dist/hooks/usePreservedReference/usePreservedReference.cjs +1 -0
  50. package/dist/hooks/usePreservedReference/usePreservedReference.mjs +1 -0
  51. package/dist/hooks/useRefEffect/useRefEffect.cjs +1 -0
  52. package/dist/hooks/useRefEffect/useRefEffect.mjs +1 -0
  53. package/dist/hooks/useSet/useSet.cjs +11 -2
  54. package/dist/hooks/useSet/useSet.d.cts +11 -2
  55. package/dist/hooks/useSet/useSet.d.mts +11 -2
  56. package/dist/hooks/useSet/useSet.mjs +11 -2
  57. package/dist/hooks/useStorageState/useStorageState.cjs +1 -0
  58. package/dist/hooks/useStorageState/useStorageState.d.cts +0 -4
  59. package/dist/hooks/useStorageState/useStorageState.d.mts +0 -4
  60. package/dist/hooks/useStorageState/useStorageState.mjs +1 -0
  61. package/dist/hooks/useThrottledCallback/useThrottledCallback.cjs +16 -9
  62. package/dist/hooks/useThrottledCallback/useThrottledCallback.d.cts +18 -11
  63. package/dist/hooks/useThrottledCallback/useThrottledCallback.d.mts +18 -11
  64. package/dist/hooks/useThrottledCallback/useThrottledCallback.mjs +16 -9
  65. package/dist/hooks/useVisibilityEvent/useVisibilityEvent.cjs +2 -4
  66. package/dist/hooks/useVisibilityEvent/useVisibilityEvent.d.cts +2 -4
  67. package/dist/hooks/useVisibilityEvent/useVisibilityEvent.d.mts +2 -4
  68. package/dist/hooks/useVisibilityEvent/useVisibilityEvent.mjs +2 -4
  69. package/dist/index.cjs +34 -0
  70. package/dist/index.d.cts +19 -1
  71. package/dist/index.d.mts +19 -1
  72. package/dist/index.mjs +18 -1
  73. package/dist/mobile/hooks/useAvoidKeyboard/index.d.cts +3 -0
  74. package/dist/mobile/hooks/useAvoidKeyboard/index.d.mts +3 -0
  75. package/dist/mobile/hooks/useAvoidKeyboard/useAvoidKeyboard.cjs +75 -0
  76. package/dist/mobile/hooks/useAvoidKeyboard/useAvoidKeyboard.d.cts +89 -0
  77. package/dist/mobile/hooks/useAvoidKeyboard/useAvoidKeyboard.d.mts +89 -0
  78. package/dist/mobile/hooks/useAvoidKeyboard/useAvoidKeyboard.mjs +75 -0
  79. package/dist/mobile/hooks/useBodyScrollLock/useBodyScrollLock.cjs +47 -0
  80. package/dist/mobile/hooks/useBodyScrollLock/useBodyScrollLock.d.cts +37 -0
  81. package/dist/mobile/hooks/useBodyScrollLock/useBodyScrollLock.d.mts +37 -0
  82. package/dist/mobile/hooks/useBodyScrollLock/useBodyScrollLock.mjs +47 -0
  83. package/dist/mobile/hooks/useKeyboardHeight/useKeyboardHeight.cjs +41 -0
  84. package/dist/mobile/hooks/useKeyboardHeight/useKeyboardHeight.d.cts +41 -0
  85. package/dist/mobile/hooks/useKeyboardHeight/useKeyboardHeight.d.mts +41 -0
  86. package/dist/mobile/hooks/useKeyboardHeight/useKeyboardHeight.mjs +41 -0
  87. package/dist/mobile/hooks/useNetworkStatus/useNetworkStatus.cjs +88 -0
  88. package/dist/mobile/hooks/useNetworkStatus/useNetworkStatus.d.cts +77 -0
  89. package/dist/mobile/hooks/useNetworkStatus/useNetworkStatus.d.mts +77 -0
  90. package/dist/mobile/hooks/useNetworkStatus/useNetworkStatus.mjs +88 -0
  91. package/dist/mobile/hooks/usePageVisibility/usePageVisibility.cjs +75 -0
  92. package/dist/mobile/hooks/usePageVisibility/usePageVisibility.d.cts +64 -0
  93. package/dist/mobile/hooks/usePageVisibility/usePageVisibility.d.mts +64 -0
  94. package/dist/mobile/hooks/usePageVisibility/usePageVisibility.mjs +75 -0
  95. package/dist/mobile/hooks/useSafeAreaInset/useSafeAreaInset.cjs +74 -0
  96. package/dist/mobile/hooks/useSafeAreaInset/useSafeAreaInset.d.cts +55 -0
  97. package/dist/mobile/hooks/useSafeAreaInset/useSafeAreaInset.d.mts +55 -0
  98. package/dist/mobile/hooks/useSafeAreaInset/useSafeAreaInset.mjs +74 -0
  99. package/dist/mobile/hooks/useScrollDirection/useScrollDirection.cjs +79 -0
  100. package/dist/mobile/hooks/useScrollDirection/useScrollDirection.d.cts +40 -0
  101. package/dist/mobile/hooks/useScrollDirection/useScrollDirection.d.mts +40 -0
  102. package/dist/mobile/hooks/useScrollDirection/useScrollDirection.mjs +79 -0
  103. package/dist/mobile/hooks/useVisualViewport/useVisualViewport.cjs +77 -0
  104. package/dist/mobile/hooks/useVisualViewport/useVisualViewport.d.cts +89 -0
  105. package/dist/mobile/hooks/useVisualViewport/useVisualViewport.d.mts +89 -0
  106. package/dist/mobile/hooks/useVisualViewport/useVisualViewport.mjs +77 -0
  107. package/dist/mobile/utils/disableBodyScrollLock/disableBodyScrollLock.cjs +55 -0
  108. package/dist/mobile/utils/disableBodyScrollLock/disableBodyScrollLock.d.cts +22 -0
  109. package/dist/mobile/utils/disableBodyScrollLock/disableBodyScrollLock.d.mts +22 -0
  110. package/dist/mobile/utils/disableBodyScrollLock/disableBodyScrollLock.mjs +55 -0
  111. package/dist/mobile/utils/enableBodyScrollLock/enableBodyScrollLock.cjs +49 -0
  112. package/dist/mobile/utils/enableBodyScrollLock/enableBodyScrollLock.d.cts +23 -0
  113. package/dist/mobile/utils/enableBodyScrollLock/enableBodyScrollLock.d.mts +23 -0
  114. package/dist/mobile/utils/enableBodyScrollLock/enableBodyScrollLock.mjs +49 -0
  115. package/dist/mobile/utils/getKeyboardHeight/getKeyboardHeight.cjs +35 -0
  116. package/dist/mobile/utils/getKeyboardHeight/getKeyboardHeight.d.cts +28 -0
  117. package/dist/mobile/utils/getKeyboardHeight/getKeyboardHeight.d.mts +28 -0
  118. package/dist/mobile/utils/getKeyboardHeight/getKeyboardHeight.mjs +35 -0
  119. package/dist/mobile/utils/getSafeAreaInset/getSafeAreaInset.cjs +58 -0
  120. package/dist/mobile/utils/getSafeAreaInset/getSafeAreaInset.d.cts +44 -0
  121. package/dist/mobile/utils/getSafeAreaInset/getSafeAreaInset.d.mts +44 -0
  122. package/dist/mobile/utils/getSafeAreaInset/getSafeAreaInset.mjs +58 -0
  123. package/dist/mobile/utils/isAndroid/isAndroid.cjs +32 -0
  124. package/dist/mobile/utils/isAndroid/isAndroid.d.cts +27 -0
  125. package/dist/mobile/utils/isAndroid/isAndroid.d.mts +27 -0
  126. package/dist/mobile/utils/isAndroid/isAndroid.mjs +32 -0
  127. package/dist/mobile/utils/isIOS/isIOS.cjs +37 -0
  128. package/dist/mobile/utils/isIOS/isIOS.d.cts +30 -0
  129. package/dist/mobile/utils/isIOS/isIOS.d.mts +30 -0
  130. package/dist/mobile/utils/isIOS/isIOS.mjs +37 -0
  131. package/dist/mobile/utils/isKeyboardVisible/isKeyboardVisible.cjs +28 -0
  132. package/dist/mobile/utils/isKeyboardVisible/isKeyboardVisible.d.cts +25 -0
  133. package/dist/mobile/utils/isKeyboardVisible/isKeyboardVisible.d.mts +25 -0
  134. package/dist/mobile/utils/isKeyboardVisible/isKeyboardVisible.mjs +28 -0
  135. package/dist/mobile/utils/isServer/isServer.cjs +24 -0
  136. package/dist/mobile/utils/isServer/isServer.d.cts +22 -0
  137. package/dist/mobile/utils/isServer/isServer.d.mts +22 -0
  138. package/dist/mobile/utils/isServer/isServer.mjs +24 -0
  139. package/dist/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.cjs +71 -0
  140. package/dist/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.d.cts +64 -0
  141. package/dist/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.d.mts +64 -0
  142. package/dist/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.mjs +71 -0
  143. package/dist/utils/buildContext/buildContext.cjs +1 -0
  144. package/dist/utils/buildContext/buildContext.mjs +1 -0
  145. package/dist/utils/mergeProps/mergeProps.cjs +1 -1
  146. package/dist/utils/mergeProps/mergeProps.d.cts +1 -1
  147. package/dist/utils/mergeProps/mergeProps.d.mts +1 -1
  148. package/dist/utils/mergeProps/mergeProps.mjs +1 -1
  149. package/dist/utils/mergeRefs/mergeRefs.cjs +1 -1
  150. package/dist/utils/mergeRefs/mergeRefs.d.cts +1 -1
  151. package/dist/utils/mergeRefs/mergeRefs.d.mts +1 -1
  152. package/dist/utils/mergeRefs/mergeRefs.mjs +1 -1
  153. package/package.json +22 -10
@@ -0,0 +1,64 @@
1
+
2
+ //#region src/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.d.ts
3
+ type SubscribeKeyboardHeightOptions = {
4
+ /**
5
+ * A function that will be called with the updated keyboard height in pixels.
6
+ */
7
+ callback: (height: number) => void;
8
+ /**
9
+ * If true, the callback will be invoked immediately with the current keyboard height.
10
+ * @default false
11
+ */
12
+ immediate?: boolean;
13
+ /**
14
+ * Throttle interval in milliseconds.
15
+ * Events within this interval will be ignored to improve performance.
16
+ * @default 16 (~60fps)
17
+ */
18
+ throttleMs?: number;
19
+ };
20
+ type SubscribeKeyboardHeightResult = {
21
+ /**
22
+ * Unsubscribes all listeners and stops receiving keyboard height updates.
23
+ */
24
+ unsubscribe: () => void;
25
+ };
26
+ /**
27
+ * @description
28
+ * `subscribeKeyboardHeight` is a utility function that subscribes to changes in the on-screen keyboard height.
29
+ *
30
+ * The provided callback is invoked whenever the keyboard height may change,
31
+ * including when the keyboard appears, disappears, or changes size.
32
+ *
33
+ * Internally, this function listens to both `resize` and `scroll` events
34
+ * on the Visual Viewport:
35
+ * - `resize`: triggered when the visual viewport height changes
36
+ * - `scroll`: triggered when the visual viewport offset changes
37
+ * (important for iOS where the viewport can shift without resizing)
38
+ *
39
+ * Performance optimizations:
40
+ * - Throttled by default (16ms, ~60fps) to prevent excessive callback invocations
41
+ * - Skips callback when height hasn't changed (deduplication)
42
+ *
43
+ * @param {SubscribeKeyboardHeightOptions} options - Configuration options
44
+ * @param {(height: number) => void} options.callback - A function that will be called with the updated keyboard height in pixels.
45
+ * @param {boolean} [options.immediate=false] - If true, the callback will be invoked immediately with the current keyboard height.
46
+ * @param {number} [options.throttleMs=16] - Throttle interval in milliseconds.
47
+ *
48
+ * @returns {SubscribeKeyboardHeightResult} An object containing the unsubscribe function.
49
+ * - unsubscribe `() => void` - Unsubscribes all listeners and stops receiving keyboard height updates.
50
+ *
51
+ * @example
52
+ * const { unsubscribe } = subscribeKeyboardHeight({
53
+ * callback: (height) => {
54
+ * footer.style.paddingBottom = `${height}px`;
55
+ * },
56
+ * immediate: true,
57
+ * });
58
+ *
59
+ * // Later, when cleanup is needed
60
+ * unsubscribe();
61
+ */
62
+ declare function subscribeKeyboardHeight({ callback, immediate, throttleMs }: SubscribeKeyboardHeightOptions): SubscribeKeyboardHeightResult;
63
+ //#endregion
64
+ export { subscribeKeyboardHeight };
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { isServer } from "../isServer/isServer.mjs";
3
+ import { getKeyboardHeight } from "../getKeyboardHeight/getKeyboardHeight.mjs";
4
+ //#region src/mobile/utils/subscribeKeyboardHeight/subscribeKeyboardHeight.ts
5
+ /**
6
+ * @description
7
+ * `subscribeKeyboardHeight` is a utility function that subscribes to changes in the on-screen keyboard height.
8
+ *
9
+ * The provided callback is invoked whenever the keyboard height may change,
10
+ * including when the keyboard appears, disappears, or changes size.
11
+ *
12
+ * Internally, this function listens to both `resize` and `scroll` events
13
+ * on the Visual Viewport:
14
+ * - `resize`: triggered when the visual viewport height changes
15
+ * - `scroll`: triggered when the visual viewport offset changes
16
+ * (important for iOS where the viewport can shift without resizing)
17
+ *
18
+ * Performance optimizations:
19
+ * - Throttled by default (16ms, ~60fps) to prevent excessive callback invocations
20
+ * - Skips callback when height hasn't changed (deduplication)
21
+ *
22
+ * @param {SubscribeKeyboardHeightOptions} options - Configuration options
23
+ * @param {(height: number) => void} options.callback - A function that will be called with the updated keyboard height in pixels.
24
+ * @param {boolean} [options.immediate=false] - If true, the callback will be invoked immediately with the current keyboard height.
25
+ * @param {number} [options.throttleMs=16] - Throttle interval in milliseconds.
26
+ *
27
+ * @returns {SubscribeKeyboardHeightResult} An object containing the unsubscribe function.
28
+ * - unsubscribe `() => void` - Unsubscribes all listeners and stops receiving keyboard height updates.
29
+ *
30
+ * @example
31
+ * const { unsubscribe } = subscribeKeyboardHeight({
32
+ * callback: (height) => {
33
+ * footer.style.paddingBottom = `${height}px`;
34
+ * },
35
+ * immediate: true,
36
+ * });
37
+ *
38
+ * // Later, when cleanup is needed
39
+ * unsubscribe();
40
+ */
41
+ function subscribeKeyboardHeight({ callback, immediate = false, throttleMs = 16 }) {
42
+ if (isServer()) return { unsubscribe: () => {} };
43
+ const visualViewport = window.visualViewport;
44
+ if (!visualViewport) return { unsubscribe: () => {} };
45
+ let lastHeight = null;
46
+ let throttleTimer = null;
47
+ const handler = () => {
48
+ if (throttleTimer != null) return;
49
+ const currentHeight = getKeyboardHeight();
50
+ if (lastHeight === currentHeight) return;
51
+ lastHeight = currentHeight;
52
+ callback(currentHeight);
53
+ throttleTimer = setTimeout(() => {
54
+ throttleTimer = null;
55
+ }, throttleMs);
56
+ };
57
+ if (immediate) {
58
+ const currentHeight = getKeyboardHeight();
59
+ lastHeight = currentHeight;
60
+ callback(currentHeight);
61
+ }
62
+ visualViewport.addEventListener("resize", handler);
63
+ visualViewport.addEventListener("scroll", handler);
64
+ return { unsubscribe: () => {
65
+ visualViewport.removeEventListener("resize", handler);
66
+ visualViewport.removeEventListener("scroll", handler);
67
+ if (throttleTimer != null) clearTimeout(throttleTimer);
68
+ } };
69
+ }
70
+ //#endregion
71
+ export { subscribeKeyboardHeight };
@@ -32,6 +32,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
32
32
  function buildContext(contextName, defaultContextValues) {
33
33
  const Context = (0, react.createContext)(defaultContextValues ?? void 0);
34
34
  function Provider({ children, ...contextValues }) {
35
+ "use no memo";
35
36
  const value = (0, react.useMemo)(() => Object.keys(contextValues).length > 0 ? contextValues : null, [...Object.values(contextValues)]);
36
37
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Context.Provider, {
37
38
  value,
@@ -32,6 +32,7 @@ import { jsx } from "react/jsx-runtime";
32
32
  function buildContext(contextName, defaultContextValues) {
33
33
  const Context = createContext(defaultContextValues ?? void 0);
34
34
  function Provider({ children, ...contextValues }) {
35
+ "use no memo";
35
36
  const value = useMemo(() => Object.keys(contextValues).length > 0 ? contextValues : null, [...Object.values(contextValues)]);
36
37
  return /* @__PURE__ */ jsx(Context.Provider, {
37
38
  value,
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @template PropsList - The type of the props objects to merge.
9
9
  *
10
- * @param {PropsList} props - The props objects to merge.
10
+ * @param {...PropsList} props - The props objects to merge.
11
11
  * @returns {TupleToIntersection<PropsList>} The merged props object.
12
12
  *
13
13
  * @example
@@ -13,7 +13,7 @@ type TupleToIntersection<T extends Record<string, unknown>[]> = { [I in keyof T]
13
13
  *
14
14
  * @template PropsList - The type of the props objects to merge.
15
15
  *
16
- * @param {PropsList} props - The props objects to merge.
16
+ * @param {...PropsList} props - The props objects to merge.
17
17
  * @returns {TupleToIntersection<PropsList>} The merged props object.
18
18
  *
19
19
  * @example
@@ -13,7 +13,7 @@ type TupleToIntersection<T extends Record<string, unknown>[]> = { [I in keyof T]
13
13
  *
14
14
  * @template PropsList - The type of the props objects to merge.
15
15
  *
16
- * @param {PropsList} props - The props objects to merge.
16
+ * @param {...PropsList} props - The props objects to merge.
17
17
  * @returns {TupleToIntersection<PropsList>} The merged props object.
18
18
  *
19
19
  * @example
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @template PropsList - The type of the props objects to merge.
9
9
  *
10
- * @param {PropsList} props - The props objects to merge.
10
+ * @param {...PropsList} props - The props objects to merge.
11
11
  * @returns {TupleToIntersection<PropsList>} The merged props object.
12
12
  *
13
13
  * @example
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @template T - The type of target to be referenced.
9
9
  *
10
- * @param {Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
10
+ * @param {...Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
11
11
  *
12
12
  * @returns {RefCallback<T>} A single ref callback that updates all provided refs.
13
13
  *
@@ -8,7 +8,7 @@ import { RefCallback, RefObject } from "react";
8
8
  *
9
9
  * @template T - The type of target to be referenced.
10
10
  *
11
- * @param {Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
11
+ * @param {...Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
12
12
  *
13
13
  * @returns {RefCallback<T>} A single ref callback that updates all provided refs.
14
14
  *
@@ -8,7 +8,7 @@ import { RefCallback, RefObject } from "react";
8
8
  *
9
9
  * @template T - The type of target to be referenced.
10
10
  *
11
- * @param {Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
11
+ * @param {...Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
12
12
  *
13
13
  * @returns {RefCallback<T>} A single ref callback that updates all provided refs.
14
14
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @template T - The type of target to be referenced.
9
9
  *
10
- * @param {Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
10
+ * @param {...Array<RefObject<T> | RefCallback<T> | null | undefined>} refs - An array of refs to be merged. Each ref can be either a RefObject or RefCallback.
11
11
  *
12
12
  * @returns {RefCallback<T>} A single ref callback that updates all provided refs.
13
13
  *
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "react-simplikit",
3
- "version": "0.0.53",
3
+ "version": "0.2.0",
4
+ "description": "React hooks, components and utilities — SSR-safe, zero dependencies, mobile web included",
4
5
  "main": "./dist/index.cjs",
5
6
  "module": "./dist/index.mjs",
6
7
  "types": "./dist/index.d.cts",
@@ -20,14 +21,22 @@
20
21
  "type": "module",
21
22
  "sideEffects": false,
22
23
  "keywords": [
23
- "react"
24
+ "react",
25
+ "react-hooks",
26
+ "hooks",
27
+ "components",
28
+ "utils",
29
+ "typescript",
30
+ "ssr",
31
+ "zero-dependency",
32
+ "mobile-web"
24
33
  ],
25
34
  "homepage": "https://react-simplikit.slash.page",
26
35
  "bugs": "https://github.com/toss/react-simplikit/issues",
27
36
  "repository": {
28
37
  "type": "git",
29
38
  "url": "git+https://github.com/toss/react-simplikit.git",
30
- "directory": "packages/core"
39
+ "directory": "packages/react-simplikit"
31
40
  },
32
41
  "license": "MIT",
33
42
  "files": [
@@ -40,14 +49,18 @@
40
49
  "typecheck": "tsc --noEmit",
41
50
  "test": "vitest run",
42
51
  "test:watch": "vitest",
43
- "test:coverage": "vitest run --coverage"
52
+ "test:coverage": "vitest run --coverage",
53
+ "test:compiled": "vitest run -c vitest.compiled.config.ts"
44
54
  },
45
55
  "publishConfig": {
46
56
  "access": "public"
47
57
  },
48
58
  "devDependencies": {
49
- "@changesets/changelog-github": "^0.5.1",
50
- "@changesets/cli": "^2.29.7",
59
+ "@babel/core": "^7.29.0",
60
+ "@babel/preset-react": "^7.27.0",
61
+ "@babel/preset-typescript": "^7.28.0",
62
+ "@changesets/changelog-github": "^1.0.0",
63
+ "@changesets/cli": "^3.0.1",
51
64
  "@eslint/js": "^9.16.0",
52
65
  "@testing-library/dom": "^10.4.0",
53
66
  "@testing-library/jest-dom": "^6.6.3",
@@ -57,16 +70,16 @@
57
70
  "@types/react": "^19.0.0",
58
71
  "@types/react-dom": "^19.0.0",
59
72
  "@vitest/coverage-v8": "^2.1.8",
73
+ "babel-plugin-react-compiler": "1.0.0",
60
74
  "commander": "^13.1.0",
61
75
  "comment-parser": "^1.4.1",
62
76
  "corepack": "^0.30.0",
63
- "dotenv": "^16.4.7",
64
77
  "eslint": "^9.16.0",
65
78
  "eslint-config-prettier": "^9.1.0",
66
79
  "eslint-plugin-import": "^2.31.0",
67
80
  "eslint-plugin-prettier": "^5.2.1",
68
81
  "eslint-plugin-react": "^7.37.2",
69
- "eslint-plugin-react-hooks": "^5.2.0",
82
+ "eslint-plugin-react-hooks": "^7.1.1",
70
83
  "eslint-plugin-simple-import-sort": "^12.1.1",
71
84
  "eslint-plugin-unused-imports": "^4.1.4",
72
85
  "fast-glob": "^3.3.3",
@@ -74,7 +87,6 @@
74
87
  "jsdom": "^25.0.1",
75
88
  "listr2": "^8.2.5",
76
89
  "nanoid": "^5.1.5",
77
- "openai": "^4.93.0",
78
90
  "ora": "^8.2.0",
79
91
  "prettier": "^3.4.2",
80
92
  "prettier-plugin-sort-re-exports": "^0.1.0",
@@ -92,4 +104,4 @@
92
104
  "peerDependencies": {
93
105
  "react": "*"
94
106
  }
95
- }
107
+ }