@buoy-gg/floating-tools-core 7.0.35 → 7.0.38

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 (582) hide show
  1. package/README.md +36 -0
  2. package/floating.d.ts +1 -0
  3. package/floating.js +1 -0
  4. package/lib/commonjs/FloatingToolsStore.js +1 -501
  5. package/lib/commonjs/colors.js +1 -54
  6. package/lib/commonjs/constants.js +1 -31
  7. package/lib/commonjs/devToolsState.js +1 -325
  8. package/lib/commonjs/dial.js +1 -633
  9. package/lib/commonjs/dialUsage.js +1 -130
  10. package/lib/commonjs/easing.js +1 -69
  11. package/lib/commonjs/floating.js +1 -0
  12. package/lib/commonjs/fonts.js +1 -31
  13. package/lib/commonjs/fonts.web.js +1 -0
  14. package/lib/commonjs/icons/ICONS.md +7 -0
  15. package/lib/commonjs/icons/ask-buoy-icon.js +1 -27
  16. package/lib/commonjs/icons/ask-buoy-icon.native.js +1 -0
  17. package/lib/commonjs/icons/assets/askBuoy.png +0 -0
  18. package/lib/commonjs/icons/assets/askBuoy@2x.png +0 -0
  19. package/lib/commonjs/icons/assets/askBuoy@3x.png +0 -0
  20. package/lib/commonjs/icons/assets/assets.png +0 -0
  21. package/lib/commonjs/icons/assets/assets@2x.png +0 -0
  22. package/lib/commonjs/icons/assets/assets@3x.png +0 -0
  23. package/lib/commonjs/icons/assets/benchmark.png +0 -0
  24. package/lib/commonjs/icons/assets/benchmark@2x.png +0 -0
  25. package/lib/commonjs/icons/assets/benchmark@3x.png +0 -0
  26. package/lib/commonjs/icons/assets/camera.png +0 -0
  27. package/lib/commonjs/icons/assets/camera@2x.png +0 -0
  28. package/lib/commonjs/icons/assets/camera@3x.png +0 -0
  29. package/lib/commonjs/icons/assets/console.png +0 -0
  30. package/lib/commonjs/icons/assets/console@2x.png +0 -0
  31. package/lib/commonjs/icons/assets/console@3x.png +0 -0
  32. package/lib/commonjs/icons/assets/env.png +0 -0
  33. package/lib/commonjs/icons/assets/env@2x.png +0 -0
  34. package/lib/commonjs/icons/assets/env@3x.png +0 -0
  35. package/lib/commonjs/icons/assets/events.png +0 -0
  36. package/lib/commonjs/icons/assets/events@2x.png +0 -0
  37. package/lib/commonjs/icons/assets/events@3x.png +0 -0
  38. package/lib/commonjs/icons/assets/highlight.png +0 -0
  39. package/lib/commonjs/icons/assets/highlight@2x.png +0 -0
  40. package/lib/commonjs/icons/assets/highlight@3x.png +0 -0
  41. package/lib/commonjs/icons/assets/highlighter.png +0 -0
  42. package/lib/commonjs/icons/assets/highlighter@2x.png +0 -0
  43. package/lib/commonjs/icons/assets/highlighter@3x.png +0 -0
  44. package/lib/commonjs/icons/assets/image-overlay.png +0 -0
  45. package/lib/commonjs/icons/assets/image-overlay@2x.png +0 -0
  46. package/lib/commonjs/icons/assets/image-overlay@3x.png +0 -0
  47. package/lib/commonjs/icons/assets/images.png +0 -0
  48. package/lib/commonjs/icons/assets/images@2x.png +0 -0
  49. package/lib/commonjs/icons/assets/images@3x.png +0 -0
  50. package/lib/commonjs/icons/assets/impersonate.png +0 -0
  51. package/lib/commonjs/icons/assets/impersonate@2x.png +0 -0
  52. package/lib/commonjs/icons/assets/impersonate@3x.png +0 -0
  53. package/lib/commonjs/icons/assets/jotai.png +0 -0
  54. package/lib/commonjs/icons/assets/jotai@2x.png +0 -0
  55. package/lib/commonjs/icons/assets/jotai@3x.png +0 -0
  56. package/lib/commonjs/icons/assets/network.png +0 -0
  57. package/lib/commonjs/icons/assets/network@2x.png +0 -0
  58. package/lib/commonjs/icons/assets/network@3x.png +0 -0
  59. package/lib/commonjs/icons/assets/query.png +0 -0
  60. package/lib/commonjs/icons/assets/query@2x.png +0 -0
  61. package/lib/commonjs/icons/assets/query@3x.png +0 -0
  62. package/lib/commonjs/icons/assets/redux.png +0 -0
  63. package/lib/commonjs/icons/assets/redux@2x.png +0 -0
  64. package/lib/commonjs/icons/assets/redux@3x.png +0 -0
  65. package/lib/commonjs/icons/assets/riverpod.png +0 -0
  66. package/lib/commonjs/icons/assets/riverpod@2x.png +0 -0
  67. package/lib/commonjs/icons/assets/riverpod@3x.png +0 -0
  68. package/lib/commonjs/icons/assets/routes.png +0 -0
  69. package/lib/commonjs/icons/assets/routes@2x.png +0 -0
  70. package/lib/commonjs/icons/assets/routes@3x.png +0 -0
  71. package/lib/commonjs/icons/assets/scenarios.png +0 -0
  72. package/lib/commonjs/icons/assets/scenarios@2x.png +0 -0
  73. package/lib/commonjs/icons/assets/scenarios@3x.png +0 -0
  74. package/lib/commonjs/icons/assets/sentry.png +0 -0
  75. package/lib/commonjs/icons/assets/sentry@2x.png +0 -0
  76. package/lib/commonjs/icons/assets/sentry@3x.png +0 -0
  77. package/lib/commonjs/icons/assets/settings.png +0 -0
  78. package/lib/commonjs/icons/assets/settings@2x.png +0 -0
  79. package/lib/commonjs/icons/assets/settings@3x.png +0 -0
  80. package/lib/commonjs/icons/assets/storage.png +0 -0
  81. package/lib/commonjs/icons/assets/storage@2x.png +0 -0
  82. package/lib/commonjs/icons/assets/storage@3x.png +0 -0
  83. package/lib/commonjs/icons/assets/time-machine.png +0 -0
  84. package/lib/commonjs/icons/assets/time-machine@2x.png +0 -0
  85. package/lib/commonjs/icons/assets/time-machine@3x.png +0 -0
  86. package/lib/commonjs/icons/assets/wifi.png +0 -0
  87. package/lib/commonjs/icons/assets/wifi@2x.png +0 -0
  88. package/lib/commonjs/icons/assets/wifi@3x.png +0 -0
  89. package/lib/commonjs/icons/assets/zustand.png +0 -0
  90. package/lib/commonjs/icons/assets/zustand@2x.png +0 -0
  91. package/lib/commonjs/icons/assets/zustand@3x.png +0 -0
  92. package/lib/commonjs/icons/assets-icon.js +1 -26
  93. package/lib/commonjs/icons/assets-icon.native.js +1 -0
  94. package/lib/commonjs/icons/benchmark-icon.js +1 -24
  95. package/lib/commonjs/icons/benchmark-icon.native.js +1 -0
  96. package/lib/commonjs/icons/bif-raster-icon.js +1 -0
  97. package/lib/commonjs/icons/bif-raster-icon.native.js +1 -0
  98. package/lib/commonjs/icons/camera-icon.js +1 -27
  99. package/lib/commonjs/icons/camera-icon.native.js +1 -0
  100. package/lib/commonjs/icons/console-icon.js +1 -26
  101. package/lib/commonjs/icons/console-icon.native.js +1 -0
  102. package/lib/commonjs/icons/env-icon.js +1 -24
  103. package/lib/commonjs/icons/env-icon.native.js +1 -0
  104. package/lib/commonjs/icons/events-icon.js +1 -24
  105. package/lib/commonjs/icons/events-icon.native.js +1 -0
  106. package/lib/commonjs/icons/generated/assets-raster.g.js +1 -0
  107. package/lib/commonjs/icons/generated/benchmark-raster.g.js +1 -0
  108. package/lib/commonjs/icons/generated/camera-raster.g.js +1 -0
  109. package/lib/commonjs/icons/generated/env-raster.g.js +1 -0
  110. package/lib/commonjs/icons/generated/events-raster.g.js +1 -0
  111. package/lib/commonjs/icons/generated/glyph-icons.g.js +1 -299
  112. package/lib/commonjs/icons/generated/highlight-raster.g.js +1 -0
  113. package/lib/commonjs/icons/generated/highlighter-raster.g.js +1 -0
  114. package/lib/commonjs/icons/generated/icon-data.g.js +1 -7170
  115. package/lib/commonjs/icons/generated/image-overlay-raster.g.js +1 -0
  116. package/lib/commonjs/icons/generated/images-raster.g.js +1 -0
  117. package/lib/commonjs/icons/generated/network-raster.g.js +1 -0
  118. package/lib/commonjs/icons/generated/raster-icons.g.js +1 -0
  119. package/lib/commonjs/icons/generated/riverpod-raster.g.js +1 -0
  120. package/lib/commonjs/icons/generated/routes-raster.g.js +1 -0
  121. package/lib/commonjs/icons/generated/settings-raster.g.js +1 -0
  122. package/lib/commonjs/icons/generated/storage-raster.g.js +1 -0
  123. package/lib/commonjs/icons/generated/wifi-raster.g.js +1 -0
  124. package/lib/commonjs/icons/highlight-icon.js +1 -24
  125. package/lib/commonjs/icons/highlight-icon.native.js +1 -0
  126. package/lib/commonjs/icons/highlighter-icon.js +1 -0
  127. package/lib/commonjs/icons/highlighter-icon.native.js +1 -0
  128. package/lib/commonjs/icons/icon-factories.js +1 -173
  129. package/lib/commonjs/icons/icon-primitives.js +1 -676
  130. package/lib/commonjs/icons/icon-primitives.native.js +1 -904
  131. package/lib/commonjs/icons/icon-renderer.js +1 -307
  132. package/lib/commonjs/icons/iconGlow.js +1 -32
  133. package/lib/commonjs/icons/image-overlay-icon.js +1 -26
  134. package/lib/commonjs/icons/image-overlay-icon.native.js +1 -0
  135. package/lib/commonjs/icons/images-icon.js +1 -26
  136. package/lib/commonjs/icons/images-icon.native.js +1 -0
  137. package/lib/commonjs/icons/impersonate-icon.js +1 -26
  138. package/lib/commonjs/icons/impersonate-icon.native.js +1 -0
  139. package/lib/commonjs/icons/jotai-icon.js +1 -26
  140. package/lib/commonjs/icons/jotai-icon.native.js +1 -0
  141. package/lib/commonjs/icons/network-icon.js +1 -24
  142. package/lib/commonjs/icons/network-icon.native.js +1 -0
  143. package/lib/commonjs/icons/query-icon.js +1 -24
  144. package/lib/commonjs/icons/query-icon.native.js +1 -0
  145. package/lib/commonjs/icons/raster-icon.js +1 -0
  146. package/lib/commonjs/icons/redux-icon.js +1 -24
  147. package/lib/commonjs/icons/redux-icon.native.js +1 -0
  148. package/lib/commonjs/icons/renders-icon.js +1 -33
  149. package/lib/commonjs/icons/renders-icon.native.js +1 -0
  150. package/lib/commonjs/icons/riverpod-icon.js +1 -26
  151. package/lib/commonjs/icons/riverpod-icon.native.js +1 -0
  152. package/lib/commonjs/icons/routes-icon.js +1 -49
  153. package/lib/commonjs/icons/routes-icon.native.js +1 -0
  154. package/lib/commonjs/icons/routes-parts.js +1 -0
  155. package/lib/commonjs/icons/scenarios-icon.js +1 -26
  156. package/lib/commonjs/icons/scenarios-icon.native.js +1 -0
  157. package/lib/commonjs/icons/sentry-icon.js +1 -24
  158. package/lib/commonjs/icons/sentry-icon.native.js +1 -0
  159. package/lib/commonjs/icons/settings-icon.js +1 -0
  160. package/lib/commonjs/icons/settings-icon.native.js +1 -0
  161. package/lib/commonjs/icons/storage-icon.js +1 -24
  162. package/lib/commonjs/icons/storage-icon.native.js +1 -0
  163. package/lib/commonjs/icons/time-machine-icon.js +1 -26
  164. package/lib/commonjs/icons/time-machine-icon.native.js +1 -0
  165. package/lib/commonjs/icons/wifi-icon.js +1 -24
  166. package/lib/commonjs/icons/wifi-icon.native.js +1 -0
  167. package/lib/commonjs/icons/zustand-icon.js +1 -26
  168. package/lib/commonjs/icons/zustand-icon.native.js +1 -0
  169. package/lib/commonjs/index.js +1 -1091
  170. package/lib/commonjs/settings.js +1 -601
  171. package/lib/commonjs/utils.js +1 -72
  172. package/lib/module/FloatingToolsStore.js +1 -496
  173. package/lib/module/colors.js +1 -49
  174. package/lib/module/constants.js +1 -27
  175. package/lib/module/devToolsState.js +1 -318
  176. package/lib/module/dial.js +1 -618
  177. package/lib/module/dialUsage.js +1 -122
  178. package/lib/module/easing.js +1 -62
  179. package/lib/module/floating.js +1 -0
  180. package/lib/module/fonts.js +1 -28
  181. package/lib/module/fonts.web.js +1 -0
  182. package/lib/module/icons/ICONS.md +7 -0
  183. package/lib/module/icons/ask-buoy-icon.js +1 -18
  184. package/lib/module/icons/ask-buoy-icon.native.js +1 -0
  185. package/lib/module/icons/assets/askBuoy.png +0 -0
  186. package/lib/module/icons/assets/askBuoy@2x.png +0 -0
  187. package/lib/module/icons/assets/askBuoy@3x.png +0 -0
  188. package/lib/module/icons/assets/assets.png +0 -0
  189. package/lib/module/icons/assets/assets@2x.png +0 -0
  190. package/lib/module/icons/assets/assets@3x.png +0 -0
  191. package/lib/module/icons/assets/benchmark.png +0 -0
  192. package/lib/module/icons/assets/benchmark@2x.png +0 -0
  193. package/lib/module/icons/assets/benchmark@3x.png +0 -0
  194. package/lib/module/icons/assets/camera.png +0 -0
  195. package/lib/module/icons/assets/camera@2x.png +0 -0
  196. package/lib/module/icons/assets/camera@3x.png +0 -0
  197. package/lib/module/icons/assets/console.png +0 -0
  198. package/lib/module/icons/assets/console@2x.png +0 -0
  199. package/lib/module/icons/assets/console@3x.png +0 -0
  200. package/lib/module/icons/assets/env.png +0 -0
  201. package/lib/module/icons/assets/env@2x.png +0 -0
  202. package/lib/module/icons/assets/env@3x.png +0 -0
  203. package/lib/module/icons/assets/events.png +0 -0
  204. package/lib/module/icons/assets/events@2x.png +0 -0
  205. package/lib/module/icons/assets/events@3x.png +0 -0
  206. package/lib/module/icons/assets/highlight.png +0 -0
  207. package/lib/module/icons/assets/highlight@2x.png +0 -0
  208. package/lib/module/icons/assets/highlight@3x.png +0 -0
  209. package/lib/module/icons/assets/highlighter.png +0 -0
  210. package/lib/module/icons/assets/highlighter@2x.png +0 -0
  211. package/lib/module/icons/assets/highlighter@3x.png +0 -0
  212. package/lib/module/icons/assets/image-overlay.png +0 -0
  213. package/lib/module/icons/assets/image-overlay@2x.png +0 -0
  214. package/lib/module/icons/assets/image-overlay@3x.png +0 -0
  215. package/lib/module/icons/assets/images.png +0 -0
  216. package/lib/module/icons/assets/images@2x.png +0 -0
  217. package/lib/module/icons/assets/images@3x.png +0 -0
  218. package/lib/module/icons/assets/impersonate.png +0 -0
  219. package/lib/module/icons/assets/impersonate@2x.png +0 -0
  220. package/lib/module/icons/assets/impersonate@3x.png +0 -0
  221. package/lib/module/icons/assets/jotai.png +0 -0
  222. package/lib/module/icons/assets/jotai@2x.png +0 -0
  223. package/lib/module/icons/assets/jotai@3x.png +0 -0
  224. package/lib/module/icons/assets/network.png +0 -0
  225. package/lib/module/icons/assets/network@2x.png +0 -0
  226. package/lib/module/icons/assets/network@3x.png +0 -0
  227. package/lib/module/icons/assets/query.png +0 -0
  228. package/lib/module/icons/assets/query@2x.png +0 -0
  229. package/lib/module/icons/assets/query@3x.png +0 -0
  230. package/lib/module/icons/assets/redux.png +0 -0
  231. package/lib/module/icons/assets/redux@2x.png +0 -0
  232. package/lib/module/icons/assets/redux@3x.png +0 -0
  233. package/lib/module/icons/assets/riverpod.png +0 -0
  234. package/lib/module/icons/assets/riverpod@2x.png +0 -0
  235. package/lib/module/icons/assets/riverpod@3x.png +0 -0
  236. package/lib/module/icons/assets/routes.png +0 -0
  237. package/lib/module/icons/assets/routes@2x.png +0 -0
  238. package/lib/module/icons/assets/routes@3x.png +0 -0
  239. package/lib/module/icons/assets/scenarios.png +0 -0
  240. package/lib/module/icons/assets/scenarios@2x.png +0 -0
  241. package/lib/module/icons/assets/scenarios@3x.png +0 -0
  242. package/lib/module/icons/assets/sentry.png +0 -0
  243. package/lib/module/icons/assets/sentry@2x.png +0 -0
  244. package/lib/module/icons/assets/sentry@3x.png +0 -0
  245. package/lib/module/icons/assets/settings.png +0 -0
  246. package/lib/module/icons/assets/settings@2x.png +0 -0
  247. package/lib/module/icons/assets/settings@3x.png +0 -0
  248. package/lib/module/icons/assets/storage.png +0 -0
  249. package/lib/module/icons/assets/storage@2x.png +0 -0
  250. package/lib/module/icons/assets/storage@3x.png +0 -0
  251. package/lib/module/icons/assets/time-machine.png +0 -0
  252. package/lib/module/icons/assets/time-machine@2x.png +0 -0
  253. package/lib/module/icons/assets/time-machine@3x.png +0 -0
  254. package/lib/module/icons/assets/wifi.png +0 -0
  255. package/lib/module/icons/assets/wifi@2x.png +0 -0
  256. package/lib/module/icons/assets/wifi@3x.png +0 -0
  257. package/lib/module/icons/assets/zustand.png +0 -0
  258. package/lib/module/icons/assets/zustand@2x.png +0 -0
  259. package/lib/module/icons/assets/zustand@3x.png +0 -0
  260. package/lib/module/icons/assets-icon.js +1 -17
  261. package/lib/module/icons/assets-icon.native.js +1 -0
  262. package/lib/module/icons/benchmark-icon.js +1 -15
  263. package/lib/module/icons/benchmark-icon.native.js +1 -0
  264. package/lib/module/icons/bif-raster-icon.js +1 -0
  265. package/lib/module/icons/bif-raster-icon.native.js +1 -0
  266. package/lib/module/icons/camera-icon.js +1 -18
  267. package/lib/module/icons/camera-icon.native.js +1 -0
  268. package/lib/module/icons/console-icon.js +1 -17
  269. package/lib/module/icons/console-icon.native.js +1 -0
  270. package/lib/module/icons/env-icon.js +1 -15
  271. package/lib/module/icons/env-icon.native.js +1 -0
  272. package/lib/module/icons/events-icon.js +1 -15
  273. package/lib/module/icons/events-icon.native.js +1 -0
  274. package/lib/module/icons/generated/assets-raster.g.js +1 -0
  275. package/lib/module/icons/generated/benchmark-raster.g.js +1 -0
  276. package/lib/module/icons/generated/camera-raster.g.js +1 -0
  277. package/lib/module/icons/generated/env-raster.g.js +1 -0
  278. package/lib/module/icons/generated/events-raster.g.js +1 -0
  279. package/lib/module/icons/generated/glyph-icons.g.js +1 -296
  280. package/lib/module/icons/generated/highlight-raster.g.js +1 -0
  281. package/lib/module/icons/generated/highlighter-raster.g.js +1 -0
  282. package/lib/module/icons/generated/icon-data.g.js +1 -7165
  283. package/lib/module/icons/generated/image-overlay-raster.g.js +1 -0
  284. package/lib/module/icons/generated/images-raster.g.js +1 -0
  285. package/lib/module/icons/generated/network-raster.g.js +1 -0
  286. package/lib/module/icons/generated/raster-icons.g.js +1 -0
  287. package/lib/module/icons/generated/riverpod-raster.g.js +1 -0
  288. package/lib/module/icons/generated/routes-raster.g.js +1 -0
  289. package/lib/module/icons/generated/settings-raster.g.js +1 -0
  290. package/lib/module/icons/generated/storage-raster.g.js +1 -0
  291. package/lib/module/icons/generated/wifi-raster.g.js +1 -0
  292. package/lib/module/icons/highlight-icon.js +1 -15
  293. package/lib/module/icons/highlight-icon.native.js +1 -0
  294. package/lib/module/icons/highlighter-icon.js +1 -0
  295. package/lib/module/icons/highlighter-icon.native.js +1 -0
  296. package/lib/module/icons/icon-factories.js +1 -163
  297. package/lib/module/icons/icon-primitives.js +1 -673
  298. package/lib/module/icons/icon-primitives.native.js +1 -899
  299. package/lib/module/icons/icon-renderer.js +1 -302
  300. package/lib/module/icons/iconGlow.js +1 -28
  301. package/lib/module/icons/image-overlay-icon.js +1 -17
  302. package/lib/module/icons/image-overlay-icon.native.js +1 -0
  303. package/lib/module/icons/images-icon.js +1 -17
  304. package/lib/module/icons/images-icon.native.js +1 -0
  305. package/lib/module/icons/impersonate-icon.js +1 -17
  306. package/lib/module/icons/impersonate-icon.native.js +1 -0
  307. package/lib/module/icons/jotai-icon.js +1 -17
  308. package/lib/module/icons/jotai-icon.native.js +1 -0
  309. package/lib/module/icons/network-icon.js +1 -15
  310. package/lib/module/icons/network-icon.native.js +1 -0
  311. package/lib/module/icons/query-icon.js +1 -15
  312. package/lib/module/icons/query-icon.native.js +1 -0
  313. package/lib/module/icons/raster-icon.js +1 -0
  314. package/lib/module/icons/redux-icon.js +1 -15
  315. package/lib/module/icons/redux-icon.native.js +1 -0
  316. package/lib/module/icons/renders-icon.js +1 -17
  317. package/lib/module/icons/renders-icon.native.js +1 -0
  318. package/lib/module/icons/riverpod-icon.js +1 -17
  319. package/lib/module/icons/riverpod-icon.native.js +1 -0
  320. package/lib/module/icons/routes-icon.js +1 -41
  321. package/lib/module/icons/routes-icon.native.js +1 -0
  322. package/lib/module/icons/routes-parts.js +1 -0
  323. package/lib/module/icons/scenarios-icon.js +1 -17
  324. package/lib/module/icons/scenarios-icon.native.js +1 -0
  325. package/lib/module/icons/sentry-icon.js +1 -15
  326. package/lib/module/icons/sentry-icon.native.js +1 -0
  327. package/lib/module/icons/settings-icon.js +1 -0
  328. package/lib/module/icons/settings-icon.native.js +1 -0
  329. package/lib/module/icons/storage-icon.js +1 -15
  330. package/lib/module/icons/storage-icon.native.js +1 -0
  331. package/lib/module/icons/time-machine-icon.js +1 -17
  332. package/lib/module/icons/time-machine-icon.native.js +1 -0
  333. package/lib/module/icons/wifi-icon.js +1 -15
  334. package/lib/module/icons/wifi-icon.native.js +1 -0
  335. package/lib/module/icons/zustand-icon.js +1 -17
  336. package/lib/module/icons/zustand-icon.native.js +1 -0
  337. package/lib/module/index.js +1 -127
  338. package/lib/module/settings.js +1 -589
  339. package/lib/module/utils.js +1 -66
  340. package/lib/typescript/commonjs/FloatingToolsStore.d.ts +2 -0
  341. package/lib/typescript/commonjs/dial.d.ts +6 -0
  342. package/lib/typescript/commonjs/floating.d.ts +8 -0
  343. package/lib/typescript/commonjs/fonts.web.d.ts +3 -0
  344. package/lib/typescript/commonjs/icons/ask-buoy-icon.d.ts +1 -13
  345. package/lib/typescript/commonjs/icons/ask-buoy-icon.native.d.ts +4 -0
  346. package/lib/typescript/commonjs/icons/assets-icon.d.ts +1 -12
  347. package/lib/typescript/commonjs/icons/assets-icon.native.d.ts +3 -0
  348. package/lib/typescript/commonjs/icons/benchmark-icon.d.ts +1 -10
  349. package/lib/typescript/commonjs/icons/benchmark-icon.native.d.ts +3 -0
  350. package/lib/typescript/commonjs/icons/bif-raster-icon.d.ts +4 -0
  351. package/lib/typescript/commonjs/icons/bif-raster-icon.native.d.ts +5 -0
  352. package/lib/typescript/commonjs/icons/camera-icon.d.ts +1 -13
  353. package/lib/typescript/commonjs/icons/camera-icon.native.d.ts +3 -0
  354. package/lib/typescript/commonjs/icons/console-icon.d.ts +1 -12
  355. package/lib/typescript/commonjs/icons/console-icon.native.d.ts +4 -0
  356. package/lib/typescript/commonjs/icons/env-icon.d.ts +1 -10
  357. package/lib/typescript/commonjs/icons/env-icon.native.d.ts +3 -0
  358. package/lib/typescript/commonjs/icons/events-icon.d.ts +1 -10
  359. package/lib/typescript/commonjs/icons/events-icon.native.d.ts +3 -0
  360. package/lib/typescript/commonjs/icons/generated/assets-raster.g.d.ts +3 -0
  361. package/lib/typescript/commonjs/icons/generated/benchmark-raster.g.d.ts +3 -0
  362. package/lib/typescript/commonjs/icons/generated/camera-raster.g.d.ts +3 -0
  363. package/lib/typescript/commonjs/icons/generated/env-raster.g.d.ts +3 -0
  364. package/lib/typescript/commonjs/icons/generated/events-raster.g.d.ts +3 -0
  365. package/lib/typescript/commonjs/icons/generated/highlight-raster.g.d.ts +3 -0
  366. package/lib/typescript/commonjs/icons/generated/highlighter-raster.g.d.ts +3 -0
  367. package/lib/typescript/commonjs/icons/generated/icon-data.g.d.ts +27 -1
  368. package/lib/typescript/commonjs/icons/generated/image-overlay-raster.g.d.ts +3 -0
  369. package/lib/typescript/commonjs/icons/generated/images-raster.g.d.ts +3 -0
  370. package/lib/typescript/commonjs/icons/generated/network-raster.g.d.ts +3 -0
  371. package/lib/typescript/commonjs/icons/generated/raster-icons.g.d.ts +13 -0
  372. package/lib/typescript/commonjs/icons/generated/riverpod-raster.g.d.ts +3 -0
  373. package/lib/typescript/commonjs/icons/generated/routes-raster.g.d.ts +3 -0
  374. package/lib/typescript/commonjs/icons/generated/settings-raster.g.d.ts +3 -0
  375. package/lib/typescript/commonjs/icons/generated/storage-raster.g.d.ts +3 -0
  376. package/lib/typescript/commonjs/icons/generated/wifi-raster.g.d.ts +3 -0
  377. package/lib/typescript/commonjs/icons/highlight-icon.d.ts +1 -10
  378. package/lib/typescript/commonjs/icons/highlight-icon.native.d.ts +3 -0
  379. package/lib/typescript/commonjs/icons/highlighter-icon.d.ts +5 -0
  380. package/lib/typescript/commonjs/icons/highlighter-icon.native.d.ts +5 -0
  381. package/lib/typescript/commonjs/icons/image-overlay-icon.d.ts +1 -12
  382. package/lib/typescript/commonjs/icons/image-overlay-icon.native.d.ts +3 -0
  383. package/lib/typescript/commonjs/icons/images-icon.d.ts +1 -12
  384. package/lib/typescript/commonjs/icons/images-icon.native.d.ts +3 -0
  385. package/lib/typescript/commonjs/icons/impersonate-icon.d.ts +1 -12
  386. package/lib/typescript/commonjs/icons/impersonate-icon.native.d.ts +4 -0
  387. package/lib/typescript/commonjs/icons/jotai-icon.d.ts +1 -12
  388. package/lib/typescript/commonjs/icons/jotai-icon.native.d.ts +4 -0
  389. package/lib/typescript/commonjs/icons/network-icon.d.ts +1 -10
  390. package/lib/typescript/commonjs/icons/network-icon.native.d.ts +3 -0
  391. package/lib/typescript/commonjs/icons/query-icon.d.ts +1 -10
  392. package/lib/typescript/commonjs/icons/query-icon.native.d.ts +4 -0
  393. package/lib/typescript/commonjs/icons/raster-icon.d.ts +5 -0
  394. package/lib/typescript/commonjs/icons/redux-icon.d.ts +1 -10
  395. package/lib/typescript/commonjs/icons/redux-icon.native.d.ts +4 -0
  396. package/lib/typescript/commonjs/icons/renders-icon.d.ts +1 -12
  397. package/lib/typescript/commonjs/icons/renders-icon.native.d.ts +2 -0
  398. package/lib/typescript/commonjs/icons/riverpod-icon.d.ts +1 -12
  399. package/lib/typescript/commonjs/icons/riverpod-icon.native.d.ts +3 -0
  400. package/lib/typescript/commonjs/icons/routes-icon.d.ts +2 -30
  401. package/lib/typescript/commonjs/icons/routes-icon.native.d.ts +4 -0
  402. package/lib/typescript/commonjs/icons/routes-parts.d.ts +31 -0
  403. package/lib/typescript/commonjs/icons/scenarios-icon.d.ts +1 -12
  404. package/lib/typescript/commonjs/icons/scenarios-icon.native.d.ts +4 -0
  405. package/lib/typescript/commonjs/icons/sentry-icon.d.ts +1 -10
  406. package/lib/typescript/commonjs/icons/sentry-icon.native.d.ts +4 -0
  407. package/lib/typescript/commonjs/icons/settings-icon.d.ts +2 -0
  408. package/lib/typescript/commonjs/icons/settings-icon.native.d.ts +2 -0
  409. package/lib/typescript/commonjs/icons/storage-icon.d.ts +1 -10
  410. package/lib/typescript/commonjs/icons/storage-icon.native.d.ts +3 -0
  411. package/lib/typescript/commonjs/icons/time-machine-icon.d.ts +1 -12
  412. package/lib/typescript/commonjs/icons/time-machine-icon.native.d.ts +4 -0
  413. package/lib/typescript/commonjs/icons/wifi-icon.d.ts +1 -10
  414. package/lib/typescript/commonjs/icons/wifi-icon.native.d.ts +3 -0
  415. package/lib/typescript/commonjs/icons/zustand-icon.d.ts +1 -12
  416. package/lib/typescript/commonjs/icons/zustand-icon.native.d.ts +4 -0
  417. package/lib/typescript/commonjs/index.d.ts +1 -0
  418. package/lib/typescript/module/FloatingToolsStore.d.ts +2 -0
  419. package/lib/typescript/module/dial.d.ts +6 -0
  420. package/lib/typescript/module/floating.d.ts +8 -0
  421. package/lib/typescript/module/fonts.web.d.ts +3 -0
  422. package/lib/typescript/module/icons/ask-buoy-icon.d.ts +1 -13
  423. package/lib/typescript/module/icons/ask-buoy-icon.native.d.ts +4 -0
  424. package/lib/typescript/module/icons/assets-icon.d.ts +1 -12
  425. package/lib/typescript/module/icons/assets-icon.native.d.ts +3 -0
  426. package/lib/typescript/module/icons/benchmark-icon.d.ts +1 -10
  427. package/lib/typescript/module/icons/benchmark-icon.native.d.ts +3 -0
  428. package/lib/typescript/module/icons/bif-raster-icon.d.ts +4 -0
  429. package/lib/typescript/module/icons/bif-raster-icon.native.d.ts +5 -0
  430. package/lib/typescript/module/icons/camera-icon.d.ts +1 -13
  431. package/lib/typescript/module/icons/camera-icon.native.d.ts +3 -0
  432. package/lib/typescript/module/icons/console-icon.d.ts +1 -12
  433. package/lib/typescript/module/icons/console-icon.native.d.ts +4 -0
  434. package/lib/typescript/module/icons/env-icon.d.ts +1 -10
  435. package/lib/typescript/module/icons/env-icon.native.d.ts +3 -0
  436. package/lib/typescript/module/icons/events-icon.d.ts +1 -10
  437. package/lib/typescript/module/icons/events-icon.native.d.ts +3 -0
  438. package/lib/typescript/module/icons/generated/assets-raster.g.d.ts +3 -0
  439. package/lib/typescript/module/icons/generated/benchmark-raster.g.d.ts +3 -0
  440. package/lib/typescript/module/icons/generated/camera-raster.g.d.ts +3 -0
  441. package/lib/typescript/module/icons/generated/env-raster.g.d.ts +3 -0
  442. package/lib/typescript/module/icons/generated/events-raster.g.d.ts +3 -0
  443. package/lib/typescript/module/icons/generated/highlight-raster.g.d.ts +3 -0
  444. package/lib/typescript/module/icons/generated/highlighter-raster.g.d.ts +3 -0
  445. package/lib/typescript/module/icons/generated/icon-data.g.d.ts +27 -1
  446. package/lib/typescript/module/icons/generated/image-overlay-raster.g.d.ts +3 -0
  447. package/lib/typescript/module/icons/generated/images-raster.g.d.ts +3 -0
  448. package/lib/typescript/module/icons/generated/network-raster.g.d.ts +3 -0
  449. package/lib/typescript/module/icons/generated/raster-icons.g.d.ts +13 -0
  450. package/lib/typescript/module/icons/generated/riverpod-raster.g.d.ts +3 -0
  451. package/lib/typescript/module/icons/generated/routes-raster.g.d.ts +3 -0
  452. package/lib/typescript/module/icons/generated/settings-raster.g.d.ts +3 -0
  453. package/lib/typescript/module/icons/generated/storage-raster.g.d.ts +3 -0
  454. package/lib/typescript/module/icons/generated/wifi-raster.g.d.ts +3 -0
  455. package/lib/typescript/module/icons/highlight-icon.d.ts +1 -10
  456. package/lib/typescript/module/icons/highlight-icon.native.d.ts +3 -0
  457. package/lib/typescript/module/icons/highlighter-icon.d.ts +5 -0
  458. package/lib/typescript/module/icons/highlighter-icon.native.d.ts +5 -0
  459. package/lib/typescript/module/icons/image-overlay-icon.d.ts +1 -12
  460. package/lib/typescript/module/icons/image-overlay-icon.native.d.ts +3 -0
  461. package/lib/typescript/module/icons/images-icon.d.ts +1 -12
  462. package/lib/typescript/module/icons/images-icon.native.d.ts +3 -0
  463. package/lib/typescript/module/icons/impersonate-icon.d.ts +1 -12
  464. package/lib/typescript/module/icons/impersonate-icon.native.d.ts +4 -0
  465. package/lib/typescript/module/icons/jotai-icon.d.ts +1 -12
  466. package/lib/typescript/module/icons/jotai-icon.native.d.ts +4 -0
  467. package/lib/typescript/module/icons/network-icon.d.ts +1 -10
  468. package/lib/typescript/module/icons/network-icon.native.d.ts +3 -0
  469. package/lib/typescript/module/icons/query-icon.d.ts +1 -10
  470. package/lib/typescript/module/icons/query-icon.native.d.ts +4 -0
  471. package/lib/typescript/module/icons/raster-icon.d.ts +5 -0
  472. package/lib/typescript/module/icons/redux-icon.d.ts +1 -10
  473. package/lib/typescript/module/icons/redux-icon.native.d.ts +4 -0
  474. package/lib/typescript/module/icons/renders-icon.d.ts +1 -12
  475. package/lib/typescript/module/icons/renders-icon.native.d.ts +2 -0
  476. package/lib/typescript/module/icons/riverpod-icon.d.ts +1 -12
  477. package/lib/typescript/module/icons/riverpod-icon.native.d.ts +3 -0
  478. package/lib/typescript/module/icons/routes-icon.d.ts +2 -30
  479. package/lib/typescript/module/icons/routes-icon.native.d.ts +4 -0
  480. package/lib/typescript/module/icons/routes-parts.d.ts +31 -0
  481. package/lib/typescript/module/icons/scenarios-icon.d.ts +1 -12
  482. package/lib/typescript/module/icons/scenarios-icon.native.d.ts +4 -0
  483. package/lib/typescript/module/icons/sentry-icon.d.ts +1 -10
  484. package/lib/typescript/module/icons/sentry-icon.native.d.ts +4 -0
  485. package/lib/typescript/module/icons/settings-icon.d.ts +2 -0
  486. package/lib/typescript/module/icons/settings-icon.native.d.ts +2 -0
  487. package/lib/typescript/module/icons/storage-icon.d.ts +1 -10
  488. package/lib/typescript/module/icons/storage-icon.native.d.ts +3 -0
  489. package/lib/typescript/module/icons/time-machine-icon.d.ts +1 -12
  490. package/lib/typescript/module/icons/time-machine-icon.native.d.ts +4 -0
  491. package/lib/typescript/module/icons/wifi-icon.d.ts +1 -10
  492. package/lib/typescript/module/icons/wifi-icon.native.d.ts +3 -0
  493. package/lib/typescript/module/icons/zustand-icon.d.ts +1 -12
  494. package/lib/typescript/module/icons/zustand-icon.native.d.ts +4 -0
  495. package/lib/typescript/module/index.d.ts +1 -0
  496. package/package.json +23 -3
  497. package/lib/typescript/commonjs/FloatingToolsStore.d.ts.map +0 -1
  498. package/lib/typescript/commonjs/colors.d.ts.map +0 -1
  499. package/lib/typescript/commonjs/constants.d.ts.map +0 -1
  500. package/lib/typescript/commonjs/devToolsState.d.ts.map +0 -1
  501. package/lib/typescript/commonjs/dial.d.ts.map +0 -1
  502. package/lib/typescript/commonjs/dialUsage.d.ts.map +0 -1
  503. package/lib/typescript/commonjs/easing.d.ts.map +0 -1
  504. package/lib/typescript/commonjs/fonts.d.ts.map +0 -1
  505. package/lib/typescript/commonjs/icons/ask-buoy-icon.d.ts.map +0 -1
  506. package/lib/typescript/commonjs/icons/assets-icon.d.ts.map +0 -1
  507. package/lib/typescript/commonjs/icons/benchmark-icon.d.ts.map +0 -1
  508. package/lib/typescript/commonjs/icons/camera-icon.d.ts.map +0 -1
  509. package/lib/typescript/commonjs/icons/console-icon.d.ts.map +0 -1
  510. package/lib/typescript/commonjs/icons/env-icon.d.ts.map +0 -1
  511. package/lib/typescript/commonjs/icons/events-icon.d.ts.map +0 -1
  512. package/lib/typescript/commonjs/icons/generated/glyph-icons.g.d.ts.map +0 -1
  513. package/lib/typescript/commonjs/icons/generated/icon-data.g.d.ts.map +0 -1
  514. package/lib/typescript/commonjs/icons/highlight-icon.d.ts.map +0 -1
  515. package/lib/typescript/commonjs/icons/icon-factories.d.ts.map +0 -1
  516. package/lib/typescript/commonjs/icons/icon-primitives.d.ts.map +0 -1
  517. package/lib/typescript/commonjs/icons/icon-primitives.native.d.ts.map +0 -1
  518. package/lib/typescript/commonjs/icons/icon-renderer.d.ts.map +0 -1
  519. package/lib/typescript/commonjs/icons/iconGlow.d.ts.map +0 -1
  520. package/lib/typescript/commonjs/icons/image-overlay-icon.d.ts.map +0 -1
  521. package/lib/typescript/commonjs/icons/images-icon.d.ts.map +0 -1
  522. package/lib/typescript/commonjs/icons/impersonate-icon.d.ts.map +0 -1
  523. package/lib/typescript/commonjs/icons/jotai-icon.d.ts.map +0 -1
  524. package/lib/typescript/commonjs/icons/network-icon.d.ts.map +0 -1
  525. package/lib/typescript/commonjs/icons/query-icon.d.ts.map +0 -1
  526. package/lib/typescript/commonjs/icons/redux-icon.d.ts.map +0 -1
  527. package/lib/typescript/commonjs/icons/renders-icon.d.ts.map +0 -1
  528. package/lib/typescript/commonjs/icons/riverpod-icon.d.ts.map +0 -1
  529. package/lib/typescript/commonjs/icons/routes-icon.d.ts.map +0 -1
  530. package/lib/typescript/commonjs/icons/scenarios-icon.d.ts.map +0 -1
  531. package/lib/typescript/commonjs/icons/sentry-icon.d.ts.map +0 -1
  532. package/lib/typescript/commonjs/icons/storage-icon.d.ts.map +0 -1
  533. package/lib/typescript/commonjs/icons/time-machine-icon.d.ts.map +0 -1
  534. package/lib/typescript/commonjs/icons/wifi-icon.d.ts.map +0 -1
  535. package/lib/typescript/commonjs/icons/zustand-icon.d.ts.map +0 -1
  536. package/lib/typescript/commonjs/index.d.ts.map +0 -1
  537. package/lib/typescript/commonjs/settings.d.ts.map +0 -1
  538. package/lib/typescript/commonjs/types.d.ts.map +0 -1
  539. package/lib/typescript/commonjs/utils.d.ts.map +0 -1
  540. package/lib/typescript/module/FloatingToolsStore.d.ts.map +0 -1
  541. package/lib/typescript/module/colors.d.ts.map +0 -1
  542. package/lib/typescript/module/constants.d.ts.map +0 -1
  543. package/lib/typescript/module/devToolsState.d.ts.map +0 -1
  544. package/lib/typescript/module/dial.d.ts.map +0 -1
  545. package/lib/typescript/module/dialUsage.d.ts.map +0 -1
  546. package/lib/typescript/module/easing.d.ts.map +0 -1
  547. package/lib/typescript/module/fonts.d.ts.map +0 -1
  548. package/lib/typescript/module/icons/ask-buoy-icon.d.ts.map +0 -1
  549. package/lib/typescript/module/icons/assets-icon.d.ts.map +0 -1
  550. package/lib/typescript/module/icons/benchmark-icon.d.ts.map +0 -1
  551. package/lib/typescript/module/icons/camera-icon.d.ts.map +0 -1
  552. package/lib/typescript/module/icons/console-icon.d.ts.map +0 -1
  553. package/lib/typescript/module/icons/env-icon.d.ts.map +0 -1
  554. package/lib/typescript/module/icons/events-icon.d.ts.map +0 -1
  555. package/lib/typescript/module/icons/generated/glyph-icons.g.d.ts.map +0 -1
  556. package/lib/typescript/module/icons/generated/icon-data.g.d.ts.map +0 -1
  557. package/lib/typescript/module/icons/highlight-icon.d.ts.map +0 -1
  558. package/lib/typescript/module/icons/icon-factories.d.ts.map +0 -1
  559. package/lib/typescript/module/icons/icon-primitives.d.ts.map +0 -1
  560. package/lib/typescript/module/icons/icon-primitives.native.d.ts.map +0 -1
  561. package/lib/typescript/module/icons/icon-renderer.d.ts.map +0 -1
  562. package/lib/typescript/module/icons/iconGlow.d.ts.map +0 -1
  563. package/lib/typescript/module/icons/image-overlay-icon.d.ts.map +0 -1
  564. package/lib/typescript/module/icons/images-icon.d.ts.map +0 -1
  565. package/lib/typescript/module/icons/impersonate-icon.d.ts.map +0 -1
  566. package/lib/typescript/module/icons/jotai-icon.d.ts.map +0 -1
  567. package/lib/typescript/module/icons/network-icon.d.ts.map +0 -1
  568. package/lib/typescript/module/icons/query-icon.d.ts.map +0 -1
  569. package/lib/typescript/module/icons/redux-icon.d.ts.map +0 -1
  570. package/lib/typescript/module/icons/renders-icon.d.ts.map +0 -1
  571. package/lib/typescript/module/icons/riverpod-icon.d.ts.map +0 -1
  572. package/lib/typescript/module/icons/routes-icon.d.ts.map +0 -1
  573. package/lib/typescript/module/icons/scenarios-icon.d.ts.map +0 -1
  574. package/lib/typescript/module/icons/sentry-icon.d.ts.map +0 -1
  575. package/lib/typescript/module/icons/storage-icon.d.ts.map +0 -1
  576. package/lib/typescript/module/icons/time-machine-icon.d.ts.map +0 -1
  577. package/lib/typescript/module/icons/wifi-icon.d.ts.map +0 -1
  578. package/lib/typescript/module/icons/zustand-icon.d.ts.map +0 -1
  579. package/lib/typescript/module/index.d.ts.map +0 -1
  580. package/lib/typescript/module/settings.d.ts.map +0 -1
  581. package/lib/typescript/module/types.d.ts.map +0 -1
  582. package/lib/typescript/module/utils.d.ts.map +0 -1
