@med_ghoul/forge-shared 1.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 (254) hide show
  1. package/README.md +158 -0
  2. package/dist/hooks/index.cjs +1 -0
  3. package/dist/hooks/index.d.cts +19 -0
  4. package/dist/hooks/index.d.ts +19 -0
  5. package/dist/hooks/index.js +1 -0
  6. package/dist/hooks/use-back-to-top/index.cjs +1 -0
  7. package/dist/hooks/use-back-to-top/index.d.cts +2 -0
  8. package/dist/hooks/use-back-to-top/index.d.ts +2 -0
  9. package/dist/hooks/use-back-to-top/index.js +1 -0
  10. package/dist/hooks/use-back-to-top/use-back-to-top.cjs +1 -0
  11. package/dist/hooks/use-back-to-top/use-back-to-top.d.cts +33 -0
  12. package/dist/hooks/use-back-to-top/use-back-to-top.d.ts +33 -0
  13. package/dist/hooks/use-back-to-top/use-back-to-top.js +1 -0
  14. package/dist/hooks/use-boolean/index.cjs +1 -0
  15. package/dist/hooks/use-boolean/index.d.cts +2 -0
  16. package/dist/hooks/use-boolean/index.d.ts +2 -0
  17. package/dist/hooks/use-boolean/index.js +1 -0
  18. package/dist/hooks/use-boolean/use-boolean.cjs +1 -0
  19. package/dist/hooks/use-boolean/use-boolean.d.cts +29 -0
  20. package/dist/hooks/use-boolean/use-boolean.d.ts +29 -0
  21. package/dist/hooks/use-boolean/use-boolean.js +1 -0
  22. package/dist/hooks/use-client-rect/index.cjs +1 -0
  23. package/dist/hooks/use-client-rect/index.d.cts +2 -0
  24. package/dist/hooks/use-client-rect/index.d.ts +2 -0
  25. package/dist/hooks/use-client-rect/index.js +1 -0
  26. package/dist/hooks/use-client-rect/use-client-rect.cjs +1 -0
  27. package/dist/hooks/use-client-rect/use-client-rect.d.cts +29 -0
  28. package/dist/hooks/use-client-rect/use-client-rect.d.ts +29 -0
  29. package/dist/hooks/use-client-rect/use-client-rect.js +1 -0
  30. package/dist/hooks/use-cookies/index.cjs +1 -0
  31. package/dist/hooks/use-cookies/index.d.cts +2 -0
  32. package/dist/hooks/use-cookies/index.d.ts +2 -0
  33. package/dist/hooks/use-cookies/index.js +1 -0
  34. package/dist/hooks/use-cookies/use-cookies.cjs +1 -0
  35. package/dist/hooks/use-cookies/use-cookies.d.cts +40 -0
  36. package/dist/hooks/use-cookies/use-cookies.d.ts +40 -0
  37. package/dist/hooks/use-cookies/use-cookies.js +1 -0
  38. package/dist/hooks/use-copy-to-clipboard/index.cjs +1 -0
  39. package/dist/hooks/use-copy-to-clipboard/index.d.cts +1 -0
  40. package/dist/hooks/use-copy-to-clipboard/index.d.ts +1 -0
  41. package/dist/hooks/use-copy-to-clipboard/index.js +1 -0
  42. package/dist/hooks/use-copy-to-clipboard/use-copy-to-clipboard.cjs +1 -0
  43. package/dist/hooks/use-copy-to-clipboard/use-copy-to-clipboard.d.cts +26 -0
  44. package/dist/hooks/use-copy-to-clipboard/use-copy-to-clipboard.d.ts +26 -0
  45. package/dist/hooks/use-copy-to-clipboard/use-copy-to-clipboard.js +1 -0
  46. package/dist/hooks/use-countdown-date/index.cjs +1 -0
  47. package/dist/hooks/use-countdown-date/index.d.cts +1 -0
  48. package/dist/hooks/use-countdown-date/index.d.ts +1 -0
  49. package/dist/hooks/use-countdown-date/index.js +1 -0
  50. package/dist/hooks/use-countdown-date/use-countdown-date.cjs +1 -0
  51. package/dist/hooks/use-countdown-date/use-countdown-date.d.cts +29 -0
  52. package/dist/hooks/use-countdown-date/use-countdown-date.d.ts +29 -0
  53. package/dist/hooks/use-countdown-date/use-countdown-date.js +1 -0
  54. package/dist/hooks/use-countdown-seconds/index.cjs +1 -0
  55. package/dist/hooks/use-countdown-seconds/index.d.cts +2 -0
  56. package/dist/hooks/use-countdown-seconds/index.d.ts +2 -0
  57. package/dist/hooks/use-countdown-seconds/index.js +1 -0
  58. package/dist/hooks/use-countdown-seconds/use-countdown-seconds.cjs +1 -0
  59. package/dist/hooks/use-countdown-seconds/use-countdown-seconds.d.cts +35 -0
  60. package/dist/hooks/use-countdown-seconds/use-countdown-seconds.d.ts +35 -0
  61. package/dist/hooks/use-countdown-seconds/use-countdown-seconds.js +1 -0
  62. package/dist/hooks/use-debounce/index.cjs +1 -0
  63. package/dist/hooks/use-debounce/index.d.cts +1 -0
  64. package/dist/hooks/use-debounce/index.d.ts +1 -0
  65. package/dist/hooks/use-debounce/index.js +1 -0
  66. package/dist/hooks/use-debounce/use-debounce.cjs +1 -0
  67. package/dist/hooks/use-debounce/use-debounce.d.cts +21 -0
  68. package/dist/hooks/use-debounce/use-debounce.d.ts +21 -0
  69. package/dist/hooks/use-debounce/use-debounce.js +1 -0
  70. package/dist/hooks/use-double-click/index.cjs +1 -0
  71. package/dist/hooks/use-double-click/index.d.cts +2 -0
  72. package/dist/hooks/use-double-click/index.d.ts +2 -0
  73. package/dist/hooks/use-double-click/index.js +1 -0
  74. package/dist/hooks/use-double-click/use-double-click.cjs +1 -0
  75. package/dist/hooks/use-double-click/use-double-click.d.cts +28 -0
  76. package/dist/hooks/use-double-click/use-double-click.d.ts +28 -0
  77. package/dist/hooks/use-double-click/use-double-click.js +1 -0
  78. package/dist/hooks/use-is-client/index.cjs +1 -0
  79. package/dist/hooks/use-is-client/index.d.cts +1 -0
  80. package/dist/hooks/use-is-client/index.d.ts +1 -0
  81. package/dist/hooks/use-is-client/index.js +1 -0
  82. package/dist/hooks/use-is-client/use-is-client.cjs +1 -0
  83. package/dist/hooks/use-is-client/use-is-client.d.cts +18 -0
  84. package/dist/hooks/use-is-client/use-is-client.d.ts +18 -0
  85. package/dist/hooks/use-is-client/use-is-client.js +1 -0
  86. package/dist/hooks/use-local-storage/index.cjs +1 -0
  87. package/dist/hooks/use-local-storage/index.d.cts +1 -0
  88. package/dist/hooks/use-local-storage/index.d.ts +1 -0
  89. package/dist/hooks/use-local-storage/index.js +1 -0
  90. package/dist/hooks/use-local-storage/use-local-storage.cjs +1 -0
  91. package/dist/hooks/use-local-storage/use-local-storage.d.cts +38 -0
  92. package/dist/hooks/use-local-storage/use-local-storage.d.ts +38 -0
  93. package/dist/hooks/use-local-storage/use-local-storage.js +1 -0
  94. package/dist/hooks/use-multi-select/index.cjs +1 -0
  95. package/dist/hooks/use-multi-select/index.d.cts +2 -0
  96. package/dist/hooks/use-multi-select/index.d.ts +2 -0
  97. package/dist/hooks/use-multi-select/index.js +1 -0
  98. package/dist/hooks/use-multi-select/use-multi-select.cjs +1 -0
  99. package/dist/hooks/use-multi-select/use-multi-select.d.cts +55 -0
  100. package/dist/hooks/use-multi-select/use-multi-select.d.ts +55 -0
  101. package/dist/hooks/use-multi-select/use-multi-select.js +1 -0
  102. package/dist/hooks/use-popover/index.cjs +1 -0
  103. package/dist/hooks/use-popover/index.d.cts +2 -0
  104. package/dist/hooks/use-popover/index.d.ts +2 -0
  105. package/dist/hooks/use-popover/index.js +1 -0
  106. package/dist/hooks/use-popover/use-popover.cjs +1 -0
  107. package/dist/hooks/use-popover/use-popover.d.cts +35 -0
  108. package/dist/hooks/use-popover/use-popover.d.ts +35 -0
  109. package/dist/hooks/use-popover/use-popover.js +1 -0
  110. package/dist/hooks/use-popover-hover/index.cjs +1 -0
  111. package/dist/hooks/use-popover-hover/index.d.cts +2 -0
  112. package/dist/hooks/use-popover-hover/index.d.ts +2 -0
  113. package/dist/hooks/use-popover-hover/index.js +1 -0
  114. package/dist/hooks/use-popover-hover/use-popover-hover.cjs +1 -0
  115. package/dist/hooks/use-popover-hover/use-popover-hover.d.cts +41 -0
  116. package/dist/hooks/use-popover-hover/use-popover-hover.d.ts +41 -0
  117. package/dist/hooks/use-popover-hover/use-popover-hover.js +1 -0
  118. package/dist/hooks/use-scroll-offset-top/index.cjs +1 -0
  119. package/dist/hooks/use-scroll-offset-top/index.d.cts +2 -0
  120. package/dist/hooks/use-scroll-offset-top/index.d.ts +2 -0
  121. package/dist/hooks/use-scroll-offset-top/index.js +1 -0
  122. package/dist/hooks/use-scroll-offset-top/use-scroll-offset-top.cjs +1 -0
  123. package/dist/hooks/use-scroll-offset-top/use-scroll-offset-top.d.cts +28 -0
  124. package/dist/hooks/use-scroll-offset-top/use-scroll-offset-top.d.ts +28 -0
  125. package/dist/hooks/use-scroll-offset-top/use-scroll-offset-top.js +1 -0
  126. package/dist/hooks/use-set-state/index.cjs +1 -0
  127. package/dist/hooks/use-set-state/index.d.cts +1 -0
  128. package/dist/hooks/use-set-state/index.d.ts +1 -0
  129. package/dist/hooks/use-set-state/index.js +1 -0
  130. package/dist/hooks/use-set-state/use-set-state.cjs +1 -0
  131. package/dist/hooks/use-set-state/use-set-state.d.cts +32 -0
  132. package/dist/hooks/use-set-state/use-set-state.d.ts +32 -0
  133. package/dist/hooks/use-set-state/use-set-state.js +1 -0
  134. package/dist/hooks/use-tabs/index.cjs +1 -0
  135. package/dist/hooks/use-tabs/index.d.cts +2 -0
  136. package/dist/hooks/use-tabs/index.d.ts +2 -0
  137. package/dist/hooks/use-tabs/index.js +1 -0
  138. package/dist/hooks/use-tabs/use-tabs.cjs +1 -0
  139. package/dist/hooks/use-tabs/use-tabs.d.cts +58 -0
  140. package/dist/hooks/use-tabs/use-tabs.d.ts +58 -0
  141. package/dist/hooks/use-tabs/use-tabs.js +1 -0
  142. package/dist/index.cjs +2 -0
  143. package/dist/index.d.cts +31 -0
  144. package/dist/index.d.ts +31 -0
  145. package/dist/index.js +2 -0
  146. package/dist/utils/active-link/active-link.cjs +1 -0
  147. package/dist/utils/active-link/active-link.d.cts +27 -0
  148. package/dist/utils/active-link/active-link.d.ts +27 -0
  149. package/dist/utils/active-link/active-link.js +1 -0
  150. package/dist/utils/active-link/index.cjs +1 -0
  151. package/dist/utils/active-link/index.d.cts +1 -0
  152. package/dist/utils/active-link/index.d.ts +1 -0
  153. package/dist/utils/active-link/index.js +1 -0
  154. package/dist/utils/classes/classes.cjs +1 -0
  155. package/dist/utils/classes/classes.d.cts +25 -0
  156. package/dist/utils/classes/classes.d.ts +25 -0
  157. package/dist/utils/classes/classes.js +1 -0
  158. package/dist/utils/classes/index.cjs +1 -0
  159. package/dist/utils/classes/index.d.cts +1 -0
  160. package/dist/utils/classes/index.d.ts +1 -0
  161. package/dist/utils/classes/index.js +1 -0
  162. package/dist/utils/color/color.cjs +2 -0
  163. package/dist/utils/color/color.d.cts +52 -0
  164. package/dist/utils/color/color.d.ts +52 -0
  165. package/dist/utils/color/color.js +2 -0
  166. package/dist/utils/color/index.cjs +2 -0
  167. package/dist/utils/color/index.d.cts +1 -0
  168. package/dist/utils/color/index.d.ts +1 -0
  169. package/dist/utils/color/index.js +2 -0
  170. package/dist/utils/cookies/cookies.cjs +1 -0
  171. package/dist/utils/cookies/cookies.d.cts +42 -0
  172. package/dist/utils/cookies/cookies.d.ts +42 -0
  173. package/dist/utils/cookies/cookies.js +1 -0
  174. package/dist/utils/cookies/index.cjs +1 -0
  175. package/dist/utils/cookies/index.d.cts +1 -0
  176. package/dist/utils/cookies/index.d.ts +1 -0
  177. package/dist/utils/cookies/index.js +1 -0
  178. package/dist/utils/css-variables/css-variables.cjs +1 -0
  179. package/dist/utils/css-variables/css-variables.d.cts +14 -0
  180. package/dist/utils/css-variables/css-variables.d.ts +14 -0
  181. package/dist/utils/css-variables/css-variables.js +1 -0
  182. package/dist/utils/css-variables/index.cjs +1 -0
  183. package/dist/utils/css-variables/index.d.cts +1 -0
  184. package/dist/utils/css-variables/index.d.ts +1 -0
  185. package/dist/utils/css-variables/index.js +1 -0
  186. package/dist/utils/font/font.cjs +1 -0
  187. package/dist/utils/font/font.d.cts +37 -0
  188. package/dist/utils/font/font.d.ts +37 -0
  189. package/dist/utils/font/font.js +1 -0
  190. package/dist/utils/font/index.cjs +1 -0
  191. package/dist/utils/font/index.d.cts +1 -0
  192. package/dist/utils/font/index.d.ts +1 -0
  193. package/dist/utils/font/index.js +1 -0
  194. package/dist/utils/index.cjs +2 -0
  195. package/dist/utils/index.d.cts +13 -0
  196. package/dist/utils/index.d.ts +13 -0
  197. package/dist/utils/index.js +2 -0
  198. package/dist/utils/local-storage/index.cjs +1 -0
  199. package/dist/utils/local-storage/index.d.cts +1 -0
  200. package/dist/utils/local-storage/index.d.ts +1 -0
  201. package/dist/utils/local-storage/index.js +1 -0
  202. package/dist/utils/local-storage/local-storage.cjs +1 -0
  203. package/dist/utils/local-storage/local-storage.d.cts +43 -0
  204. package/dist/utils/local-storage/local-storage.d.ts +43 -0
  205. package/dist/utils/local-storage/local-storage.js +1 -0
  206. package/dist/utils/object/index.cjs +1 -0
  207. package/dist/utils/object/index.d.cts +1 -0
  208. package/dist/utils/object/index.d.ts +1 -0
  209. package/dist/utils/object/index.js +1 -0
  210. package/dist/utils/object/object.cjs +1 -0
  211. package/dist/utils/object/object.d.cts +26 -0
  212. package/dist/utils/object/object.d.ts +26 -0
  213. package/dist/utils/object/object.js +1 -0
  214. package/dist/utils/refs/index.cjs +1 -0
  215. package/dist/utils/refs/index.d.cts +1 -0
  216. package/dist/utils/refs/index.d.ts +1 -0
  217. package/dist/utils/refs/index.js +1 -0
  218. package/dist/utils/refs/refs.cjs +1 -0
  219. package/dist/utils/refs/refs.d.cts +3 -0
  220. package/dist/utils/refs/refs.d.ts +3 -0
  221. package/dist/utils/refs/refs.js +1 -0
  222. package/dist/utils/right-to-left/index.cjs +1 -0
  223. package/dist/utils/right-to-left/index.d.cts +1 -0
  224. package/dist/utils/right-to-left/index.d.ts +1 -0
  225. package/dist/utils/right-to-left/index.js +1 -0
  226. package/dist/utils/right-to-left/right-to-left.cjs +1 -0
  227. package/dist/utils/right-to-left/right-to-left.d.cts +13 -0
  228. package/dist/utils/right-to-left/right-to-left.d.ts +13 -0
  229. package/dist/utils/right-to-left/right-to-left.js +1 -0
  230. package/dist/utils/transform-number/index.cjs +1 -0
  231. package/dist/utils/transform-number/index.d.cts +1 -0
  232. package/dist/utils/transform-number/index.d.ts +1 -0
  233. package/dist/utils/transform-number/index.js +1 -0
  234. package/dist/utils/transform-number/transform-number.cjs +1 -0
  235. package/dist/utils/transform-number/transform-number.d.cts +31 -0
  236. package/dist/utils/transform-number/transform-number.d.ts +31 -0
  237. package/dist/utils/transform-number/transform-number.js +1 -0
  238. package/dist/utils/url/index.cjs +1 -0
  239. package/dist/utils/url/index.d.cts +1 -0
  240. package/dist/utils/url/index.d.ts +1 -0
  241. package/dist/utils/url/index.js +1 -0
  242. package/dist/utils/url/url.cjs +1 -0
  243. package/dist/utils/url/url.d.cts +74 -0
  244. package/dist/utils/url/url.d.ts +74 -0
  245. package/dist/utils/url/url.js +1 -0
  246. package/dist/utils/uuidv4/index.cjs +1 -0
  247. package/dist/utils/uuidv4/index.d.cts +1 -0
  248. package/dist/utils/uuidv4/index.d.ts +1 -0
  249. package/dist/utils/uuidv4/index.js +1 -0
  250. package/dist/utils/uuidv4/uuidv4.cjs +1 -0
  251. package/dist/utils/uuidv4/uuidv4.d.cts +12 -0
  252. package/dist/utils/uuidv4/uuidv4.d.ts +12 -0
  253. package/dist/utils/uuidv4/uuidv4.js +1 -0
  254. package/package.json +113 -0
