@usels/core 0.0.1-beta.3

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 (341) hide show
  1. package/README.md +21 -0
  2. package/dist/browser/useEventListener/index.d.mts +56 -0
  3. package/dist/browser/useEventListener/index.d.ts +56 -0
  4. package/dist/browser/useEventListener/index.js +112 -0
  5. package/dist/browser/useEventListener/index.js.map +1 -0
  6. package/dist/browser/useEventListener/index.mjs +88 -0
  7. package/dist/browser/useEventListener/index.mjs.map +1 -0
  8. package/dist/browser/useMediaQuery/demo.d.mts +5 -0
  9. package/dist/browser/useMediaQuery/demo.d.ts +5 -0
  10. package/dist/browser/useMediaQuery/demo.js +82 -0
  11. package/dist/browser/useMediaQuery/demo.js.map +1 -0
  12. package/dist/browser/useMediaQuery/demo.mjs +62 -0
  13. package/dist/browser/useMediaQuery/demo.mjs.map +1 -0
  14. package/dist/browser/useMediaQuery/index.d.mts +11 -0
  15. package/dist/browser/useMediaQuery/index.d.ts +11 -0
  16. package/dist/browser/useMediaQuery/index.js +89 -0
  17. package/dist/browser/useMediaQuery/index.js.map +1 -0
  18. package/dist/browser/useMediaQuery/index.mjs +64 -0
  19. package/dist/browser/useMediaQuery/index.mjs.map +1 -0
  20. package/dist/components/Auto/index.d.mts +33 -0
  21. package/dist/components/Auto/index.d.ts +33 -0
  22. package/dist/components/Auto/index.js +66 -0
  23. package/dist/components/Auto/index.js.map +1 -0
  24. package/dist/components/Auto/index.mjs +34 -0
  25. package/dist/components/Auto/index.mjs.map +1 -0
  26. package/dist/elements/useDocumentVisibility/demo.d.mts +5 -0
  27. package/dist/elements/useDocumentVisibility/demo.d.ts +5 -0
  28. package/dist/elements/useDocumentVisibility/demo.js +130 -0
  29. package/dist/elements/useDocumentVisibility/demo.js.map +1 -0
  30. package/dist/elements/useDocumentVisibility/demo.mjs +114 -0
  31. package/dist/elements/useDocumentVisibility/demo.mjs.map +1 -0
  32. package/dist/elements/useDocumentVisibility/index.d.mts +5 -0
  33. package/dist/elements/useDocumentVisibility/index.d.ts +5 -0
  34. package/dist/elements/useDocumentVisibility/index.js +45 -0
  35. package/dist/elements/useDocumentVisibility/index.js.map +1 -0
  36. package/dist/elements/useDocumentVisibility/index.mjs +21 -0
  37. package/dist/elements/useDocumentVisibility/index.mjs.map +1 -0
  38. package/dist/elements/useElementBounding/demo.d.mts +5 -0
  39. package/dist/elements/useElementBounding/demo.d.ts +5 -0
  40. package/dist/elements/useElementBounding/demo.js +86 -0
  41. package/dist/elements/useElementBounding/demo.js.map +1 -0
  42. package/dist/elements/useElementBounding/demo.mjs +66 -0
  43. package/dist/elements/useElementBounding/demo.mjs.map +1 -0
  44. package/dist/elements/useElementBounding/index.d.mts +46 -0
  45. package/dist/elements/useElementBounding/index.d.ts +46 -0
  46. package/dist/elements/useElementBounding/index.js +122 -0
  47. package/dist/elements/useElementBounding/index.js.map +1 -0
  48. package/dist/elements/useElementBounding/index.mjs +98 -0
  49. package/dist/elements/useElementBounding/index.mjs.map +1 -0
  50. package/dist/elements/useElementSize/demo.d.mts +5 -0
  51. package/dist/elements/useElementSize/demo.d.ts +5 -0
  52. package/dist/elements/useElementSize/demo.js +82 -0
  53. package/dist/elements/useElementSize/demo.js.map +1 -0
  54. package/dist/elements/useElementSize/demo.mjs +62 -0
  55. package/dist/elements/useElementSize/demo.mjs.map +1 -0
  56. package/dist/elements/useElementSize/index.d.mts +34 -0
  57. package/dist/elements/useElementSize/index.d.ts +34 -0
  58. package/dist/elements/useElementSize/index.js +85 -0
  59. package/dist/elements/useElementSize/index.js.map +1 -0
  60. package/dist/elements/useElementSize/index.mjs +61 -0
  61. package/dist/elements/useElementSize/index.mjs.map +1 -0
  62. package/dist/elements/useElementVisibility/demo.d.mts +5 -0
  63. package/dist/elements/useElementVisibility/demo.d.ts +5 -0
  64. package/dist/elements/useElementVisibility/demo.js +110 -0
  65. package/dist/elements/useElementVisibility/demo.js.map +1 -0
  66. package/dist/elements/useElementVisibility/demo.mjs +90 -0
  67. package/dist/elements/useElementVisibility/demo.mjs.map +1 -0
  68. package/dist/elements/useElementVisibility/index.d.mts +43 -0
  69. package/dist/elements/useElementVisibility/index.d.ts +43 -0
  70. package/dist/elements/useElementVisibility/index.js +58 -0
  71. package/dist/elements/useElementVisibility/index.js.map +1 -0
  72. package/dist/elements/useElementVisibility/index.mjs +34 -0
  73. package/dist/elements/useElementVisibility/index.mjs.map +1 -0
  74. package/dist/elements/useIntersectionObserver/demo.d.mts +5 -0
  75. package/dist/elements/useIntersectionObserver/demo.d.ts +5 -0
  76. package/dist/elements/useIntersectionObserver/demo.js +173 -0
  77. package/dist/elements/useIntersectionObserver/demo.js.map +1 -0
  78. package/dist/elements/useIntersectionObserver/demo.mjs +153 -0
  79. package/dist/elements/useIntersectionObserver/demo.mjs.map +1 -0
  80. package/dist/elements/useIntersectionObserver/index.d.mts +47 -0
  81. package/dist/elements/useIntersectionObserver/index.d.ts +47 -0
  82. package/dist/elements/useIntersectionObserver/index.js +111 -0
  83. package/dist/elements/useIntersectionObserver/index.js.map +1 -0
  84. package/dist/elements/useIntersectionObserver/index.mjs +87 -0
  85. package/dist/elements/useIntersectionObserver/index.mjs.map +1 -0
  86. package/dist/elements/useMouseInElement/demo.d.mts +5 -0
  87. package/dist/elements/useMouseInElement/demo.d.ts +5 -0
  88. package/dist/elements/useMouseInElement/demo.js +103 -0
  89. package/dist/elements/useMouseInElement/demo.js.map +1 -0
  90. package/dist/elements/useMouseInElement/demo.mjs +83 -0
  91. package/dist/elements/useMouseInElement/demo.mjs.map +1 -0
  92. package/dist/elements/useMouseInElement/index.d.mts +56 -0
  93. package/dist/elements/useMouseInElement/index.d.ts +56 -0
  94. package/dist/elements/useMouseInElement/index.js +148 -0
  95. package/dist/elements/useMouseInElement/index.js.map +1 -0
  96. package/dist/elements/useMouseInElement/index.mjs +124 -0
  97. package/dist/elements/useMouseInElement/index.mjs.map +1 -0
  98. package/dist/elements/useMutationObserver/demo.d.mts +5 -0
  99. package/dist/elements/useMutationObserver/demo.d.ts +5 -0
  100. package/dist/elements/useMutationObserver/demo.js +240 -0
  101. package/dist/elements/useMutationObserver/demo.js.map +1 -0
  102. package/dist/elements/useMutationObserver/demo.mjs +220 -0
  103. package/dist/elements/useMutationObserver/demo.mjs.map +1 -0
  104. package/dist/elements/useMutationObserver/index.d.mts +15 -0
  105. package/dist/elements/useMutationObserver/index.d.ts +15 -0
  106. package/dist/elements/useMutationObserver/index.js +69 -0
  107. package/dist/elements/useMutationObserver/index.js.map +1 -0
  108. package/dist/elements/useMutationObserver/index.mjs +45 -0
  109. package/dist/elements/useMutationObserver/index.mjs.map +1 -0
  110. package/dist/elements/useParentElement/demo.d.mts +5 -0
  111. package/dist/elements/useParentElement/demo.d.ts +5 -0
  112. package/dist/elements/useParentElement/demo.js +132 -0
  113. package/dist/elements/useParentElement/demo.js.map +1 -0
  114. package/dist/elements/useParentElement/demo.mjs +112 -0
  115. package/dist/elements/useParentElement/demo.mjs.map +1 -0
  116. package/dist/elements/useParentElement/index.d.mts +7 -0
  117. package/dist/elements/useParentElement/index.d.ts +7 -0
  118. package/dist/elements/useParentElement/index.js +47 -0
  119. package/dist/elements/useParentElement/index.js.map +1 -0
  120. package/dist/elements/useParentElement/index.mjs +23 -0
  121. package/dist/elements/useParentElement/index.mjs.map +1 -0
  122. package/dist/elements/useRef$/index.js +89 -0
  123. package/dist/elements/useRef$/index.js.map +1 -0
  124. package/dist/elements/useRef$/index.mjs +62 -0
  125. package/dist/elements/useRef$/index.mjs.map +1 -0
  126. package/dist/elements/useRef_/index.d.mts +60 -0
  127. package/dist/elements/useRef_/index.d.ts +60 -0
  128. package/dist/elements/useResizeObserver/demo.d.mts +5 -0
  129. package/dist/elements/useResizeObserver/demo.d.ts +5 -0
  130. package/dist/elements/useResizeObserver/demo.js +90 -0
  131. package/dist/elements/useResizeObserver/demo.js.map +1 -0
  132. package/dist/elements/useResizeObserver/demo.mjs +70 -0
  133. package/dist/elements/useResizeObserver/demo.mjs.map +1 -0
  134. package/dist/elements/useResizeObserver/index.d.mts +36 -0
  135. package/dist/elements/useResizeObserver/index.d.ts +36 -0
  136. package/dist/elements/useResizeObserver/index.js +74 -0
  137. package/dist/elements/useResizeObserver/index.js.map +1 -0
  138. package/dist/elements/useResizeObserver/index.mjs +49 -0
  139. package/dist/elements/useResizeObserver/index.mjs.map +1 -0
  140. package/dist/elements/useWindowFocus/demo.d.mts +5 -0
  141. package/dist/elements/useWindowFocus/demo.d.ts +5 -0
  142. package/dist/elements/useWindowFocus/demo.js +100 -0
  143. package/dist/elements/useWindowFocus/demo.js.map +1 -0
  144. package/dist/elements/useWindowFocus/demo.mjs +80 -0
  145. package/dist/elements/useWindowFocus/demo.mjs.map +1 -0
  146. package/dist/elements/useWindowFocus/index.d.mts +5 -0
  147. package/dist/elements/useWindowFocus/index.d.ts +5 -0
  148. package/dist/elements/useWindowFocus/index.js +42 -0
  149. package/dist/elements/useWindowFocus/index.js.map +1 -0
  150. package/dist/elements/useWindowFocus/index.mjs +18 -0
  151. package/dist/elements/useWindowFocus/index.mjs.map +1 -0
  152. package/dist/elements/useWindowSize/demo.d.mts +5 -0
  153. package/dist/elements/useWindowSize/demo.d.ts +5 -0
  154. package/dist/elements/useWindowSize/demo.js +78 -0
  155. package/dist/elements/useWindowSize/demo.js.map +1 -0
  156. package/dist/elements/useWindowSize/demo.mjs +58 -0
  157. package/dist/elements/useWindowSize/demo.mjs.map +1 -0
  158. package/dist/elements/useWindowSize/index.d.mts +17 -0
  159. package/dist/elements/useWindowSize/index.d.ts +17 -0
  160. package/dist/elements/useWindowSize/index.js +96 -0
  161. package/dist/elements/useWindowSize/index.js.map +1 -0
  162. package/dist/elements/useWindowSize/index.mjs +76 -0
  163. package/dist/elements/useWindowSize/index.mjs.map +1 -0
  164. package/dist/function/get/index.d.mts +45 -0
  165. package/dist/function/get/index.d.ts +45 -0
  166. package/dist/function/get/index.js +39 -0
  167. package/dist/function/get/index.js.map +1 -0
  168. package/dist/function/get/index.mjs +15 -0
  169. package/dist/function/get/index.mjs.map +1 -0
  170. package/dist/function/peek/index.d.mts +46 -0
  171. package/dist/function/peek/index.d.ts +46 -0
  172. package/dist/function/peek/index.js +39 -0
  173. package/dist/function/peek/index.js.map +1 -0
  174. package/dist/function/peek/index.mjs +15 -0
  175. package/dist/function/peek/index.mjs.map +1 -0
  176. package/dist/function/useMayObservableOptions/index.d.mts +59 -0
  177. package/dist/function/useMayObservableOptions/index.d.ts +59 -0
  178. package/dist/function/useMayObservableOptions/index.js +109 -0
  179. package/dist/function/useMayObservableOptions/index.js.map +1 -0
  180. package/dist/function/useMayObservableOptions/index.mjs +88 -0
  181. package/dist/function/useMayObservableOptions/index.mjs.map +1 -0
  182. package/dist/function/useSupported/index.d.mts +6 -0
  183. package/dist/function/useSupported/index.d.ts +6 -0
  184. package/dist/function/useSupported/index.js +37 -0
  185. package/dist/function/useSupported/index.js.map +1 -0
  186. package/dist/function/useSupported/index.mjs +13 -0
  187. package/dist/function/useSupported/index.mjs.map +1 -0
  188. package/dist/function/useWhenMounted/index.d.mts +6 -0
  189. package/dist/function/useWhenMounted/index.d.ts +6 -0
  190. package/dist/function/useWhenMounted/index.js +37 -0
  191. package/dist/function/useWhenMounted/index.js.map +1 -0
  192. package/dist/function/useWhenMounted/index.mjs +13 -0
  193. package/dist/function/useWhenMounted/index.mjs.map +1 -0
  194. package/dist/index.d.mts +24 -0
  195. package/dist/index.d.ts +24 -0
  196. package/dist/index.js +63 -0
  197. package/dist/index.js.map +1 -0
  198. package/dist/index.mjs +22 -0
  199. package/dist/index.mjs.map +1 -0
  200. package/dist/sensors/useScroll/demo.d.mts +5 -0
  201. package/dist/sensors/useScroll/demo.d.ts +5 -0
  202. package/dist/sensors/useScroll/demo.js +121 -0
  203. package/dist/sensors/useScroll/demo.js.map +1 -0
  204. package/dist/sensors/useScroll/demo.mjs +101 -0
  205. package/dist/sensors/useScroll/demo.mjs.map +1 -0
  206. package/dist/sensors/useScroll/index.d.mts +42 -0
  207. package/dist/sensors/useScroll/index.d.ts +42 -0
  208. package/dist/sensors/useScroll/index.js +149 -0
  209. package/dist/sensors/useScroll/index.js.map +1 -0
  210. package/dist/sensors/useScroll/index.mjs +125 -0
  211. package/dist/sensors/useScroll/index.mjs.map +1 -0
  212. package/dist/sensors/useWindowScroll/demo.d.mts +5 -0
  213. package/dist/sensors/useWindowScroll/demo.d.ts +5 -0
  214. package/dist/sensors/useWindowScroll/demo.js +84 -0
  215. package/dist/sensors/useWindowScroll/demo.js.map +1 -0
  216. package/dist/sensors/useWindowScroll/demo.mjs +64 -0
  217. package/dist/sensors/useWindowScroll/demo.mjs.map +1 -0
  218. package/dist/sensors/useWindowScroll/index.d.mts +9 -0
  219. package/dist/sensors/useWindowScroll/index.d.ts +9 -0
  220. package/dist/sensors/useWindowScroll/index.js +36 -0
  221. package/dist/sensors/useWindowScroll/index.js.map +1 -0
  222. package/dist/sensors/useWindowScroll/index.mjs +12 -0
  223. package/dist/sensors/useWindowScroll/index.mjs.map +1 -0
  224. package/dist/shared/configurable.d.mts +21 -0
  225. package/dist/shared/configurable.d.ts +21 -0
  226. package/dist/shared/configurable.js +39 -0
  227. package/dist/shared/configurable.js.map +1 -0
  228. package/dist/shared/configurable.mjs +12 -0
  229. package/dist/shared/configurable.mjs.map +1 -0
  230. package/dist/shared/index.d.mts +4 -0
  231. package/dist/shared/index.d.ts +4 -0
  232. package/dist/shared/index.js +31 -0
  233. package/dist/shared/index.js.map +1 -0
  234. package/dist/shared/index.mjs +7 -0
  235. package/dist/shared/index.mjs.map +1 -0
  236. package/dist/shared/normalizeTargets/index.d.mts +21 -0
  237. package/dist/shared/normalizeTargets/index.d.ts +21 -0
  238. package/dist/shared/normalizeTargets/index.js +36 -0
  239. package/dist/shared/normalizeTargets/index.js.map +1 -0
  240. package/dist/shared/normalizeTargets/index.mjs +12 -0
  241. package/dist/shared/normalizeTargets/index.mjs.map +1 -0
  242. package/dist/shared/utils.d.mts +15 -0
  243. package/dist/shared/utils.d.ts +15 -0
  244. package/dist/shared/utils.js +87 -0
  245. package/dist/shared/utils.js.map +1 -0
  246. package/dist/shared/utils.mjs +52 -0
  247. package/dist/shared/utils.mjs.map +1 -0
  248. package/dist/types.d.mts +52 -0
  249. package/dist/types.d.ts +52 -0
  250. package/dist/types.js +17 -0
  251. package/dist/types.js.map +1 -0
  252. package/dist/types.mjs +1 -0
  253. package/dist/types.mjs.map +1 -0
  254. package/package.json +54 -0
  255. package/src/browser/useEventListener/index.md +109 -0
  256. package/src/browser/useEventListener/index.spec.ts +611 -0
  257. package/src/browser/useEventListener/index.ts +242 -0
  258. package/src/browser/useMediaQuery/demo.tsx +58 -0
  259. package/src/browser/useMediaQuery/index.md +40 -0
  260. package/src/browser/useMediaQuery/index.spec.ts +267 -0
  261. package/src/browser/useMediaQuery/index.ts +96 -0
  262. package/src/components/Auto/index.tsx +65 -0
  263. package/src/elements/useDocumentVisibility/demo.tsx +111 -0
  264. package/src/elements/useDocumentVisibility/index.md +51 -0
  265. package/src/elements/useDocumentVisibility/index.spec.ts +114 -0
  266. package/src/elements/useDocumentVisibility/index.ts +26 -0
  267. package/src/elements/useElementBounding/demo.tsx +63 -0
  268. package/src/elements/useElementBounding/index.md +59 -0
  269. package/src/elements/useElementBounding/index.ts +159 -0
  270. package/src/elements/useElementSize/demo.tsx +48 -0
  271. package/src/elements/useElementSize/index.md +60 -0
  272. package/src/elements/useElementSize/index.spec.ts +295 -0
  273. package/src/elements/useElementSize/index.ts +100 -0
  274. package/src/elements/useElementVisibility/deep-observable-pattern.spec.ts +453 -0
  275. package/src/elements/useElementVisibility/demo.tsx +97 -0
  276. package/src/elements/useElementVisibility/index.md +98 -0
  277. package/src/elements/useElementVisibility/index.spec.ts +227 -0
  278. package/src/elements/useElementVisibility/index.ts +78 -0
  279. package/src/elements/useIntersectionObserver/demo.tsx +180 -0
  280. package/src/elements/useIntersectionObserver/index.md +99 -0
  281. package/src/elements/useIntersectionObserver/index.spec.ts +482 -0
  282. package/src/elements/useIntersectionObserver/index.ts +149 -0
  283. package/src/elements/useMouseInElement/demo.tsx +79 -0
  284. package/src/elements/useMouseInElement/index.md +71 -0
  285. package/src/elements/useMouseInElement/index.spec.ts +398 -0
  286. package/src/elements/useMouseInElement/index.ts +209 -0
  287. package/src/elements/useMutationObserver/demo.tsx +270 -0
  288. package/src/elements/useMutationObserver/index.md +99 -0
  289. package/src/elements/useMutationObserver/index.spec.ts +421 -0
  290. package/src/elements/useMutationObserver/index.ts +66 -0
  291. package/src/elements/useParentElement/demo.tsx +120 -0
  292. package/src/elements/useParentElement/index.md +67 -0
  293. package/src/elements/useParentElement/index.spec.ts +208 -0
  294. package/src/elements/useParentElement/index.ts +35 -0
  295. package/src/elements/useRef$/index.md +62 -0
  296. package/src/elements/useRef$/index.spec.ts +205 -0
  297. package/src/elements/useRef$/index.ts +137 -0
  298. package/src/elements/useRef$/useImperativeHandle.spec.ts +339 -0
  299. package/src/elements/useResizeObserver/demo.tsx +56 -0
  300. package/src/elements/useResizeObserver/index.md +51 -0
  301. package/src/elements/useResizeObserver/index.spec.ts +312 -0
  302. package/src/elements/useResizeObserver/index.ts +106 -0
  303. package/src/elements/useWindowFocus/demo.tsx +71 -0
  304. package/src/elements/useWindowFocus/index.md +35 -0
  305. package/src/elements/useWindowFocus/index.spec.ts +103 -0
  306. package/src/elements/useWindowFocus/index.ts +21 -0
  307. package/src/elements/useWindowSize/demo.tsx +46 -0
  308. package/src/elements/useWindowSize/index.md +50 -0
  309. package/src/elements/useWindowSize/index.spec.ts +310 -0
  310. package/src/elements/useWindowSize/index.ts +107 -0
  311. package/src/function/get/index.md +25 -0
  312. package/src/function/get/index.spec.ts +87 -0
  313. package/src/function/get/index.ts +70 -0
  314. package/src/function/peek/index.spec.ts +97 -0
  315. package/src/function/peek/index.ts +69 -0
  316. package/src/function/useMayObservableOptions/index.spec.ts +521 -0
  317. package/src/function/useMayObservableOptions/index.ts +173 -0
  318. package/src/function/useSupported/index.md +38 -0
  319. package/src/function/useSupported/index.spec.ts +116 -0
  320. package/src/function/useSupported/index.ts +14 -0
  321. package/src/function/useWhenMounted/index.md +25 -0
  322. package/src/function/useWhenMounted/index.spec.ts +120 -0
  323. package/src/function/useWhenMounted/index.ts +16 -0
  324. package/src/index.ts +25 -0
  325. package/src/sensors/useScroll/demo.tsx +98 -0
  326. package/src/sensors/useScroll/index.md +112 -0
  327. package/src/sensors/useScroll/index.spec.ts +678 -0
  328. package/src/sensors/useScroll/index.ts +201 -0
  329. package/src/sensors/useWindowScroll/demo.tsx +69 -0
  330. package/src/sensors/useWindowScroll/index.md +88 -0
  331. package/src/sensors/useWindowScroll/index.spec.ts +69 -0
  332. package/src/sensors/useWindowScroll/index.ts +11 -0
  333. package/src/shared/configurable.ts +35 -0
  334. package/src/shared/index.ts +4 -0
  335. package/src/shared/normalizeTargets/index.spec.ts +76 -0
  336. package/src/shared/normalizeTargets/index.ts +27 -0
  337. package/src/shared/utils.ts +67 -0
  338. package/src/types.ts +56 -0
  339. package/tsconfig.json +9 -0
  340. package/tsup.config.ts +10 -0
  341. package/vitest.config.ts +22 -0
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var useDocumentVisibility_exports = {};
21
+ __export(useDocumentVisibility_exports, {
22
+ useDocumentVisibility: () => useDocumentVisibility
23
+ });
24
+ module.exports = __toCommonJS(useDocumentVisibility_exports);
25
+ var import_react = require("@legendapp/state/react");
26
+ // @__NO_SIDE_EFFECTS__
27
+ function useDocumentVisibility() {
28
+ const visibility$ = (0, import_react.useObservable)("visible");
29
+ (0, import_react.useMount)(() => {
30
+ visibility$.set(document.visibilityState);
31
+ const handler = () => {
32
+ visibility$.set(document.visibilityState);
33
+ };
34
+ document.addEventListener("visibilitychange", handler, { passive: true });
35
+ return () => {
36
+ document.removeEventListener("visibilitychange", handler);
37
+ };
38
+ });
39
+ return visibility$;
40
+ }
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ useDocumentVisibility
44
+ });
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/useDocumentVisibility/index.ts"],"sourcesContent":["\"use client\";\nimport type { Observable } from \"@legendapp/state\";\nimport { useObservable, useMount } from \"@legendapp/state/react\";\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function useDocumentVisibility(): Observable<DocumentVisibilityState> {\n // Always initialize with 'visible' to match SSR output and avoid hydration mismatch.\n // The actual value is synced after mount.\n const visibility$ = useObservable<DocumentVisibilityState>(\"visible\");\n\n useMount(() => {\n visibility$.set(document.visibilityState);\n\n const handler = () => {\n visibility$.set(document.visibilityState);\n };\n\n document.addEventListener(\"visibilitychange\", handler, { passive: true });\n\n return () => {\n document.removeEventListener(\"visibilitychange\", handler);\n };\n });\n\n return visibility$;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAwC;AAAA;AAGjC,SAAS,wBAA6D;AAG3E,QAAM,kBAAc,4BAAuC,SAAS;AAEpE,6BAAS,MAAM;AACb,gBAAY,IAAI,SAAS,eAAe;AAExC,UAAM,UAAU,MAAM;AACpB,kBAAY,IAAI,SAAS,eAAe;AAAA,IAC1C;AAEA,aAAS,iBAAiB,oBAAoB,SAAS,EAAE,SAAS,KAAK,CAAC;AAExE,WAAO,MAAM;AACX,eAAS,oBAAoB,oBAAoB,OAAO;AAAA,IAC1D;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { useObservable, useMount } from "@legendapp/state/react";
3
+ // @__NO_SIDE_EFFECTS__
4
+ function useDocumentVisibility() {
5
+ const visibility$ = useObservable("visible");
6
+ useMount(() => {
7
+ visibility$.set(document.visibilityState);
8
+ const handler = () => {
9
+ visibility$.set(document.visibilityState);
10
+ };
11
+ document.addEventListener("visibilitychange", handler, { passive: true });
12
+ return () => {
13
+ document.removeEventListener("visibilitychange", handler);
14
+ };
15
+ });
16
+ return visibility$;
17
+ }
18
+ export {
19
+ useDocumentVisibility
20
+ };
21
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/useDocumentVisibility/index.ts"],"sourcesContent":["\"use client\";\nimport type { Observable } from \"@legendapp/state\";\nimport { useObservable, useMount } from \"@legendapp/state/react\";\n\n/*@__NO_SIDE_EFFECTS__*/\nexport function useDocumentVisibility(): Observable<DocumentVisibilityState> {\n // Always initialize with 'visible' to match SSR output and avoid hydration mismatch.\n // The actual value is synced after mount.\n const visibility$ = useObservable<DocumentVisibilityState>(\"visible\");\n\n useMount(() => {\n visibility$.set(document.visibilityState);\n\n const handler = () => {\n visibility$.set(document.visibilityState);\n };\n\n document.addEventListener(\"visibilitychange\", handler, { passive: true });\n\n return () => {\n document.removeEventListener(\"visibilitychange\", handler);\n };\n });\n\n return visibility$;\n}"],"mappings":";AAEA,SAAS,eAAe,gBAAgB;AAAA;AAGjC,SAAS,wBAA6D;AAG3E,QAAM,cAAc,cAAuC,SAAS;AAEpE,WAAS,MAAM;AACb,gBAAY,IAAI,SAAS,eAAe;AAExC,UAAM,UAAU,MAAM;AACpB,kBAAY,IAAI,SAAS,eAAe;AAAA,IAC1C;AAEA,aAAS,iBAAiB,oBAAoB,SAAS,EAAE,SAAS,KAAK,CAAC;AAExE,WAAO,MAAM;AACX,eAAS,oBAAoB,oBAAoB,OAAO;AAAA,IAC1D;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function UseElementBoundingDemo(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { UseElementBoundingDemo as default };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function UseElementBoundingDemo(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { UseElementBoundingDemo as default };
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var demo_exports = {};
20
+ __export(demo_exports, {
21
+ default: () => UseElementBoundingDemo
22
+ });
23
+ module.exports = __toCommonJS(demo_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_useRef = require("../useRef$");
26
+ var import__ = require(".");
27
+ function UseElementBoundingDemo() {
28
+ const el$ = (0, import_useRef.useRef$)();
29
+ const { x$, y$, top$, left$, width$, height$ } = (0, import__.useElementBounding)(el$);
30
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
31
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
32
+ "div",
33
+ {
34
+ style: {
35
+ display: "grid",
36
+ gridTemplateColumns: "repeat(3, 1fr)",
37
+ gap: "6px",
38
+ fontFamily: "monospace",
39
+ fontSize: "13px",
40
+ padding: "10px 14px",
41
+ background: "var(--sl-color-gray-6, #f1f5f9)",
42
+ borderRadius: "6px"
43
+ },
44
+ children: [
45
+ ["x", x$.get()],
46
+ ["y", y$.get()],
47
+ ["top", top$.get()],
48
+ ["left", left$.get()],
49
+ ["width", width$.get()],
50
+ ["height", height$.get()]
51
+ ].map(([label, val]) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
52
+ label,
53
+ ": ",
54
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
55
+ Math.round(val),
56
+ "px"
57
+ ] })
58
+ ] }, label))
59
+ }
60
+ ),
61
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
62
+ "div",
63
+ {
64
+ ref: el$,
65
+ style: {
66
+ resize: "both",
67
+ overflow: "auto",
68
+ width: "240px",
69
+ height: "100px",
70
+ padding: "12px",
71
+ border: "1px solid var(--sl-color-gray-5, #cbd5e1)",
72
+ borderRadius: "6px",
73
+ fontFamily: "monospace",
74
+ fontSize: "13px",
75
+ color: "var(--sl-color-gray-3, #94a3b8)",
76
+ userSelect: "none",
77
+ display: "flex",
78
+ alignItems: "center",
79
+ justifyContent: "center"
80
+ },
81
+ children: "resize me \u2198"
82
+ }
83
+ )
84
+ ] });
85
+ }
86
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/useElementBounding/demo.tsx"],"sourcesContent":["import { useRef$ } from \"../useRef$\";\nimport { useElementBounding } from \".\";\n\nexport default function UseElementBoundingDemo() {\n const el$ = useRef$<HTMLDivElement>();\n const { x$, y$, top$, left$, width$, height$ } = useElementBounding(el$);\n\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n {/* Bounding values readout */}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(3, 1fr)\",\n gap: \"6px\",\n fontFamily: \"monospace\",\n fontSize: \"13px\",\n padding: \"10px 14px\",\n background: \"var(--sl-color-gray-6, #f1f5f9)\",\n borderRadius: \"6px\",\n }}\n >\n {(\n [\n [\"x\", x$.get()],\n [\"y\", y$.get()],\n [\"top\", top$.get()],\n [\"left\", left$.get()],\n [\"width\", width$.get()],\n [\"height\", height$.get()],\n ] as [string, number][]\n ).map(([label, val]) => (\n <span key={label}>\n {label}: <strong>{Math.round(val)}px</strong>\n </span>\n ))}\n </div>\n\n {/* Resizable target element */}\n <div\n ref={el$}\n style={{\n resize: \"both\",\n overflow: \"auto\",\n width: \"240px\",\n height: \"100px\",\n padding: \"12px\",\n border: \"1px solid var(--sl-color-gray-5, #cbd5e1)\",\n borderRadius: \"6px\",\n fontFamily: \"monospace\",\n fontSize: \"13px\",\n color: \"var(--sl-color-gray-3, #94a3b8)\",\n userSelect: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n resize me ↘\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUM;AAVN,oBAAwB;AACxB,eAAmC;AAEpB,SAAR,yBAA0C;AAC/C,QAAM,UAAM,uBAAwB;AACpC,QAAM,EAAE,IAAI,IAAI,MAAM,OAAO,QAAQ,QAAQ,QAAI,6BAAmB,GAAG;AAEvE,SACE,6CAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,OAAO,GAElE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,UACL,SAAS;AAAA,UACT,qBAAqB;AAAA,UACrB,KAAK;AAAA,UACL,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,cAAc;AAAA,QAChB;AAAA,QAGE;AAAA,UACE,CAAC,KAAK,GAAG,IAAI,CAAC;AAAA,UACd,CAAC,KAAK,GAAG,IAAI,CAAC;AAAA,UACd,CAAC,OAAO,KAAK,IAAI,CAAC;AAAA,UAClB,CAAC,QAAQ,MAAM,IAAI,CAAC;AAAA,UACpB,CAAC,SAAS,OAAO,IAAI,CAAC;AAAA,UACtB,CAAC,UAAU,QAAQ,IAAI,CAAC;AAAA,QAC1B,EACA,IAAI,CAAC,CAAC,OAAO,GAAG,MAChB,6CAAC,UACE;AAAA;AAAA,UAAM;AAAA,UAAE,6CAAC,YAAQ;AAAA,iBAAK,MAAM,GAAG;AAAA,YAAE;AAAA,aAAE;AAAA,aAD3B,KAEX,CACD;AAAA;AAAA,IACH;AAAA,IAGA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,QAClB;AAAA,QACD;AAAA;AAAA,IAED;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,66 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useRef$ } from "../useRef$";
3
+ import { useElementBounding } from ".";
4
+ function UseElementBoundingDemo() {
5
+ const el$ = useRef$();
6
+ const { x$, y$, top$, left$, width$, height$ } = useElementBounding(el$);
7
+ return /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
8
+ /* @__PURE__ */ jsx(
9
+ "div",
10
+ {
11
+ style: {
12
+ display: "grid",
13
+ gridTemplateColumns: "repeat(3, 1fr)",
14
+ gap: "6px",
15
+ fontFamily: "monospace",
16
+ fontSize: "13px",
17
+ padding: "10px 14px",
18
+ background: "var(--sl-color-gray-6, #f1f5f9)",
19
+ borderRadius: "6px"
20
+ },
21
+ children: [
22
+ ["x", x$.get()],
23
+ ["y", y$.get()],
24
+ ["top", top$.get()],
25
+ ["left", left$.get()],
26
+ ["width", width$.get()],
27
+ ["height", height$.get()]
28
+ ].map(([label, val]) => /* @__PURE__ */ jsxs("span", { children: [
29
+ label,
30
+ ": ",
31
+ /* @__PURE__ */ jsxs("strong", { children: [
32
+ Math.round(val),
33
+ "px"
34
+ ] })
35
+ ] }, label))
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(
39
+ "div",
40
+ {
41
+ ref: el$,
42
+ style: {
43
+ resize: "both",
44
+ overflow: "auto",
45
+ width: "240px",
46
+ height: "100px",
47
+ padding: "12px",
48
+ border: "1px solid var(--sl-color-gray-5, #cbd5e1)",
49
+ borderRadius: "6px",
50
+ fontFamily: "monospace",
51
+ fontSize: "13px",
52
+ color: "var(--sl-color-gray-3, #94a3b8)",
53
+ userSelect: "none",
54
+ display: "flex",
55
+ alignItems: "center",
56
+ justifyContent: "center"
57
+ },
58
+ children: "resize me \u2198"
59
+ }
60
+ )
61
+ ] });
62
+ }
63
+ export {
64
+ UseElementBoundingDemo as default
65
+ };
66
+ //# sourceMappingURL=demo.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/useElementBounding/demo.tsx"],"sourcesContent":["import { useRef$ } from \"../useRef$\";\nimport { useElementBounding } from \".\";\n\nexport default function UseElementBoundingDemo() {\n const el$ = useRef$<HTMLDivElement>();\n const { x$, y$, top$, left$, width$, height$ } = useElementBounding(el$);\n\n return (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n {/* Bounding values readout */}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(3, 1fr)\",\n gap: \"6px\",\n fontFamily: \"monospace\",\n fontSize: \"13px\",\n padding: \"10px 14px\",\n background: \"var(--sl-color-gray-6, #f1f5f9)\",\n borderRadius: \"6px\",\n }}\n >\n {(\n [\n [\"x\", x$.get()],\n [\"y\", y$.get()],\n [\"top\", top$.get()],\n [\"left\", left$.get()],\n [\"width\", width$.get()],\n [\"height\", height$.get()],\n ] as [string, number][]\n ).map(([label, val]) => (\n <span key={label}>\n {label}: <strong>{Math.round(val)}px</strong>\n </span>\n ))}\n </div>\n\n {/* Resizable target element */}\n <div\n ref={el$}\n style={{\n resize: \"both\",\n overflow: \"auto\",\n width: \"240px\",\n height: \"100px\",\n padding: \"12px\",\n border: \"1px solid var(--sl-color-gray-5, #cbd5e1)\",\n borderRadius: \"6px\",\n fontFamily: \"monospace\",\n fontSize: \"13px\",\n color: \"var(--sl-color-gray-3, #94a3b8)\",\n userSelect: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n resize me ↘\n </div>\n </div>\n );\n}\n"],"mappings":"AAUM,cAuBe,YAvBf;AAVN,SAAS,eAAe;AACxB,SAAS,0BAA0B;AAEpB,SAAR,yBAA0C;AAC/C,QAAM,MAAM,QAAwB;AACpC,QAAM,EAAE,IAAI,IAAI,MAAM,OAAO,QAAQ,QAAQ,IAAI,mBAAmB,GAAG;AAEvE,SACE,qBAAC,SAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,UAAU,KAAK,OAAO,GAElE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,UACL,SAAS;AAAA,UACT,qBAAqB;AAAA,UACrB,KAAK;AAAA,UACL,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,cAAc;AAAA,QAChB;AAAA,QAGE;AAAA,UACE,CAAC,KAAK,GAAG,IAAI,CAAC;AAAA,UACd,CAAC,KAAK,GAAG,IAAI,CAAC;AAAA,UACd,CAAC,OAAO,KAAK,IAAI,CAAC;AAAA,UAClB,CAAC,QAAQ,MAAM,IAAI,CAAC;AAAA,UACpB,CAAC,SAAS,OAAO,IAAI,CAAC;AAAA,UACtB,CAAC,UAAU,QAAQ,IAAI,CAAC;AAAA,QAC1B,EACA,IAAI,CAAC,CAAC,OAAO,GAAG,MAChB,qBAAC,UACE;AAAA;AAAA,UAAM;AAAA,UAAE,qBAAC,YAAQ;AAAA,iBAAK,MAAM,GAAG;AAAA,YAAE;AAAA,aAAE;AAAA,aAD3B,KAEX,CACD;AAAA;AAAA,IACH;AAAA,IAGA;AAAA,MAAC;AAAA;AAAA,QACC,KAAK;AAAA,QACL,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,QAClB;AAAA,QACD;AAAA;AAAA,IAED;AAAA,KACF;AAEJ;","names":[]}
@@ -0,0 +1,46 @@
1
+ import { Observable } from '@legendapp/state';
2
+ import { MaybeElement } from '../useRef_/index.mjs';
3
+ import { DeepMaybeObservable } from '../../types.mjs';
4
+ import 'react';
5
+
6
+ interface UseElementBoundingOptions {
7
+ /** Reset all values to 0 when element unmounts. Default: true */
8
+ reset?: boolean;
9
+ /** Re-calculate on window resize. Default: true */
10
+ windowResize?: boolean;
11
+ /** Re-calculate on window scroll. Default: true */
12
+ windowScroll?: boolean;
13
+ /** Calculate immediately on mount. Default: true */
14
+ immediate?: boolean;
15
+ /** Use requestAnimationFrame to read rect after CSS transforms settle. Default: true */
16
+ useCssTransforms?: boolean;
17
+ }
18
+ interface UseElementBoundingReturn {
19
+ x$: Observable<number>;
20
+ y$: Observable<number>;
21
+ top$: Observable<number>;
22
+ right$: Observable<number>;
23
+ bottom$: Observable<number>;
24
+ left$: Observable<number>;
25
+ width$: Observable<number>;
26
+ height$: Observable<number>;
27
+ update: () => void;
28
+ }
29
+ /**
30
+ * Tracks the bounding rect of a DOM element (x, y, top, right, bottom, left, width, height).
31
+ * Observes ResizeObserver, MutationObserver (style/class changes), window scroll, and resize.
32
+ *
33
+ * @param target - Element to observe: Ref$, Observable<OpaqueObject<Element>|null>, Document, Window, or null
34
+ * @param options - Configuration options
35
+ * @returns Reactive bounding rect values plus a manual `update()` function
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * const el$ = useRef$<HTMLDivElement>();
40
+ * const { top$, left$, width$, height$ } = useElementBounding(el$);
41
+ * return <div ref={el$} />;
42
+ * ```
43
+ */
44
+ declare function useElementBounding(target: MaybeElement, options?: DeepMaybeObservable<UseElementBoundingOptions>): UseElementBoundingReturn;
45
+
46
+ export { type UseElementBoundingOptions, type UseElementBoundingReturn, useElementBounding };
@@ -0,0 +1,46 @@
1
+ import { Observable } from '@legendapp/state';
2
+ import { MaybeElement } from '../useRef_/index.js';
3
+ import { DeepMaybeObservable } from '../../types.js';
4
+ import 'react';
5
+
6
+ interface UseElementBoundingOptions {
7
+ /** Reset all values to 0 when element unmounts. Default: true */
8
+ reset?: boolean;
9
+ /** Re-calculate on window resize. Default: true */
10
+ windowResize?: boolean;
11
+ /** Re-calculate on window scroll. Default: true */
12
+ windowScroll?: boolean;
13
+ /** Calculate immediately on mount. Default: true */
14
+ immediate?: boolean;
15
+ /** Use requestAnimationFrame to read rect after CSS transforms settle. Default: true */
16
+ useCssTransforms?: boolean;
17
+ }
18
+ interface UseElementBoundingReturn {
19
+ x$: Observable<number>;
20
+ y$: Observable<number>;
21
+ top$: Observable<number>;
22
+ right$: Observable<number>;
23
+ bottom$: Observable<number>;
24
+ left$: Observable<number>;
25
+ width$: Observable<number>;
26
+ height$: Observable<number>;
27
+ update: () => void;
28
+ }
29
+ /**
30
+ * Tracks the bounding rect of a DOM element (x, y, top, right, bottom, left, width, height).
31
+ * Observes ResizeObserver, MutationObserver (style/class changes), window scroll, and resize.
32
+ *
33
+ * @param target - Element to observe: Ref$, Observable<OpaqueObject<Element>|null>, Document, Window, or null
34
+ * @param options - Configuration options
35
+ * @returns Reactive bounding rect values plus a manual `update()` function
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * const el$ = useRef$<HTMLDivElement>();
40
+ * const { top$, left$, width$, height$ } = useElementBounding(el$);
41
+ * return <div ref={el$} />;
42
+ * ```
43
+ */
44
+ declare function useElementBounding(target: MaybeElement, options?: DeepMaybeObservable<UseElementBoundingOptions>): UseElementBoundingReturn;
45
+
46
+ export { type UseElementBoundingOptions, type UseElementBoundingReturn, useElementBounding };
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var useElementBounding_exports = {};
20
+ __export(useElementBounding_exports, {
21
+ useElementBounding: () => useElementBounding
22
+ });
23
+ module.exports = __toCommonJS(useElementBounding_exports);
24
+ var import_react = require("@legendapp/state/react");
25
+ var import_react2 = require("react");
26
+ var import_useRef = require("../useRef$");
27
+ var import_useResizeObserver = require("../useResizeObserver");
28
+ var import_useMutationObserver = require("../useMutationObserver");
29
+ var import_useEventListener = require("../../browser/useEventListener");
30
+ var import_shared = require("../../shared");
31
+ var import_useMayObservableOptions = require("../../function/useMayObservableOptions");
32
+ const ZERO = {
33
+ x: 0,
34
+ y: 0,
35
+ top: 0,
36
+ right: 0,
37
+ bottom: 0,
38
+ left: 0,
39
+ width: 0,
40
+ height: 0
41
+ };
42
+ const win = typeof window !== "undefined" ? window : null;
43
+ function useElementBounding(target, options) {
44
+ const opts$ = (0, import_useMayObservableOptions.useMayObservableOptions)(options, {
45
+ immediate: "peek"
46
+ });
47
+ const bounding$ = (0, import_react.useObservable)({ ...ZERO });
48
+ const unmountedRef = (0, import_react2.useRef)(false);
49
+ const rafRef = (0, import_react2.useRef)(null);
50
+ const recalculate = (0, import_react2.useCallback)(() => {
51
+ const el = (0, import_useRef.peekElement)(target);
52
+ if (!el || !(el instanceof Element)) {
53
+ if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });
54
+ return;
55
+ }
56
+ const rect = el.getBoundingClientRect();
57
+ bounding$.assign({
58
+ x: rect.x,
59
+ y: rect.y,
60
+ top: rect.top,
61
+ right: rect.right,
62
+ bottom: rect.bottom,
63
+ left: rect.left,
64
+ width: rect.width,
65
+ height: rect.height
66
+ });
67
+ }, []);
68
+ const update = (0, import_react2.useCallback)(() => {
69
+ if (opts$.useCssTransforms.peek() !== false) {
70
+ rafRef.current = requestAnimationFrame(() => {
71
+ if (!unmountedRef.current) recalculate();
72
+ });
73
+ } else {
74
+ recalculate();
75
+ }
76
+ }, [recalculate]);
77
+ (0, import_useResizeObserver.useResizeObserver)(target, update);
78
+ (0, import_useMutationObserver.useMutationObserver)(target, update, {
79
+ attributes: true,
80
+ attributeFilter: ["style", "class"]
81
+ });
82
+ (0, import_useEventListener.useEventListener)(
83
+ (0, import_shared.isWindow)(win) && opts$.windowScroll.peek() !== false ? win : null,
84
+ "scroll",
85
+ update,
86
+ { passive: true }
87
+ );
88
+ (0, import_useEventListener.useEventListener)(
89
+ (0, import_shared.isWindow)(win) && opts$.windowResize.peek() !== false ? win : null,
90
+ "resize",
91
+ update,
92
+ { passive: true }
93
+ );
94
+ (0, import_react2.useEffect)(() => {
95
+ unmountedRef.current = false;
96
+ if (opts$.immediate.peek() !== false) update();
97
+ return () => {
98
+ unmountedRef.current = true;
99
+ if (rafRef.current !== null) {
100
+ cancelAnimationFrame(rafRef.current);
101
+ rafRef.current = null;
102
+ }
103
+ if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });
104
+ };
105
+ }, []);
106
+ return {
107
+ x$: bounding$.x,
108
+ y$: bounding$.y,
109
+ top$: bounding$.top,
110
+ right$: bounding$.right,
111
+ bottom$: bounding$.bottom,
112
+ left$: bounding$.left,
113
+ width$: bounding$.width,
114
+ height$: bounding$.height,
115
+ update
116
+ };
117
+ }
118
+ // Annotate the CommonJS export names for ESM import in node:
119
+ 0 && (module.exports = {
120
+ useElementBounding
121
+ });
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/useElementBounding/index.ts"],"sourcesContent":["import type { Observable } from \"@legendapp/state\";\nimport { useObservable } from \"@legendapp/state/react\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { type MaybeElement, peekElement } from \"../useRef$\";\nimport { useResizeObserver } from \"../useResizeObserver\";\nimport { useMutationObserver } from \"../useMutationObserver\";\nimport { useEventListener } from \"../../browser/useEventListener\";\nimport { isWindow } from \"../../shared\";\nimport { useMayObservableOptions } from \"../../function/useMayObservableOptions\";\nimport type { DeepMaybeObservable } from \"../../types\";\n\nexport interface UseElementBoundingOptions {\n /** Reset all values to 0 when element unmounts. Default: true */\n reset?: boolean;\n /** Re-calculate on window resize. Default: true */\n windowResize?: boolean;\n /** Re-calculate on window scroll. Default: true */\n windowScroll?: boolean;\n /** Calculate immediately on mount. Default: true */\n immediate?: boolean;\n /** Use requestAnimationFrame to read rect after CSS transforms settle. Default: true */\n useCssTransforms?: boolean;\n}\n\nexport interface UseElementBoundingReturn {\n x$: Observable<number>;\n y$: Observable<number>;\n top$: Observable<number>;\n right$: Observable<number>;\n bottom$: Observable<number>;\n left$: Observable<number>;\n width$: Observable<number>;\n height$: Observable<number>;\n update: () => void;\n}\n\nconst ZERO = {\n x: 0,\n y: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0,\n};\n\n// isWindow(window) returns false in SSR (typeof window === \"undefined\"), true in browser.\nconst win = typeof window !== \"undefined\" ? window : null;\n\n/**\n * Tracks the bounding rect of a DOM element (x, y, top, right, bottom, left, width, height).\n * Observes ResizeObserver, MutationObserver (style/class changes), window scroll, and resize.\n *\n * @param target - Element to observe: Ref$, Observable<OpaqueObject<Element>|null>, Document, Window, or null\n * @param options - Configuration options\n * @returns Reactive bounding rect values plus a manual `update()` function\n *\n * @example\n * ```tsx\n * const el$ = useRef$<HTMLDivElement>();\n * const { top$, left$, width$, height$ } = useElementBounding(el$);\n * return <div ref={el$} />;\n * ```\n */\nexport function useElementBounding(\n target: MaybeElement,\n options?: DeepMaybeObservable<UseElementBoundingOptions>,\n): UseElementBoundingReturn {\n const opts$ = useMayObservableOptions<UseElementBoundingOptions>(options, {\n immediate: \"peek\",\n });\n\n const bounding$ = useObservable({ ...ZERO });\n\n // Guards rAF callbacks from updating state after unmount.\n const unmountedRef = useRef(false);\n const rafRef = useRef<number | null>(null);\n\n const recalculate = useCallback(() => {\n const el = peekElement(target) as Element | null;\n if (!el || !(el instanceof Element)) {\n if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });\n return;\n }\n const rect = el.getBoundingClientRect();\n bounding$.assign({\n x: rect.x,\n y: rect.y,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const update = useCallback(() => {\n if (opts$.useCssTransforms.peek() !== false) {\n rafRef.current = requestAnimationFrame(() => {\n if (!unmountedRef.current) recalculate();\n });\n } else {\n recalculate();\n }\n }, [recalculate]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Observe size changes\n useResizeObserver(target, update);\n\n // Observe style/class attribute changes (e.g. CSS transitions, class toggles)\n useMutationObserver(target, update, {\n attributes: true,\n attributeFilter: [\"style\", \"class\"],\n });\n\n // Observe window scroll / resize (always call hooks unconditionally — Rules of Hooks)\n // isWindow(win) is false in SSR, so target becomes null outside the browser.\n // peek() — evaluated once at render time, no reactive subscription needed.\n useEventListener(\n isWindow(win) && opts$.windowScroll.peek() !== false ? win : null,\n \"scroll\",\n update,\n { passive: true },\n );\n useEventListener(\n isWindow(win) && opts$.windowResize.peek() !== false ? win : null,\n \"resize\",\n update,\n { passive: true },\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n unmountedRef.current = false;\n if (opts$.immediate.peek() !== false) update();\n return () => {\n unmountedRef.current = true;\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });\n };\n }, []);\n\n return {\n x$: bounding$.x,\n y$: bounding$.y,\n top$: bounding$.top,\n right$: bounding$.right,\n bottom$: bounding$.bottom,\n left$: bounding$.left,\n width$: bounding$.width,\n height$: bounding$.height,\n update,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA8B;AAC9B,IAAAA,gBAA+C;AAC/C,oBAA+C;AAC/C,+BAAkC;AAClC,iCAAoC;AACpC,8BAAiC;AACjC,oBAAyB;AACzB,qCAAwC;AA4BxC,MAAM,OAAO;AAAA,EACX,GAAG;AAAA,EACH,GAAG;AAAA,EACH,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV;AAGA,MAAM,MAAM,OAAO,WAAW,cAAc,SAAS;AAiB9C,SAAS,mBACd,QACA,SAC0B;AAC1B,QAAM,YAAQ,wDAAmD,SAAS;AAAA,IACxE,WAAW;AAAA,EACb,CAAC;AAED,QAAM,gBAAY,4BAAc,EAAE,GAAG,KAAK,CAAC;AAG3C,QAAM,mBAAe,sBAAO,KAAK;AACjC,QAAM,aAAS,sBAAsB,IAAI;AAEzC,QAAM,kBAAc,2BAAY,MAAM;AACpC,UAAM,SAAK,2BAAY,MAAM;AAC7B,QAAI,CAAC,MAAM,EAAE,cAAc,UAAU;AACnC,UAAI,MAAM,MAAM,KAAK,MAAM,MAAO,WAAU,OAAO,EAAE,GAAG,KAAK,CAAC;AAC9D;AAAA,IACF;AACA,UAAM,OAAO,GAAG,sBAAsB;AACtC,cAAU,OAAO;AAAA,MACf,GAAG,KAAK;AAAA,MACR,GAAG,KAAK;AAAA,MACR,KAAK,KAAK;AAAA,MACV,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,aAAS,2BAAY,MAAM;AAC/B,QAAI,MAAM,iBAAiB,KAAK,MAAM,OAAO;AAC3C,aAAO,UAAU,sBAAsB,MAAM;AAC3C,YAAI,CAAC,aAAa,QAAS,aAAY;AAAA,MACzC,CAAC;AAAA,IACH,OAAO;AACL,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAGhB,kDAAkB,QAAQ,MAAM;AAGhC,sDAAoB,QAAQ,QAAQ;AAAA,IAClC,YAAY;AAAA,IACZ,iBAAiB,CAAC,SAAS,OAAO;AAAA,EACpC,CAAC;AAKD;AAAA,QACE,wBAAS,GAAG,KAAK,MAAM,aAAa,KAAK,MAAM,QAAQ,MAAM;AAAA,IAC7D;AAAA,IACA;AAAA,IACA,EAAE,SAAS,KAAK;AAAA,EAClB;AACA;AAAA,QACE,wBAAS,GAAG,KAAK,MAAM,aAAa,KAAK,MAAM,QAAQ,MAAM;AAAA,IAC7D;AAAA,IACA;AAAA,IACA,EAAE,SAAS,KAAK;AAAA,EAClB;AAGA,+BAAU,MAAM;AACd,iBAAa,UAAU;AACvB,QAAI,MAAM,UAAU,KAAK,MAAM,MAAO,QAAO;AAC7C,WAAO,MAAM;AACX,mBAAa,UAAU;AACvB,UAAI,OAAO,YAAY,MAAM;AAC3B,6BAAqB,OAAO,OAAO;AACnC,eAAO,UAAU;AAAA,MACnB;AACA,UAAI,MAAM,MAAM,KAAK,MAAM,MAAO,WAAU,OAAO,EAAE,GAAG,KAAK,CAAC;AAAA,IAChE;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,MAAM,UAAU;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,SAAS,UAAU;AAAA,IACnB,OAAO,UAAU;AAAA,IACjB,QAAQ,UAAU;AAAA,IAClB,SAAS,UAAU;AAAA,IACnB;AAAA,EACF;AACF;","names":["import_react"]}
@@ -0,0 +1,98 @@
1
+ import { useObservable } from "@legendapp/state/react";
2
+ import { useCallback, useEffect, useRef } from "react";
3
+ import { peekElement } from "../useRef$";
4
+ import { useResizeObserver } from "../useResizeObserver";
5
+ import { useMutationObserver } from "../useMutationObserver";
6
+ import { useEventListener } from "../../browser/useEventListener";
7
+ import { isWindow } from "../../shared";
8
+ import { useMayObservableOptions } from "../../function/useMayObservableOptions";
9
+ const ZERO = {
10
+ x: 0,
11
+ y: 0,
12
+ top: 0,
13
+ right: 0,
14
+ bottom: 0,
15
+ left: 0,
16
+ width: 0,
17
+ height: 0
18
+ };
19
+ const win = typeof window !== "undefined" ? window : null;
20
+ function useElementBounding(target, options) {
21
+ const opts$ = useMayObservableOptions(options, {
22
+ immediate: "peek"
23
+ });
24
+ const bounding$ = useObservable({ ...ZERO });
25
+ const unmountedRef = useRef(false);
26
+ const rafRef = useRef(null);
27
+ const recalculate = useCallback(() => {
28
+ const el = peekElement(target);
29
+ if (!el || !(el instanceof Element)) {
30
+ if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });
31
+ return;
32
+ }
33
+ const rect = el.getBoundingClientRect();
34
+ bounding$.assign({
35
+ x: rect.x,
36
+ y: rect.y,
37
+ top: rect.top,
38
+ right: rect.right,
39
+ bottom: rect.bottom,
40
+ left: rect.left,
41
+ width: rect.width,
42
+ height: rect.height
43
+ });
44
+ }, []);
45
+ const update = useCallback(() => {
46
+ if (opts$.useCssTransforms.peek() !== false) {
47
+ rafRef.current = requestAnimationFrame(() => {
48
+ if (!unmountedRef.current) recalculate();
49
+ });
50
+ } else {
51
+ recalculate();
52
+ }
53
+ }, [recalculate]);
54
+ useResizeObserver(target, update);
55
+ useMutationObserver(target, update, {
56
+ attributes: true,
57
+ attributeFilter: ["style", "class"]
58
+ });
59
+ useEventListener(
60
+ isWindow(win) && opts$.windowScroll.peek() !== false ? win : null,
61
+ "scroll",
62
+ update,
63
+ { passive: true }
64
+ );
65
+ useEventListener(
66
+ isWindow(win) && opts$.windowResize.peek() !== false ? win : null,
67
+ "resize",
68
+ update,
69
+ { passive: true }
70
+ );
71
+ useEffect(() => {
72
+ unmountedRef.current = false;
73
+ if (opts$.immediate.peek() !== false) update();
74
+ return () => {
75
+ unmountedRef.current = true;
76
+ if (rafRef.current !== null) {
77
+ cancelAnimationFrame(rafRef.current);
78
+ rafRef.current = null;
79
+ }
80
+ if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });
81
+ };
82
+ }, []);
83
+ return {
84
+ x$: bounding$.x,
85
+ y$: bounding$.y,
86
+ top$: bounding$.top,
87
+ right$: bounding$.right,
88
+ bottom$: bounding$.bottom,
89
+ left$: bounding$.left,
90
+ width$: bounding$.width,
91
+ height$: bounding$.height,
92
+ update
93
+ };
94
+ }
95
+ export {
96
+ useElementBounding
97
+ };
98
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/useElementBounding/index.ts"],"sourcesContent":["import type { Observable } from \"@legendapp/state\";\nimport { useObservable } from \"@legendapp/state/react\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { type MaybeElement, peekElement } from \"../useRef$\";\nimport { useResizeObserver } from \"../useResizeObserver\";\nimport { useMutationObserver } from \"../useMutationObserver\";\nimport { useEventListener } from \"../../browser/useEventListener\";\nimport { isWindow } from \"../../shared\";\nimport { useMayObservableOptions } from \"../../function/useMayObservableOptions\";\nimport type { DeepMaybeObservable } from \"../../types\";\n\nexport interface UseElementBoundingOptions {\n /** Reset all values to 0 when element unmounts. Default: true */\n reset?: boolean;\n /** Re-calculate on window resize. Default: true */\n windowResize?: boolean;\n /** Re-calculate on window scroll. Default: true */\n windowScroll?: boolean;\n /** Calculate immediately on mount. Default: true */\n immediate?: boolean;\n /** Use requestAnimationFrame to read rect after CSS transforms settle. Default: true */\n useCssTransforms?: boolean;\n}\n\nexport interface UseElementBoundingReturn {\n x$: Observable<number>;\n y$: Observable<number>;\n top$: Observable<number>;\n right$: Observable<number>;\n bottom$: Observable<number>;\n left$: Observable<number>;\n width$: Observable<number>;\n height$: Observable<number>;\n update: () => void;\n}\n\nconst ZERO = {\n x: 0,\n y: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0,\n};\n\n// isWindow(window) returns false in SSR (typeof window === \"undefined\"), true in browser.\nconst win = typeof window !== \"undefined\" ? window : null;\n\n/**\n * Tracks the bounding rect of a DOM element (x, y, top, right, bottom, left, width, height).\n * Observes ResizeObserver, MutationObserver (style/class changes), window scroll, and resize.\n *\n * @param target - Element to observe: Ref$, Observable<OpaqueObject<Element>|null>, Document, Window, or null\n * @param options - Configuration options\n * @returns Reactive bounding rect values plus a manual `update()` function\n *\n * @example\n * ```tsx\n * const el$ = useRef$<HTMLDivElement>();\n * const { top$, left$, width$, height$ } = useElementBounding(el$);\n * return <div ref={el$} />;\n * ```\n */\nexport function useElementBounding(\n target: MaybeElement,\n options?: DeepMaybeObservable<UseElementBoundingOptions>,\n): UseElementBoundingReturn {\n const opts$ = useMayObservableOptions<UseElementBoundingOptions>(options, {\n immediate: \"peek\",\n });\n\n const bounding$ = useObservable({ ...ZERO });\n\n // Guards rAF callbacks from updating state after unmount.\n const unmountedRef = useRef(false);\n const rafRef = useRef<number | null>(null);\n\n const recalculate = useCallback(() => {\n const el = peekElement(target) as Element | null;\n if (!el || !(el instanceof Element)) {\n if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });\n return;\n }\n const rect = el.getBoundingClientRect();\n bounding$.assign({\n x: rect.x,\n y: rect.y,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height,\n });\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const update = useCallback(() => {\n if (opts$.useCssTransforms.peek() !== false) {\n rafRef.current = requestAnimationFrame(() => {\n if (!unmountedRef.current) recalculate();\n });\n } else {\n recalculate();\n }\n }, [recalculate]); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Observe size changes\n useResizeObserver(target, update);\n\n // Observe style/class attribute changes (e.g. CSS transitions, class toggles)\n useMutationObserver(target, update, {\n attributes: true,\n attributeFilter: [\"style\", \"class\"],\n });\n\n // Observe window scroll / resize (always call hooks unconditionally — Rules of Hooks)\n // isWindow(win) is false in SSR, so target becomes null outside the browser.\n // peek() — evaluated once at render time, no reactive subscription needed.\n useEventListener(\n isWindow(win) && opts$.windowScroll.peek() !== false ? win : null,\n \"scroll\",\n update,\n { passive: true },\n );\n useEventListener(\n isWindow(win) && opts$.windowResize.peek() !== false ? win : null,\n \"resize\",\n update,\n { passive: true },\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => {\n unmountedRef.current = false;\n if (opts$.immediate.peek() !== false) update();\n return () => {\n unmountedRef.current = true;\n if (rafRef.current !== null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n if (opts$.reset.peek() !== false) bounding$.assign({ ...ZERO });\n };\n }, []);\n\n return {\n x$: bounding$.x,\n y$: bounding$.y,\n top$: bounding$.top,\n right$: bounding$.right,\n bottom$: bounding$.bottom,\n left$: bounding$.left,\n width$: bounding$.width,\n height$: bounding$.height,\n update,\n };\n}\n"],"mappings":"AACA,SAAS,qBAAqB;AAC9B,SAAS,aAAa,WAAW,cAAc;AAC/C,SAA4B,mBAAmB;AAC/C,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AA4BxC,MAAM,OAAO;AAAA,EACX,GAAG;AAAA,EACH,GAAG;AAAA,EACH,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AACV;AAGA,MAAM,MAAM,OAAO,WAAW,cAAc,SAAS;AAiB9C,SAAS,mBACd,QACA,SAC0B;AAC1B,QAAM,QAAQ,wBAAmD,SAAS;AAAA,IACxE,WAAW;AAAA,EACb,CAAC;AAED,QAAM,YAAY,cAAc,EAAE,GAAG,KAAK,CAAC;AAG3C,QAAM,eAAe,OAAO,KAAK;AACjC,QAAM,SAAS,OAAsB,IAAI;AAEzC,QAAM,cAAc,YAAY,MAAM;AACpC,UAAM,KAAK,YAAY,MAAM;AAC7B,QAAI,CAAC,MAAM,EAAE,cAAc,UAAU;AACnC,UAAI,MAAM,MAAM,KAAK,MAAM,MAAO,WAAU,OAAO,EAAE,GAAG,KAAK,CAAC;AAC9D;AAAA,IACF;AACA,UAAM,OAAO,GAAG,sBAAsB;AACtC,cAAU,OAAO;AAAA,MACf,GAAG,KAAK;AAAA,MACR,GAAG,KAAK;AAAA,MACR,KAAK,KAAK;AAAA,MACV,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,MACX,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,IACf,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,SAAS,YAAY,MAAM;AAC/B,QAAI,MAAM,iBAAiB,KAAK,MAAM,OAAO;AAC3C,aAAO,UAAU,sBAAsB,MAAM;AAC3C,YAAI,CAAC,aAAa,QAAS,aAAY;AAAA,MACzC,CAAC;AAAA,IACH,OAAO;AACL,kBAAY;AAAA,IACd;AAAA,EACF,GAAG,CAAC,WAAW,CAAC;AAGhB,oBAAkB,QAAQ,MAAM;AAGhC,sBAAoB,QAAQ,QAAQ;AAAA,IAClC,YAAY;AAAA,IACZ,iBAAiB,CAAC,SAAS,OAAO;AAAA,EACpC,CAAC;AAKD;AAAA,IACE,SAAS,GAAG,KAAK,MAAM,aAAa,KAAK,MAAM,QAAQ,MAAM;AAAA,IAC7D;AAAA,IACA;AAAA,IACA,EAAE,SAAS,KAAK;AAAA,EAClB;AACA;AAAA,IACE,SAAS,GAAG,KAAK,MAAM,aAAa,KAAK,MAAM,QAAQ,MAAM;AAAA,IAC7D;AAAA,IACA;AAAA,IACA,EAAE,SAAS,KAAK;AAAA,EAClB;AAGA,YAAU,MAAM;AACd,iBAAa,UAAU;AACvB,QAAI,MAAM,UAAU,KAAK,MAAM,MAAO,QAAO;AAC7C,WAAO,MAAM;AACX,mBAAa,UAAU;AACvB,UAAI,OAAO,YAAY,MAAM;AAC3B,6BAAqB,OAAO,OAAO;AACnC,eAAO,UAAU;AAAA,MACnB;AACA,UAAI,MAAM,MAAM,KAAK,MAAM,MAAO,WAAU,OAAO,EAAE,GAAG,KAAK,CAAC;AAAA,IAChE;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,MAAM,UAAU;AAAA,IAChB,QAAQ,UAAU;AAAA,IAClB,SAAS,UAAU;AAAA,IACnB,OAAO,UAAU;AAAA,IACjB,QAAQ,UAAU;AAAA,IAClB,SAAS,UAAU;AAAA,IACnB;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function UseElementSizeDemo(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { UseElementSizeDemo as default };
@@ -0,0 +1,5 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ declare function UseElementSizeDemo(): react_jsx_runtime.JSX.Element;
4
+
5
+ export { UseElementSizeDemo as default };