react-grab 0.1.28 → 0.1.30

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 (432) hide show
  1. package/README.md +8 -138
  2. package/dist/core/index.cjs +9 -1
  3. package/dist/core/index.d.cts +11 -3
  4. package/dist/core/index.d.ts +11 -3
  5. package/dist/core/index.js +9 -1
  6. package/dist/core--H_JZk7a.js +16 -0
  7. package/dist/core-1AoeBJ2R.cjs +4386 -0
  8. package/dist/core-4VC4A94S.js +4249 -0
  9. package/dist/core-5Q_6LVh_.cjs +16 -0
  10. package/dist/core-6sOn3YNs.js +16 -0
  11. package/dist/core-B3FYVaHv.cjs +16 -0
  12. package/dist/core-B3I0upO1.js +4250 -0
  13. package/dist/core-B3ndcALq.cjs +4386 -0
  14. package/dist/core-B9GWVp1Q.js +16 -0
  15. package/dist/core-BGIMywNa.js +16 -0
  16. package/dist/core-BGK4C6ju.js +16 -0
  17. package/dist/core-BGXprTx7.cjs +16 -0
  18. package/dist/core-BKt5SHzo.js +16 -0
  19. package/dist/core-BMObVYUv.cjs +16 -0
  20. package/dist/core-BNMx90Sn.js +16 -0
  21. package/dist/core-BWQ6C5g9.js +4268 -0
  22. package/dist/core-BcwRbSfO.js +16 -0
  23. package/dist/core-Be-1ubQn.cjs +16 -0
  24. package/dist/core-BfpPi7c6.cjs +16 -0
  25. package/dist/core-BiIoWLRk.js +16 -0
  26. package/dist/core-BjpyJHlW.js +16 -0
  27. package/dist/core-Bqf3D4Ra.cjs +16 -0
  28. package/dist/core-Bs0wekHY.cjs +4284 -0
  29. package/dist/core-Bvqgv6Zr.js +16 -0
  30. package/dist/core-Bw0-Cecq.cjs +16 -0
  31. package/dist/core-BzRpJ5QI.cjs +4284 -0
  32. package/dist/core-C0ZgNdUR.cjs +4386 -0
  33. package/dist/core-C191WXKe.cjs +16 -0
  34. package/dist/core-C4yYleJn.js +16 -0
  35. package/dist/core-C758xgeI.js +16 -0
  36. package/dist/core-CAZ8ENTv.js +16 -0
  37. package/dist/core-CBUFmwfx.cjs +4386 -0
  38. package/dist/core-CDV48I9C.js +4249 -0
  39. package/dist/core-CGXCsSkm.js +4280 -0
  40. package/dist/core-CHsFU9FZ.js +16 -0
  41. package/dist/core-CJOQfSzq.js +4495 -0
  42. package/dist/core-CLW9tl4L.js +4249 -0
  43. package/dist/core-CP1yCnSB.js +16 -0
  44. package/dist/core-CRLyvQCt.cjs +16 -0
  45. package/dist/core-CZX3EijL.js +16 -0
  46. package/dist/core-Ccli-yLf.cjs +16 -0
  47. package/dist/core-Ce4pBUSh.js +16 -0
  48. package/dist/core-CgCGjXfB.cjs +16 -0
  49. package/dist/core-CiQl2PfF.cjs +16 -0
  50. package/dist/core-CnPpGWUc.js +16 -0
  51. package/dist/core-Co9954wQ.cjs +16 -0
  52. package/dist/core-Cr4qVf2a.js +16 -0
  53. package/dist/core-CrQCbm00.js +16 -0
  54. package/dist/core-CsCg35MW.js +16 -0
  55. package/dist/core-Cshs0orb.js +16 -0
  56. package/dist/core-CthjfoZX.cjs +16 -0
  57. package/dist/core-CtvavOAt.cjs +16 -0
  58. package/dist/core-CvoFTVjy.cjs +16 -0
  59. package/dist/core-CzE8I9NL.cjs +16 -0
  60. package/dist/core-CzGijRTx.js +16 -0
  61. package/dist/core-CzosrDdO.cjs +16 -0
  62. package/dist/core-D--fM7Xq.cjs +16 -0
  63. package/dist/core-D-UGQb_Z.cjs +16 -0
  64. package/dist/core-D0UqPwu_.cjs +16 -0
  65. package/dist/core-D2LzIluw.js +4495 -0
  66. package/dist/core-D4z4W-Qz.cjs +16 -0
  67. package/dist/core-D7NwJuzy.js +16 -0
  68. package/dist/core-DCqMIKkK.js +16 -0
  69. package/dist/core-DFrvwczh.cjs +4284 -0
  70. package/dist/core-DGxxKKPR.cjs +16 -0
  71. package/dist/core-DGyQeEXa.js +4495 -0
  72. package/dist/core-DH8Uvag-.js +4249 -0
  73. package/dist/core-DHZBYfsC.js +16 -0
  74. package/dist/core-DKVj078o.js +4249 -0
  75. package/dist/core-DMRsaGr7.js +16 -0
  76. package/dist/core-DRUnXCNA.cjs +16 -0
  77. package/dist/core-DRlG4zYm.cjs +16 -0
  78. package/dist/core-DSqJwwdV.cjs +4284 -0
  79. package/dist/core-DXqmRz53.cjs +16 -0
  80. package/dist/core-DcRxqPad.js +16 -0
  81. package/dist/core-DdNOX4pt.js +16 -0
  82. package/dist/core-Df7CMRnd.cjs +4315 -0
  83. package/dist/core-DiIZA6Hx.js +4495 -0
  84. package/dist/core-DiVnlonK.cjs +4284 -0
  85. package/dist/core-Dj1WV911.js +4495 -0
  86. package/dist/core-DjPDxMID.cjs +16 -0
  87. package/dist/core-DjcnHWor.cjs +16 -0
  88. package/dist/core-DkWjrEUZ.cjs +16 -0
  89. package/dist/core-Dq-CCsij.cjs +4303 -0
  90. package/dist/core-DsVAkMs2.js +16 -0
  91. package/dist/core-DueMb4P6.js +4249 -0
  92. package/dist/core-DvJt5JmX.js +16 -0
  93. package/dist/core-Dz8Hrc33.js +4249 -0
  94. package/dist/core-ESHKG2mL.cjs +4285 -0
  95. package/dist/core-Ij_B_RWV.cjs +16 -0
  96. package/dist/core-JyczI7kP.cjs +16 -0
  97. package/dist/core-K0XuILjf.cjs +4284 -0
  98. package/dist/core-N9HyYpZv.cjs +16 -0
  99. package/dist/core-PW2DC2Tb.js +4495 -0
  100. package/dist/core-Q84EBsQ8.cjs +16 -0
  101. package/dist/core-TSuD8D7m.js +16 -0
  102. package/dist/core-WN76m9V0.cjs +16 -0
  103. package/dist/core-YRKn-0AV.js +16 -0
  104. package/dist/core-fC6GdbUJ.js +16 -0
  105. package/dist/core-h5q7bqH-.cjs +4284 -0
  106. package/dist/core-hkgBRD_T.js +16 -0
  107. package/dist/core-k9l5c9Hk.cjs +16 -0
  108. package/dist/core-mNhkpUYQ.cjs +16 -0
  109. package/dist/core-qCvYE9Ox.cjs +4386 -0
  110. package/dist/core-rvs2FEMH.js +16 -0
  111. package/dist/core-sXzUCmoJ.js +16 -0
  112. package/dist/core-t7gaYHyj.cjs +4386 -0
  113. package/dist/core-thci-YqL.js +16 -0
  114. package/dist/core-xokESdbC.cjs +16 -0
  115. package/dist/core-yW0MN96-.cjs +16 -0
  116. package/dist/core-ydFCYlV4.js +16 -0
  117. package/dist/core-zQ4jjKHw.cjs +16 -0
  118. package/dist/extract-element-css-B-R_28uM.cjs +10 -0
  119. package/dist/extract-element-css-B732tro7.js +10 -0
  120. package/dist/extract-element-css-B9Xh1wUd.js +10 -0
  121. package/dist/extract-element-css-BGZPWnck.js +10 -0
  122. package/dist/extract-element-css-BIniUwQh.js +319 -0
  123. package/dist/extract-element-css-BOQUDYB3.cjs +10 -0
  124. package/dist/extract-element-css-BTzDGIs3.cjs +336 -0
  125. package/dist/extract-element-css-BWUnsvjZ.js +10 -0
  126. package/dist/extract-element-css-BceTcL6y.cjs +10 -0
  127. package/dist/extract-element-css-Bi1y8V4z.cjs +336 -0
  128. package/dist/extract-element-css-Bra6hEzg.js +319 -0
  129. package/dist/extract-element-css-BuJ3zqGO.js +10 -0
  130. package/dist/extract-element-css-C8lBuGP7.js +10 -0
  131. package/dist/extract-element-css-CBHVjrBq.cjs +10 -0
  132. package/dist/extract-element-css-CGxXdwim.js +10 -0
  133. package/dist/extract-element-css-CJx4cesM.js +10 -0
  134. package/dist/extract-element-css-CQBJAbFD.cjs +10 -0
  135. package/dist/extract-element-css-CQV8FsMB.cjs +10 -0
  136. package/dist/extract-element-css-CQx4Biqa.cjs +336 -0
  137. package/dist/extract-element-css-CTy2pRfA.js +10 -0
  138. package/dist/extract-element-css-CchtITXx.cjs +336 -0
  139. package/dist/extract-element-css-CjY9vDS6.js +10 -0
  140. package/dist/extract-element-css-ClnG20sN.cjs +10 -0
  141. package/dist/extract-element-css-CmMetO-q.cjs +10 -0
  142. package/dist/extract-element-css-CmOD6UeE.cjs +10 -0
  143. package/dist/extract-element-css-CnY9b0vB.js +10 -0
  144. package/dist/extract-element-css-CoQLNjVI.js +10 -0
  145. package/dist/extract-element-css-CqjmXl0Y.cjs +10 -0
  146. package/dist/extract-element-css-Cr29xtzW.cjs +10 -0
  147. package/dist/extract-element-css-CzNVoJEM.js +319 -0
  148. package/dist/extract-element-css-CzgC7nM9.cjs +10 -0
  149. package/dist/extract-element-css-D3Dy-3Qz.js +10 -0
  150. package/dist/extract-element-css-D5qqKVc-.cjs +10 -0
  151. package/dist/extract-element-css-D5zsPw09.cjs +10 -0
  152. package/dist/extract-element-css-D6UwJjf4.cjs +336 -0
  153. package/dist/extract-element-css-DEuA2W6G.js +10 -0
  154. package/dist/extract-element-css-DKkUiIlS.cjs +10 -0
  155. package/dist/extract-element-css-DM0EhhXw.cjs +10 -0
  156. package/dist/extract-element-css-DPA6C_o-.cjs +10 -0
  157. package/dist/extract-element-css-DU45xRGh.js +10 -0
  158. package/dist/extract-element-css-DUvYlz4T.js +10 -0
  159. package/dist/extract-element-css-DVDr5Tn6.cjs +10 -0
  160. package/dist/extract-element-css-Di9hCigW.js +319 -0
  161. package/dist/extract-element-css-DivFxCRt.js +319 -0
  162. package/dist/extract-element-css-DlDbU4YM.cjs +10 -0
  163. package/dist/extract-element-css-DsssOqcQ.cjs +10 -0
  164. package/dist/extract-element-css-EnvrIHtf.cjs +336 -0
  165. package/dist/extract-element-css-FI71J_KB.js +10 -0
  166. package/dist/extract-element-css-GdDDlzTf.js +10 -0
  167. package/dist/extract-element-css-U3MgLHty.cjs +10 -0
  168. package/dist/extract-element-css-U4oxl-UP.js +10 -0
  169. package/dist/extract-element-css-VyMIgOZy.js +10 -0
  170. package/dist/extract-element-css-XGv0WWIL.js +319 -0
  171. package/dist/extract-element-css-Y-x4luJL.cjs +10 -0
  172. package/dist/extract-element-css-Zz_CgLqY.js +319 -0
  173. package/dist/extract-element-css-_aFPl5y4.cjs +336 -0
  174. package/dist/extract-element-css-_uZRVqCT.cjs +10 -0
  175. package/dist/extract-element-css-i8nzXODQ.js +10 -0
  176. package/dist/extract-element-css-jh1iLRzJ.js +10 -0
  177. package/dist/extract-element-css-nkJQc3j1.js +10 -0
  178. package/dist/freeze-updates--K1ecmFi.cjs +44 -0
  179. package/dist/freeze-updates-1FTXgIdb.js +44 -0
  180. package/dist/freeze-updates-3QjTocF-.cjs +2267 -0
  181. package/dist/freeze-updates-81f5sY45.js +44 -0
  182. package/dist/freeze-updates-B1mPDmJB.js +44 -0
  183. package/dist/freeze-updates-B5h8teL6.cjs +44 -0
  184. package/dist/freeze-updates-BAYe0Nlx.js +44 -0
  185. package/dist/freeze-updates-BDhlBp3V.js +44 -0
  186. package/dist/freeze-updates-BGa9CqrW.cjs +2267 -0
  187. package/dist/freeze-updates-BQH6Y8E1.cjs +44 -0
  188. package/dist/freeze-updates-BQjWBzy4.cjs +53 -0
  189. package/dist/freeze-updates-BSOSfpXo.js +44 -0
  190. package/dist/freeze-updates-BT-s67nK.js +53 -0
  191. package/dist/freeze-updates-BUJeYIm5.js +44 -0
  192. package/dist/freeze-updates-BVDrqUzf.js +2498 -0
  193. package/dist/freeze-updates-BVX0QSXz.cjs +44 -0
  194. package/dist/freeze-updates-BXMr6a9g.cjs +2912 -0
  195. package/dist/freeze-updates-BZpmCVDl.cjs +2267 -0
  196. package/dist/freeze-updates-BbbID39H.js +1866 -0
  197. package/dist/freeze-updates-BdnJ5RrP.js +1866 -0
  198. package/dist/freeze-updates-Bj59uWit.cjs +44 -0
  199. package/dist/freeze-updates-Bla3E0Kv.js +53 -0
  200. package/dist/freeze-updates-BoYyIB3V.cjs +44 -0
  201. package/dist/freeze-updates-C2TqDiTp.cjs +44 -0
  202. package/dist/freeze-updates-C6Tg4EoW.js +44 -0
  203. package/dist/freeze-updates-C7c9TRvJ.cjs +44 -0
  204. package/dist/freeze-updates-CPNAwtsl.cjs +2267 -0
  205. package/dist/freeze-updates-CTP39zuf.js +44 -0
  206. package/dist/freeze-updates-Cm3EVm_J.cjs +53 -0
  207. package/dist/freeze-updates-CnSZEKoI.cjs +44 -0
  208. package/dist/freeze-updates-CrKe4F0s.js +44 -0
  209. package/dist/freeze-updates-CtYFeM4D.cjs +2267 -0
  210. package/dist/freeze-updates-CxYFvPj9.cjs +53 -0
  211. package/dist/freeze-updates-D10Qj9Ec.cjs +44 -0
  212. package/dist/freeze-updates-D6o46vBw.cjs +44 -0
  213. package/dist/freeze-updates-D7XFQ3_T.js +53 -0
  214. package/dist/freeze-updates-D8H25gFt.js +44 -0
  215. package/dist/freeze-updates-DCpGX7lt.cjs +44 -0
  216. package/dist/freeze-updates-DG3hLEL2.cjs +44 -0
  217. package/dist/freeze-updates-DO_M76qf.js +44 -0
  218. package/dist/freeze-updates-Db4Id665.cjs +2267 -0
  219. package/dist/freeze-updates-DbL_EXkN.js +1866 -0
  220. package/dist/freeze-updates-DcvNGCcR.cjs +44 -0
  221. package/dist/freeze-updates-Dh4GiYXz.cjs +44 -0
  222. package/dist/freeze-updates-DkKJK_nh.cjs +44 -0
  223. package/dist/freeze-updates-DmB-ndqy.cjs +44 -0
  224. package/dist/freeze-updates-DnAA3QYp.cjs +44 -0
  225. package/dist/freeze-updates-Dpj8jndD.js +44 -0
  226. package/dist/freeze-updates-DuHXIi3M.js +44 -0
  227. package/dist/freeze-updates-DwERlFID.js +1866 -0
  228. package/dist/freeze-updates-HHyWtz8f.cjs +44 -0
  229. package/dist/freeze-updates-JRZCAR0q.js +1866 -0
  230. package/dist/freeze-updates-KLyCac_c.js +44 -0
  231. package/dist/freeze-updates-MaNDvTJS.js +1866 -0
  232. package/dist/freeze-updates-REe44rww.js +44 -0
  233. package/dist/freeze-updates-TPRkNnYY.js +44 -0
  234. package/dist/freeze-updates-WfKs4yF4.js +44 -0
  235. package/dist/freeze-updates-d9yH0V6A.cjs +44 -0
  236. package/dist/freeze-updates-nzZkxjqN.js +44 -0
  237. package/dist/freeze-updates-q_DMlHq7.js +44 -0
  238. package/dist/index-0hhKx6KA.d.ts +534 -0
  239. package/dist/index-5oOhE8Ae.d.cts +123 -0
  240. package/dist/index-BA23Z7zi.d.ts +77 -0
  241. package/dist/index-BAbHDCJb.d.ts +190 -0
  242. package/dist/index-BN1ZJhWK.d.cts +471 -0
  243. package/dist/index-BNt_9BO7.d.ts +77 -0
  244. package/dist/index-BQIO-ZFv.d.cts +190 -0
  245. package/dist/index-BTQxeAz1.d.cts +123 -0
  246. package/dist/index-BxsI0BlT.d.ts +471 -0
  247. package/dist/index-BzzHoNRc.d.cts +77 -0
  248. package/dist/index-C0Scq3kL.d.ts +458 -0
  249. package/dist/index-CAHLDDjY.d.ts +190 -0
  250. package/dist/index-CIJ7ossb.d.ts +190 -0
  251. package/dist/index-CJqujqsv.d.cts +190 -0
  252. package/dist/index-CJrVDk2d.d.ts +470 -0
  253. package/dist/index-CQBZI4f5.d.cts +458 -0
  254. package/dist/index-CS3VHZ8R.d.cts +77 -0
  255. package/dist/index-CWd5aKyK.d.ts +123 -0
  256. package/dist/index-DM3Ga1zc.d.ts +123 -0
  257. package/dist/index-DYp_9VQ_.d.cts +470 -0
  258. package/dist/index-DrK-HiGj.d.ts +203 -0
  259. package/dist/index-GwiDNOsl.d.ts +457 -0
  260. package/dist/index-QLMT7NRw.d.cts +203 -0
  261. package/dist/index-QLi1BtdI.d.cts +190 -0
  262. package/dist/index-sM3yy652.d.cts +534 -0
  263. package/dist/index-zvkV7Xwg.d.cts +457 -0
  264. package/dist/index.cjs +2 -2
  265. package/dist/index.d.cts +21 -12
  266. package/dist/index.d.ts +21 -12
  267. package/dist/index.global.js +26 -101
  268. package/dist/index.iife.js +43 -0
  269. package/dist/index.js +2 -2
  270. package/dist/primitives.cjs +2 -2
  271. package/dist/primitives.d.cts +20 -13
  272. package/dist/primitives.d.ts +20 -13
  273. package/dist/primitives.js +2 -2
  274. package/dist/renderer--AVNuclr.js +9 -0
  275. package/dist/renderer--bWj0AZJ.js +4101 -0
  276. package/dist/renderer--cF4pvND.js +9 -0
  277. package/dist/renderer-0mo5bvxE.js +4126 -0
  278. package/dist/renderer-4Wa-UMC5.cjs +9 -0
  279. package/dist/renderer-6D9KbSAS.js +9 -0
  280. package/dist/renderer-7mjLlkgX.cjs +9 -0
  281. package/dist/renderer-B0v-2J0H.js +9 -0
  282. package/dist/renderer-B0yJsSRz.js +9 -0
  283. package/dist/renderer-B660bBKn.cjs +9 -0
  284. package/dist/renderer-B6m2pWq1.cjs +4102 -0
  285. package/dist/renderer-BA_yjKW4.cjs +9 -0
  286. package/dist/renderer-BDCne7IL.cjs +9 -0
  287. package/dist/renderer-BDKG-8eW.js +9 -0
  288. package/dist/renderer-BEisX7lt.js +9 -0
  289. package/dist/renderer-BEnSHrkN.cjs +9 -0
  290. package/dist/renderer-BJQHCki_.js +9 -0
  291. package/dist/renderer-BLEQ0lBg.js +9 -0
  292. package/dist/renderer-BQMe9vbO.cjs +9 -0
  293. package/dist/renderer-BZfQAWt2.cjs +9 -0
  294. package/dist/renderer-BZypunFM.cjs +9 -0
  295. package/dist/renderer-Be1I1mDW.cjs +9 -0
  296. package/dist/renderer-Bhrtihjr.cjs +9 -0
  297. package/dist/renderer-Bp3dRMPA.js +9 -0
  298. package/dist/renderer-BqYgf0tD.js +9 -0
  299. package/dist/renderer-BwD9ZaGr.cjs +9 -0
  300. package/dist/renderer-BxCRcsEK.cjs +4125 -0
  301. package/dist/renderer-C1Wrh8hn.js +9 -0
  302. package/dist/renderer-C6pztTyv.js +9 -0
  303. package/dist/renderer-C9bCr3pC.js +4101 -0
  304. package/dist/renderer-CEmrAuyA.js +9 -0
  305. package/dist/renderer-CG1lpM8J.cjs +9 -0
  306. package/dist/renderer-CIJhv1xD.js +9 -0
  307. package/dist/renderer-CJ3EovD7.js +9 -0
  308. package/dist/renderer-CJVIzi67.js +4114 -0
  309. package/dist/renderer-CKAmRN9i.cjs +9 -0
  310. package/dist/renderer-CNa9jW2d.js +9 -0
  311. package/dist/renderer-CS6q5sh-.cjs +4101 -0
  312. package/dist/renderer-CTip7L4z.cjs +4114 -0
  313. package/dist/renderer-Cdh6G3WO.cjs +4101 -0
  314. package/dist/renderer-Cfnc_J-x.js +9 -0
  315. package/dist/renderer-CidbOiiO.js +9 -0
  316. package/dist/renderer-CooL8OD4.cjs +9 -0
  317. package/dist/renderer-Cp8W_Vpj.cjs +4101 -0
  318. package/dist/renderer-Ctq4IL1w.cjs +9 -0
  319. package/dist/renderer-D0gZDp8v.js +9 -0
  320. package/dist/renderer-D2Ius1-3.cjs +9 -0
  321. package/dist/renderer-D2gUuAUv.cjs +9 -0
  322. package/dist/renderer-D6qQGrNF.js +9 -0
  323. package/dist/renderer-D9RBf9He.js +9 -0
  324. package/dist/renderer-DDpyudCh.js +9 -0
  325. package/dist/renderer-DEo9eIZj.cjs +9 -0
  326. package/dist/renderer-DHBz10-G.js +9 -0
  327. package/dist/renderer-DM6gVYD_.cjs +4126 -0
  328. package/dist/renderer-DS5wjL1R.cjs +9 -0
  329. package/dist/renderer-DWZQjHeF.cjs +4101 -0
  330. package/dist/renderer-DZ-EdxOj.cjs +9 -0
  331. package/dist/renderer-DblZTrea.js +9 -0
  332. package/dist/renderer-DcPiCh7r.js +4114 -0
  333. package/dist/renderer-Dfj6tfg9.cjs +4139 -0
  334. package/dist/renderer-DhoYb1PY.js +4103 -0
  335. package/dist/renderer-Dl6awT_I.cjs +9 -0
  336. package/dist/renderer-DmOXobMF.js +4101 -0
  337. package/dist/renderer-DmlAyeq6.cjs +4114 -0
  338. package/dist/renderer-DnwizF3I.cjs +9 -0
  339. package/dist/renderer-Dpzs-uao.js +4125 -0
  340. package/dist/renderer-Ds21virZ.cjs +4145 -0
  341. package/dist/renderer-DslAAsKS.js +4101 -0
  342. package/dist/renderer-DtBv4wTu.js +4102 -0
  343. package/dist/renderer-DxuOYfZN.cjs +9 -0
  344. package/dist/renderer-DyrsoA_r.js +9 -0
  345. package/dist/renderer-GlgUXTaV.js +9 -0
  346. package/dist/renderer-KL2bSyIW.cjs +9 -0
  347. package/dist/renderer-N_yFJNWi.cjs +9 -0
  348. package/dist/renderer-TkTQ8ZzV.cjs +4101 -0
  349. package/dist/renderer-WtWG_Uzr.js +4139 -0
  350. package/dist/renderer-YPWUo91d.cjs +9 -0
  351. package/dist/renderer-foaHR93_.js +9 -0
  352. package/dist/renderer-irss7gH9.js +9 -0
  353. package/dist/renderer-kNWgh9RH.js +9 -0
  354. package/dist/renderer-l2DsHbX5.js +4145 -0
  355. package/dist/renderer-lRGat4eI.js +9 -0
  356. package/dist/renderer-m1ynwV5m.cjs +9 -0
  357. package/dist/renderer-oDWZTt10.cjs +9 -0
  358. package/dist/renderer-ruVxrW9_.cjs +9 -0
  359. package/dist/renderer-tLg9bC5E.cjs +4103 -0
  360. package/dist/renderer-wKL03A96.cjs +9 -0
  361. package/dist/renderer-xY7WwwPb.cjs +9 -0
  362. package/dist/renderer-yNfPLGJa.js +4101 -0
  363. package/dist/renderer-zFA8Xsqn.js +9 -0
  364. package/dist/state-0zvRag7o.js +1832 -0
  365. package/dist/state-1bNOTRwX.js +9 -0
  366. package/dist/state-4KlM-876.cjs +9 -0
  367. package/dist/state-5YzsfKSg.js +9 -0
  368. package/dist/state-B2sO7SGs.cjs +9 -0
  369. package/dist/state-B30FVO9-.cjs +9 -0
  370. package/dist/state-BBF5Yd6R.cjs +1488 -0
  371. package/dist/state-BHM_hL69.cjs +9 -0
  372. package/dist/state-BKkU5MYC.js +9 -0
  373. package/dist/state-B_xrj8fC.js +9 -0
  374. package/dist/state-BaTqKR5-.js +1832 -0
  375. package/dist/state-Bb1Wechu.js +9 -0
  376. package/dist/state-BfgVpFaG.cjs +9 -0
  377. package/dist/state-BoRPcmmD.js +9 -0
  378. package/dist/state-BqB3gaPk.js +9 -0
  379. package/dist/state-Bt9zarML.js +1832 -0
  380. package/dist/state-Bw07Ecsm.js +9 -0
  381. package/dist/state-Bw9Y8zmt.js +9 -0
  382. package/dist/state-ByV_XBwX.js +9 -0
  383. package/dist/state-C4nNE_SS.js +9 -0
  384. package/dist/state-C4uusDVL.cjs +9 -0
  385. package/dist/state-CMwBL8Lh.cjs +9 -0
  386. package/dist/state-C_KJ10Ip.cjs +9 -0
  387. package/dist/state-ClLJ5ade.cjs +1488 -0
  388. package/dist/state-CpWrjvjx.js +277 -0
  389. package/dist/state-CwguFqss.cjs +9 -0
  390. package/dist/state-Cxj7mpyT.cjs +9 -0
  391. package/dist/state-CyWfuYBm.js +9 -0
  392. package/dist/state-Cz4euNVW.js +1832 -0
  393. package/dist/state-D1eYdbOV.js +9 -0
  394. package/dist/state-D231Xq-p.js +9 -0
  395. package/dist/state-D2nMXLig.cjs +9 -0
  396. package/dist/state-D3NnAU-G.js +9 -0
  397. package/dist/state-D4g0zX0j.cjs +9 -0
  398. package/dist/state-D5n1XOr-.cjs +372 -0
  399. package/dist/state-DPKTXrbJ.cjs +9 -0
  400. package/dist/state-DREKPmRw.cjs +9 -0
  401. package/dist/state-DT0Nzp9g.cjs +9 -0
  402. package/dist/state-Deun4HK-.cjs +9 -0
  403. package/dist/state-DfcZ51t9.js +9 -0
  404. package/dist/state-DgvhS6KW.cjs +1488 -0
  405. package/dist/state-DkjLMcvP.cjs +9 -0
  406. package/dist/state-DspBT1Sv.js +9 -0
  407. package/dist/state-DtgVqpBv.js +9 -0
  408. package/dist/state-DycsTHAk.cjs +9 -0
  409. package/dist/state-EWoHHdWu.js +9 -0
  410. package/dist/state-HWOltPgB.js +9 -0
  411. package/dist/state-JJNPE2tU.js +277 -0
  412. package/dist/state-KDd3Eouo.js +9 -0
  413. package/dist/state-Kmc6BtLp.cjs +9 -0
  414. package/dist/state-Q4M-6UjH.cjs +9 -0
  415. package/dist/state-U8yVy4Ad.cjs +9 -0
  416. package/dist/state-Uwm9KEi1.js +1832 -0
  417. package/dist/state-XYH8BGBU.cjs +372 -0
  418. package/dist/state-aBiYx-N-.cjs +9 -0
  419. package/dist/state-arg5pYvx.cjs +1488 -0
  420. package/dist/state-dFAAWOP9.cjs +1488 -0
  421. package/dist/state-daFKdtG6.js +9 -0
  422. package/dist/state-muKg33Sx.cjs +9 -0
  423. package/dist/state-wvjxc3BL.js +9 -0
  424. package/dist/styles.css +1 -1
  425. package/package.json +16 -23
  426. package/dist/chunk-5RMV2HA7.js +0 -101
  427. package/dist/chunk-QEVSATMF.cjs +0 -101
  428. package/dist/chunk-XWCIDYJD.cjs +0 -26
  429. package/dist/chunk-XYTXUEOE.js +0 -26
  430. package/dist/index-CN8HkCli.d.cts +0 -547
  431. package/dist/index-CN8HkCli.d.ts +0 -547
  432. package/scripts/postinstall.cjs +0 -23