@@ -0,0 +1,55 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the selection state of a list of items.
5
+ *
6
+ * @param {string[]} itemIds - The list of item IDs to manage.
7
+ * @param {string[]} [defaultSelected=[]] - The list of default selected item IDs.
8
+ *
9
+ * @returns {UseMultiSelectReturn} - An object containing:
10
+ * - `values`: The current list of selected item IDs.
11
+ * - `status`: The current selection status ('checked', 'unchecked', 'indeterminate').
12
+ * - `setValues`: A function to manually set the selected item IDs.
13
+ * - `onSelectAllItems`: A function to select all items.
14
+ * - `onDeSelectAllItems`: A function to deselect all items.
15
+ * - `onToggleSelectItem`: A function to toggle the selection of a specific item.
16
+ *
17
+ * @example
18
+ * const { values, status, onSelectAllItems, onDeSelectAllItems, onToggleSelectItem } = useMultiSelect(['item1', 'item2', 'item3'], ['item1']);
19
+ *
20
+ * return (
21
+ * <div>
22
+ * <button onClick={onSelectAllItems}>Select All</button>
23
+ * <button onClick={onDeSelectAllItems}>Deselect All</button>
24
+ * {itemIds.map(itemId => (
25
+ * <div key={itemId}>
26
+ * <input
27
+ * type="checkbox"
28
+ * checked={values.includes(itemId)}
29
+ * onChange={() => onToggleSelectItem(itemId)}
30
+ * />
31
+ * {itemId}
32
+ * </div>
33
+ * ))}
34
+ * </div>
35
+ * );
36
+ */
37
+ type UseMultiSelectReturn = {
38
+ values: string[];
39
+ status: 'checked' | 'unchecked' | 'indeterminate';
40
+ setValues: Dispatch<SetStateAction<string[]>>;
41
+ onSelectAllItems: () => void;
42
+ onDeSelectAllItems: () => void;
43
+ onToggleSelectItem: (inputValue: string) => void;
44
+ };
45
+ declare function useMultiSelect(listItems: string[], defaultSelectedItems?: string[]): UseMultiSelectReturn;
46
+ /**
47
+ * Updates the selected items list by adding or removing the specified item.
48
+ *
49
+ * @param {string[]} selectedItems - The current list of selected items.
50
+ * @param {string} newItem - The item to add or remove.
51
+ * @returns {string[]} - The updated list of selected items.
52
+ */
53
+ declare function updateSelectedItems(selectedItems: string[], newItem: string): string[];
54
+
55
+ export { type UseMultiSelectReturn, updateSelectedItems, useMultiSelect };
@@ -0,0 +1,55 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the selection state of a list of items.
5
+ *
6
+ * @param {string[]} itemIds - The list of item IDs to manage.
7
+ * @param {string[]} [defaultSelected=[]] - The list of default selected item IDs.
8
+ *
9
+ * @returns {UseMultiSelectReturn} - An object containing:
10
+ * - `values`: The current list of selected item IDs.
11
+ * - `status`: The current selection status ('checked', 'unchecked', 'indeterminate').
12
+ * - `setValues`: A function to manually set the selected item IDs.
13
+ * - `onSelectAllItems`: A function to select all items.
14
+ * - `onDeSelectAllItems`: A function to deselect all items.
15
+ * - `onToggleSelectItem`: A function to toggle the selection of a specific item.
16
+ *
17
+ * @example
18
+ * const { values, status, onSelectAllItems, onDeSelectAllItems, onToggleSelectItem } = useMultiSelect(['item1', 'item2', 'item3'], ['item1']);
19
+ *
20
+ * return (
21
+ * <div>
22
+ * <button onClick={onSelectAllItems}>Select All</button>
23
+ * <button onClick={onDeSelectAllItems}>Deselect All</button>
24
+ * {itemIds.map(itemId => (
25
+ * <div key={itemId}>
26
+ * <input
27
+ * type="checkbox"
28
+ * checked={values.includes(itemId)}
29
+ * onChange={() => onToggleSelectItem(itemId)}
30
+ * />
31
+ * {itemId}
32
+ * </div>
33
+ * ))}
34
+ * </div>
35
+ * );
36
+ */
37
+ type UseMultiSelectReturn = {
38
+ values: string[];
39
+ status: 'checked' | 'unchecked' | 'indeterminate';
40
+ setValues: Dispatch<SetStateAction<string[]>>;
41
+ onSelectAllItems: () => void;
42
+ onDeSelectAllItems: () => void;
43
+ onToggleSelectItem: (inputValue: string) => void;
44
+ };
45
+ declare function useMultiSelect(listItems: string[], defaultSelectedItems?: string[]): UseMultiSelectReturn;
46
+ /**
47
+ * Updates the selected items list by adding or removing the specified item.
48
+ *
49
+ * @param {string[]} selectedItems - The current list of selected items.
50
+ * @param {string} newItem - The item to add or remove.
51
+ * @returns {string[]} - The updated list of selected items.
52
+ */
53
+ declare function updateSelectedItems(selectedItems: string[], newItem: string): string[];
54
+
55
+ export { type UseMultiSelectReturn, updateSelectedItems, useMultiSelect };
@@ -0,0 +1 @@
1
+ import{useCallback as c,useMemo as a,useState as S}from"react";function d(e,n){let[t,l]=S(n??[]),i=c(r=>{l(g=>h(g,r))},[]),o=c(()=>{l(r=>r.length===e.length?[]:e)},[e]),u=c(()=>{l([])},[]),s=a(()=>t.length===0?"unchecked":t.length===e.length?"checked":"indeterminate",[e.length,t.length]);return{values:t,status:s,setValues:l,onSelectAllItems:o,onDeSelectAllItems:u,onToggleSelectItem:i}}function h(e,n){return e.includes(n)?e.filter(t=>t!==n):[...e,n]}export{h as updateSelectedItems,d as useMultiSelect};
@@ -0,0 +1 @@
1
+ "use strict";var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of u(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(r=p(e,n))||r.enumerable});return t};var E=t=>a(s({},"__esModule",{value:!0}),t);var m={};T(m,{usePopover:()=>i});module.exports=E(m);var l=require("react");function i(){let[t,e]=(0,l.useState)(null),o=(0,l.useCallback)(n=>{e(n.currentTarget)},[]),r=(0,l.useCallback)(()=>{e(null)},[]);return{open:!!t,anchorEl:t,onOpen:o,onClose:r,setAnchorEl:e}}0&&(module.exports={usePopover});
@@ -0,0 +1,2 @@
1
+ export { UsePopoverReturn, usePopover } from './use-popover.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { UsePopoverReturn, usePopover } from './use-popover.js';
2
+ import 'react';
@@ -0,0 +1 @@
1
+ import{useCallback as n,useState as s}from"react";function u(){let[t,e]=s(null),o=n(r=>{e(r.currentTarget)},[]),l=n(()=>{e(null)},[]);return{open:!!t,anchorEl:t,onOpen:o,onClose:l,setAnchorEl:e}}export{u as usePopover};
@@ -0,0 +1 @@
1
+ "use strict";var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},a=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of c(e))!p.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(r=u(e,n))||r.enumerable});return t};var E=t=>a(s({},"__esModule",{value:!0}),t);var v={};T(v,{usePopover:()=>i});module.exports=E(v);var l=require("react");function i(){let[t,e]=(0,l.useState)(null),o=(0,l.useCallback)(n=>{e(n.currentTarget)},[]),r=(0,l.useCallback)(()=>{e(null)},[]);return{open:!!t,anchorEl:t,onOpen:o,onClose:r,setAnchorEl:e}}0&&(module.exports={usePopover});
@@ -0,0 +1,35 @@
1
+ import { MouseEvent, Dispatch, SetStateAction } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the state of a popover.
5
+ *
6
+ * @returns {UsePopoverReturn<T>} - An object containing:
7
+ * - `open`: A boolean indicating whether the popover is open.
8
+ * - `anchorEl`: The current element that the popover is anchored to.
9
+ * - `onClose`: A function to close the popover.
10
+ * - `onOpen`: A function to open the popover.
11
+ * - `setAnchorEl`: A function to manually set the anchor element.
12
+ *
13
+ * @example
14
+ * const { open, anchorEl, onOpen, onClose } = usePopover<HTMLButtonElement>();
15
+ *
16
+ * return (
17
+ * <>
18
+ * <button variant="contained" onClick={onOpen}>Click me</button>
19
+ *
20
+ * <Popover open={open} onClose={onClose} anchorEl={anchorEl}>
21
+ * Popover content
22
+ * </Popover>
23
+ * </>
24
+ * );
25
+ */
26
+ type UsePopoverReturn<T extends HTMLElement = HTMLElement> = {
27
+ open: boolean;
28
+ anchorEl: T | null;
29
+ onClose: () => void;
30
+ onOpen: (event: MouseEvent<T>) => void;
31
+ setAnchorEl: Dispatch<SetStateAction<T | null>>;
32
+ };
33
+ declare function usePopover<T extends HTMLElement = HTMLElement>(): UsePopoverReturn<T>;
34
+
35
+ export { type UsePopoverReturn, usePopover };
@@ -0,0 +1,35 @@
1
+ import { MouseEvent, Dispatch, SetStateAction } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the state of a popover.
5
+ *
6
+ * @returns {UsePopoverReturn<T>} - An object containing:
7
+ * - `open`: A boolean indicating whether the popover is open.
8
+ * - `anchorEl`: The current element that the popover is anchored to.
9
+ * - `onClose`: A function to close the popover.
10
+ * - `onOpen`: A function to open the popover.
11
+ * - `setAnchorEl`: A function to manually set the anchor element.
12
+ *
13
+ * @example
14
+ * const { open, anchorEl, onOpen, onClose } = usePopover<HTMLButtonElement>();
15
+ *
16
+ * return (
17
+ * <>
18
+ * <button variant="contained" onClick={onOpen}>Click me</button>
19
+ *
20
+ * <Popover open={open} onClose={onClose} anchorEl={anchorEl}>
21
+ * Popover content
22
+ * </Popover>
23
+ * </>
24
+ * );
25
+ */
26
+ type UsePopoverReturn<T extends HTMLElement = HTMLElement> = {
27
+ open: boolean;
28
+ anchorEl: T | null;
29
+ onClose: () => void;
30
+ onOpen: (event: MouseEvent<T>) => void;
31
+ setAnchorEl: Dispatch<SetStateAction<T | null>>;
32
+ };
33
+ declare function usePopover<T extends HTMLElement = HTMLElement>(): UsePopoverReturn<T>;
34
+
35
+ export { type UsePopoverReturn, usePopover };
@@ -0,0 +1 @@
1
+ import{useCallback as n,useState as s}from"react";function c(){let[t,e]=s(null),o=n(r=>{e(r.currentTarget)},[]),l=n(()=>{e(null)},[]);return{open:!!t,anchorEl:t,onOpen:o,onClose:l,setAnchorEl:e}}export{c as usePopover};
@@ -0,0 +1 @@
1
+ "use strict";var s=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var n in e)s(t,n,{get:e[n],enumerable:!0})},m=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of f(e))!u.call(t,o)&&o!==n&&s(t,o,{get:()=>e[o],enumerable:!(r=p(e,o))||r.enumerable});return t};var R=t=>m(s({},"__esModule",{value:!0}),t);var b={};T(b,{usePopoverHover:()=>i});module.exports=R(b);var l=require("react");function i(t){let e=(0,l.useRef)(null),n=t||e,[r,o]=(0,l.useState)(!1),c=(0,l.useCallback)(()=>{o(!0)},[]),a=(0,l.useCallback)(()=>{o(!1)},[]);return{elementRef:n,anchorEl:n.current,open:r,onOpen:c,onClose:a,setOpen:o}}0&&(module.exports={usePopoverHover});
@@ -0,0 +1,2 @@
1
+ export { usePopoverHover } from './use-popover-hover.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { usePopoverHover } from './use-popover-hover.js';
2
+ import 'react';
@@ -0,0 +1 @@
1
+ import{useCallback as o,useRef as a,useState as p}from"react";function u(n){let l=a(null),t=n||l,[r,e]=p(!1),s=o(()=>{e(!0)},[]),c=o(()=>{e(!1)},[]);return{elementRef:t,anchorEl:t.current,open:r,onOpen:s,onClose:c,setOpen:e}}export{u as usePopoverHover};
@@ -0,0 +1 @@
1
+ "use strict";var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var n in e)r(t,n,{get:e[n],enumerable:!0})},m=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of f(e))!u.call(t,o)&&o!==n&&r(t,o,{get:()=>e[o],enumerable:!(s=p(e,o))||s.enumerable});return t};var R=t=>m(r({},"__esModule",{value:!0}),t);var b={};T(b,{usePopoverHover:()=>i});module.exports=R(b);var l=require("react");function i(t){let e=(0,l.useRef)(null),n=t||e,[s,o]=(0,l.useState)(!1),c=(0,l.useCallback)(()=>{o(!0)},[]),a=(0,l.useCallback)(()=>{o(!1)},[]);return{elementRef:n,anchorEl:n.current,open:s,onOpen:c,onClose:a,setOpen:o}}0&&(module.exports={usePopoverHover});
@@ -0,0 +1,41 @@
1
+ import { RefObject, Dispatch, SetStateAction } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the state of a popover that opens on hover.
5
+ *
6
+ * @param {RefObject<T | null>} [inputRef] - An optional ref object to use for the popover element.
7
+ *
8
+ * @returns {UsePopoverHoverReturn<T>} - An object containing:
9
+ * - `open`: A boolean indicating whether the popover is open.
10
+ * - `onOpen`: A function to open the popover.
11
+ * - `anchorEl`: The current element that the popover is anchored to.
12
+ * - `onClose`: A function to close the popover.
13
+ * - `elementRef`: A ref object for the popover element.
14
+ * - `setOpen`: A function to manually set the open state of the popover.
15
+ *
16
+ * @example
17
+ * const { open, onOpen, onClose, elementRef } = usePopoverHover<HTMLButtonElement>();
18
+ *
19
+ * return (
20
+ * <>
21
+ * <button ref={elementRef} onMouseEnter={onOpen} onMouseLeave={onClose}>
22
+ * Hover me
23
+ * </button>
24
+ *
25
+ * <Popover open={open} anchorEl={anchorEl}>
26
+ * Popover content
27
+ * </Popover>
28
+ * </>
29
+ * );
30
+ */
31
+ type UsePopoverHoverReturn<T extends HTMLElement = HTMLElement> = {
32
+ open: boolean;
33
+ anchorEl: T | null;
34
+ onOpen: () => void;
35
+ onClose: () => void;
36
+ elementRef: RefObject<T>;
37
+ setOpen: Dispatch<SetStateAction<boolean>>;
38
+ };
39
+ declare function usePopoverHover<T extends HTMLElement = HTMLElement>(inputRef?: RefObject<T | null>): UsePopoverHoverReturn<T>;
40
+
41
+ export { usePopoverHover };
@@ -0,0 +1,41 @@
1
+ import { RefObject, Dispatch, SetStateAction } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the state of a popover that opens on hover.
5
+ *
6
+ * @param {RefObject<T | null>} [inputRef] - An optional ref object to use for the popover element.
7
+ *
8
+ * @returns {UsePopoverHoverReturn<T>} - An object containing:
9
+ * - `open`: A boolean indicating whether the popover is open.
10
+ * - `onOpen`: A function to open the popover.
11
+ * - `anchorEl`: The current element that the popover is anchored to.
12
+ * - `onClose`: A function to close the popover.
13
+ * - `elementRef`: A ref object for the popover element.
14
+ * - `setOpen`: A function to manually set the open state of the popover.
15
+ *
16
+ * @example
17
+ * const { open, onOpen, onClose, elementRef } = usePopoverHover<HTMLButtonElement>();
18
+ *
19
+ * return (
20
+ * <>
21
+ * <button ref={elementRef} onMouseEnter={onOpen} onMouseLeave={onClose}>
22
+ * Hover me
23
+ * </button>
24
+ *
25
+ * <Popover open={open} anchorEl={anchorEl}>
26
+ * Popover content
27
+ * </Popover>
28
+ * </>
29
+ * );
30
+ */
31
+ type UsePopoverHoverReturn<T extends HTMLElement = HTMLElement> = {
32
+ open: boolean;
33
+ anchorEl: T | null;
34
+ onOpen: () => void;
35
+ onClose: () => void;
36
+ elementRef: RefObject<T>;
37
+ setOpen: Dispatch<SetStateAction<boolean>>;
38
+ };
39
+ declare function usePopoverHover<T extends HTMLElement = HTMLElement>(inputRef?: RefObject<T | null>): UsePopoverHoverReturn<T>;
40
+
41
+ export { usePopoverHover };
@@ -0,0 +1 @@
1
+ import{useCallback as o,useRef as a,useState as p}from"react";function u(n){let l=a(null),t=n||l,[s,e]=p(!1),r=o(()=>{e(!0)},[]),c=o(()=>{e(!1)},[]);return{elementRef:t,anchorEl:t.current,open:s,onOpen:r,onClose:c,setOpen:e}}export{u as usePopoverHover};
@@ -0,0 +1 @@
1
+ "use strict";var f=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var i=(t,e)=>{for(var r in e)f(t,r,{get:e[r],enumerable:!0})},u=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of p(e))!m.call(t,o)&&o!==r&&f(t,o,{get:()=>e[o],enumerable:!(s=T(e,o))||s.enumerable});return t};var w=t=>u(f({},"__esModule",{value:!0}),t);var R={};i(R,{useScrollOffsetTop:()=>O});module.exports=w(R);var n=require("react");function O(t=0){let e=(0,n.useRef)(null),[r,s]=(0,n.useState)(!1),o=(0,n.useCallback)(()=>{let l=window.scrollY;if(e.current){let c=e.current.offsetTop;s(l>c-t)}else s(l>t)},[t]);return(0,n.useEffect)(()=>(o(),window.addEventListener("scroll",o),()=>{window.removeEventListener("scroll",o)}),[o]),{elementRef:e,offsetTop:r}}0&&(module.exports={useScrollOffsetTop});
@@ -0,0 +1,2 @@
1
+ export { UseScrollOffsetTopReturn, useScrollOffsetTop } from './use-scroll-offset-top.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { UseScrollOffsetTopReturn, useScrollOffsetTop } from './use-scroll-offset-top.js';
2
+ import 'react';
@@ -0,0 +1 @@
1
+ import{useCallback as l,useEffect as c,useRef as T,useState as p}from"react";function i(t=0){let o=T(null),[s,n]=p(!1),e=l(()=>{let r=window.scrollY;if(o.current){let f=o.current.offsetTop;n(r>f-t)}else n(r>t)},[t]);return c(()=>(e(),window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}),[e]),{elementRef:o,offsetTop:s}}export{i as useScrollOffsetTop};
@@ -0,0 +1 @@
1
+ "use strict";var l=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var i=(t,e)=>{for(var s in e)l(t,s,{get:e[s],enumerable:!0})},u=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of p(e))!m.call(t,o)&&o!==s&&l(t,o,{get:()=>e[o],enumerable:!(r=T(e,o))||r.enumerable});return t};var w=t=>u(l({},"__esModule",{value:!0}),t);var R={};i(R,{useScrollOffsetTop:()=>O});module.exports=w(R);var n=require("react");function O(t=0){let e=(0,n.useRef)(null),[s,r]=(0,n.useState)(!1),o=(0,n.useCallback)(()=>{let f=window.scrollY;if(e.current){let c=e.current.offsetTop;r(f>c-t)}else r(f>t)},[t]);return(0,n.useEffect)(()=>(o(),window.addEventListener("scroll",o),()=>{window.removeEventListener("scroll",o)}),[o]),{elementRef:e,offsetTop:s}}0&&(module.exports={useScrollOffsetTop});
@@ -0,0 +1,28 @@
1
+ import { RefObject } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the offset top state based on scroll position.
5
+ *
6
+ * @param {number} [defaultValue=0] - The offset value at which the state changes.
7
+ *
8
+ * @returns {UseScrollOffsetTopReturn<T>} - An object containing:
9
+ * - `offsetTop`: A boolean indicating whether the scroll position is past the offset.
10
+ * - `elementRef`: A ref object to attach to the element to track its offset.
11
+ *
12
+ * @example
13
+ * 1.Applies to top <header/>
14
+ * const { offsetTop } = useScrollOffsetTop(80);
15
+ *
16
+ * Or
17
+ *
18
+ * 2.Applies to element
19
+ * const { offsetTop, elementRef } = useScrollOffsetTop(80);
20
+ * <div ref={elementRef} />
21
+ */
22
+ type UseScrollOffsetTopReturn<T extends HTMLElement = HTMLElement> = {
23
+ offsetTop: boolean;
24
+ elementRef: RefObject<T>;
25
+ };
26
+ declare function useScrollOffsetTop<T extends HTMLElement = HTMLElement>(defaultValue?: number): UseScrollOffsetTopReturn<T>;
27
+
28
+ export { type UseScrollOffsetTopReturn, useScrollOffsetTop };
@@ -0,0 +1,28 @@
1
+ import { RefObject } from 'react';
2
+
3
+ /**
4
+ * Custom hook to manage the offset top state based on scroll position.
5
+ *
6
+ * @param {number} [defaultValue=0] - The offset value at which the state changes.
7
+ *
8
+ * @returns {UseScrollOffsetTopReturn<T>} - An object containing:
9
+ * - `offsetTop`: A boolean indicating whether the scroll position is past the offset.
10
+ * - `elementRef`: A ref object to attach to the element to track its offset.
11
+ *
12
+ * @example
13
+ * 1.Applies to top <header/>
14
+ * const { offsetTop } = useScrollOffsetTop(80);
15
+ *
16
+ * Or
17
+ *
18
+ * 2.Applies to element
19
+ * const { offsetTop, elementRef } = useScrollOffsetTop(80);
20
+ * <div ref={elementRef} />
21
+ */
22
+ type UseScrollOffsetTopReturn<T extends HTMLElement = HTMLElement> = {
23
+ offsetTop: boolean;
24
+ elementRef: RefObject<T>;
25
+ };
26
+ declare function useScrollOffsetTop<T extends HTMLElement = HTMLElement>(defaultValue?: number): UseScrollOffsetTopReturn<T>;
27
+
28
+ export { type UseScrollOffsetTopReturn, useScrollOffsetTop };
@@ -0,0 +1 @@
1
+ import{useCallback as f,useEffect as c,useRef as T,useState as p}from"react";function i(t=0){let o=T(null),[r,n]=p(!1),e=f(()=>{let s=window.scrollY;if(o.current){let l=o.current.offsetTop;n(s>l-t)}else n(s>t)},[t]);return c(()=>(e(),window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}),[e]),{elementRef:o,offsetTop:r}}export{i as useScrollOffsetTop};
@@ -0,0 +1 @@
1
+ "use strict";var d=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var a in e)d(t,a,{get:e[a],enumerable:!0})},c=(t,e,a,T)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of f(e))!p.call(t,s)&&s!==a&&d(t,s,{get:()=>e[s],enumerable:!(T=n(e,s))||T.enumerable});return t};var i=t=>c(d({},"__esModule",{value:!0}),t);var y={};l(y,{useSetState:()=>k});module.exports=i(y);var o=require("react");function k(t){let[e,a]=(0,o.useState)(t),T=(0,o.useCallback)(r=>{a(u=>({...u,...r}))},[]),s=(0,o.useCallback)((r,u)=>{T({[r]:u})},[T]),S=(0,o.useCallback)(r=>{a(r??t)},[t]);return{state:e,setState:T,setField:s,resetState:S}}0&&(module.exports={useSetState});
@@ -0,0 +1 @@
1
+ export { UseSetStateReturn, useSetState } from './use-set-state.cjs';
@@ -0,0 +1 @@
1
+ export { UseSetStateReturn, useSetState } from './use-set-state.js';
@@ -0,0 +1 @@
1
+ import{useCallback as T,useState as S}from"react";function f(e){let[r,o]=S(e),a=T(t=>{o(s=>({...s,...t}))},[]),u=T((t,s)=>{a({[t]:s})},[a]),d=T(t=>{o(t??e)},[e]);return{state:r,setState:a,setField:u,resetState:d}}export{f as useSetState};
@@ -0,0 +1 @@
1
+ "use strict";var r=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var a in e)r(t,a,{get:e[a],enumerable:!0})},c=(t,e,a,T)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of f(e))!l.call(t,s)&&s!==a&&r(t,s,{get:()=>e[s],enumerable:!(T=n(e,s))||T.enumerable});return t};var i=t=>c(r({},"__esModule",{value:!0}),t);var y={};p(y,{useSetState:()=>k});module.exports=i(y);var o=require("react");function k(t){let[e,a]=(0,o.useState)(t),T=(0,o.useCallback)(u=>{a(d=>({...d,...u}))},[]),s=(0,o.useCallback)((u,d)=>{T({[u]:d})},[T]),S=(0,o.useCallback)(u=>{a(u??t)},[t]);return{state:e,setState:T,setField:s,resetState:S}}0&&(module.exports={useSetState});
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Custom hook to manage state with utility functions to set state, set a specific field, and reset state.
3
+ *
4
+ * @param {T} initialState - The initial state value.
5
+ *
6
+ * @returns {UseSetStateReturn<T>} - An object containing:
7
+ * - `state`: The current state.
8
+ * - `resetState`: A function to reset the state to the initial value.
9
+ * - `setState`: A function to update the state.
10
+ * - `setField`: A function to update a specific field in the state.
11
+ *
12
+ * @example
13
+ * const { state, setState, setField, resetState } = useSetState({ name: '', age: 0 });
14
+ *
15
+ * return (
16
+ * <div>
17
+ * <p>Name: {state.name}</p>
18
+ * <p>Age: {state.age}</p>
19
+ * <button onClick={() => setField('name', 'John')}>Set Name</button>
20
+ * <button onClick={resetState}>Reset</button>
21
+ * </div>
22
+ * );
23
+ */
24
+ type UseSetStateReturn<T> = {
25
+ state: T;
26
+ resetState: (defaultState?: T) => void;
27
+ setState: (updateState: T | Partial<T>) => void;
28
+ setField: (name: keyof T, updateValue: T[keyof T]) => void;
29
+ };
30
+ declare function useSetState<T>(initialState?: T): UseSetStateReturn<T>;
31
+
32
+ export { type UseSetStateReturn, useSetState };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Custom hook to manage state with utility functions to set state, set a specific field, and reset state.
3
+ *
4
+ * @param {T} initialState - The initial state value.
5
+ *
6
+ * @returns {UseSetStateReturn<T>} - An object containing:
7
+ * - `state`: The current state.
8
+ * - `resetState`: A function to reset the state to the initial value.
9
+ * - `setState`: A function to update the state.
10
+ * - `setField`: A function to update a specific field in the state.
11
+ *
12
+ * @example
13
+ * const { state, setState, setField, resetState } = useSetState({ name: '', age: 0 });
14
+ *
15
+ * return (
16
+ * <div>
17
+ * <p>Name: {state.name}</p>
18
+ * <p>Age: {state.age}</p>
19
+ * <button onClick={() => setField('name', 'John')}>Set Name</button>
20
+ * <button onClick={resetState}>Reset</button>
21
+ * </div>
22
+ * );
23
+ */
24
+ type UseSetStateReturn<T> = {
25
+ state: T;
26
+ resetState: (defaultState?: T) => void;
27
+ setState: (updateState: T | Partial<T>) => void;
28
+ setField: (name: keyof T, updateValue: T[keyof T]) => void;
29
+ };
30
+ declare function useSetState<T>(initialState?: T): UseSetStateReturn<T>;
31
+
32
+ export { type UseSetStateReturn, useSetState };
@@ -0,0 +1 @@
1
+ import{useCallback as T,useState as S}from"react";function f(e){let[u,o]=S(e),a=T(t=>{o(s=>({...s,...t}))},[]),d=T((t,s)=>{a({[t]:s})},[a]),r=T(t=>{o(t??e)},[e]);return{state:u,setState:a,setField:d,resetState:r}}export{f as useSetState};
@@ -0,0 +1 @@
1
+ "use strict";var r=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var s in t)r(e,s,{get:t[s],enumerable:!0})},p=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of T(t))!l.call(e,n)&&n!==s&&r(e,n,{get:()=>t[n],enumerable:!(o=i(t,n))||o.enumerable});return e};var v=e=>p(r({},"__esModule",{value:!0}),e);var S={};f(S,{useTabs:()=>u});module.exports=v(S);var a=require("react");function u(e=!1){let[t,s]=(0,a.useState)(e),o=(0,a.useCallback)((h,c)=>{s(c)},[]),n=(0,a.useCallback)(()=>{s(e)},[e]);return{value:t,setValue:s,onChange:o,reset:n}}0&&(module.exports={useTabs});
@@ -0,0 +1,2 @@
1
+ export { UseTabsReturn, useTabs } from './use-tabs.cjs';
2
+ import 'react';
@@ -0,0 +1,2 @@
1
+ export { UseTabsReturn, useTabs } from './use-tabs.js';
2
+ import 'react';
@@ -0,0 +1 @@
1
+ import{useCallback as s,useState as c}from"react";function l(e=!1){let[n,t]=c(e),a=s((i,r)=>{t(r)},[]),o=s(()=>{t(e)},[e]);return{value:n,setValue:t,onChange:a,reset:o}}export{l as useTabs};
@@ -0,0 +1 @@
1
+ "use strict";var c=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var v=(e,t)=>{for(var s in t)c(e,s,{get:t[s],enumerable:!0})},f=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of T(t))!l.call(e,n)&&n!==s&&c(e,n,{get:()=>t[n],enumerable:!(o=i(t,n))||o.enumerable});return e};var p=e=>f(c({},"__esModule",{value:!0}),e);var S={};v(S,{useTabs:()=>u});module.exports=p(S);var a=require("react");function u(e=!1){let[t,s]=(0,a.useState)(e),o=(0,a.useCallback)((h,r)=>{s(r)},[]),n=(0,a.useCallback)(()=>{s(e)},[e]);return{value:t,setValue:s,onChange:o,reset:n}}0&&(module.exports={useTabs});
@@ -0,0 +1,58 @@
1
+ import { Dispatch, SetStateAction, SyntheticEvent } from 'react';
2
+
3
+ /**
4
+ * A custom React hook to manage the state of a tab component.
5
+ *
6
+ * @template T - The type of the tab value (e.g., string, number, or custom type).
7
+ * @param defaultValue - The initial tab value or `false` to indicate no tab is selected. Defaults to `false`.
8
+ * @returns An object containing the current tab state and methods to manipulate it.
9
+ *
10
+ * @remarks
11
+ * - Use `false` as the tab value to deselect all tabs.
12
+ * - The `onChange` handler is designed to work with tab components like Material-UI's `Tabs`.
13
+ * - The hook is memoized for performance and supports dynamic default values.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * // Example: Using string tab values
18
+ * const { value, onChange, setValue, reset } = useTabs<'tab1' | 'tab2'>('tab1');
19
+ *
20
+ * return (
21
+ * <Tabs value={value} onChange={onChange}>
22
+ * <Tab label="Tab 1" value="tab1" />
23
+ * <Tab label="Tab 2" value="tab2" />
24
+ * </Tabs>
25
+ * );
26
+ *
27
+ * // Manually select a tab
28
+ * setValue('tab2');
29
+ *
30
+ * // Deselect all tabs
31
+ * setValue(false);
32
+ *
33
+ * // Reset to default value
34
+ * reset();
35
+ * ```
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * // Example: Using number tab values with no initial selection
40
+ * const { value, onChange } = useTabs<1 | 2>(false);
41
+ *
42
+ * return (
43
+ * <Tabs value={value} onChange={onChange}>
44
+ * <Tab label="Tab 1" value={1} />
45
+ * <Tab label="Tab 2" value={2} />
46
+ * </Tabs>
47
+ * );
48
+ * ```
49
+ */
50
+ type UseTabsReturn<T> = {
51
+ value: T | false;
52
+ setValue: Dispatch<SetStateAction<T | false>>;
53
+ onChange: (event: SyntheticEvent, newValue: T | false) => void;
54
+ reset: () => void;
55
+ };
56
+ declare function useTabs<T>(defaultValue?: T | false): UseTabsReturn<T>;
57
+
58
+ export { type UseTabsReturn, useTabs };
@@ -0,0 +1,58 @@
1
+ import { Dispatch, SetStateAction, SyntheticEvent } from 'react';
2
+
3
+ /**
4
+ * A custom React hook to manage the state of a tab component.
5
+ *
6
+ * @template T - The type of the tab value (e.g., string, number, or custom type).
7
+ * @param defaultValue - The initial tab value or `false` to indicate no tab is selected. Defaults to `false`.
8
+ * @returns An object containing the current tab state and methods to manipulate it.
9
+ *
10
+ * @remarks
11
+ * - Use `false` as the tab value to deselect all tabs.
12
+ * - The `onChange` handler is designed to work with tab components like Material-UI's `Tabs`.
13
+ * - The hook is memoized for performance and supports dynamic default values.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * // Example: Using string tab values
18
+ * const { value, onChange, setValue, reset } = useTabs<'tab1' | 'tab2'>('tab1');
19
+ *
20
+ * return (
21
+ * <Tabs value={value} onChange={onChange}>
22
+ * <Tab label="Tab 1" value="tab1" />
23
+ * <Tab label="Tab 2" value="tab2" />
24
+ * </Tabs>
25
+ * );
26
+ *
27
+ * // Manually select a tab
28
+ * setValue('tab2');
29
+ *
30
+ * // Deselect all tabs
31
+ * setValue(false);
32
+ *
33
+ * // Reset to default value
34
+ * reset();
35
+ * ```
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * // Example: Using number tab values with no initial selection
40
+ * const { value, onChange } = useTabs<1 | 2>(false);
41
+ *
42
+ * return (
43
+ * <Tabs value={value} onChange={onChange}>
44
+ * <Tab label="Tab 1" value={1} />
45
+ * <Tab label="Tab 2" value={2} />
46
+ * </Tabs>
47
+ * );
48
+ * ```
49
+ */
50
+ type UseTabsReturn<T> = {
51
+ value: T | false;
52
+ setValue: Dispatch<SetStateAction<T | false>>;
53
+ onChange: (event: SyntheticEvent, newValue: T | false) => void;
54
+ reset: () => void;
55
+ };
56
+ declare function useTabs<T>(defaultValue?: T | false): UseTabsReturn<T>;
57
+
58
+ export { type UseTabsReturn, useTabs };
@@ -0,0 +1 @@
1
+ import{useCallback as s,useState as r}from"react";function l(e=!1){let[n,t]=r(e),a=s((i,c)=>{t(c)},[]),o=s(()=>{t(e)},[e]);return{value:n,setValue:t,onChange:a,reset:o}}export{l as useTabs};