@@ -1,496 +1 @@
1
- "use strict";
2
-
3
- /**
4
- * FloatingToolsStore - Headless state management for floating tools.
5
- *
6
- * This class manages all the business logic for the floating tools bubble:
7
- * - Position state and validation
8
- * - Drag detection (tap vs drag)
9
- * - Hide/show toggle
10
- * - Auto-hide when dragged past edge
11
- * - Position persistence
12
- *
13
- * Platform-specific code (animation, event handling) is NOT included here.
14
- * Use this with platform-specific hooks/bindings.
15
- */
16
-
17
- import { VISIBLE_HANDLE_WIDTH, DRAG_THRESHOLD, EDGE_PADDING, SAVE_DEBOUNCE_MS, STORAGE_KEYS } from "./constants.js";
18
- export class FloatingToolsStore {
19
- // State
20
-
21
- isDragging = false;
22
- isHidden = false;
23
-
24
- // Configuration
25
-
26
- // Callbacks
27
-
28
- // Drag tracking
29
- dragStartPos = {
30
- x: 0,
31
- y: 0
32
- };
33
- dragStartMouse = {
34
- x: 0,
35
- y: 0
36
- };
37
- hasMoved = false;
38
- savedPosition = null;
39
-
40
- // Persistence
41
- saveTimeout = null;
42
- isInitialized = false;
43
-
44
- // Subscribers (for useSyncExternalStore)
45
- listeners = new Set();
46
- constructor(options) {
47
- this.screenWidth = options.screenWidth;
48
- this.screenHeight = options.screenHeight;
49
- this.bubbleSize = options.initialBubbleSize ?? {
50
- width: 100,
51
- height: 32
52
- };
53
- this.minPosition = options.minPosition ?? {
54
- x: EDGE_PADDING,
55
- y: EDGE_PADDING
56
- };
57
- this.visibleHandleWidth = options.visibleHandleWidth ?? VISIBLE_HANDLE_WIDTH;
58
- this.dragThreshold = options.dragThreshold ?? DRAG_THRESHOLD;
59
- this.edgePadding = options.edgePadding ?? EDGE_PADDING;
60
- this.enablePositionPersistence = options.enablePositionPersistence ?? true;
61
- this.storage = options.storage;
62
- this.onPositionChange = options.onPositionChange;
63
- this.onHiddenChange = options.onHiddenChange;
64
- this.onDraggingChange = options.onDraggingChange;
65
-
66
- // Default position
67
- this.position = options.initialPosition ?? {
68
- x: this.screenWidth - this.bubbleSize.width - 20,
69
- y: Math.max(this.minPosition.y, Math.min(100, this.screenHeight - this.bubbleSize.height - this.edgePadding))
70
- };
71
-
72
- // Initialize snapshot
73
- this.stateSnapshot = this.createSnapshot();
74
- }
75
-
76
- // =============================
77
- // Subscription (for React hooks)
78
- // =============================
79
-
80
- subscribe = listener => {
81
- this.listeners.add(listener);
82
- return () => this.listeners.delete(listener);
83
- };
84
- getSnapshot = () => {
85
- return this.stateSnapshot;
86
- };
87
- createSnapshot() {
88
- return {
89
- position: {
90
- ...this.position
91
- },
92
- isDragging: this.isDragging,
93
- isHidden: this.isHidden,
94
- bubbleSize: {
95
- ...this.bubbleSize
96
- }
97
- };
98
- }
99
- notify() {
100
- this.stateSnapshot = this.createSnapshot();
101
- this.listeners.forEach(listener => listener());
102
- }
103
-
104
- // =============================
105
- // Initialization
106
- // =============================
107
-
108
- /**
109
- * Initialize the store by loading persisted position.
110
- * Call this after setting up storage adapter.
111
- */
112
- async initialize() {
113
- if (this.isInitialized || !this.enablePositionPersistence || !this.storage) {
114
- this.isInitialized = true;
115
- return;
116
- }
117
- try {
118
- const [xStr, yStr] = await Promise.all([this.storage.getItem(STORAGE_KEYS.POSITION_X), this.storage.getItem(STORAGE_KEYS.POSITION_Y)]);
119
- if (xStr !== null && yStr !== null) {
120
- const x = parseFloat(xStr);
121
- const y = parseFloat(yStr);
122
- if (!Number.isNaN(x) && !Number.isNaN(y)) {
123
- const saved = {
124
- x,
125
- y
126
- };
127
- const validated = this.validatePosition(saved);
128
-
129
- // Save corrected position if out of bounds
130
- if (Math.abs(saved.x - validated.x) > 5 || Math.abs(saved.y - validated.y) > 5) {
131
- this.savePosition(validated.x, validated.y);
132
- }
133
- this.position = validated;
134
-
135
- // Check if loaded in hidden state
136
- if (validated.x >= this.screenWidth - this.visibleHandleWidth - 5) {
137
- this.isHidden = true;
138
- }
139
- this.notify();
140
- }
141
- }
142
- } catch {
143
- // Failed to load - use default position
144
- }
145
- this.isInitialized = true;
146
- }
147
-
148
- // =============================
149
- // Position Management
150
- // =============================
151
-
152
- /**
153
- * Get current bounds for position validation.
154
- */
155
- getBounds() {
156
- return {
157
- minX: this.minPosition.x,
158
- maxX: this.screenWidth - this.visibleHandleWidth,
159
- minY: this.minPosition.y,
160
- maxY: this.screenHeight - this.bubbleSize.height - this.edgePadding
161
- };
162
- }
163
-
164
- /**
165
- * Validate and clamp a position to screen boundaries.
166
- */
167
- validatePosition(pos) {
168
- const bounds = this.getBounds();
169
- return {
170
- x: Math.max(bounds.minX, Math.min(pos.x, bounds.maxX)),
171
- y: Math.max(bounds.minY, Math.min(pos.y, bounds.maxY))
172
- };
173
- }
174
-
175
- /**
176
- * Set position directly (for animation callbacks).
177
- */
178
- setPosition(pos) {
179
- this.position = pos;
180
- this.onPositionChange?.(pos);
181
- this.notify();
182
- }
183
-
184
- /**
185
- * Update bubble size (call on layout).
186
- * Only notifies if size actually changed.
187
- */
188
- setBubbleSize(size) {
189
- if (this.bubbleSize.width === size.width && this.bubbleSize.height === size.height) {
190
- return;
191
- }
192
- this.bubbleSize = size;
193
- this.notify();
194
- }
195
-
196
- /**
197
- * Update screen dimensions (call on resize).
198
- */
199
- setScreenSize(width, height) {
200
- this.screenWidth = width;
201
- this.screenHeight = height;
202
- // Re-validate position
203
- const validated = this.validatePosition(this.position);
204
- if (validated.x !== this.position.x || validated.y !== this.position.y) {
205
- this.position = validated;
206
- this.notify();
207
- }
208
- }
209
-
210
- /**
211
- * Update min position (e.g., for safe area insets).
212
- */
213
- setMinPosition(minPos) {
214
- this.minPosition = minPos;
215
- }
216
-
217
- // =============================
218
- // Persistence
219
- // =============================
220
-
221
- async savePosition(x, y) {
222
- if (!this.enablePositionPersistence || !this.storage) return;
223
- try {
224
- await Promise.all([this.storage.setItem(STORAGE_KEYS.POSITION_X, x.toString()), this.storage.setItem(STORAGE_KEYS.POSITION_Y, y.toString())]);
225
- } catch {
226
- // Failed to save - continue without persistence
227
- }
228
- }
229
- debouncedSavePosition(x, y) {
230
- if (this.saveTimeout) clearTimeout(this.saveTimeout);
231
- this.saveTimeout = setTimeout(() => this.savePosition(x, y), SAVE_DEBOUNCE_MS);
232
- }
233
-
234
- // =============================
235
- // Hide/Show Toggle
236
- // =============================
237
-
238
- /**
239
- * Toggle between hidden and visible states.
240
- * Returns the target position for animation.
241
- */
242
- toggleHideShow() {
243
- const isVisuallyOffScreen = this.position.x > this.screenWidth - this.bubbleSize.width / 2;
244
- if (this.isHidden || isVisuallyOffScreen) {
245
- // Show the bubble
246
- let targetX;
247
- let targetY;
248
- if (this.savedPosition && this.savedPosition.x < this.screenWidth - this.bubbleSize.width / 2) {
249
- targetX = this.savedPosition.x;
250
- targetY = this.savedPosition.y;
251
- } else {
252
- targetX = this.screenWidth - this.bubbleSize.width - 20;
253
- targetY = this.position.y;
254
- }
255
- this.isHidden = false;
256
- this.onHiddenChange?.(false);
257
- this.notify();
258
- return {
259
- targetPosition: {
260
- x: targetX,
261
- y: targetY
262
- },
263
- isHiding: false
264
- };
265
- } else {
266
- // Hide the bubble
267
- this.savedPosition = {
268
- ...this.position
269
- };
270
- const hiddenX = this.screenWidth - this.visibleHandleWidth;
271
- this.isHidden = true;
272
- this.onHiddenChange?.(true);
273
- this.notify();
274
- return {
275
- targetPosition: {
276
- x: hiddenX,
277
- y: this.position.y
278
- },
279
- isHiding: true
280
- };
281
- }
282
- }
283
-
284
- /**
285
- * Force hide (for pushToSide behavior).
286
- */
287
- forceHide() {
288
- if (this.isHidden) {
289
- return {
290
- targetPosition: this.position
291
- };
292
- }
293
- this.savedPosition = {
294
- ...this.position
295
- };
296
- const hiddenX = this.screenWidth - this.visibleHandleWidth;
297
- this.isHidden = true;
298
- this.onHiddenChange?.(true);
299
- this.notify();
300
- return {
301
- targetPosition: {
302
- x: hiddenX,
303
- y: this.position.y
304
- }
305
- };
306
- }
307
-
308
- /**
309
- * Force show (restore from pushToSide).
310
- */
311
- forceShow() {
312
- if (!this.isHidden) {
313
- return {
314
- targetPosition: this.position
315
- };
316
- }
317
- let targetX;
318
- let targetY;
319
- if (this.savedPosition) {
320
- targetX = this.savedPosition.x;
321
- targetY = this.savedPosition.y;
322
- } else {
323
- targetX = this.screenWidth - this.bubbleSize.width - 20;
324
- targetY = this.position.y;
325
- }
326
- this.isHidden = false;
327
- this.onHiddenChange?.(false);
328
- this.notify();
329
- return {
330
- targetPosition: {
331
- x: targetX,
332
- y: targetY
333
- }
334
- };
335
- }
336
-
337
- // =============================
338
- // Drag Handling
339
- // =============================
340
-
341
- /**
342
- * Start a drag operation.
343
- */
344
- handleDragStart(event) {
345
- this.hasMoved = false;
346
- this.dragStartPos = {
347
- ...this.position
348
- };
349
- this.dragStartMouse = {
350
- x: event.clientX,
351
- y: event.clientY
352
- };
353
- }
354
-
355
- /**
356
- * Process drag movement.
357
- * Returns the new position (for animation) and whether drag threshold was exceeded.
358
- */
359
- handleDragMove(event) {
360
- const dx = event.clientX - this.dragStartMouse.x;
361
- const dy = event.clientY - this.dragStartMouse.y;
362
- const totalDistance = Math.abs(dx) + Math.abs(dy);
363
-
364
- // Check if moved enough to be considered a drag
365
- if (!this.hasMoved && totalDistance > this.dragThreshold) {
366
- this.hasMoved = true;
367
- this.isDragging = true;
368
- this.onDraggingChange?.(true);
369
- this.notify();
370
- }
371
- if (this.hasMoved) {
372
- const newX = this.dragStartPos.x + dx;
373
- const newY = this.dragStartPos.y + dy;
374
-
375
- // Allow overflow to right for hide detection, but clamp Y
376
- const bounds = this.getBounds();
377
- const clampedX = Math.max(bounds.minX, Math.min(newX, this.screenWidth - this.visibleHandleWidth + this.bubbleSize.width));
378
- const clampedY = Math.max(bounds.minY, Math.min(newY, bounds.maxY));
379
- this.position = {
380
- x: clampedX,
381
- y: clampedY
382
- };
383
- this.onPositionChange?.(this.position);
384
- this.notify();
385
- return {
386
- position: this.position,
387
- isDragging: true
388
- };
389
- }
390
- return {
391
- position: this.position,
392
- isDragging: false
393
- };
394
- }
395
-
396
- /**
397
- * End a drag operation.
398
- * Returns the result including whether to animate to hidden state.
399
- */
400
- handleDragEnd(event) {
401
- const wasTap = !this.hasMoved;
402
- if (wasTap) {
403
- this.isDragging = false;
404
- this.onDraggingChange?.(false);
405
- this.notify();
406
- return {
407
- position: this.position,
408
- shouldHide: false,
409
- wasTap: true
410
- };
411
- }
412
-
413
- // Calculate final position
414
- const dx = event.clientX - this.dragStartMouse.x;
415
- const dy = event.clientY - this.dragStartMouse.y;
416
- const currentX = this.dragStartPos.x + dx;
417
- const currentY = this.dragStartPos.y + dy;
418
-
419
- // Check if should auto-hide (bubble midpoint past right edge)
420
- const bubbleMidpoint = currentX + this.bubbleSize.width / 2;
421
- const shouldHide = bubbleMidpoint > this.screenWidth;
422
- const bounds = this.getBounds();
423
- if (shouldHide) {
424
- const hiddenX = this.screenWidth - this.visibleHandleWidth;
425
- const clampedY = Math.max(bounds.minY, Math.min(currentY, bounds.maxY));
426
- this.isHidden = true;
427
- this.onHiddenChange?.(true);
428
- this.isDragging = false;
429
- this.onDraggingChange?.(false);
430
- this.notify();
431
- return {
432
- position: {
433
- x: hiddenX,
434
- y: clampedY
435
- },
436
- shouldHide: true,
437
- wasTap: false
438
- };
439
- } else {
440
- // Check if pulling back from hidden
441
- if (this.isHidden && currentX < this.screenWidth - this.visibleHandleWidth - 10) {
442
- this.isHidden = false;
443
- this.onHiddenChange?.(false);
444
- }
445
-
446
- // Clamp to visible area
447
- const clampedX = Math.max(bounds.minX, Math.min(currentX, this.screenWidth - this.bubbleSize.width - this.edgePadding));
448
- const clampedY = Math.max(bounds.minY, Math.min(currentY, bounds.maxY));
449
-
450
- // Save position if visible
451
- if (clampedX < this.screenWidth - this.bubbleSize.width / 2) {
452
- this.savedPosition = {
453
- x: clampedX,
454
- y: clampedY
455
- };
456
- }
457
- this.position = {
458
- x: clampedX,
459
- y: clampedY
460
- };
461
- this.isDragging = false;
462
- this.onDraggingChange?.(false);
463
- this.debouncedSavePosition(clampedX, clampedY);
464
- this.notify();
465
- return {
466
- position: {
467
- x: clampedX,
468
- y: clampedY
469
- },
470
- shouldHide: false,
471
- wasTap: false
472
- };
473
- }
474
- }
475
-
476
- /**
477
- * Commit position after animation completes.
478
- */
479
- commitPosition(pos) {
480
- this.position = pos;
481
- this.savePosition(pos.x, pos.y);
482
- this.notify();
483
- }
484
-
485
- // =============================
486
- // Cleanup
487
- // =============================
488
-
489
- destroy() {
490
- if (this.saveTimeout) {
491
- clearTimeout(this.saveTimeout);
492
- this.saveTimeout = null;
493
- }
494
- this.listeners.clear();
495
- }
496
- }
1
+ "use strict";import{VISIBLE_HANDLE_WIDTH,DRAG_THRESHOLD,EDGE_PADDING,SAVE_DEBOUNCE_MS,STORAGE_KEYS}from"./constants.js";export class FloatingToolsStore{isDragging=!1;isHidden=!1;dragStartPos={x:0,y:0};dragStartMouse={x:0,y:0};hasMoved=!1;savedPosition=null;saveTimeout=null;isInitialized=!1;listeners=new Set;constructor(i){this.screenWidth=i.screenWidth,this.screenHeight=i.screenHeight,this.bubbleSize=i.initialBubbleSize??{width:100,height:32},this.minPosition=i.minPosition??{x:EDGE_PADDING,y:EDGE_PADDING},this.visibleHandleWidth=i.visibleHandleWidth??VISIBLE_HANDLE_WIDTH,this.dragThreshold=i.dragThreshold??DRAG_THRESHOLD,this.edgePadding=i.edgePadding??EDGE_PADDING,this.enablePositionPersistence=i.enablePositionPersistence??!0,this.storage=i.storage,this.onPositionChange=i.onPositionChange,this.onHiddenChange=i.onHiddenChange,this.onDraggingChange=i.onDraggingChange,this.position=i.initialPosition??{x:this.screenWidth-this.bubbleSize.width-20,y:Math.max(this.minPosition.y,Math.min(100,this.screenHeight-this.bubbleSize.height-this.edgePadding))},this.stateSnapshot=this.createSnapshot()}subscribe=i=>(this.listeners.add(i),()=>this.listeners.delete(i));getSnapshot=()=>this.stateSnapshot;createSnapshot(){return{position:{...this.position},isDragging:this.isDragging,isHidden:this.isHidden,bubbleSize:{...this.bubbleSize}}}notify(){this.stateSnapshot=this.createSnapshot(),this.listeners.forEach(i=>i())}async initialize(){if(!this.isInitialized&&this.enablePositionPersistence&&this.storage){try{const[i,t]=await Promise.all([this.storage.getItem(STORAGE_KEYS.POSITION_X),this.storage.getItem(STORAGE_KEYS.POSITION_Y)]);if(null!==i&&null!==t){const s=parseFloat(i),e=parseFloat(t);if(!Number.isNaN(s)&&!Number.isNaN(e)){const i={x:s,y:e},t=this.validatePosition(i);(Math.abs(i.x-t.x)>5||Math.abs(i.y-t.y)>5)&&this.savePosition(t.x,t.y),this.position=t,t.x>=this.screenWidth-this.visibleHandleWidth-5&&(this.isHidden=!0),this.notify()}}}catch{}this.isInitialized=!0}else this.isInitialized=!0}getBounds(){return{minX:this.minPosition.x,maxX:this.screenWidth-this.visibleHandleWidth,minY:this.minPosition.y,maxY:this.screenHeight-this.bubbleSize.height-this.edgePadding}}validatePosition(i){const t=this.getBounds();return{x:Math.max(t.minX,Math.min(i.x,t.maxX)),y:Math.max(t.minY,Math.min(i.y,t.maxY))}}setPosition(i){this.position=i,this.onPositionChange?.(i),this.notify()}setBubbleSize(i){this.bubbleSize.width===i.width&&this.bubbleSize.height===i.height||(this.bubbleSize=i,this.isDragging||this.reconcileBounds(),this.notify())}setScreenSize(i,t){this.screenWidth=i,this.screenHeight=t,this.reconcileBounds(),this.notify()}reconcileBounds(){const i=i=>({x:Math.max(this.minPosition.x,Math.min(i.x,this.screenWidth-this.bubbleSize.width-this.edgePadding)),y:Math.max(this.minPosition.y,Math.min(i.y,this.screenHeight-this.bubbleSize.height-this.edgePadding))}),t=i(this.position);this.position=this.isHidden?{...t,x:this.screenWidth-this.visibleHandleWidth}:t,this.savedPosition&&(this.savedPosition=i(this.savedPosition))}setMinPosition(i){this.minPosition=i}async savePosition(i,t){if(this.enablePositionPersistence&&this.storage)try{await Promise.all([this.storage.setItem(STORAGE_KEYS.POSITION_X,i.toString()),this.storage.setItem(STORAGE_KEYS.POSITION_Y,t.toString())])}catch{}}debouncedSavePosition(i,t){this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>this.savePosition(i,t),SAVE_DEBOUNCE_MS)}toggleHideShow(){const i=this.position.x>this.screenWidth-this.bubbleSize.width/2;if(this.isHidden||i){let i,t;return this.savedPosition&&this.savedPosition.x<this.screenWidth-this.bubbleSize.width/2?(i=this.savedPosition.x,t=this.savedPosition.y):(i=this.screenWidth-this.bubbleSize.width-20,t=this.position.y),this.isHidden=!1,this.onHiddenChange?.(!1),this.notify(),{targetPosition:{x:i,y:t},isHiding:!1}}{this.savedPosition={...this.position};const i=this.screenWidth-this.visibleHandleWidth;return this.isHidden=!0,this.onHiddenChange?.(!0),this.notify(),{targetPosition:{x:i,y:this.position.y},isHiding:!0}}}forceHide(){if(this.isHidden)return{targetPosition:this.position};this.savedPosition={...this.position};const i=this.screenWidth-this.visibleHandleWidth;return this.isHidden=!0,this.onHiddenChange?.(!0),this.notify(),{targetPosition:{x:i,y:this.position.y}}}forceShow(){if(!this.isHidden)return{targetPosition:this.position};let i,t;return this.savedPosition?(i=this.savedPosition.x,t=this.savedPosition.y):(i=this.screenWidth-this.bubbleSize.width-20,t=this.position.y),this.isHidden=!1,this.onHiddenChange?.(!1),this.notify(),{targetPosition:{x:i,y:t}}}handleDragStart(i){this.hasMoved=!1,this.dragStartPos={...this.position},this.dragStartMouse={x:i.clientX,y:i.clientY}}handleDragMove(i){const t=i.clientX-this.dragStartMouse.x,s=i.clientY-this.dragStartMouse.y,e=Math.abs(t)+Math.abs(s);if(!this.hasMoved&&e>this.dragThreshold&&(this.hasMoved=!0,this.isDragging=!0,this.onDraggingChange?.(!0),this.notify()),this.hasMoved){const i=this.dragStartPos.x+t,e=this.dragStartPos.y+s,h=this.getBounds(),n=Math.max(h.minX,Math.min(i,this.screenWidth-this.visibleHandleWidth+this.bubbleSize.width)),o=Math.max(h.minY,Math.min(e,h.maxY));return this.position={x:n,y:o},this.onPositionChange?.(this.position),this.notify(),{position:this.position,isDragging:!0}}return{position:this.position,isDragging:!1}}handleDragEnd(i){if(!this.hasMoved)return this.isDragging=!1,this.onDraggingChange?.(!1),this.notify(),{position:this.position,shouldHide:!1,wasTap:!0};const t=i.clientX-this.dragStartMouse.x,s=i.clientY-this.dragStartMouse.y,e=this.dragStartPos.x+t,h=this.dragStartPos.y+s,n=e+this.bubbleSize.width/2>this.screenWidth,o=this.getBounds();if(n){const i=this.screenWidth-this.visibleHandleWidth,t=Math.max(o.minY,Math.min(h,o.maxY));return this.isHidden=!0,this.onHiddenChange?.(!0),this.isDragging=!1,this.onDraggingChange?.(!1),this.notify(),{position:{x:i,y:t},shouldHide:!0,wasTap:!1}}{this.isHidden&&e<this.screenWidth-this.visibleHandleWidth-10&&(this.isHidden=!1,this.onHiddenChange?.(!1));const i=Math.max(o.minX,Math.min(e,this.screenWidth-this.bubbleSize.width-this.edgePadding)),t=Math.max(o.minY,Math.min(h,o.maxY));return i<this.screenWidth-this.bubbleSize.width/2&&(this.savedPosition={x:i,y:t}),this.position={x:i,y:t},this.isDragging=!1,this.onDraggingChange?.(!1),this.debouncedSavePosition(i,t),this.notify(),{position:{x:i,y:t},shouldHide:!1,wasTap:!1}}}commitPosition(i){this.position=i,this.savePosition(i.x,i.y),this.notify()}destroy(){this.saveTimeout&&(clearTimeout(this.saveTimeout),this.saveTimeout=null),this.listeners.clear()}}
@@ -1,49 +1 @@
1
- "use strict";
2
-
3
- /**
4
- * Shared color palette for floating tools.
5
- * Matches the gameUIColors from @buoy-gg/shared-ui.
6
- *
7
- * These are duplicated here to avoid requiring @buoy-gg/shared-ui
8
- * as a dependency (which has React Native dependencies).
9
- *
10
- * TODO: Consider extracting colors to a truly platform-agnostic package
11
- * that both shared-ui and floating-tools-core can depend on.
12
- */
13
-
14
- /**
15
- * Buoy brand colors - EXACT values from web docs site dark theme
16
- */
17
- export const floatingToolsColors = {
18
- /** Dark panel background */
19
- panel: '#1A1A1A',
20
- /** Muted gray for secondary elements */
21
- muted: '#888888',
22
- /** Primary text color */
23
- secondary: '#E0E0E0',
24
- /** Info/active state color (Buoy teal) */
25
- info: '#20C997',
26
- /** Success/admin color (Buoy teal) */
27
- success: '#20C997',
28
- /** Warning/optional color (Buoy orange) */
29
- optional: '#FFA94D',
30
- /** Error color (Buoy red) */
31
- error: '#EF4444',
32
- /** Primary accent color (Buoy teal) */
33
- primary: '#20C997',
34
- /** Color used when dragging the floating tools (Buoy teal) */
35
- dragActive: '#20C997'
36
- };
37
- /**
38
- * Get a color with optional alpha.
39
- * @param color - The base color (hex)
40
- * @param alpha - Alpha value as hex string (00-FF) or number (0-1)
41
- */
42
- export function withAlpha(color, alpha) {
43
- if (typeof alpha === 'number') {
44
- // Convert 0-1 to hex
45
- const hex = Math.round(alpha * 255).toString(16).padStart(2, '0');
46
- return `${color}${hex}`;
47
- }
48
- return `${color}${alpha}`;
49
- }
1
+ "use strict";export const floatingToolsColors={panel:"#1A1A1A",muted:"#888888",secondary:"#E0E0E0",info:"#20C997",success:"#20C997",optional:"#FFA94D",error:"#EF4444",primary:"#20C997",dragActive:"#20C997"};export function withAlpha(t,o){return"number"==typeof o?`${t}${Math.round(255*o).toString(16).padStart(2,"0")}`:`${t}${o}`}
@@ -1,27 +1 @@
1
- "use strict";
2
-
3
- /**
4
- * Shared constants for floating tools behavior.
5
- * These values ensure consistent behavior across platforms.
6
- */
7
-
8
- /** Width of the visible grip handle when bubble is hidden (pixels) */
9
- export const VISIBLE_HANDLE_WIDTH = 32;
10
-
11
- /** Minimum movement to distinguish drag from tap (pixels) */
12
- export const DRAG_THRESHOLD = 5;
13
-
14
- /** Animation duration for hide/show transitions (milliseconds) */
15
- export const ANIMATION_DURATION = 200;
16
-
17
- /** Padding from screen edges (pixels) */
18
- export const EDGE_PADDING = 10;
19
-
20
- /** Debounce delay for position persistence (milliseconds) */
21
- export const SAVE_DEBOUNCE_MS = 500;
22
-
23
- /** Storage keys for position persistence */
24
- export const STORAGE_KEYS = {
25
- POSITION_X: '@react_buoy_bubble_position_x',
26
- POSITION_Y: '@react_buoy_bubble_position_y'
27
- };
1
+ "use strict";export const VISIBLE_HANDLE_WIDTH=32;export const DRAG_THRESHOLD=5;export const ANIMATION_DURATION=200;export const EDGE_PADDING=10;export const SAVE_DEBOUNCE_MS=500;export const STORAGE_KEYS={POSITION_X:"@react_buoy_bubble_position_x",POSITION_Y:"@react_buoy_bubble_position_y"};