@@ -0,0 +1,372 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright (c) 2025 Aiden Bai
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ const require_freeze_updates = require('./freeze-updates-CtYFeM4D.cjs');
10
+
11
+ //#region src/utils/is-element-connected.ts
12
+ const isElementConnected = (element) => Boolean(element?.isConnected ?? element?.ownerDocument?.contains(element));
13
+
14
+ //#endregion
15
+ //#region src/utils/is-keyboard-event-triggered-by-input.ts
16
+ const EDITABLE_TAGS_AND_ROLES = [
17
+ "input",
18
+ "textarea",
19
+ "select",
20
+ "searchbox",
21
+ "slider",
22
+ "spinbutton",
23
+ "menuitem",
24
+ "menuitemcheckbox",
25
+ "menuitemradio",
26
+ "option",
27
+ "radio",
28
+ "textbox",
29
+ "combobox"
30
+ ];
31
+ const getTargetElement = (event) => {
32
+ if (event.composed) {
33
+ const firstElement = event.composedPath()[0];
34
+ if (firstElement instanceof HTMLElement) return firstElement;
35
+ } else if (event.target instanceof HTMLElement) return event.target;
36
+ };
37
+ const isKeyboardEventTriggeredByInput = (event) => {
38
+ if (document.designMode === "on") return true;
39
+ const targetElement = getTargetElement(event);
40
+ if (!targetElement) return false;
41
+ if (targetElement.isContentEditable) return true;
42
+ const tagName = require_freeze_updates.getTagName(targetElement);
43
+ return EDITABLE_TAGS_AND_ROLES.some((tagOrRole) => tagOrRole === tagName || tagOrRole === targetElement.role);
44
+ };
45
+ const hasTextSelectionInInput = (event) => {
46
+ const target = event.target;
47
+ if (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement) {
48
+ const selectionStart = target.selectionStart ?? 0;
49
+ return (target.selectionEnd ?? 0) - selectionStart > 0;
50
+ }
51
+ return false;
52
+ };
53
+ const hasTextSelectionOnPage = () => {
54
+ const selection = window.getSelection();
55
+ if (!selection) return false;
56
+ return selection.toString().length > 0;
57
+ };
58
+
59
+ //#endregion
60
+ //#region src/utils/get-visual-viewport.ts
61
+ const getVisualViewport = () => {
62
+ const visualViewport = window.visualViewport;
63
+ if (visualViewport) return {
64
+ width: visualViewport.width,
65
+ height: visualViewport.height,
66
+ offsetLeft: visualViewport.offsetLeft,
67
+ offsetTop: visualViewport.offsetTop
68
+ };
69
+ return {
70
+ width: window.innerWidth,
71
+ height: window.innerHeight,
72
+ offsetLeft: 0,
73
+ offsetTop: 0
74
+ };
75
+ };
76
+
77
+ //#endregion
78
+ //#region src/utils/toolbar-position.ts
79
+ const clampToRange = (value, min, max) => Math.max(min, Math.min(value, max));
80
+ const getPositionFromEdgeAndRatio = (edge, ratio, elementWidth, elementHeight) => {
81
+ const viewport = getVisualViewport();
82
+ const viewportWidth = viewport.width;
83
+ const viewportHeight = viewport.height;
84
+ const minX = viewport.offsetLeft + 16;
85
+ const maxX = Math.max(minX, viewport.offsetLeft + viewportWidth - elementWidth - 16);
86
+ const minY = viewport.offsetTop + 16;
87
+ const maxY = Math.max(minY, viewport.offsetTop + viewportHeight - elementHeight - 16);
88
+ if (edge === "top" || edge === "bottom") {
89
+ const availableWidth = Math.max(0, viewportWidth - elementWidth - 16 * 2);
90
+ return {
91
+ x: Math.min(maxX, Math.max(minX, viewport.offsetLeft + 16 + availableWidth * ratio)),
92
+ y: edge === "top" ? minY : maxY
93
+ };
94
+ }
95
+ const availableHeight = Math.max(0, viewportHeight - elementHeight - 16 * 2);
96
+ const positionY = Math.min(maxY, Math.max(minY, viewport.offsetTop + 16 + availableHeight * ratio));
97
+ return {
98
+ x: edge === "left" ? minX : maxX,
99
+ y: positionY
100
+ };
101
+ };
102
+ const getRatioFromPosition = (edge, positionX, positionY, elementWidth, elementHeight) => {
103
+ const viewport = getVisualViewport();
104
+ const viewportWidth = viewport.width;
105
+ const viewportHeight = viewport.height;
106
+ if (edge === "top" || edge === "bottom") {
107
+ const availableWidth = viewportWidth - elementWidth - 16 * 2;
108
+ if (availableWidth <= 0) return require_freeze_updates.TOOLBAR_DEFAULT_POSITION_RATIO;
109
+ return Math.max(0, Math.min(1, (positionX - viewport.offsetLeft - 16) / availableWidth));
110
+ }
111
+ const availableHeight = viewportHeight - elementHeight - 16 * 2;
112
+ if (availableHeight <= 0) return require_freeze_updates.TOOLBAR_DEFAULT_POSITION_RATIO;
113
+ return Math.max(0, Math.min(1, (positionY - viewport.offsetTop - 16) / availableHeight));
114
+ };
115
+ const calculateExpandedPositionFromCollapsed = (collapsedPosition, edge, expandedDimensions, actualCollapsedWidth, actualCollapsedHeight) => {
116
+ const viewport = getVisualViewport();
117
+ const viewportWidth = viewport.width;
118
+ const viewportHeight = viewport.height;
119
+ const { width: expandedWidth, height: expandedHeight } = expandedDimensions;
120
+ let newPosition;
121
+ if (edge === "top" || edge === "bottom") {
122
+ const xOffset = (expandedWidth - actualCollapsedWidth) / 2;
123
+ newPosition = {
124
+ x: clampToRange(collapsedPosition.x - xOffset, viewport.offsetLeft + 16, viewport.offsetLeft + viewportWidth - expandedWidth - 16),
125
+ y: edge === "top" ? viewport.offsetTop + 16 : viewport.offsetTop + viewportHeight - expandedHeight - 16
126
+ };
127
+ } else {
128
+ const yOffset = (expandedHeight - actualCollapsedHeight) / 2;
129
+ const clampedY = clampToRange(collapsedPosition.y - yOffset, viewport.offsetTop + 16, viewport.offsetTop + viewportHeight - expandedHeight - 16);
130
+ newPosition = {
131
+ x: edge === "left" ? viewport.offsetLeft + 16 : viewport.offsetLeft + viewportWidth - expandedWidth - 16,
132
+ y: clampedY
133
+ };
134
+ }
135
+ const ratio = getRatioFromPosition(edge, newPosition.x, newPosition.y, expandedWidth, expandedHeight);
136
+ return {
137
+ position: newPosition,
138
+ ratio
139
+ };
140
+ };
141
+ const getCollapsedPosition = (edge, expandedPosition, expandedDimensions, collapsedDimensions) => {
142
+ const viewport = getVisualViewport();
143
+ const { width: expandedWidth, height: expandedHeight } = expandedDimensions;
144
+ const { width: collapsedWidth, height: collapsedHeight } = collapsedDimensions;
145
+ switch (edge) {
146
+ case "top":
147
+ case "bottom": {
148
+ const xOffset = (expandedWidth - collapsedWidth) / 2;
149
+ return {
150
+ x: clampToRange(expandedPosition.x + xOffset, viewport.offsetLeft, viewport.offsetLeft + viewport.width - collapsedWidth),
151
+ y: edge === "top" ? viewport.offsetTop : viewport.offsetTop + viewport.height - collapsedHeight
152
+ };
153
+ }
154
+ case "left":
155
+ case "right": {
156
+ const yOffset = (expandedHeight - collapsedHeight) / 2;
157
+ const clampedY = clampToRange(expandedPosition.y + yOffset, viewport.offsetTop, viewport.offsetTop + viewport.height - collapsedHeight);
158
+ return {
159
+ x: edge === "left" ? viewport.offsetLeft : viewport.offsetLeft + viewport.width - collapsedWidth,
160
+ y: clampedY
161
+ };
162
+ }
163
+ }
164
+ };
165
+ const getSnapPosition = (currentX, currentY, elementWidth, elementHeight, velocityX, velocityY) => {
166
+ const viewport = getVisualViewport();
167
+ const viewportWidth = viewport.width;
168
+ const viewportHeight = viewport.height;
169
+ const projectedX = currentX + velocityX * 150;
170
+ const projectedY = currentY + velocityY * 150;
171
+ const distanceToTop = projectedY - viewport.offsetTop + elementHeight / 2;
172
+ const distanceToBottom = viewport.offsetTop + viewportHeight - projectedY - elementHeight / 2;
173
+ const distanceToLeft = projectedX - viewport.offsetLeft + elementWidth / 2;
174
+ const distanceToRight = viewport.offsetLeft + viewportWidth - projectedX - elementWidth / 2;
175
+ const minDistance = Math.min(distanceToTop, distanceToBottom, distanceToLeft, distanceToRight);
176
+ const clampX = (rawX) => clampToRange(rawX, viewport.offsetLeft + 16, viewport.offsetLeft + viewportWidth - elementWidth - 16);
177
+ const clampY = (rawY) => clampToRange(rawY, viewport.offsetTop + 16, viewport.offsetTop + viewportHeight - elementHeight - 16);
178
+ if (minDistance === distanceToTop) return {
179
+ edge: "top",
180
+ x: clampX(projectedX),
181
+ y: viewport.offsetTop + 16
182
+ };
183
+ if (minDistance === distanceToLeft) return {
184
+ edge: "left",
185
+ x: viewport.offsetLeft + 16,
186
+ y: clampY(projectedY)
187
+ };
188
+ if (minDistance === distanceToRight) return {
189
+ edge: "right",
190
+ x: viewport.offsetLeft + viewportWidth - elementWidth - 16,
191
+ y: clampY(projectedY)
192
+ };
193
+ return {
194
+ edge: "bottom",
195
+ x: clampX(projectedX),
196
+ y: viewport.offsetTop + viewportHeight - elementHeight - 16
197
+ };
198
+ };
199
+
200
+ //#endregion
201
+ //#region src/utils/is-mac.ts
202
+ let cachedIsMac = null;
203
+ const getPlatformFromUserAgentData = () => {
204
+ if (typeof navigator === "undefined") return null;
205
+ if (!("userAgentData" in navigator)) return null;
206
+ const userAgentData = navigator.userAgentData;
207
+ if (typeof userAgentData !== "object" || userAgentData === null) return null;
208
+ if (!("platform" in userAgentData)) return null;
209
+ const platform = userAgentData.platform;
210
+ if (typeof platform !== "string") return null;
211
+ return platform;
212
+ };
213
+ const isMac = () => {
214
+ if (cachedIsMac === null) {
215
+ if (typeof navigator === "undefined") {
216
+ cachedIsMac = false;
217
+ return cachedIsMac;
218
+ }
219
+ const platform = navigator.platform ?? getPlatformFromUserAgentData() ?? navigator.userAgent;
220
+ cachedIsMac = /Mac|iPhone|iPad|iPod/i.test(platform);
221
+ }
222
+ return cachedIsMac;
223
+ };
224
+
225
+ //#endregion
226
+ //#region src/utils/is-event-from-overlay.ts
227
+ const isEventFromOverlay = (event, attribute) => {
228
+ try {
229
+ return event.composedPath().some((target) => target instanceof HTMLElement && target.hasAttribute(attribute));
230
+ } catch {
231
+ return false;
232
+ }
233
+ };
234
+
235
+ //#endregion
236
+ //#region src/utils/resolve-action-enabled.ts
237
+ const resolveBooleanEnabled = (enabled) => enabled ?? true;
238
+ const resolveActionEnabled = (action, context) => {
239
+ if (typeof action.enabled === "function") {
240
+ if (!context) return false;
241
+ return action.enabled(context);
242
+ }
243
+ return resolveBooleanEnabled(action.enabled);
244
+ };
245
+
246
+ //#endregion
247
+ //#region src/components/toolbar/state.ts
248
+ const STORAGE_KEY = "react-grab-toolbar-state";
249
+ const loadToolbarState = () => {
250
+ try {
251
+ const serializedToolbarState = localStorage.getItem(STORAGE_KEY);
252
+ if (!serializedToolbarState) return null;
253
+ const parsed = JSON.parse(serializedToolbarState);
254
+ if (typeof parsed !== "object" || parsed === null) return null;
255
+ const record = parsed;
256
+ return {
257
+ edge: record.edge === "top" || record.edge === "bottom" || record.edge === "left" || record.edge === "right" ? record.edge : "bottom",
258
+ ratio: typeof record.ratio === "number" ? record.ratio : require_freeze_updates.TOOLBAR_DEFAULT_POSITION_RATIO,
259
+ collapsed: typeof record.collapsed === "boolean" ? record.collapsed : false,
260
+ enabled: typeof record.enabled === "boolean" ? record.enabled : true,
261
+ defaultAction: typeof record.defaultAction === "string" ? record.defaultAction : require_freeze_updates.DEFAULT_ACTION_ID
262
+ };
263
+ } catch (error) {
264
+ console.warn("[react-grab] Failed to load toolbar state from localStorage:", error);
265
+ }
266
+ return null;
267
+ };
268
+ const saveToolbarState = (state) => {
269
+ try {
270
+ localStorage.setItem(STORAGE_KEY, JSON.stringify(state));
271
+ } catch (error) {
272
+ console.warn("[react-grab] Failed to save toolbar state to localStorage:", error);
273
+ }
274
+ };
275
+
276
+ //#endregion
277
+ Object.defineProperty(exports, 'calculateExpandedPositionFromCollapsed', {
278
+ enumerable: true,
279
+ get: function () {
280
+ return calculateExpandedPositionFromCollapsed;
281
+ }
282
+ });
283
+ Object.defineProperty(exports, 'clampToRange', {
284
+ enumerable: true,
285
+ get: function () {
286
+ return clampToRange;
287
+ }
288
+ });
289
+ Object.defineProperty(exports, 'getCollapsedPosition', {
290
+ enumerable: true,
291
+ get: function () {
292
+ return getCollapsedPosition;
293
+ }
294
+ });
295
+ Object.defineProperty(exports, 'getPositionFromEdgeAndRatio', {
296
+ enumerable: true,
297
+ get: function () {
298
+ return getPositionFromEdgeAndRatio;
299
+ }
300
+ });
301
+ Object.defineProperty(exports, 'getRatioFromPosition', {
302
+ enumerable: true,
303
+ get: function () {
304
+ return getRatioFromPosition;
305
+ }
306
+ });
307
+ Object.defineProperty(exports, 'getSnapPosition', {
308
+ enumerable: true,
309
+ get: function () {
310
+ return getSnapPosition;
311
+ }
312
+ });
313
+ Object.defineProperty(exports, 'getVisualViewport', {
314
+ enumerable: true,
315
+ get: function () {
316
+ return getVisualViewport;
317
+ }
318
+ });
319
+ Object.defineProperty(exports, 'hasTextSelectionInInput', {
320
+ enumerable: true,
321
+ get: function () {
322
+ return hasTextSelectionInInput;
323
+ }
324
+ });
325
+ Object.defineProperty(exports, 'hasTextSelectionOnPage', {
326
+ enumerable: true,
327
+ get: function () {
328
+ return hasTextSelectionOnPage;
329
+ }
330
+ });
331
+ Object.defineProperty(exports, 'isElementConnected', {
332
+ enumerable: true,
333
+ get: function () {
334
+ return isElementConnected;
335
+ }
336
+ });
337
+ Object.defineProperty(exports, 'isEventFromOverlay', {
338
+ enumerable: true,
339
+ get: function () {
340
+ return isEventFromOverlay;
341
+ }
342
+ });
343
+ Object.defineProperty(exports, 'isKeyboardEventTriggeredByInput', {
344
+ enumerable: true,
345
+ get: function () {
346
+ return isKeyboardEventTriggeredByInput;
347
+ }
348
+ });
349
+ Object.defineProperty(exports, 'isMac', {
350
+ enumerable: true,
351
+ get: function () {
352
+ return isMac;
353
+ }
354
+ });
355
+ Object.defineProperty(exports, 'loadToolbarState', {
356
+ enumerable: true,
357
+ get: function () {
358
+ return loadToolbarState;
359
+ }
360
+ });
361
+ Object.defineProperty(exports, 'resolveActionEnabled', {
362
+ enumerable: true,
363
+ get: function () {
364
+ return resolveActionEnabled;
365
+ }
366
+ });
367
+ Object.defineProperty(exports, 'saveToolbarState', {
368
+ enumerable: true,
369
+ get: function () {
370
+ return saveToolbarState;
371
+ }
372
+ });
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright (c) 2025 Aiden Bai
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ const e=require(`./freeze-updates-BQjWBzy4.cjs`),t=e=>!!(e?.isConnected??e?.ownerDocument?.contains(e)),n=[`input`,`textarea`,`select`,`searchbox`,`slider`,`spinbutton`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`radio`,`textbox`,`combobox`],r=e=>{if(e.composed){let t=e.composedPath()[0];if(t instanceof HTMLElement)return t}else if(e.target instanceof HTMLElement)return e.target},i=t=>{if(document.designMode===`on`)return!0;let i=r(t);if(!i)return!1;if(i.isContentEditable)return!0;let a=e.N(i);return n.some(e=>e===a||e===i.role)},a=e=>{let t=e.target;if(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement){let e=t.selectionStart??0;return(t.selectionEnd??0)-e>0}return!1},o=()=>{let e=window.getSelection();return e?e.toString().length>0:!1},s=()=>{let e=window.visualViewport;return e?{width:e.width,height:e.height,offsetLeft:e.offsetLeft,offsetTop:e.offsetTop}:{width:window.innerWidth,height:window.innerHeight,offsetLeft:0,offsetTop:0}},c=(e,t,n)=>Math.max(t,Math.min(e,n)),l=(e,t,n,r)=>{let i=s(),a=i.width,o=i.height,c=i.offsetLeft+16,l=Math.max(c,i.offsetLeft+a-n-16),u=i.offsetTop+16,d=Math.max(u,i.offsetTop+o-r-16);if(e===`top`||e===`bottom`){let r=Math.max(0,a-n-32);return{x:Math.min(l,Math.max(c,i.offsetLeft+16+r*t)),y:e===`top`?u:d}}let f=Math.max(0,o-r-32),p=Math.min(d,Math.max(u,i.offsetTop+16+f*t));return{x:e===`left`?c:l,y:p}},u=(t,n,r,i,a)=>{let o=s(),c=o.width,l=o.height;if(t===`top`||t===`bottom`){let t=c-i-32;return t<=0?e.ct:Math.max(0,Math.min(1,(n-o.offsetLeft-16)/t))}let u=l-a-32;return u<=0?e.ct:Math.max(0,Math.min(1,(r-o.offsetTop-16)/u))},d=(e,t,n,r,i)=>{let a=s(),o=a.width,l=a.height,{width:d,height:f}=n,p;if(t===`top`||t===`bottom`){let n=(d-r)/2;p={x:c(e.x-n,a.offsetLeft+16,a.offsetLeft+o-d-16),y:t===`top`?a.offsetTop+16:a.offsetTop+l-f-16}}else{let n=(f-i)/2,r=c(e.y-n,a.offsetTop+16,a.offsetTop+l-f-16);p={x:t===`left`?a.offsetLeft+16:a.offsetLeft+o-d-16,y:r}}let m=u(t,p.x,p.y,d,f);return{position:p,ratio:m}},f=(e,t,n,r)=>{let i=s(),{width:a,height:o}=n,{width:l,height:u}=r;switch(e){case`top`:case`bottom`:{let n=(a-l)/2;return{x:c(t.x+n,i.offsetLeft,i.offsetLeft+i.width-l),y:e===`top`?i.offsetTop:i.offsetTop+i.height-u}}case`left`:case`right`:{let n=(o-u)/2,r=c(t.y+n,i.offsetTop,i.offsetTop+i.height-u);return{x:e===`left`?i.offsetLeft:i.offsetLeft+i.width-l,y:r}}}},p=(e,t,n,r,i,a)=>{let o=s(),l=o.width,u=o.height,d=e+i*150,f=t+a*150,p=f-o.offsetTop+r/2,m=o.offsetTop+u-f-r/2,h=d-o.offsetLeft+n/2,g=o.offsetLeft+l-d-n/2,_=Math.min(p,m,h,g),v=e=>c(e,o.offsetLeft+16,o.offsetLeft+l-n-16),y=e=>c(e,o.offsetTop+16,o.offsetTop+u-r-16);return _===p?{edge:`top`,x:v(d),y:o.offsetTop+16}:_===h?{edge:`left`,x:o.offsetLeft+16,y:y(f)}:_===g?{edge:`right`,x:o.offsetLeft+l-n-16,y:y(f)}:{edge:`bottom`,x:v(d),y:o.offsetTop+u-r-16}};let m=null;const h=()=>{if(typeof navigator>`u`||!(`userAgentData`in navigator))return null;let e=navigator.userAgentData;if(typeof e!=`object`||!e||!(`platform`in e))return null;let t=e.platform;return typeof t==`string`?t:null},g=()=>{if(m===null){if(typeof navigator>`u`)return m=!1,m;let e=navigator.platform??h()??navigator.userAgent;m=/Mac|iPhone|iPad|iPod/i.test(e)}return m},_=(e,t)=>{try{return e.composedPath().some(e=>e instanceof HTMLElement&&e.hasAttribute(t))}catch{return!1}},v=e=>e??!0,y=(e,t)=>typeof e.enabled==`function`?t?e.enabled(t):!1:v(e.enabled),b=`react-grab-toolbar-state`,x=()=>{try{let t=localStorage.getItem(b);if(!t)return null;let n=JSON.parse(t);if(typeof n!=`object`||!n)return null;let r=n;return{edge:r.edge===`top`||r.edge===`bottom`||r.edge===`left`||r.edge===`right`?r.edge:`bottom`,ratio:typeof r.ratio==`number`?r.ratio:e.ct,collapsed:typeof r.collapsed==`boolean`?r.collapsed:!1,enabled:typeof r.enabled==`boolean`?r.enabled:!0,defaultAction:typeof r.defaultAction==`string`?r.defaultAction:e.I}}catch(e){console.warn(`[react-grab] Failed to load toolbar state from localStorage:`,e)}return null},S=e=>{try{localStorage.setItem(b,JSON.stringify(e))}catch(e){console.warn(`[react-grab] Failed to save toolbar state to localStorage:`,e)}};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return u}});