@buoy-gg/shared-ui 7.0.40 → 7.0.42

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 (1126) hide show
  1. package/README.md +6 -0
  2. package/dataViewer.js +1 -9
  3. package/floating.js +1 -2
  4. package/history.js +1 -7
  5. package/hooks.js +1 -7
  6. package/lib/commonjs/JsModal.js +1 -1814
  7. package/lib/commonjs/JsModal.web.js +1 -1652
  8. package/lib/commonjs/clipboard/autoDetectClipboard.js +1 -67
  9. package/lib/commonjs/clipboard/clipboard-impl.js +1 -128
  10. package/lib/commonjs/clipboard/clipboard-impl.web.js +1 -0
  11. package/lib/commonjs/clipboard/copyToClipboard.js +1 -64
  12. package/lib/commonjs/clipboard/index.js +1 -25
  13. package/lib/commonjs/colors/index.js +1 -49
  14. package/lib/commonjs/context/HintsContext.js +1 -49
  15. package/lib/commonjs/context/index.js +1 -24
  16. package/lib/commonjs/dataViewer/CyberpunkInput.js +1 -388
  17. package/lib/commonjs/dataViewer/DataTreeActionBar.js +1 -390
  18. package/lib/commonjs/dataViewer/DataTreeActionDock.js +1 -226
  19. package/lib/commonjs/dataViewer/DataViewer.js +1 -158
  20. package/lib/commonjs/dataViewer/DiffSummary.js +1 -134
  21. package/lib/commonjs/dataViewer/IndentGuides.js +1 -128
  22. package/lib/commonjs/dataViewer/IndentGuidesOverlay.js +1 -104
  23. package/lib/commonjs/dataViewer/JsonStringNotice.js +1 -59
  24. package/lib/commonjs/dataViewer/LiveExplorer.js +1 -943
  25. package/lib/commonjs/dataViewer/SplitDiffViewer.js +1 -421
  26. package/lib/commonjs/dataViewer/ThemedSplitView.js +1 -642
  27. package/lib/commonjs/dataViewer/TimestampDeltaBar.js +1 -96
  28. package/lib/commonjs/dataViewer/TypeLegend.js +1 -111
  29. package/lib/commonjs/dataViewer/ValueEditModal.js +1 -386
  30. package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +1 -1270
  31. package/lib/commonjs/dataViewer/diffThemes.js +1 -113
  32. package/lib/commonjs/dataViewer/index.js +1 -320
  33. package/lib/commonjs/dataViewer/jsonOps.js +1 -320
  34. package/lib/commonjs/dataViewer/jsonStringValue.js +1 -94
  35. package/lib/commonjs/dataViewer/lineDiff.js +1 -568
  36. package/lib/commonjs/dataViewer/nestedPath.js +1 -115
  37. package/lib/commonjs/dataViewer/objectDiff.js +1 -304
  38. package/lib/commonjs/dataViewer/timestampDiff.js +1 -146
  39. package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +1 -913
  40. package/lib/commonjs/dataViewer/treeActions.js +1 -168
  41. package/lib/commonjs/dataViewer/useTreeDraft.js +1 -125
  42. package/lib/commonjs/dataViewer/useTreeEditor.js +1 -105
  43. package/lib/commonjs/env/EnvironmentIndicator.js +1 -129
  44. package/lib/commonjs/env/EnvironmentIndicator.web.js +1 -114
  45. package/lib/commonjs/env/EnvironmentSelector.js +1 -205
  46. package/lib/commonjs/env/EnvironmentSelectorInline.js +1 -299
  47. package/lib/commonjs/env/EnvironmentSelectorInline.web.js +1 -178
  48. package/lib/commonjs/history/HistoryProvider.js +1 -246
  49. package/lib/commonjs/history/components/HistoryEntryRow.js +1 -146
  50. package/lib/commonjs/history/components/HistoryList.js +1 -174
  51. package/lib/commonjs/history/components/index.js +1 -25
  52. package/lib/commonjs/history/index.js +1 -61
  53. package/lib/commonjs/history/types.js +1 -5
  54. package/lib/commonjs/hooks/index.js +1 -77
  55. package/lib/commonjs/hooks/safe-area-impl.js +1 -28
  56. package/lib/commonjs/hooks/useChangeLog.js +1 -55
  57. package/lib/commonjs/hooks/useDeviceInfo.js +1 -524
  58. package/lib/commonjs/hooks/useEventStoreEvents.js +1 -65
  59. package/lib/commonjs/hooks/useFilterManager.js +1 -136
  60. package/lib/commonjs/hooks/usePersistedState.js +1 -106
  61. package/lib/commonjs/hooks/useSafeAreaInsets.js +1 -250
  62. package/lib/commonjs/hooks/useSafeAreaInsets.web.js +1 -0
  63. package/lib/commonjs/icons/BenchmarkIcon.js +1 -109
  64. package/lib/commonjs/icons/EnvLaptopIcon.js +1 -204
  65. package/lib/commonjs/icons/IconBackground.js +1 -279
  66. package/lib/commonjs/icons/ReactQueryIcon.js +1 -17
  67. package/lib/commonjs/icons/RenderCountIcon.js +1 -147
  68. package/lib/commonjs/icons/RouteMapIcon.js +1 -250
  69. package/lib/commonjs/icons/SentryBugIcon.js +1 -19
  70. package/lib/commonjs/icons/StackPulseIcon.js +1 -158
  71. package/lib/commonjs/icons/StorageStackIcon.js +1 -156
  72. package/lib/commonjs/icons/WifiCircuitIcon.js +1 -169
  73. package/lib/commonjs/icons/index.js +1 -826
  74. package/lib/commonjs/icons/lucide-icons-original-full.js +1 -3248
  75. package/lib/commonjs/icons/lucide-icons.js +1 -2476
  76. package/lib/commonjs/icons/primitives/GlobeIcon.js +1 -66
  77. package/lib/commonjs/icons/primitives/icon-primitives.js +1 -169
  78. package/lib/commonjs/icons/primitives/index.js +1 -49
  79. package/lib/commonjs/index.js +1 -1098
  80. package/lib/commonjs/license/AccountSetup.js +1 -56
  81. package/lib/commonjs/license/AccountSetup.web.js +14 -81
  82. package/lib/commonjs/license/AccountSetupContent.js +1 -0
  83. package/lib/commonjs/license/FeatureGate.js +1 -788
  84. package/lib/commonjs/license/FreeAccountPrompt.js +1 -205
  85. package/lib/commonjs/license/LicenseEntryModal.js +2 -394
  86. package/lib/commonjs/license/accountRuntime.js +1 -0
  87. package/lib/commonjs/license/accountRuntime.web.js +1 -0
  88. package/lib/commonjs/license/index.js +1 -106
  89. package/lib/commonjs/license/licenseModule.js +1 -119
  90. package/lib/commonjs/license/openPricing.js +1 -36
  91. package/lib/commonjs/license/tierLimits.js +1 -128
  92. package/lib/commonjs/logger/index-sentry.js +1 -245
  93. package/lib/commonjs/logger/index.js +1 -62
  94. package/lib/commonjs/logger/logDump.js +1 -19
  95. package/lib/commonjs/logger/types.js +1 -38
  96. package/lib/commonjs/settings/components/BubbleSettingsSection.js +1 -384
  97. package/lib/commonjs/settings/index.js +1 -24
  98. package/lib/commonjs/storage/definePersistedSetting.js +1 -67
  99. package/lib/commonjs/storage/devToolsStorageKeys.js +1 -359
  100. package/lib/commonjs/storage/index.js +1 -25
  101. package/lib/commonjs/stores/BaseEventStore.js +1 -343
  102. package/lib/commonjs/stores/ChangeLog.js +1 -197
  103. package/lib/commonjs/stores/createToolStore.js +1 -193
  104. package/lib/commonjs/stores/floatingToolStore.js +1 -71
  105. package/lib/commonjs/stores/floatingToolStore.test.js +1 -112
  106. package/lib/commonjs/stores/ignoredPatternsCore.js +1 -75
  107. package/lib/commonjs/stores/ignoredPatternsStore.js +1 -205
  108. package/lib/commonjs/stores/ignoredPatternsStore.shared.js +1 -0
  109. package/lib/commonjs/stores/ignoredPatternsStore.web.js +1 -236
  110. package/lib/commonjs/stores/index.js +1 -51
  111. package/lib/commonjs/sync/keyedArrays.js +1 -209
  112. package/lib/commonjs/sync/toolActionRegistry.js +1 -249
  113. package/lib/commonjs/sync/toolAttention.test.js +1 -51
  114. package/lib/commonjs/sync/toolSyncAdapter.js +1 -63
  115. package/lib/commonjs/sync/toolUiBridge.js +1 -132
  116. package/lib/commonjs/sync/typedEdit.js +1 -228
  117. package/lib/commonjs/sync/valuePath.js +1 -337
  118. package/lib/commonjs/sync/valueShape.js +1 -161
  119. package/lib/commonjs/sync/wireBudget.js +1 -97
  120. package/lib/commonjs/sync/wireForm.js +1 -172
  121. package/lib/commonjs/tools/defineTool.js +1 -79
  122. package/lib/commonjs/types/types.d.js +1 -1
  123. package/lib/commonjs/types/types.js +1 -37
  124. package/lib/commonjs/ui/backgrounds/BackgroundSwitcher.js +1 -354
  125. package/lib/commonjs/ui/backgrounds/ToolBackground.js +1 -76
  126. package/lib/commonjs/ui/backgrounds/backgroundStore.js +1 -130
  127. package/lib/commonjs/ui/backgrounds/index.js +1 -167
  128. package/lib/commonjs/ui/backgrounds/primitives.js +1 -369
  129. package/lib/commonjs/ui/backgrounds/registry.js +1 -98
  130. package/lib/commonjs/ui/backgrounds/rng.js +1 -93
  131. package/lib/commonjs/ui/backgrounds/skyClock.js +1 -45
  132. package/lib/commonjs/ui/backgrounds/types.js +1 -1
  133. package/lib/commonjs/ui/backgrounds/variants/daylight.js +1 -453
  134. package/lib/commonjs/ui/backgrounds/variants/deepField.js +1 -381
  135. package/lib/commonjs/ui/backgrounds/variants/hyperspace.js +1 -218
  136. package/lib/commonjs/ui/backgrounds/variants/liveSky.js +1 -898
  137. package/lib/commonjs/ui/backgrounds/variants/meteors.js +1 -401
  138. package/lib/commonjs/ui/backgrounds/variants/moonlight.js +1 -472
  139. package/lib/commonjs/ui/backgrounds/variants/underwater.js +1 -757
  140. package/lib/commonjs/ui/backgrounds/variants/wormhole/motion.js +1 -48
  141. package/lib/commonjs/ui/backgrounds/variants/wormhole/textures.js +1 -3
  142. package/lib/commonjs/ui/backgrounds/variants/wormhole.js +1 -133
  143. package/lib/commonjs/ui/components/BackButton.js +1 -47
  144. package/lib/commonjs/ui/components/Badge.js +1 -226
  145. package/lib/commonjs/ui/components/ChangeRow.js +1 -111
  146. package/lib/commonjs/ui/components/ChipStrip.js +1 -94
  147. package/lib/commonjs/ui/components/ClipboardHintBanner.js +1 -149
  148. package/lib/commonjs/ui/components/CollapsibleSection.js +1 -170
  149. package/lib/commonjs/ui/components/CompactFilterChips.js +1 -114
  150. package/lib/commonjs/ui/components/CompactRow.js +1 -295
  151. package/lib/commonjs/ui/components/CopyButton.js +1 -307
  152. package/lib/commonjs/ui/components/DataInspector.js +1 -323
  153. package/lib/commonjs/ui/components/DetailView.js +1 -358
  154. package/lib/commonjs/ui/components/DetailViewToggle.js +1 -130
  155. package/lib/commonjs/ui/components/DevToolsCard.js +1 -126
  156. package/lib/commonjs/ui/components/DraggableHeader.js +1 -215
  157. package/lib/commonjs/ui/components/DynamicFilterView.js +1 -758
  158. package/lib/commonjs/ui/components/EmptyState.js +1 -151
  159. package/lib/commonjs/ui/components/EntityFilterView.js +1 -355
  160. package/lib/commonjs/ui/components/EventHistoryViewer/CompareBar.js +1 -211
  161. package/lib/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.js +1 -99
  162. package/lib/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -184
  163. package/lib/commonjs/ui/components/EventHistoryViewer/EventPickerModal.js +1 -208
  164. package/lib/commonjs/ui/components/EventHistoryViewer/ViewToggleCards.js +1 -137
  165. package/lib/commonjs/ui/components/EventHistoryViewer/index.js +1 -40
  166. package/lib/commonjs/ui/components/EventHistoryViewer/types.js +1 -5
  167. package/lib/commonjs/ui/components/EventListItem.js +1 -247
  168. package/lib/commonjs/ui/components/EventStepperFooter.js +1 -185
  169. package/lib/commonjs/ui/components/ExpandablePopover.js +1 -381
  170. package/lib/commonjs/ui/components/ExpandedInfoRow.js +1 -108
  171. package/lib/commonjs/ui/components/ExportPreview.js +1 -174
  172. package/lib/commonjs/ui/components/FilterComponents.js +1 -291
  173. package/lib/commonjs/ui/components/GripVerticalIcon.js +1 -65
  174. package/lib/commonjs/ui/components/HeaderSearchButton.js +1 -50
  175. package/lib/commonjs/ui/components/InfoRow.js +1 -91
  176. package/lib/commonjs/ui/components/ListItem.js +1 -173
  177. package/lib/commonjs/ui/components/ModalHeader.js +1 -305
  178. package/lib/commonjs/ui/components/ModalHintBanner.js +1 -147
  179. package/lib/commonjs/ui/components/Pill.js +1 -115
  180. package/lib/commonjs/ui/components/PowerToggleButton.js +1 -78
  181. package/lib/commonjs/ui/components/SearchBar.js +1 -165
  182. package/lib/commonjs/ui/components/SectionHeader.js +1 -129
  183. package/lib/commonjs/ui/components/StatsCard.js +1 -198
  184. package/lib/commonjs/ui/components/StatusIndicator.js +1 -231
  185. package/lib/commonjs/ui/components/StorageTypeBadge.js +1 -97
  186. package/lib/commonjs/ui/components/TabSelector.js +1 -102
  187. package/lib/commonjs/ui/components/TimeDisplay.js +1 -142
  188. package/lib/commonjs/ui/components/ToggleRow.js +1 -116
  189. package/lib/commonjs/ui/components/ToolButton.js +1 -93
  190. package/lib/commonjs/ui/components/ToolEmptyState.js +1 -154
  191. package/lib/commonjs/ui/components/ToolFooter.js +1 -205
  192. package/lib/commonjs/ui/components/ValueTypeBadge.js +1 -147
  193. package/lib/commonjs/ui/components/WindowControls.js +1 -387
  194. package/lib/commonjs/ui/components/index.js +1 -507
  195. package/lib/commonjs/ui/components/windowDrag.js +1 -45
  196. package/lib/commonjs/ui/console/CyberpunkButtonOutline.js +1 -261
  197. package/lib/commonjs/ui/console/CyberpunkIconContainer.js +1 -186
  198. package/lib/commonjs/ui/console/CyberpunkSectionButton.js +1 -123
  199. package/lib/commonjs/ui/floating/FloatingTool.js +1 -1010
  200. package/lib/commonjs/ui/floating/FloatingTool.web.js +1 -591
  201. package/lib/commonjs/ui/floating/FloatingToolHost.js +1 -32
  202. package/lib/commonjs/ui/floating/FloatingToolHost.web.js +1 -28
  203. package/lib/commonjs/ui/floating/index.js +1 -105
  204. package/lib/commonjs/ui/floating/index.web.js +1 -105
  205. package/lib/commonjs/ui/floating/onboardingConstants.js +1 -70
  206. package/lib/commonjs/ui/floating/onboardingConstants.web.js +1 -34
  207. package/lib/commonjs/ui/fonts.js +1 -12
  208. package/lib/commonjs/ui/gameUI/components/GameUICollapsibleSection.js +1 -121
  209. package/lib/commonjs/ui/gameUI/components/GameUICompactStats.js +1 -336
  210. package/lib/commonjs/ui/gameUI/components/GameUIIssuesList.js +1 -284
  211. package/lib/commonjs/ui/gameUI/components/GameUIStatusHeader.js +1 -145
  212. package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +1 -224
  213. package/lib/commonjs/ui/gameUI/constants/macOSDesignSystemColors.js +1 -224
  214. package/lib/commonjs/ui/gameUI/hooks/useGameUIAlertState.js +1 -110
  215. package/lib/commonjs/ui/gameUI/index.js +1 -72
  216. package/lib/commonjs/ui/index.js +1 -217
  217. package/lib/commonjs/ui/listPresets.js +1 -43
  218. package/lib/commonjs/ui/night/nightTheme.js +1 -130
  219. package/lib/commonjs/ui/night/primitives.js +1 -517
  220. package/lib/commonjs/ui/otto/OttoSceneView.js +1 -69
  221. package/lib/commonjs/ui/otto/OttoSprite.js +1 -510
  222. package/lib/commonjs/ui/otto/index.js +1 -60
  223. package/lib/commonjs/ui/otto/ottoEngine.js +1 -2737
  224. package/lib/commonjs/ui/otto/ottoScenes.js +1 -949
  225. package/lib/commonjs/ui/otto/ottoSheet.js +1 -191
  226. package/lib/commonjs/ui/toolTheme.js +1 -97
  227. package/lib/commonjs/utils/absoluteFill.js +1 -28
  228. package/lib/commonjs/utils/browserAsyncStorage.js +1 -0
  229. package/lib/commonjs/utils/browserNavigation.js +1 -0
  230. package/lib/commonjs/utils/devServer.js +1 -62
  231. package/lib/commonjs/utils/devServer.web.js +1 -0
  232. package/lib/commonjs/utils/displayValue.js +1 -41
  233. package/lib/commonjs/utils/domRuntime.js +1 -0
  234. package/lib/commonjs/utils/expoRouterModule.js +1 -0
  235. package/lib/commonjs/utils/expoRouterModule.web.js +1 -0
  236. package/lib/commonjs/utils/formatting/dataFormatting.js +1 -102
  237. package/lib/commonjs/utils/formatting/httpFormatting.js +1 -147
  238. package/lib/commonjs/utils/formatting/index.js +1 -27
  239. package/lib/commonjs/utils/getSafeAreaInsets.js +1 -40
  240. package/lib/commonjs/utils/getSafeAreaInsets.web.js +1 -0
  241. package/lib/commonjs/utils/index.js +1 -309
  242. package/lib/commonjs/utils/loadOptionalModule.js +1 -94
  243. package/lib/commonjs/utils/loadToolModule.js +1 -0
  244. package/lib/commonjs/utils/loadToolModule.web.js +1 -0
  245. package/lib/commonjs/utils/minimalSuperJSON.js +1 -347
  246. package/lib/commonjs/utils/modalStorage.js +1 -0
  247. package/lib/commonjs/utils/nativeWeb.js +1 -0
  248. package/lib/commonjs/utils/persistentStorage.js +1 -609
  249. package/lib/commonjs/utils/persistentStorage.web.js +1 -0
  250. package/lib/commonjs/utils/realNow.js +1 -0
  251. package/lib/commonjs/utils/reloadApp.js +1 -144
  252. package/lib/commonjs/utils/reloadPlatform.js +1 -0
  253. package/lib/commonjs/utils/reloadPlatform.web.js +1 -0
  254. package/lib/commonjs/utils/renderCaptureRegistry.js +1 -59
  255. package/lib/commonjs/utils/safeExpoRouter.js +1 -250
  256. package/lib/commonjs/utils/safeExpoRouter.web.js +1 -0
  257. package/lib/commonjs/utils/safeStringify.js +1 -229
  258. package/lib/commonjs/utils/snapshotProviderKit.js +1 -167
  259. package/lib/commonjs/utils/stateSnapshotRegistry.js +1 -71
  260. package/lib/commonjs/utils/stateTools.js +1 -160
  261. package/lib/commonjs/utils/subscribable.js +1 -113
  262. package/lib/commonjs/utils/subscriberCountNotifier.js +1 -72
  263. package/lib/commonjs/utils/time/RelativeTime.js +1 -31
  264. package/lib/commonjs/utils/time/TickContext.js +1 -43
  265. package/lib/commonjs/utils/time/formatRelativeTime.js +1 -34
  266. package/lib/commonjs/utils/time/index.js +1 -39
  267. package/lib/commonjs/utils/time/useRelativeTime.js +1 -36
  268. package/lib/commonjs/utils/toolModules.js +1 -0
  269. package/lib/commonjs/utils/typeHelpers.js +1 -142
  270. package/lib/commonjs/utils/valueFormatting.js +1 -140
  271. package/lib/module/JsModal.js +1 -1810
  272. package/lib/module/JsModal.web.js +1 -1648
  273. package/lib/module/clipboard/autoDetectClipboard.js +1 -45
  274. package/lib/module/clipboard/clipboard-impl.js +1 -121
  275. package/lib/module/clipboard/clipboard-impl.web.js +1 -0
  276. package/lib/module/clipboard/copyToClipboard.js +1 -60
  277. package/lib/module/clipboard/index.js +1 -5
  278. package/lib/module/colors/index.js +1 -21
  279. package/lib/module/context/HintsContext.js +1 -43
  280. package/lib/module/context/index.js +1 -3
  281. package/lib/module/dataViewer/CyberpunkInput.js +1 -384
  282. package/lib/module/dataViewer/DataTreeActionBar.js +1 -385
  283. package/lib/module/dataViewer/DataTreeActionDock.js +1 -222
  284. package/lib/module/dataViewer/DataViewer.js +1 -153
  285. package/lib/module/dataViewer/DiffSummary.js +1 -129
  286. package/lib/module/dataViewer/IndentGuides.js +1 -124
  287. package/lib/module/dataViewer/IndentGuidesOverlay.js +1 -99
  288. package/lib/module/dataViewer/JsonStringNotice.js +1 -54
  289. package/lib/module/dataViewer/LiveExplorer.js +1 -937
  290. package/lib/module/dataViewer/SplitDiffViewer.js +1 -416
  291. package/lib/module/dataViewer/ThemedSplitView.js +1 -637
  292. package/lib/module/dataViewer/TimestampDeltaBar.js +1 -91
  293. package/lib/module/dataViewer/TypeLegend.js +1 -105
  294. package/lib/module/dataViewer/ValueEditModal.js +1 -382
  295. package/lib/module/dataViewer/VirtualizedDataExplorer.js +1 -1265
  296. package/lib/module/dataViewer/diffThemes.js +1 -109
  297. package/lib/module/dataViewer/index.js +1 -57
  298. package/lib/module/dataViewer/jsonOps.js +1 -311
  299. package/lib/module/dataViewer/jsonStringValue.js +1 -89
  300. package/lib/module/dataViewer/lineDiff.js +1 -564
  301. package/lib/module/dataViewer/nestedPath.js +1 -109
  302. package/lib/module/dataViewer/objectDiff.js +1 -297
  303. package/lib/module/dataViewer/timestampDiff.js +1 -139
  304. package/lib/module/dataViewer/tree/TreeDiffViewer.js +1 -907
  305. package/lib/module/dataViewer/treeActions.js +1 -162
  306. package/lib/module/dataViewer/useTreeDraft.js +1 -121
  307. package/lib/module/dataViewer/useTreeEditor.js +1 -101
  308. package/lib/module/env/EnvironmentIndicator.js +1 -125
  309. package/lib/module/env/EnvironmentIndicator.web.js +1 -108
  310. package/lib/module/env/EnvironmentSelector.js +1 -201
  311. package/lib/module/env/EnvironmentSelectorInline.js +1 -295
  312. package/lib/module/env/EnvironmentSelectorInline.web.js +1 -173
  313. package/lib/module/history/HistoryProvider.js +1 -237
  314. package/lib/module/history/components/HistoryEntryRow.js +1 -142
  315. package/lib/module/history/components/HistoryList.js +1 -169
  316. package/lib/module/history/components/index.js +1 -8
  317. package/lib/module/history/index.js +1 -15
  318. package/lib/module/history/types.js +1 -3
  319. package/lib/module/hooks/index.js +1 -9
  320. package/lib/module/hooks/safe-area-impl.js +1 -23
  321. package/lib/module/hooks/useChangeLog.js +1 -50
  322. package/lib/module/hooks/useDeviceInfo.js +1 -519
  323. package/lib/module/hooks/useEventStoreEvents.js +1 -61
  324. package/lib/module/hooks/useFilterManager.js +1 -132
  325. package/lib/module/hooks/usePersistedState.js +1 -102
  326. package/lib/module/hooks/useSafeAreaInsets.js +1 -245
  327. package/lib/module/hooks/useSafeAreaInsets.web.js +1 -0
  328. package/lib/module/icons/BenchmarkIcon.js +1 -104
  329. package/lib/module/icons/EnvLaptopIcon.js +1 -199
  330. package/lib/module/icons/IconBackground.js +1 -274
  331. package/lib/module/icons/ReactQueryIcon.js +1 -12
  332. package/lib/module/icons/RenderCountIcon.js +1 -142
  333. package/lib/module/icons/RouteMapIcon.js +1 -245
  334. package/lib/module/icons/SentryBugIcon.js +1 -14
  335. package/lib/module/icons/StackPulseIcon.js +1 -153
  336. package/lib/module/icons/StorageStackIcon.js +1 -151
  337. package/lib/module/icons/WifiCircuitIcon.js +1 -164
  338. package/lib/module/icons/index.js +1 -62
  339. package/lib/module/icons/lucide-icons-original-full.js +1 -3178
  340. package/lib/module/icons/lucide-icons.js +1 -2420
  341. package/lib/module/icons/primitives/GlobeIcon.js +1 -61
  342. package/lib/module/icons/primitives/icon-primitives.js +1 -161
  343. package/lib/module/icons/primitives/index.js +1 -15
  344. package/lib/module/index.js +1 -108
  345. package/lib/module/license/AccountSetup.js +1 -52
  346. package/lib/module/license/AccountSetup.web.js +14 -77
  347. package/lib/module/license/AccountSetupContent.js +1 -0
  348. package/lib/module/license/FeatureGate.js +1 -778
  349. package/lib/module/license/FreeAccountPrompt.js +1 -199
  350. package/lib/module/license/LicenseEntryModal.js +2 -388
  351. package/lib/module/license/accountRuntime.js +1 -0
  352. package/lib/module/license/accountRuntime.web.js +1 -0
  353. package/lib/module/license/index.js +1 -9
  354. package/lib/module/license/licenseModule.js +1 -107
  355. package/lib/module/license/openPricing.js +1 -31
  356. package/lib/module/license/tierLimits.js +1 -122
  357. package/lib/module/logger/index-sentry.js +1 -230
  358. package/lib/module/logger/index.js +1 -13
  359. package/lib/module/logger/logDump.js +1 -13
  360. package/lib/module/logger/types.js +1 -37
  361. package/lib/module/settings/components/BubbleSettingsSection.js +1 -378
  362. package/lib/module/settings/index.js +1 -3
  363. package/lib/module/storage/definePersistedSetting.js +1 -63
  364. package/lib/module/storage/devToolsStorageKeys.js +1 -352
  365. package/lib/module/storage/index.js +1 -4
  366. package/lib/module/stores/BaseEventStore.js +1 -339
  367. package/lib/module/stores/ChangeLog.js +1 -192
  368. package/lib/module/stores/createToolStore.js +1 -189
  369. package/lib/module/stores/floatingToolStore.js +1 -61
  370. package/lib/module/stores/floatingToolStore.test.js +1 -111
  371. package/lib/module/stores/ignoredPatternsCore.js +1 -69
  372. package/lib/module/stores/ignoredPatternsStore.js +1 -189
  373. package/lib/module/stores/ignoredPatternsStore.shared.js +1 -0
  374. package/lib/module/stores/ignoredPatternsStore.web.js +1 -221
  375. package/lib/module/stores/index.js +1 -10
  376. package/lib/module/sync/keyedArrays.js +1 -204
  377. package/lib/module/sync/toolActionRegistry.js +1 -236
  378. package/lib/module/sync/toolAttention.test.js +1 -50
  379. package/lib/module/sync/toolSyncAdapter.js +1 -58
  380. package/lib/module/sync/toolUiBridge.js +1 -123
  381. package/lib/module/sync/typedEdit.js +1 -220
  382. package/lib/module/sync/valuePath.js +1 -330
  383. package/lib/module/sync/valueShape.js +1 -153
  384. package/lib/module/sync/wireBudget.js +1 -92
  385. package/lib/module/sync/wireForm.js +1 -159
  386. package/lib/module/tools/defineTool.js +1 -74
  387. package/lib/module/types/types.d.js +1 -1
  388. package/lib/module/types/types.js +1 -32
  389. package/lib/module/ui/backgrounds/BackgroundSwitcher.js +1 -350
  390. package/lib/module/ui/backgrounds/ToolBackground.js +1 -72
  391. package/lib/module/ui/backgrounds/backgroundStore.js +1 -125
  392. package/lib/module/ui/backgrounds/index.js +1 -19
  393. package/lib/module/ui/backgrounds/primitives.js +1 -365
  394. package/lib/module/ui/backgrounds/registry.js +1 -91
  395. package/lib/module/ui/backgrounds/rng.js +1 -85
  396. package/lib/module/ui/backgrounds/skyClock.js +1 -39
  397. package/lib/module/ui/backgrounds/types.js +1 -1
  398. package/lib/module/ui/backgrounds/variants/daylight.js +1 -449
  399. package/lib/module/ui/backgrounds/variants/deepField.js +1 -378
  400. package/lib/module/ui/backgrounds/variants/hyperspace.js +1 -214
  401. package/lib/module/ui/backgrounds/variants/liveSky.js +1 -893
  402. package/lib/module/ui/backgrounds/variants/meteors.js +1 -397
  403. package/lib/module/ui/backgrounds/variants/moonlight.js +1 -468
  404. package/lib/module/ui/backgrounds/variants/underwater.js +1 -753
  405. package/lib/module/ui/backgrounds/variants/wormhole/motion.js +1 -44
  406. package/lib/module/ui/backgrounds/variants/wormhole/textures.js +1 -3
  407. package/lib/module/ui/backgrounds/variants/wormhole.js +1 -129
  408. package/lib/module/ui/components/BackButton.js +1 -43
  409. package/lib/module/ui/components/Badge.js +1 -218
  410. package/lib/module/ui/components/ChangeRow.js +1 -106
  411. package/lib/module/ui/components/ChipStrip.js +1 -91
  412. package/lib/module/ui/components/ClipboardHintBanner.js +1 -145
  413. package/lib/module/ui/components/CollapsibleSection.js +1 -166
  414. package/lib/module/ui/components/CompactFilterChips.js +1 -110
  415. package/lib/module/ui/components/CompactRow.js +1 -291
  416. package/lib/module/ui/components/CopyButton.js +1 -303
  417. package/lib/module/ui/components/DataInspector.js +1 -319
  418. package/lib/module/ui/components/DetailView.js +1 -354
  419. package/lib/module/ui/components/DetailViewToggle.js +1 -125
  420. package/lib/module/ui/components/DevToolsCard.js +1 -122
  421. package/lib/module/ui/components/DraggableHeader.js +1 -211
  422. package/lib/module/ui/components/DynamicFilterView.js +1 -754
  423. package/lib/module/ui/components/EmptyState.js +1 -144
  424. package/lib/module/ui/components/EntityFilterView.js +1 -351
  425. package/lib/module/ui/components/EventHistoryViewer/CompareBar.js +1 -206
  426. package/lib/module/ui/components/EventHistoryViewer/DiffModeTabs.js +1 -94
  427. package/lib/module/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -179
  428. package/lib/module/ui/components/EventHistoryViewer/EventPickerModal.js +1 -203
  429. package/lib/module/ui/components/EventHistoryViewer/ViewToggleCards.js +1 -132
  430. package/lib/module/ui/components/EventHistoryViewer/index.js +1 -19
  431. package/lib/module/ui/components/EventHistoryViewer/types.js +1 -3
  432. package/lib/module/ui/components/EventListItem.js +1 -243
  433. package/lib/module/ui/components/EventStepperFooter.js +1 -180
  434. package/lib/module/ui/components/ExpandablePopover.js +1 -378
  435. package/lib/module/ui/components/ExpandedInfoRow.js +1 -103
  436. package/lib/module/ui/components/ExportPreview.js +1 -169
  437. package/lib/module/ui/components/FilterComponents.js +1 -282
  438. package/lib/module/ui/components/GripVerticalIcon.js +1 -61
  439. package/lib/module/ui/components/HeaderSearchButton.js +1 -46
  440. package/lib/module/ui/components/InfoRow.js +1 -87
  441. package/lib/module/ui/components/ListItem.js +1 -169
  442. package/lib/module/ui/components/ModalHeader.js +1 -297
  443. package/lib/module/ui/components/ModalHintBanner.js +1 -143
  444. package/lib/module/ui/components/Pill.js +1 -111
  445. package/lib/module/ui/components/PowerToggleButton.js +1 -74
  446. package/lib/module/ui/components/SearchBar.js +1 -161
  447. package/lib/module/ui/components/SectionHeader.js +1 -125
  448. package/lib/module/ui/components/StatsCard.js +1 -194
  449. package/lib/module/ui/components/StatusIndicator.js +1 -227
  450. package/lib/module/ui/components/StorageTypeBadge.js +1 -93
  451. package/lib/module/ui/components/TabSelector.js +1 -98
  452. package/lib/module/ui/components/TimeDisplay.js +1 -138
  453. package/lib/module/ui/components/ToggleRow.js +1 -112
  454. package/lib/module/ui/components/ToolButton.js +1 -89
  455. package/lib/module/ui/components/ToolEmptyState.js +1 -149
  456. package/lib/module/ui/components/ToolFooter.js +1 -197
  457. package/lib/module/ui/components/ValueTypeBadge.js +1 -143
  458. package/lib/module/ui/components/WindowControls.js +1 -383
  459. package/lib/module/ui/components/index.js +1 -52
  460. package/lib/module/ui/components/windowDrag.js +1 -41
  461. package/lib/module/ui/console/CyberpunkButtonOutline.js +1 -257
  462. package/lib/module/ui/console/CyberpunkIconContainer.js +1 -182
  463. package/lib/module/ui/console/CyberpunkSectionButton.js +1 -119
  464. package/lib/module/ui/floating/FloatingTool.js +1 -1003
  465. package/lib/module/ui/floating/FloatingTool.web.js +1 -590
  466. package/lib/module/ui/floating/FloatingToolHost.js +1 -29
  467. package/lib/module/ui/floating/FloatingToolHost.web.js +1 -25
  468. package/lib/module/ui/floating/index.js +1 -6
  469. package/lib/module/ui/floating/index.web.js +1 -6
  470. package/lib/module/ui/floating/onboardingConstants.js +1 -64
  471. package/lib/module/ui/floating/onboardingConstants.web.js +1 -27
  472. package/lib/module/ui/fonts.js +1 -8
  473. package/lib/module/ui/gameUI/components/GameUICollapsibleSection.js +1 -117
  474. package/lib/module/ui/gameUI/components/GameUICompactStats.js +1 -332
  475. package/lib/module/ui/gameUI/components/GameUIIssuesList.js +1 -280
  476. package/lib/module/ui/gameUI/components/GameUIStatusHeader.js +1 -141
  477. package/lib/module/ui/gameUI/constants/gameUIColors.js +1 -220
  478. package/lib/module/ui/gameUI/constants/macOSDesignSystemColors.js +1 -219
  479. package/lib/module/ui/gameUI/hooks/useGameUIAlertState.js +1 -105
  480. package/lib/module/ui/gameUI/index.js +1 -19
  481. package/lib/module/ui/index.js +1 -31
  482. package/lib/module/ui/listPresets.js +1 -39
  483. package/lib/module/ui/night/nightTheme.js +1 -126
  484. package/lib/module/ui/night/primitives.js +1 -504
  485. package/lib/module/ui/otto/OttoSceneView.js +1 -64
  486. package/lib/module/ui/otto/OttoSprite.js +1 -496
  487. package/lib/module/ui/otto/index.js +1 -22
  488. package/lib/module/ui/otto/ottoEngine.js +1 -2729
  489. package/lib/module/ui/otto/ottoScenes.js +1 -942
  490. package/lib/module/ui/otto/ottoSheet.js +1 -180
  491. package/lib/module/ui/toolTheme.js +1 -93
  492. package/lib/module/utils/absoluteFill.js +1 -24
  493. package/lib/module/utils/browserAsyncStorage.js +1 -0
  494. package/lib/module/utils/browserNavigation.js +1 -0
  495. package/lib/module/utils/devServer.js +1 -58
  496. package/lib/module/utils/devServer.web.js +1 -0
  497. package/lib/module/utils/displayValue.js +1 -36
  498. package/lib/module/utils/domRuntime.js +1 -0
  499. package/lib/module/utils/expoRouterModule.js +1 -0
  500. package/lib/module/utils/expoRouterModule.web.js +1 -0
  501. package/lib/module/utils/formatting/dataFormatting.js +1 -93
  502. package/lib/module/utils/formatting/httpFormatting.js +1 -142
  503. package/lib/module/utils/formatting/index.js +1 -8
  504. package/lib/module/utils/getSafeAreaInsets.js +1 -36
  505. package/lib/module/utils/getSafeAreaInsets.web.js +1 -0
  506. package/lib/module/utils/index.js +1 -18
  507. package/lib/module/utils/loadOptionalModule.js +1 -89
  508. package/lib/module/utils/loadToolModule.js +1 -0
  509. package/lib/module/utils/loadToolModule.web.js +1 -0
  510. package/lib/module/utils/minimalSuperJSON.js +1 -342
  511. package/lib/module/utils/modalStorage.js +1 -0
  512. package/lib/module/utils/nativeWeb.js +1 -0
  513. package/lib/module/utils/persistentStorage.js +1 -603
  514. package/lib/module/utils/persistentStorage.web.js +1 -0
  515. package/lib/module/utils/realNow.js +1 -0
  516. package/lib/module/utils/reloadApp.js +1 -137
  517. package/lib/module/utils/reloadPlatform.js +1 -0
  518. package/lib/module/utils/reloadPlatform.web.js +1 -0
  519. package/lib/module/utils/renderCaptureRegistry.js +1 -54
  520. package/lib/module/utils/safeExpoRouter.js +1 -239
  521. package/lib/module/utils/safeExpoRouter.web.js +1 -0
  522. package/lib/module/utils/safeStringify.js +1 -225
  523. package/lib/module/utils/snapshotProviderKit.js +1 -156
  524. package/lib/module/utils/stateSnapshotRegistry.js +1 -64
  525. package/lib/module/utils/stateTools.js +1 -154
  526. package/lib/module/utils/subscribable.js +1 -108
  527. package/lib/module/utils/subscriberCountNotifier.js +1 -66
  528. package/lib/module/utils/time/RelativeTime.js +1 -28
  529. package/lib/module/utils/time/TickContext.js +1 -38
  530. package/lib/module/utils/time/formatRelativeTime.js +1 -30
  531. package/lib/module/utils/time/index.js +1 -6
  532. package/lib/module/utils/time/useRelativeTime.js +1 -33
  533. package/lib/module/utils/toolModules.js +1 -0
  534. package/lib/module/utils/typeHelpers.js +1 -130
  535. package/lib/module/utils/valueFormatting.js +1 -131
  536. package/lib/typescript/commonjs/JsModal.web.d.ts +7 -18
  537. package/lib/typescript/commonjs/clipboard/clipboard-impl.web.d.ts +5 -0
  538. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  539. package/lib/typescript/commonjs/hooks/useSafeAreaInsets.web.d.ts +6 -0
  540. package/lib/typescript/commonjs/icons/index.d.ts +2 -0
  541. package/lib/typescript/commonjs/index.d.ts +3 -1
  542. package/lib/typescript/commonjs/license/AccountSetup.web.d.ts +1 -1
  543. package/lib/typescript/commonjs/license/AccountSetupContent.d.ts +11 -0
  544. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts +3 -15
  545. package/lib/typescript/commonjs/license/accountRuntime.d.ts +2 -0
  546. package/lib/typescript/commonjs/license/accountRuntime.web.d.ts +2 -0
  547. package/lib/typescript/commonjs/license/licenseModule.d.ts +3 -1
  548. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +8 -0
  549. package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts +1 -59
  550. package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts +60 -0
  551. package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts +1 -71
  552. package/lib/typescript/commonjs/ui/night/primitives.d.ts +9 -3
  553. package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts +1 -1
  554. package/lib/typescript/commonjs/utils/browserAsyncStorage.d.ts +25 -0
  555. package/lib/typescript/commonjs/utils/browserNavigation.d.ts +31 -0
  556. package/lib/typescript/commonjs/utils/devServer.web.d.ts +2 -0
  557. package/lib/typescript/commonjs/utils/domRuntime.d.ts +27 -0
  558. package/lib/typescript/commonjs/utils/expoRouterModule.d.ts +3 -0
  559. package/lib/typescript/commonjs/utils/expoRouterModule.web.d.ts +3 -0
  560. package/lib/typescript/commonjs/utils/getSafeAreaInsets.web.d.ts +8 -0
  561. package/lib/typescript/commonjs/utils/index.d.ts +6 -0
  562. package/lib/typescript/commonjs/utils/loadToolModule.d.ts +3 -0
  563. package/lib/typescript/commonjs/utils/loadToolModule.web.d.ts +2 -0
  564. package/lib/typescript/commonjs/utils/modalStorage.d.ts +21 -0
  565. package/lib/typescript/commonjs/utils/nativeWeb.d.ts +22 -0
  566. package/lib/typescript/commonjs/utils/persistentStorage.web.d.ts +6 -0
  567. package/lib/typescript/commonjs/utils/realNow.d.ts +11 -0
  568. package/lib/typescript/commonjs/utils/reloadApp.d.ts +7 -25
  569. package/lib/typescript/commonjs/utils/reloadPlatform.d.ts +8 -0
  570. package/lib/typescript/commonjs/utils/reloadPlatform.web.d.ts +4 -0
  571. package/lib/typescript/commonjs/utils/safeExpoRouter.web.d.ts +43 -0
  572. package/lib/typescript/commonjs/utils/toolModules.d.ts +5 -0
  573. package/lib/typescript/module/JsModal.web.d.ts +7 -18
  574. package/lib/typescript/module/clipboard/clipboard-impl.web.d.ts +5 -0
  575. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  576. package/lib/typescript/module/hooks/useSafeAreaInsets.web.d.ts +6 -0
  577. package/lib/typescript/module/icons/index.d.ts +2 -0
  578. package/lib/typescript/module/index.d.ts +3 -1
  579. package/lib/typescript/module/license/AccountSetup.web.d.ts +1 -1
  580. package/lib/typescript/module/license/AccountSetupContent.d.ts +11 -0
  581. package/lib/typescript/module/license/FreeAccountPrompt.d.ts +3 -15
  582. package/lib/typescript/module/license/accountRuntime.d.ts +2 -0
  583. package/lib/typescript/module/license/accountRuntime.web.d.ts +2 -0
  584. package/lib/typescript/module/license/licenseModule.d.ts +3 -1
  585. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +8 -0
  586. package/lib/typescript/module/stores/ignoredPatternsStore.d.ts +1 -59
  587. package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts +60 -0
  588. package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts +1 -71
  589. package/lib/typescript/module/ui/night/primitives.d.ts +9 -3
  590. package/lib/typescript/module/ui/otto/ottoEngine.d.ts +1 -1
  591. package/lib/typescript/module/utils/browserAsyncStorage.d.ts +25 -0
  592. package/lib/typescript/module/utils/browserNavigation.d.ts +31 -0
  593. package/lib/typescript/module/utils/devServer.web.d.ts +2 -0
  594. package/lib/typescript/module/utils/domRuntime.d.ts +27 -0
  595. package/lib/typescript/module/utils/expoRouterModule.d.ts +3 -0
  596. package/lib/typescript/module/utils/expoRouterModule.web.d.ts +3 -0
  597. package/lib/typescript/module/utils/getSafeAreaInsets.web.d.ts +8 -0
  598. package/lib/typescript/module/utils/index.d.ts +6 -0
  599. package/lib/typescript/module/utils/loadToolModule.d.ts +3 -0
  600. package/lib/typescript/module/utils/loadToolModule.web.d.ts +2 -0
  601. package/lib/typescript/module/utils/modalStorage.d.ts +21 -0
  602. package/lib/typescript/module/utils/nativeWeb.d.ts +22 -0
  603. package/lib/typescript/module/utils/persistentStorage.web.d.ts +6 -0
  604. package/lib/typescript/module/utils/realNow.d.ts +11 -0
  605. package/lib/typescript/module/utils/reloadApp.d.ts +7 -25
  606. package/lib/typescript/module/utils/reloadPlatform.d.ts +8 -0
  607. package/lib/typescript/module/utils/reloadPlatform.web.d.ts +4 -0
  608. package/lib/typescript/module/utils/safeExpoRouter.web.d.ts +43 -0
  609. package/lib/typescript/module/utils/toolModules.d.ts +5 -0
  610. package/lib/web/asyncStorage.mjs +1 -0
  611. package/lib/web/chunks/chunk-26OV3QDY.mjs +1 -0
  612. package/lib/web/chunks/chunk-3UTMGIUG.mjs +1 -0
  613. package/lib/web/chunks/chunk-53J2FMUD.mjs +1 -0
  614. package/lib/web/chunks/chunk-5KWAGM5V.mjs +1 -0
  615. package/lib/web/chunks/chunk-5NZOQR6Q.mjs +1 -0
  616. package/lib/web/chunks/chunk-7PRKERDN.mjs +1 -0
  617. package/lib/web/chunks/chunk-CE5U3CSQ.mjs +1 -0
  618. package/lib/web/chunks/chunk-D4RXBAOO.mjs +15 -0
  619. package/lib/web/chunks/chunk-ER3T3IDI.mjs +1 -0
  620. package/lib/web/chunks/chunk-GF5C5DVX.mjs +1 -0
  621. package/lib/web/chunks/chunk-K7CGIEFU.mjs +1 -0
  622. package/lib/web/chunks/chunk-L3AFTHWX.mjs +14 -0
  623. package/lib/web/chunks/chunk-LZ7FZZ7R.mjs +1 -0
  624. package/lib/web/chunks/chunk-PTK5FO6C.mjs +1 -0
  625. package/lib/web/chunks/chunk-TJUBBXXK.mjs +1 -0
  626. package/lib/web/chunks/chunk-UKYVRCMZ.mjs +1 -0
  627. package/lib/web/chunks/chunk-XYUAUO57.mjs +1 -0
  628. package/lib/web/chunks/persistentStorage.web-6OAJAVRK.mjs +1 -0
  629. package/lib/web/colors.mjs +1 -0
  630. package/lib/web/dataViewer.mjs +2 -0
  631. package/lib/web/floating.mjs +1 -0
  632. package/lib/web/history.mjs +1 -0
  633. package/lib/web/hooks.mjs +1 -0
  634. package/lib/web/index.mjs +14 -0
  635. package/lib/web/native.mjs +1 -0
  636. package/lib/web/ui.mjs +1 -0
  637. package/lib/web/utils.mjs +1 -0
  638. package/package.json +121 -38
  639. package/scripts/detect-clipboard.js +5 -121
  640. package/scripts/detect-safe-area.js +3 -127
  641. package/ui.js +1 -7
  642. package/utils.js +1 -7
  643. package/lib/typescript/commonjs/JsModal.d.ts.map +0 -1
  644. package/lib/typescript/commonjs/JsModal.web.d.ts.map +0 -1
  645. package/lib/typescript/commonjs/clipboard/autoDetectClipboard.d.ts.map +0 -1
  646. package/lib/typescript/commonjs/clipboard/clipboard-impl.d.ts.map +0 -1
  647. package/lib/typescript/commonjs/clipboard/copyToClipboard.d.ts.map +0 -1
  648. package/lib/typescript/commonjs/clipboard/index.d.ts.map +0 -1
  649. package/lib/typescript/commonjs/colors/index.d.ts.map +0 -1
  650. package/lib/typescript/commonjs/context/HintsContext.d.ts.map +0 -1
  651. package/lib/typescript/commonjs/context/index.d.ts.map +0 -1
  652. package/lib/typescript/commonjs/dataViewer/CyberpunkInput.d.ts.map +0 -1
  653. package/lib/typescript/commonjs/dataViewer/DataTreeActionBar.d.ts.map +0 -1
  654. package/lib/typescript/commonjs/dataViewer/DataTreeActionDock.d.ts.map +0 -1
  655. package/lib/typescript/commonjs/dataViewer/DataViewer.d.ts.map +0 -1
  656. package/lib/typescript/commonjs/dataViewer/DiffSummary.d.ts.map +0 -1
  657. package/lib/typescript/commonjs/dataViewer/IndentGuides.d.ts.map +0 -1
  658. package/lib/typescript/commonjs/dataViewer/IndentGuidesOverlay.d.ts.map +0 -1
  659. package/lib/typescript/commonjs/dataViewer/JsonStringNotice.d.ts.map +0 -1
  660. package/lib/typescript/commonjs/dataViewer/LiveExplorer.d.ts.map +0 -1
  661. package/lib/typescript/commonjs/dataViewer/SplitDiffViewer.d.ts.map +0 -1
  662. package/lib/typescript/commonjs/dataViewer/ThemedSplitView.d.ts.map +0 -1
  663. package/lib/typescript/commonjs/dataViewer/TimestampDeltaBar.d.ts.map +0 -1
  664. package/lib/typescript/commonjs/dataViewer/TypeLegend.d.ts.map +0 -1
  665. package/lib/typescript/commonjs/dataViewer/ValueEditModal.d.ts.map +0 -1
  666. package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts.map +0 -1
  667. package/lib/typescript/commonjs/dataViewer/diffThemes.d.ts.map +0 -1
  668. package/lib/typescript/commonjs/dataViewer/index.d.ts.map +0 -1
  669. package/lib/typescript/commonjs/dataViewer/jsonOps.d.ts.map +0 -1
  670. package/lib/typescript/commonjs/dataViewer/jsonStringValue.d.ts.map +0 -1
  671. package/lib/typescript/commonjs/dataViewer/lineDiff.d.ts.map +0 -1
  672. package/lib/typescript/commonjs/dataViewer/nestedPath.d.ts.map +0 -1
  673. package/lib/typescript/commonjs/dataViewer/objectDiff.d.ts.map +0 -1
  674. package/lib/typescript/commonjs/dataViewer/timestampDiff.d.ts.map +0 -1
  675. package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +0 -1
  676. package/lib/typescript/commonjs/dataViewer/treeActions.d.ts.map +0 -1
  677. package/lib/typescript/commonjs/dataViewer/useTreeDraft.d.ts.map +0 -1
  678. package/lib/typescript/commonjs/dataViewer/useTreeEditor.d.ts.map +0 -1
  679. package/lib/typescript/commonjs/env/EnvironmentIndicator.d.ts.map +0 -1
  680. package/lib/typescript/commonjs/env/EnvironmentIndicator.web.d.ts.map +0 -1
  681. package/lib/typescript/commonjs/env/EnvironmentSelector.d.ts.map +0 -1
  682. package/lib/typescript/commonjs/env/EnvironmentSelectorInline.d.ts.map +0 -1
  683. package/lib/typescript/commonjs/env/EnvironmentSelectorInline.web.d.ts.map +0 -1
  684. package/lib/typescript/commonjs/history/HistoryProvider.d.ts.map +0 -1
  685. package/lib/typescript/commonjs/history/components/HistoryEntryRow.d.ts.map +0 -1
  686. package/lib/typescript/commonjs/history/components/HistoryList.d.ts.map +0 -1
  687. package/lib/typescript/commonjs/history/components/index.d.ts.map +0 -1
  688. package/lib/typescript/commonjs/history/index.d.ts.map +0 -1
  689. package/lib/typescript/commonjs/history/types.d.ts.map +0 -1
  690. package/lib/typescript/commonjs/hooks/index.d.ts.map +0 -1
  691. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts.map +0 -1
  692. package/lib/typescript/commonjs/hooks/useChangeLog.d.ts.map +0 -1
  693. package/lib/typescript/commonjs/hooks/useDeviceInfo.d.ts.map +0 -1
  694. package/lib/typescript/commonjs/hooks/useEventStoreEvents.d.ts.map +0 -1
  695. package/lib/typescript/commonjs/hooks/useFilterManager.d.ts.map +0 -1
  696. package/lib/typescript/commonjs/hooks/usePersistedState.d.ts.map +0 -1
  697. package/lib/typescript/commonjs/hooks/useSafeAreaInsets.d.ts.map +0 -1
  698. package/lib/typescript/commonjs/icons/BenchmarkIcon.d.ts.map +0 -1
  699. package/lib/typescript/commonjs/icons/EnvLaptopIcon.d.ts.map +0 -1
  700. package/lib/typescript/commonjs/icons/IconBackground.d.ts.map +0 -1
  701. package/lib/typescript/commonjs/icons/ReactQueryIcon.d.ts.map +0 -1
  702. package/lib/typescript/commonjs/icons/RenderCountIcon.d.ts.map +0 -1
  703. package/lib/typescript/commonjs/icons/RouteMapIcon.d.ts.map +0 -1
  704. package/lib/typescript/commonjs/icons/SentryBugIcon.d.ts.map +0 -1
  705. package/lib/typescript/commonjs/icons/StackPulseIcon.d.ts.map +0 -1
  706. package/lib/typescript/commonjs/icons/StorageStackIcon.d.ts.map +0 -1
  707. package/lib/typescript/commonjs/icons/WifiCircuitIcon.d.ts.map +0 -1
  708. package/lib/typescript/commonjs/icons/index.d.ts.map +0 -1
  709. package/lib/typescript/commonjs/icons/lucide-icons-original-full.d.ts.map +0 -1
  710. package/lib/typescript/commonjs/icons/lucide-icons.d.ts.map +0 -1
  711. package/lib/typescript/commonjs/icons/primitives/GlobeIcon.d.ts.map +0 -1
  712. package/lib/typescript/commonjs/icons/primitives/icon-primitives.d.ts.map +0 -1
  713. package/lib/typescript/commonjs/icons/primitives/index.d.ts.map +0 -1
  714. package/lib/typescript/commonjs/index.d.ts.map +0 -1
  715. package/lib/typescript/commonjs/license/AccountSetup.d.ts.map +0 -1
  716. package/lib/typescript/commonjs/license/AccountSetup.web.d.ts.map +0 -1
  717. package/lib/typescript/commonjs/license/FeatureGate.d.ts.map +0 -1
  718. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +0 -1
  719. package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts.map +0 -1
  720. package/lib/typescript/commonjs/license/index.d.ts.map +0 -1
  721. package/lib/typescript/commonjs/license/licenseModule.d.ts.map +0 -1
  722. package/lib/typescript/commonjs/license/openPricing.d.ts.map +0 -1
  723. package/lib/typescript/commonjs/license/tierLimits.d.ts.map +0 -1
  724. package/lib/typescript/commonjs/logger/index-sentry.d.ts.map +0 -1
  725. package/lib/typescript/commonjs/logger/index.d.ts.map +0 -1
  726. package/lib/typescript/commonjs/logger/logDump.d.ts.map +0 -1
  727. package/lib/typescript/commonjs/logger/types.d.ts.map +0 -1
  728. package/lib/typescript/commonjs/settings/components/BubbleSettingsSection.d.ts.map +0 -1
  729. package/lib/typescript/commonjs/settings/index.d.ts.map +0 -1
  730. package/lib/typescript/commonjs/storage/definePersistedSetting.d.ts.map +0 -1
  731. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +0 -1
  732. package/lib/typescript/commonjs/storage/index.d.ts.map +0 -1
  733. package/lib/typescript/commonjs/stores/BaseEventStore.d.ts.map +0 -1
  734. package/lib/typescript/commonjs/stores/ChangeLog.d.ts.map +0 -1
  735. package/lib/typescript/commonjs/stores/createToolStore.d.ts.map +0 -1
  736. package/lib/typescript/commonjs/stores/floatingToolStore.d.ts.map +0 -1
  737. package/lib/typescript/commonjs/stores/floatingToolStore.test.d.ts.map +0 -1
  738. package/lib/typescript/commonjs/stores/ignoredPatternsCore.d.ts.map +0 -1
  739. package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts.map +0 -1
  740. package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts.map +0 -1
  741. package/lib/typescript/commonjs/stores/index.d.ts.map +0 -1
  742. package/lib/typescript/commonjs/sync/keyedArrays.d.ts.map +0 -1
  743. package/lib/typescript/commonjs/sync/toolActionRegistry.d.ts.map +0 -1
  744. package/lib/typescript/commonjs/sync/toolAttention.test.d.ts.map +0 -1
  745. package/lib/typescript/commonjs/sync/toolSyncAdapter.d.ts.map +0 -1
  746. package/lib/typescript/commonjs/sync/toolUiBridge.d.ts.map +0 -1
  747. package/lib/typescript/commonjs/sync/typedEdit.d.ts.map +0 -1
  748. package/lib/typescript/commonjs/sync/valuePath.d.ts.map +0 -1
  749. package/lib/typescript/commonjs/sync/valueShape.d.ts.map +0 -1
  750. package/lib/typescript/commonjs/sync/wireBudget.d.ts.map +0 -1
  751. package/lib/typescript/commonjs/sync/wireForm.d.ts.map +0 -1
  752. package/lib/typescript/commonjs/tools/defineTool.d.ts.map +0 -1
  753. package/lib/typescript/commonjs/types/types.d.ts.map +0 -1
  754. package/lib/typescript/commonjs/ui/backgrounds/BackgroundSwitcher.d.ts.map +0 -1
  755. package/lib/typescript/commonjs/ui/backgrounds/ToolBackground.d.ts.map +0 -1
  756. package/lib/typescript/commonjs/ui/backgrounds/backgroundStore.d.ts.map +0 -1
  757. package/lib/typescript/commonjs/ui/backgrounds/index.d.ts.map +0 -1
  758. package/lib/typescript/commonjs/ui/backgrounds/primitives.d.ts.map +0 -1
  759. package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts.map +0 -1
  760. package/lib/typescript/commonjs/ui/backgrounds/rng.d.ts.map +0 -1
  761. package/lib/typescript/commonjs/ui/backgrounds/skyClock.d.ts.map +0 -1
  762. package/lib/typescript/commonjs/ui/backgrounds/types.d.ts.map +0 -1
  763. package/lib/typescript/commonjs/ui/backgrounds/variants/daylight.d.ts.map +0 -1
  764. package/lib/typescript/commonjs/ui/backgrounds/variants/deepField.d.ts.map +0 -1
  765. package/lib/typescript/commonjs/ui/backgrounds/variants/hyperspace.d.ts.map +0 -1
  766. package/lib/typescript/commonjs/ui/backgrounds/variants/liveSky.d.ts.map +0 -1
  767. package/lib/typescript/commonjs/ui/backgrounds/variants/meteors.d.ts.map +0 -1
  768. package/lib/typescript/commonjs/ui/backgrounds/variants/moonlight.d.ts.map +0 -1
  769. package/lib/typescript/commonjs/ui/backgrounds/variants/underwater.d.ts.map +0 -1
  770. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/motion.d.ts.map +0 -1
  771. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/textures.d.ts.map +0 -1
  772. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole.d.ts.map +0 -1
  773. package/lib/typescript/commonjs/ui/components/BackButton.d.ts.map +0 -1
  774. package/lib/typescript/commonjs/ui/components/Badge.d.ts.map +0 -1
  775. package/lib/typescript/commonjs/ui/components/ChangeRow.d.ts.map +0 -1
  776. package/lib/typescript/commonjs/ui/components/ChipStrip.d.ts.map +0 -1
  777. package/lib/typescript/commonjs/ui/components/ClipboardHintBanner.d.ts.map +0 -1
  778. package/lib/typescript/commonjs/ui/components/CollapsibleSection.d.ts.map +0 -1
  779. package/lib/typescript/commonjs/ui/components/CompactFilterChips.d.ts.map +0 -1
  780. package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +0 -1
  781. package/lib/typescript/commonjs/ui/components/CopyButton.d.ts.map +0 -1
  782. package/lib/typescript/commonjs/ui/components/DataInspector.d.ts.map +0 -1
  783. package/lib/typescript/commonjs/ui/components/DetailView.d.ts.map +0 -1
  784. package/lib/typescript/commonjs/ui/components/DetailViewToggle.d.ts.map +0 -1
  785. package/lib/typescript/commonjs/ui/components/DevToolsCard.d.ts.map +0 -1
  786. package/lib/typescript/commonjs/ui/components/DraggableHeader.d.ts.map +0 -1
  787. package/lib/typescript/commonjs/ui/components/DynamicFilterView.d.ts.map +0 -1
  788. package/lib/typescript/commonjs/ui/components/EmptyState.d.ts.map +0 -1
  789. package/lib/typescript/commonjs/ui/components/EntityFilterView.d.ts.map +0 -1
  790. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/CompareBar.d.ts.map +0 -1
  791. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +0 -1
  792. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +0 -1
  793. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +0 -1
  794. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/ViewToggleCards.d.ts.map +0 -1
  795. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/index.d.ts.map +0 -1
  796. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/types.d.ts.map +0 -1
  797. package/lib/typescript/commonjs/ui/components/EventListItem.d.ts.map +0 -1
  798. package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts.map +0 -1
  799. package/lib/typescript/commonjs/ui/components/ExpandablePopover.d.ts.map +0 -1
  800. package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts.map +0 -1
  801. package/lib/typescript/commonjs/ui/components/ExportPreview.d.ts.map +0 -1
  802. package/lib/typescript/commonjs/ui/components/FilterComponents.d.ts.map +0 -1
  803. package/lib/typescript/commonjs/ui/components/GripVerticalIcon.d.ts.map +0 -1
  804. package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts.map +0 -1
  805. package/lib/typescript/commonjs/ui/components/InfoRow.d.ts.map +0 -1
  806. package/lib/typescript/commonjs/ui/components/ListItem.d.ts.map +0 -1
  807. package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts.map +0 -1
  808. package/lib/typescript/commonjs/ui/components/ModalHintBanner.d.ts.map +0 -1
  809. package/lib/typescript/commonjs/ui/components/Pill.d.ts.map +0 -1
  810. package/lib/typescript/commonjs/ui/components/PowerToggleButton.d.ts.map +0 -1
  811. package/lib/typescript/commonjs/ui/components/SearchBar.d.ts.map +0 -1
  812. package/lib/typescript/commonjs/ui/components/SectionHeader.d.ts.map +0 -1
  813. package/lib/typescript/commonjs/ui/components/StatsCard.d.ts.map +0 -1
  814. package/lib/typescript/commonjs/ui/components/StatusIndicator.d.ts.map +0 -1
  815. package/lib/typescript/commonjs/ui/components/StorageTypeBadge.d.ts.map +0 -1
  816. package/lib/typescript/commonjs/ui/components/TabSelector.d.ts.map +0 -1
  817. package/lib/typescript/commonjs/ui/components/TimeDisplay.d.ts.map +0 -1
  818. package/lib/typescript/commonjs/ui/components/ToggleRow.d.ts.map +0 -1
  819. package/lib/typescript/commonjs/ui/components/ToolButton.d.ts.map +0 -1
  820. package/lib/typescript/commonjs/ui/components/ToolEmptyState.d.ts.map +0 -1
  821. package/lib/typescript/commonjs/ui/components/ToolFooter.d.ts.map +0 -1
  822. package/lib/typescript/commonjs/ui/components/ValueTypeBadge.d.ts.map +0 -1
  823. package/lib/typescript/commonjs/ui/components/WindowControls.d.ts.map +0 -1
  824. package/lib/typescript/commonjs/ui/components/index.d.ts.map +0 -1
  825. package/lib/typescript/commonjs/ui/components/windowDrag.d.ts.map +0 -1
  826. package/lib/typescript/commonjs/ui/console/CyberpunkButtonOutline.d.ts.map +0 -1
  827. package/lib/typescript/commonjs/ui/console/CyberpunkIconContainer.d.ts.map +0 -1
  828. package/lib/typescript/commonjs/ui/console/CyberpunkSectionButton.d.ts.map +0 -1
  829. package/lib/typescript/commonjs/ui/floating/FloatingTool.d.ts.map +0 -1
  830. package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts.map +0 -1
  831. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.d.ts.map +0 -1
  832. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.web.d.ts.map +0 -1
  833. package/lib/typescript/commonjs/ui/floating/index.d.ts.map +0 -1
  834. package/lib/typescript/commonjs/ui/floating/index.web.d.ts.map +0 -1
  835. package/lib/typescript/commonjs/ui/floating/onboardingConstants.d.ts.map +0 -1
  836. package/lib/typescript/commonjs/ui/floating/onboardingConstants.web.d.ts.map +0 -1
  837. package/lib/typescript/commonjs/ui/fonts.d.ts.map +0 -1
  838. package/lib/typescript/commonjs/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +0 -1
  839. package/lib/typescript/commonjs/ui/gameUI/components/GameUICompactStats.d.ts.map +0 -1
  840. package/lib/typescript/commonjs/ui/gameUI/components/GameUIIssuesList.d.ts.map +0 -1
  841. package/lib/typescript/commonjs/ui/gameUI/components/GameUIStatusHeader.d.ts.map +0 -1
  842. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +0 -1
  843. package/lib/typescript/commonjs/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +0 -1
  844. package/lib/typescript/commonjs/ui/gameUI/hooks/useGameUIAlertState.d.ts.map +0 -1
  845. package/lib/typescript/commonjs/ui/gameUI/index.d.ts.map +0 -1
  846. package/lib/typescript/commonjs/ui/index.d.ts.map +0 -1
  847. package/lib/typescript/commonjs/ui/listPresets.d.ts.map +0 -1
  848. package/lib/typescript/commonjs/ui/night/nightTheme.d.ts.map +0 -1
  849. package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +0 -1
  850. package/lib/typescript/commonjs/ui/otto/OttoSceneView.d.ts.map +0 -1
  851. package/lib/typescript/commonjs/ui/otto/OttoSprite.d.ts.map +0 -1
  852. package/lib/typescript/commonjs/ui/otto/index.d.ts.map +0 -1
  853. package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts.map +0 -1
  854. package/lib/typescript/commonjs/ui/otto/ottoScenes.d.ts.map +0 -1
  855. package/lib/typescript/commonjs/ui/otto/ottoSheet.d.ts.map +0 -1
  856. package/lib/typescript/commonjs/ui/toolTheme.d.ts.map +0 -1
  857. package/lib/typescript/commonjs/utils/absoluteFill.d.ts.map +0 -1
  858. package/lib/typescript/commonjs/utils/devServer.d.ts.map +0 -1
  859. package/lib/typescript/commonjs/utils/displayValue.d.ts.map +0 -1
  860. package/lib/typescript/commonjs/utils/formatting/dataFormatting.d.ts.map +0 -1
  861. package/lib/typescript/commonjs/utils/formatting/httpFormatting.d.ts.map +0 -1
  862. package/lib/typescript/commonjs/utils/formatting/index.d.ts.map +0 -1
  863. package/lib/typescript/commonjs/utils/getSafeAreaInsets.d.ts.map +0 -1
  864. package/lib/typescript/commonjs/utils/index.d.ts.map +0 -1
  865. package/lib/typescript/commonjs/utils/loadOptionalModule.d.ts.map +0 -1
  866. package/lib/typescript/commonjs/utils/minimalSuperJSON.d.ts.map +0 -1
  867. package/lib/typescript/commonjs/utils/persistentStorage.d.ts.map +0 -1
  868. package/lib/typescript/commonjs/utils/reloadApp.d.ts.map +0 -1
  869. package/lib/typescript/commonjs/utils/renderCaptureRegistry.d.ts.map +0 -1
  870. package/lib/typescript/commonjs/utils/safeExpoRouter.d.ts.map +0 -1
  871. package/lib/typescript/commonjs/utils/safeStringify.d.ts.map +0 -1
  872. package/lib/typescript/commonjs/utils/snapshotProviderKit.d.ts.map +0 -1
  873. package/lib/typescript/commonjs/utils/stateSnapshotRegistry.d.ts.map +0 -1
  874. package/lib/typescript/commonjs/utils/stateTools.d.ts.map +0 -1
  875. package/lib/typescript/commonjs/utils/subscribable.d.ts.map +0 -1
  876. package/lib/typescript/commonjs/utils/subscriberCountNotifier.d.ts.map +0 -1
  877. package/lib/typescript/commonjs/utils/time/RelativeTime.d.ts.map +0 -1
  878. package/lib/typescript/commonjs/utils/time/TickContext.d.ts.map +0 -1
  879. package/lib/typescript/commonjs/utils/time/formatRelativeTime.d.ts.map +0 -1
  880. package/lib/typescript/commonjs/utils/time/index.d.ts.map +0 -1
  881. package/lib/typescript/commonjs/utils/time/useRelativeTime.d.ts.map +0 -1
  882. package/lib/typescript/commonjs/utils/typeHelpers.d.ts.map +0 -1
  883. package/lib/typescript/commonjs/utils/valueFormatting.d.ts.map +0 -1
  884. package/lib/typescript/module/JsModal.d.ts.map +0 -1
  885. package/lib/typescript/module/JsModal.web.d.ts.map +0 -1
  886. package/lib/typescript/module/clipboard/autoDetectClipboard.d.ts.map +0 -1
  887. package/lib/typescript/module/clipboard/clipboard-impl.d.ts.map +0 -1
  888. package/lib/typescript/module/clipboard/copyToClipboard.d.ts.map +0 -1
  889. package/lib/typescript/module/clipboard/index.d.ts.map +0 -1
  890. package/lib/typescript/module/colors/index.d.ts.map +0 -1
  891. package/lib/typescript/module/context/HintsContext.d.ts.map +0 -1
  892. package/lib/typescript/module/context/index.d.ts.map +0 -1
  893. package/lib/typescript/module/dataViewer/CyberpunkInput.d.ts.map +0 -1
  894. package/lib/typescript/module/dataViewer/DataTreeActionBar.d.ts.map +0 -1
  895. package/lib/typescript/module/dataViewer/DataTreeActionDock.d.ts.map +0 -1
  896. package/lib/typescript/module/dataViewer/DataViewer.d.ts.map +0 -1
  897. package/lib/typescript/module/dataViewer/DiffSummary.d.ts.map +0 -1
  898. package/lib/typescript/module/dataViewer/IndentGuides.d.ts.map +0 -1
  899. package/lib/typescript/module/dataViewer/IndentGuidesOverlay.d.ts.map +0 -1
  900. package/lib/typescript/module/dataViewer/JsonStringNotice.d.ts.map +0 -1
  901. package/lib/typescript/module/dataViewer/LiveExplorer.d.ts.map +0 -1
  902. package/lib/typescript/module/dataViewer/SplitDiffViewer.d.ts.map +0 -1
  903. package/lib/typescript/module/dataViewer/ThemedSplitView.d.ts.map +0 -1
  904. package/lib/typescript/module/dataViewer/TimestampDeltaBar.d.ts.map +0 -1
  905. package/lib/typescript/module/dataViewer/TypeLegend.d.ts.map +0 -1
  906. package/lib/typescript/module/dataViewer/ValueEditModal.d.ts.map +0 -1
  907. package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts.map +0 -1
  908. package/lib/typescript/module/dataViewer/diffThemes.d.ts.map +0 -1
  909. package/lib/typescript/module/dataViewer/index.d.ts.map +0 -1
  910. package/lib/typescript/module/dataViewer/jsonOps.d.ts.map +0 -1
  911. package/lib/typescript/module/dataViewer/jsonStringValue.d.ts.map +0 -1
  912. package/lib/typescript/module/dataViewer/lineDiff.d.ts.map +0 -1
  913. package/lib/typescript/module/dataViewer/nestedPath.d.ts.map +0 -1
  914. package/lib/typescript/module/dataViewer/objectDiff.d.ts.map +0 -1
  915. package/lib/typescript/module/dataViewer/timestampDiff.d.ts.map +0 -1
  916. package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +0 -1
  917. package/lib/typescript/module/dataViewer/treeActions.d.ts.map +0 -1
  918. package/lib/typescript/module/dataViewer/useTreeDraft.d.ts.map +0 -1
  919. package/lib/typescript/module/dataViewer/useTreeEditor.d.ts.map +0 -1
  920. package/lib/typescript/module/env/EnvironmentIndicator.d.ts.map +0 -1
  921. package/lib/typescript/module/env/EnvironmentIndicator.web.d.ts.map +0 -1
  922. package/lib/typescript/module/env/EnvironmentSelector.d.ts.map +0 -1
  923. package/lib/typescript/module/env/EnvironmentSelectorInline.d.ts.map +0 -1
  924. package/lib/typescript/module/env/EnvironmentSelectorInline.web.d.ts.map +0 -1
  925. package/lib/typescript/module/history/HistoryProvider.d.ts.map +0 -1
  926. package/lib/typescript/module/history/components/HistoryEntryRow.d.ts.map +0 -1
  927. package/lib/typescript/module/history/components/HistoryList.d.ts.map +0 -1
  928. package/lib/typescript/module/history/components/index.d.ts.map +0 -1
  929. package/lib/typescript/module/history/index.d.ts.map +0 -1
  930. package/lib/typescript/module/history/types.d.ts.map +0 -1
  931. package/lib/typescript/module/hooks/index.d.ts.map +0 -1
  932. package/lib/typescript/module/hooks/safe-area-impl.d.ts.map +0 -1
  933. package/lib/typescript/module/hooks/useChangeLog.d.ts.map +0 -1
  934. package/lib/typescript/module/hooks/useDeviceInfo.d.ts.map +0 -1
  935. package/lib/typescript/module/hooks/useEventStoreEvents.d.ts.map +0 -1
  936. package/lib/typescript/module/hooks/useFilterManager.d.ts.map +0 -1
  937. package/lib/typescript/module/hooks/usePersistedState.d.ts.map +0 -1
  938. package/lib/typescript/module/hooks/useSafeAreaInsets.d.ts.map +0 -1
  939. package/lib/typescript/module/icons/BenchmarkIcon.d.ts.map +0 -1
  940. package/lib/typescript/module/icons/EnvLaptopIcon.d.ts.map +0 -1
  941. package/lib/typescript/module/icons/IconBackground.d.ts.map +0 -1
  942. package/lib/typescript/module/icons/ReactQueryIcon.d.ts.map +0 -1
  943. package/lib/typescript/module/icons/RenderCountIcon.d.ts.map +0 -1
  944. package/lib/typescript/module/icons/RouteMapIcon.d.ts.map +0 -1
  945. package/lib/typescript/module/icons/SentryBugIcon.d.ts.map +0 -1
  946. package/lib/typescript/module/icons/StackPulseIcon.d.ts.map +0 -1
  947. package/lib/typescript/module/icons/StorageStackIcon.d.ts.map +0 -1
  948. package/lib/typescript/module/icons/WifiCircuitIcon.d.ts.map +0 -1
  949. package/lib/typescript/module/icons/index.d.ts.map +0 -1
  950. package/lib/typescript/module/icons/lucide-icons-original-full.d.ts.map +0 -1
  951. package/lib/typescript/module/icons/lucide-icons.d.ts.map +0 -1
  952. package/lib/typescript/module/icons/primitives/GlobeIcon.d.ts.map +0 -1
  953. package/lib/typescript/module/icons/primitives/icon-primitives.d.ts.map +0 -1
  954. package/lib/typescript/module/icons/primitives/index.d.ts.map +0 -1
  955. package/lib/typescript/module/index.d.ts.map +0 -1
  956. package/lib/typescript/module/license/AccountSetup.d.ts.map +0 -1
  957. package/lib/typescript/module/license/AccountSetup.web.d.ts.map +0 -1
  958. package/lib/typescript/module/license/FeatureGate.d.ts.map +0 -1
  959. package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +0 -1
  960. package/lib/typescript/module/license/LicenseEntryModal.d.ts.map +0 -1
  961. package/lib/typescript/module/license/index.d.ts.map +0 -1
  962. package/lib/typescript/module/license/licenseModule.d.ts.map +0 -1
  963. package/lib/typescript/module/license/openPricing.d.ts.map +0 -1
  964. package/lib/typescript/module/license/tierLimits.d.ts.map +0 -1
  965. package/lib/typescript/module/logger/index-sentry.d.ts.map +0 -1
  966. package/lib/typescript/module/logger/index.d.ts.map +0 -1
  967. package/lib/typescript/module/logger/logDump.d.ts.map +0 -1
  968. package/lib/typescript/module/logger/types.d.ts.map +0 -1
  969. package/lib/typescript/module/settings/components/BubbleSettingsSection.d.ts.map +0 -1
  970. package/lib/typescript/module/settings/index.d.ts.map +0 -1
  971. package/lib/typescript/module/storage/definePersistedSetting.d.ts.map +0 -1
  972. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +0 -1
  973. package/lib/typescript/module/storage/index.d.ts.map +0 -1
  974. package/lib/typescript/module/stores/BaseEventStore.d.ts.map +0 -1
  975. package/lib/typescript/module/stores/ChangeLog.d.ts.map +0 -1
  976. package/lib/typescript/module/stores/createToolStore.d.ts.map +0 -1
  977. package/lib/typescript/module/stores/floatingToolStore.d.ts.map +0 -1
  978. package/lib/typescript/module/stores/floatingToolStore.test.d.ts.map +0 -1
  979. package/lib/typescript/module/stores/ignoredPatternsCore.d.ts.map +0 -1
  980. package/lib/typescript/module/stores/ignoredPatternsStore.d.ts.map +0 -1
  981. package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts.map +0 -1
  982. package/lib/typescript/module/stores/index.d.ts.map +0 -1
  983. package/lib/typescript/module/sync/keyedArrays.d.ts.map +0 -1
  984. package/lib/typescript/module/sync/toolActionRegistry.d.ts.map +0 -1
  985. package/lib/typescript/module/sync/toolAttention.test.d.ts.map +0 -1
  986. package/lib/typescript/module/sync/toolSyncAdapter.d.ts.map +0 -1
  987. package/lib/typescript/module/sync/toolUiBridge.d.ts.map +0 -1
  988. package/lib/typescript/module/sync/typedEdit.d.ts.map +0 -1
  989. package/lib/typescript/module/sync/valuePath.d.ts.map +0 -1
  990. package/lib/typescript/module/sync/valueShape.d.ts.map +0 -1
  991. package/lib/typescript/module/sync/wireBudget.d.ts.map +0 -1
  992. package/lib/typescript/module/sync/wireForm.d.ts.map +0 -1
  993. package/lib/typescript/module/tools/defineTool.d.ts.map +0 -1
  994. package/lib/typescript/module/types/types.d.ts.map +0 -1
  995. package/lib/typescript/module/ui/backgrounds/BackgroundSwitcher.d.ts.map +0 -1
  996. package/lib/typescript/module/ui/backgrounds/ToolBackground.d.ts.map +0 -1
  997. package/lib/typescript/module/ui/backgrounds/backgroundStore.d.ts.map +0 -1
  998. package/lib/typescript/module/ui/backgrounds/index.d.ts.map +0 -1
  999. package/lib/typescript/module/ui/backgrounds/primitives.d.ts.map +0 -1
  1000. package/lib/typescript/module/ui/backgrounds/registry.d.ts.map +0 -1
  1001. package/lib/typescript/module/ui/backgrounds/rng.d.ts.map +0 -1
  1002. package/lib/typescript/module/ui/backgrounds/skyClock.d.ts.map +0 -1
  1003. package/lib/typescript/module/ui/backgrounds/types.d.ts.map +0 -1
  1004. package/lib/typescript/module/ui/backgrounds/variants/daylight.d.ts.map +0 -1
  1005. package/lib/typescript/module/ui/backgrounds/variants/deepField.d.ts.map +0 -1
  1006. package/lib/typescript/module/ui/backgrounds/variants/hyperspace.d.ts.map +0 -1
  1007. package/lib/typescript/module/ui/backgrounds/variants/liveSky.d.ts.map +0 -1
  1008. package/lib/typescript/module/ui/backgrounds/variants/meteors.d.ts.map +0 -1
  1009. package/lib/typescript/module/ui/backgrounds/variants/moonlight.d.ts.map +0 -1
  1010. package/lib/typescript/module/ui/backgrounds/variants/underwater.d.ts.map +0 -1
  1011. package/lib/typescript/module/ui/backgrounds/variants/wormhole/motion.d.ts.map +0 -1
  1012. package/lib/typescript/module/ui/backgrounds/variants/wormhole/textures.d.ts.map +0 -1
  1013. package/lib/typescript/module/ui/backgrounds/variants/wormhole.d.ts.map +0 -1
  1014. package/lib/typescript/module/ui/components/BackButton.d.ts.map +0 -1
  1015. package/lib/typescript/module/ui/components/Badge.d.ts.map +0 -1
  1016. package/lib/typescript/module/ui/components/ChangeRow.d.ts.map +0 -1
  1017. package/lib/typescript/module/ui/components/ChipStrip.d.ts.map +0 -1
  1018. package/lib/typescript/module/ui/components/ClipboardHintBanner.d.ts.map +0 -1
  1019. package/lib/typescript/module/ui/components/CollapsibleSection.d.ts.map +0 -1
  1020. package/lib/typescript/module/ui/components/CompactFilterChips.d.ts.map +0 -1
  1021. package/lib/typescript/module/ui/components/CompactRow.d.ts.map +0 -1
  1022. package/lib/typescript/module/ui/components/CopyButton.d.ts.map +0 -1
  1023. package/lib/typescript/module/ui/components/DataInspector.d.ts.map +0 -1
  1024. package/lib/typescript/module/ui/components/DetailView.d.ts.map +0 -1
  1025. package/lib/typescript/module/ui/components/DetailViewToggle.d.ts.map +0 -1
  1026. package/lib/typescript/module/ui/components/DevToolsCard.d.ts.map +0 -1
  1027. package/lib/typescript/module/ui/components/DraggableHeader.d.ts.map +0 -1
  1028. package/lib/typescript/module/ui/components/DynamicFilterView.d.ts.map +0 -1
  1029. package/lib/typescript/module/ui/components/EmptyState.d.ts.map +0 -1
  1030. package/lib/typescript/module/ui/components/EntityFilterView.d.ts.map +0 -1
  1031. package/lib/typescript/module/ui/components/EventHistoryViewer/CompareBar.d.ts.map +0 -1
  1032. package/lib/typescript/module/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +0 -1
  1033. package/lib/typescript/module/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +0 -1
  1034. package/lib/typescript/module/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +0 -1
  1035. package/lib/typescript/module/ui/components/EventHistoryViewer/ViewToggleCards.d.ts.map +0 -1
  1036. package/lib/typescript/module/ui/components/EventHistoryViewer/index.d.ts.map +0 -1
  1037. package/lib/typescript/module/ui/components/EventHistoryViewer/types.d.ts.map +0 -1
  1038. package/lib/typescript/module/ui/components/EventListItem.d.ts.map +0 -1
  1039. package/lib/typescript/module/ui/components/EventStepperFooter.d.ts.map +0 -1
  1040. package/lib/typescript/module/ui/components/ExpandablePopover.d.ts.map +0 -1
  1041. package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts.map +0 -1
  1042. package/lib/typescript/module/ui/components/ExportPreview.d.ts.map +0 -1
  1043. package/lib/typescript/module/ui/components/FilterComponents.d.ts.map +0 -1
  1044. package/lib/typescript/module/ui/components/GripVerticalIcon.d.ts.map +0 -1
  1045. package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts.map +0 -1
  1046. package/lib/typescript/module/ui/components/InfoRow.d.ts.map +0 -1
  1047. package/lib/typescript/module/ui/components/ListItem.d.ts.map +0 -1
  1048. package/lib/typescript/module/ui/components/ModalHeader.d.ts.map +0 -1
  1049. package/lib/typescript/module/ui/components/ModalHintBanner.d.ts.map +0 -1
  1050. package/lib/typescript/module/ui/components/Pill.d.ts.map +0 -1
  1051. package/lib/typescript/module/ui/components/PowerToggleButton.d.ts.map +0 -1
  1052. package/lib/typescript/module/ui/components/SearchBar.d.ts.map +0 -1
  1053. package/lib/typescript/module/ui/components/SectionHeader.d.ts.map +0 -1
  1054. package/lib/typescript/module/ui/components/StatsCard.d.ts.map +0 -1
  1055. package/lib/typescript/module/ui/components/StatusIndicator.d.ts.map +0 -1
  1056. package/lib/typescript/module/ui/components/StorageTypeBadge.d.ts.map +0 -1
  1057. package/lib/typescript/module/ui/components/TabSelector.d.ts.map +0 -1
  1058. package/lib/typescript/module/ui/components/TimeDisplay.d.ts.map +0 -1
  1059. package/lib/typescript/module/ui/components/ToggleRow.d.ts.map +0 -1
  1060. package/lib/typescript/module/ui/components/ToolButton.d.ts.map +0 -1
  1061. package/lib/typescript/module/ui/components/ToolEmptyState.d.ts.map +0 -1
  1062. package/lib/typescript/module/ui/components/ToolFooter.d.ts.map +0 -1
  1063. package/lib/typescript/module/ui/components/ValueTypeBadge.d.ts.map +0 -1
  1064. package/lib/typescript/module/ui/components/WindowControls.d.ts.map +0 -1
  1065. package/lib/typescript/module/ui/components/index.d.ts.map +0 -1
  1066. package/lib/typescript/module/ui/components/windowDrag.d.ts.map +0 -1
  1067. package/lib/typescript/module/ui/console/CyberpunkButtonOutline.d.ts.map +0 -1
  1068. package/lib/typescript/module/ui/console/CyberpunkIconContainer.d.ts.map +0 -1
  1069. package/lib/typescript/module/ui/console/CyberpunkSectionButton.d.ts.map +0 -1
  1070. package/lib/typescript/module/ui/floating/FloatingTool.d.ts.map +0 -1
  1071. package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts.map +0 -1
  1072. package/lib/typescript/module/ui/floating/FloatingToolHost.d.ts.map +0 -1
  1073. package/lib/typescript/module/ui/floating/FloatingToolHost.web.d.ts.map +0 -1
  1074. package/lib/typescript/module/ui/floating/index.d.ts.map +0 -1
  1075. package/lib/typescript/module/ui/floating/index.web.d.ts.map +0 -1
  1076. package/lib/typescript/module/ui/floating/onboardingConstants.d.ts.map +0 -1
  1077. package/lib/typescript/module/ui/floating/onboardingConstants.web.d.ts.map +0 -1
  1078. package/lib/typescript/module/ui/fonts.d.ts.map +0 -1
  1079. package/lib/typescript/module/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +0 -1
  1080. package/lib/typescript/module/ui/gameUI/components/GameUICompactStats.d.ts.map +0 -1
  1081. package/lib/typescript/module/ui/gameUI/components/GameUIIssuesList.d.ts.map +0 -1
  1082. package/lib/typescript/module/ui/gameUI/components/GameUIStatusHeader.d.ts.map +0 -1
  1083. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +0 -1
  1084. package/lib/typescript/module/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +0 -1
  1085. package/lib/typescript/module/ui/gameUI/hooks/useGameUIAlertState.d.ts.map +0 -1
  1086. package/lib/typescript/module/ui/gameUI/index.d.ts.map +0 -1
  1087. package/lib/typescript/module/ui/index.d.ts.map +0 -1
  1088. package/lib/typescript/module/ui/listPresets.d.ts.map +0 -1
  1089. package/lib/typescript/module/ui/night/nightTheme.d.ts.map +0 -1
  1090. package/lib/typescript/module/ui/night/primitives.d.ts.map +0 -1
  1091. package/lib/typescript/module/ui/otto/OttoSceneView.d.ts.map +0 -1
  1092. package/lib/typescript/module/ui/otto/OttoSprite.d.ts.map +0 -1
  1093. package/lib/typescript/module/ui/otto/index.d.ts.map +0 -1
  1094. package/lib/typescript/module/ui/otto/ottoEngine.d.ts.map +0 -1
  1095. package/lib/typescript/module/ui/otto/ottoScenes.d.ts.map +0 -1
  1096. package/lib/typescript/module/ui/otto/ottoSheet.d.ts.map +0 -1
  1097. package/lib/typescript/module/ui/toolTheme.d.ts.map +0 -1
  1098. package/lib/typescript/module/utils/absoluteFill.d.ts.map +0 -1
  1099. package/lib/typescript/module/utils/devServer.d.ts.map +0 -1
  1100. package/lib/typescript/module/utils/displayValue.d.ts.map +0 -1
  1101. package/lib/typescript/module/utils/formatting/dataFormatting.d.ts.map +0 -1
  1102. package/lib/typescript/module/utils/formatting/httpFormatting.d.ts.map +0 -1
  1103. package/lib/typescript/module/utils/formatting/index.d.ts.map +0 -1
  1104. package/lib/typescript/module/utils/getSafeAreaInsets.d.ts.map +0 -1
  1105. package/lib/typescript/module/utils/index.d.ts.map +0 -1
  1106. package/lib/typescript/module/utils/loadOptionalModule.d.ts.map +0 -1
  1107. package/lib/typescript/module/utils/minimalSuperJSON.d.ts.map +0 -1
  1108. package/lib/typescript/module/utils/persistentStorage.d.ts.map +0 -1
  1109. package/lib/typescript/module/utils/reloadApp.d.ts.map +0 -1
  1110. package/lib/typescript/module/utils/renderCaptureRegistry.d.ts.map +0 -1
  1111. package/lib/typescript/module/utils/safeExpoRouter.d.ts.map +0 -1
  1112. package/lib/typescript/module/utils/safeStringify.d.ts.map +0 -1
  1113. package/lib/typescript/module/utils/snapshotProviderKit.d.ts.map +0 -1
  1114. package/lib/typescript/module/utils/stateSnapshotRegistry.d.ts.map +0 -1
  1115. package/lib/typescript/module/utils/stateTools.d.ts.map +0 -1
  1116. package/lib/typescript/module/utils/subscribable.d.ts.map +0 -1
  1117. package/lib/typescript/module/utils/subscriberCountNotifier.d.ts.map +0 -1
  1118. package/lib/typescript/module/utils/time/RelativeTime.d.ts.map +0 -1
  1119. package/lib/typescript/module/utils/time/TickContext.d.ts.map +0 -1
  1120. package/lib/typescript/module/utils/time/formatRelativeTime.d.ts.map +0 -1
  1121. package/lib/typescript/module/utils/time/index.d.ts.map +0 -1
  1122. package/lib/typescript/module/utils/time/useRelativeTime.d.ts.map +0 -1
  1123. package/lib/typescript/module/utils/typeHelpers.d.ts.map +0 -1
  1124. package/lib/typescript/module/utils/valueFormatting.d.ts.map +0 -1
  1125. package/scripts/generate-wormhole-textures.cjs +0 -261
  1126. package/scripts/test-wormhole-motion.cjs +0 -59
@@ -1,1010 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Divider = Divider;
7
- exports.FloatingTool = FloatingTool;
8
- exports.UserStatus = UserStatus;
9
- exports.getBubbleAnchorPosition = getBubbleAnchorPosition;
10
- var _react = require("react");
11
- var _reactNative = require("react-native");
12
- var _nightTheme = require("../night/nightTheme.js");
13
- var _DraggableHeader = require("../components/DraggableHeader.js");
14
- var _EnvironmentSelectorInline = require("../../env/EnvironmentSelectorInline");
15
- var _GripVerticalIcon = require("../components/GripVerticalIcon.js");
16
- var _gameUIColors = require("../gameUI/constants/gameUIColors.js");
17
- var _index = require("../../utils/index.js");
18
- var _index2 = require("../../hooks/index.js");
19
- var _onboardingConstants = require("./onboardingConstants");
20
- var _floatingToolsCore = require("@buoy-gg/floating-tools-core");
21
- var _jsxRuntime = require("react/jsx-runtime");
22
- // Shared utilities from floating-tools-core
23
-
24
- // Re-export UserRole type for consumers
25
-
26
- // Using Views to render grip dots; no react-native-svg dependency
27
-
28
- const STORAGE_KEYS = {
29
- BUBBLE_POSITION_X: "@react_buoy_bubble_position_x",
30
- BUBBLE_POSITION_Y: "@react_buoy_bubble_position_y"
31
- };
32
-
33
- // Position constants
34
- const VISIBLE_HANDLE_WIDTH = 32;
35
- const EDGE_PADDING = 20;
36
- const LAYOUT_SETTLE_DELAY_MS = 150;
37
-
38
- /** Helper to get current value from Animated.Value without triggering updates */
39
- const getAnimatedValue = value => value.__getValue();
40
-
41
- // =============================
42
- // Position persistence hook
43
- // Extracted logic dedicated to state/IO
44
- // =============================
45
- /**
46
- * Custom hook for managing floating tools position persistence
47
- *
48
- * Handles loading, saving, and validating the position of the floating tools bubble
49
- * with automatic boundary checking and storage management.
50
- *
51
- * @param props - Configuration for position management
52
- * @param props.animatedPosition - Animated.ValueXY for position updates
53
- * @param props.bubbleWidth - Width of the bubble for boundary calculations
54
- * @param props.bubbleHeight - Height of the bubble for boundary calculations
55
- * @param props.enabled - Whether position persistence is enabled
56
- * @param props.visibleHandleWidth - Width of visible handle when bubble is hidden
57
- * @param props.listenersSuspended - Pause automatic listeners without disabling manual saves
58
- * @param props.onPositionLoaded - Callback fired once position is loaded and set
59
- *
60
- * @returns Object containing position management functions and loading state
61
- *
62
- * @performance Uses debounced saving to avoid excessive storage operations
63
- * @performance Validates positions against screen boundaries and safe areas
64
- */
65
- function useFloatingToolsPosition({
66
- animatedPosition,
67
- bubbleWidth = 100,
68
- bubbleHeight = 32,
69
- enabled = true,
70
- visibleHandleWidth = 32,
71
- listenersSuspended = false,
72
- defaultPlacement = "top",
73
- onPositionLoaded,
74
- storageKey
75
- }) {
76
- // Use state instead of ref so we can react to changes and prevent races
77
- const [isInitialized, setIsInitialized] = (0, _react.useState)(false);
78
- const saveTimeoutRef = (0, _react.useRef)(undefined);
79
- // Track if component is mounted to prevent state updates after unmount
80
- const isMountedRef = (0, _react.useRef)(true);
81
-
82
- // Cleanup on unmount - cancel any pending saves
83
- (0, _react.useEffect)(() => {
84
- isMountedRef.current = true;
85
- return () => {
86
- isMountedRef.current = false;
87
- // Clear any pending debounced saves on unmount to prevent saving stale/invalid positions
88
- if (saveTimeoutRef.current) {
89
- clearTimeout(saveTimeoutRef.current);
90
- saveTimeoutRef.current = undefined;
91
- }
92
- };
93
- }, []);
94
- const savePosition = (0, _react.useCallback)(async (x, y) => {
95
- if (!enabled) return;
96
- // Don't save if component unmounted or position is clearly invalid
97
- if (!isMountedRef.current) return;
98
- // Guard against saving invalid positions (e.g., during HMR with stale dimensions)
99
- const {
100
- width: screenWidth
101
- } = _reactNative.Dimensions.get("window");
102
- if (screenWidth <= 0 || x < 0 || y < 0) return;
103
- try {
104
- await Promise.all([_index.persistentStorage.setItem(storageKey ? `${storageKey}:x` : STORAGE_KEYS.BUBBLE_POSITION_X, x.toString()), _index.persistentStorage.setItem(storageKey ? `${storageKey}:y` : STORAGE_KEYS.BUBBLE_POSITION_Y, y.toString())]);
105
- } catch (error) {
106
- // Failed to save position - continue without persistence
107
- }
108
- }, [enabled, storageKey]);
109
- const debouncedSavePosition = (0, _react.useCallback)((x, y) => {
110
- // Don't schedule saves if unmounted
111
- if (!isMountedRef.current) return;
112
- if (saveTimeoutRef.current) clearTimeout(saveTimeoutRef.current);
113
- saveTimeoutRef.current = setTimeout(() => {
114
- // Double-check mount status before saving
115
- if (isMountedRef.current) {
116
- savePosition(x, y);
117
- }
118
- }, 500);
119
- }, [savePosition]);
120
- const loadPosition = (0, _react.useCallback)(async () => {
121
- if (!enabled) return null;
122
- try {
123
- const [xStr, yStr] = await Promise.all([_index.persistentStorage.getItem(storageKey ? `${storageKey}:x` : STORAGE_KEYS.BUBBLE_POSITION_X), _index.persistentStorage.getItem(storageKey ? `${storageKey}:y` : STORAGE_KEYS.BUBBLE_POSITION_Y)]);
124
- if (xStr !== null && yStr !== null) {
125
- const x = parseFloat(xStr);
126
- const y = parseFloat(yStr);
127
- if (!Number.isNaN(x) && !Number.isNaN(y)) {
128
- return {
129
- x,
130
- y
131
- };
132
- }
133
- }
134
- } catch (error) {
135
- // Failed to load position - use default
136
- }
137
- return null;
138
- }, [enabled, storageKey]);
139
- const validatePosition = (0, _react.useCallback)(position => {
140
- const {
141
- width: screenWidth,
142
- height: screenHeight
143
- } = _reactNative.Dimensions.get("window");
144
- const safeArea = (0, _index.getSafeAreaInsets)();
145
-
146
- // Guard against invalid screen dimensions (can happen during HMR)
147
- // Return the position as-is but mark as invalid so caller knows not to trust it
148
- if (screenWidth <= 0 || screenHeight <= 0) {
149
- return {
150
- ...position,
151
- isValid: false
152
- };
153
- }
154
-
155
- // Prevent going off left, top, and bottom edges with safe area
156
- // Allow pushing off-screen to the right so only the grab handle remains visible
157
- const minX = safeArea.left;
158
- const maxX = screenWidth - visibleHandleWidth;
159
- // Add padding below the safe area top to ensure bubble doesn't go behind notch
160
- const minY = safeArea.top + EDGE_PADDING;
161
- const maxY = screenHeight - bubbleHeight - safeArea.bottom; // Respect safe area bottom
162
- const clamped = {
163
- x: Math.max(minX, Math.min(position.x, maxX)),
164
- y: Math.max(minY, Math.min(position.y, maxY)),
165
- isValid: true
166
- };
167
- return clamped;
168
- }, [visibleHandleWidth, bubbleHeight]);
169
- (0, _react.useEffect)(() => {
170
- if (!enabled || isInitialized) return;
171
- let cancelled = false;
172
- const restore = async () => {
173
- const saved = await loadPosition();
174
-
175
- // Check if cancelled or unmounted before updating state
176
- if (cancelled || !isMountedRef.current) return;
177
- const {
178
- width: screenWidth,
179
- height: screenHeight
180
- } = _reactNative.Dimensions.get("window");
181
- const safeArea = (0, _index.getSafeAreaInsets)();
182
-
183
- // If dimensions are invalid (HMR scenario), wait and retry
184
- if (screenWidth <= 0 || screenHeight <= 0) {
185
- // Schedule a retry after a short delay
186
- setTimeout(() => {
187
- if (isMountedRef.current && !cancelled) {
188
- restore();
189
- }
190
- }, 100);
191
- return;
192
- }
193
- let finalPosition;
194
- let wasHidden = false;
195
- if (saved) {
196
- const validated = validatePosition(saved);
197
-
198
- // If validation returned invalid, retry later
199
- if (!validated.isValid) {
200
- setTimeout(() => {
201
- if (isMountedRef.current && !cancelled) {
202
- restore();
203
- }
204
- }, 100);
205
- return;
206
- }
207
-
208
- // Check if the saved position is out of bounds
209
- const wasOutOfBounds = Math.abs(saved.x - validated.x) > 5 || Math.abs(saved.y - validated.y) > 5;
210
- if (wasOutOfBounds) {
211
- // Save the corrected position
212
- await savePosition(validated.x, validated.y);
213
- }
214
- finalPosition = {
215
- x: validated.x,
216
- y: validated.y
217
- };
218
-
219
- // Check if loaded in hidden state (bubble pushed to right edge)
220
- wasHidden = validated.x >= screenWidth - visibleHandleWidth - 5;
221
- } else {
222
- const defaultY = defaultPlacement === "bottom" ? Math.max(safeArea.top + EDGE_PADDING, screenHeight - bubbleHeight - safeArea.bottom - EDGE_PADDING) : Math.max(safeArea.top + EDGE_PADDING, Math.min(100, screenHeight - bubbleHeight - safeArea.bottom));
223
- finalPosition = {
224
- x: screenWidth - bubbleWidth - EDGE_PADDING,
225
- y: defaultY
226
- };
227
- }
228
-
229
- // Final mount check before updating
230
- if (cancelled || !isMountedRef.current) return;
231
- animatedPosition.setValue(finalPosition);
232
- setIsInitialized(true);
233
- onPositionLoaded?.(finalPosition, wasHidden);
234
- };
235
- restore();
236
- return () => {
237
- cancelled = true;
238
- };
239
- }, [enabled, isInitialized, animatedPosition, loadPosition, validatePosition, savePosition, bubbleWidth, bubbleHeight, visibleHandleWidth, onPositionLoaded]);
240
-
241
- // Listener effect - now properly depends on isInitialized state
242
- (0, _react.useEffect)(() => {
243
- // Don't attach listener until position is loaded
244
- if (!enabled || !isInitialized || listenersSuspended) return;
245
- const listener = animatedPosition.addListener(value => {
246
- debouncedSavePosition(value.x, value.y);
247
- });
248
- return () => {
249
- animatedPosition.removeListener(listener);
250
- // Clear debounce timer when listener is removed
251
- if (saveTimeoutRef.current) {
252
- clearTimeout(saveTimeoutRef.current);
253
- saveTimeoutRef.current = undefined;
254
- }
255
- };
256
- }, [enabled, isInitialized, listenersSuspended, animatedPosition, debouncedSavePosition]);
257
- return {
258
- savePosition,
259
- isInitialized
260
- };
261
- }
262
-
263
- // =============================
264
- // UI-only leaf components
265
- // =============================
266
- function Divider() {
267
- const dividerStyle = {
268
- width: 1,
269
- height: 12,
270
- backgroundColor: _gameUIColors.buoyColors.textMuted + "66",
271
- flexShrink: 0
272
- };
273
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
274
- style: dividerStyle
275
- });
276
- }
277
-
278
- // Use shared getUserStatusConfig from floating-tools-core
279
- // Wraps the core function to use our buoyColors (mapped to gameUIColors format)
280
- const gameUIColorsCompat = {
281
- success: "#20C997",
282
- // teal
283
- warning: "#FFA94D",
284
- error: "#EF4444",
285
- muted: _gameUIColors.buoyColors.textMuted,
286
- secondary: _gameUIColors.buoyColors.textSecondary,
287
- info: "#20C997",
288
- // teal
289
- primary: "#20C997",
290
- optional: _gameUIColors.buoyColors.textSecondary // optional status color
291
- };
292
- function getUserStatusConfig(userRole) {
293
- return (0, _floatingToolsCore.getUserStatusConfig)(userRole, gameUIColorsCompat);
294
- }
295
-
296
- // Context to avoid brittle prop threading and keep API composable
297
- const FloatingToolsContext = /*#__PURE__*/(0, _react.createContext)({
298
- isDragging: false
299
- });
300
- function UserStatus({
301
- userRole,
302
- onPress
303
- }) {
304
- const {
305
- isDragging
306
- } = (0, _react.useContext)(FloatingToolsContext);
307
- const config = getUserStatusConfig(userRole);
308
- const containerStyle = {
309
- flexDirection: "row",
310
- alignItems: "center",
311
- paddingVertical: 6,
312
- paddingHorizontal: 8,
313
- flexShrink: 0
314
- };
315
- const dotStyle = {
316
- width: 6,
317
- height: 6,
318
- borderRadius: 3,
319
- backgroundColor: config.dotColor,
320
- marginRight: 4
321
- };
322
- const textStyle = {
323
- fontSize: 10,
324
- fontWeight: "500",
325
- color: config.textColor,
326
- letterSpacing: 0.3
327
- };
328
- if (!onPress) {
329
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
330
- style: containerStyle,
331
- accessibilityLabel: `User status: ${config.label}`,
332
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
333
- style: dotStyle
334
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
335
- style: textStyle,
336
- children: config.label
337
- })]
338
- });
339
- }
340
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
341
- accessibilityRole: "button",
342
- accessibilityLabel: "Open Dev Tools Menu",
343
- testID: "open-dev-tools-button",
344
- onPress: onPress,
345
- hitSlop: {
346
- top: 10,
347
- bottom: 10,
348
- left: 0,
349
- right: 10
350
- },
351
- disabled: isDragging,
352
- activeOpacity: 0.85,
353
- style: containerStyle,
354
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
355
- style: dotStyle
356
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
357
- style: textStyle,
358
- children: config.label
359
- })]
360
- });
361
- }
362
-
363
- // =============================
364
- // Helpers (using shared filterValidChildren from core)
365
- // =============================
366
- function interleaveWithDividers(childrenArray) {
367
- const validChildren = (0, _floatingToolsCore.filterValidChildren)(childrenArray);
368
- const result = [];
369
- validChildren.forEach((child, index) => {
370
- result.push(child);
371
- if (index < validChildren.length - 1) result.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(Divider, {}, `divider-${index}`));
372
- });
373
- return result;
374
- }
375
-
376
- // =============================
377
- // Main Component (presentation only)
378
- // =============================
379
-
380
- /**
381
- * FloatingTools - A draggable, resizable bubble for development tools
382
- *
383
- * This component provides a floating bubble interface that can contain various
384
- * development tools and controls. It features:
385
- * - Drag and drop positioning with boundary constraints
386
- * - Hide/show functionality by dragging to screen edge
387
- * - Position persistence across app restarts
388
- * - Safe area aware positioning
389
- * - Automatic divider insertion between child components
390
- *
391
- * @param props - Configuration for the floating tools
392
- * @param props.enablePositionPersistence - Whether to save/restore position (default: true)
393
- * @param props.children - Child components to render in the bubble
394
- *
395
- * @returns JSX.Element representing the floating tools bubble
396
- *
397
- * @example
398
- * ```typescript
399
- * <FloatingTools enablePositionPersistence={true}>
400
- * <UserStatus userRole="admin" onPress={handleUserPress} />
401
- * <ToolButton onPress={openSettings} />
402
- * </FloatingTools>
403
- * ```
404
- *
405
- * @performance Uses native driver animations for smooth positioning
406
- * @performance Implements efficient boundary checking and position validation
407
- * @performance Includes debounced position saving for optimal storage performance
408
- */
409
- function FloatingTool({
410
- id,
411
- suspendPointerEvents = false,
412
- revealToken,
413
- variant = "bubble",
414
- dragFromSurface = false,
415
- accessibilityLabel = "Move dev tools bubble",
416
- minimizedStack,
417
- hasMinimizedStack = false,
418
- accessory,
419
- handleAdornment,
420
- enablePositionPersistence = true,
421
- defaultPlacement = "top",
422
- pushToSide = false,
423
- centerOnboarding = false,
424
- children,
425
- environment,
426
- availableEnvironments,
427
- onEnvironmentSwitch,
428
- showEnvironmentSelector = false
429
- }) {
430
- // Animated position and drag state
431
- const animatedPosition = (0, _react.useRef)(new _reactNative.Animated.ValueXY()).current;
432
- const [isDragging, setIsDragging] = (0, _react.useState)(false);
433
- const [bubbleSize, setBubbleSize] = (0, _react.useState)({
434
- width: 100,
435
- height: 32
436
- });
437
- const [isHidden, setIsHidden] = (0, _react.useState)(false);
438
- const [accessoryHeight, setAccessoryHeight] = (0, _react.useState)(0);
439
- const [accessoryAbove, setAccessoryAbove] = (0, _react.useState)(false);
440
-
441
- // Store the position before hiding to restore when showing
442
- const savedPositionRef = (0, _react.useRef)(null);
443
-
444
- // Track if the hide state was triggered by pushToSide prop vs user toggle
445
- const isPushedBySideRef = (0, _react.useRef)(false);
446
-
447
- // Track if user has explicitly chosen to show the menu (overriding pushToSide)
448
- const userWantsVisibleRef = (0, _react.useRef)(false);
449
-
450
- // Track previous pushToSide value to detect transitions
451
- const prevPushToSideRef = (0, _react.useRef)(pushToSide);
452
-
453
- // Track previous bubble width for auto-adjustment when tools are added/removed
454
- const prevBubbleWidthRef = (0, _react.useRef)(null);
455
-
456
- // Track if layout has settled (after initial render cycle completes)
457
- const [isLayoutSettled, setIsLayoutSettled] = (0, _react.useState)(false);
458
- const safeAreaInsets = (0, _index2.useSafeAreaInsets)();
459
- const {
460
- width: screenWidth,
461
- height: screenHeight
462
- } = (0, _reactNative.useWindowDimensions)();
463
-
464
- // Callback when position is loaded - sets hidden state properly without racing
465
- const handlePositionLoaded = (0, _react.useCallback)((position, wasHidden) => {
466
- if (wasHidden) {
467
- setIsHidden(true);
468
- }
469
- }, []);
470
-
471
- // Position persistence (state/IO extracted to hook)
472
- const {
473
- savePosition,
474
- isInitialized: isPositionInitialized
475
- } = useFloatingToolsPosition({
476
- animatedPosition,
477
- bubbleWidth: bubbleSize.width,
478
- bubbleHeight: bubbleSize.height,
479
- enabled: enablePositionPersistence,
480
- visibleHandleWidth: VISIBLE_HANDLE_WIDTH,
481
- listenersSuspended: isDragging,
482
- defaultPlacement,
483
- onPositionLoaded: handlePositionLoaded,
484
- storageKey: id ? `@buoy/floating-tool/${id}` : undefined
485
- });
486
-
487
- // Effect to handle pushToSide prop changes
488
- (0, _react.useEffect)(() => {
489
- // Don't process pushToSide until position is initialized (when persistence enabled)
490
- if (enablePositionPersistence && !isPositionInitialized) return;
491
-
492
- // Reset user override when pushToSide becomes true (dial/modal opens)
493
- // This allows auto-hide to work after user manually showed the menu
494
- if (!prevPushToSideRef.current && pushToSide) {
495
- userWantsVisibleRef.current = false;
496
- }
497
- prevPushToSideRef.current = pushToSide;
498
-
499
- // Only push to side if:
500
- // 1. pushToSide is true
501
- // 2. Not currently hidden
502
- // 3. Not being dragged
503
- // 4. User hasn't manually restored (userWantsVisibleRef)
504
- if (pushToSide && !isHidden && !isDragging && !userWantsVisibleRef.current) {
505
- // Push to side
506
- const currentX = getAnimatedValue(animatedPosition.x);
507
- const currentY = getAnimatedValue(animatedPosition.y);
508
-
509
- // Save current position
510
- savedPositionRef.current = {
511
- x: currentX,
512
- y: currentY
513
- };
514
- const hiddenX = screenWidth - VISIBLE_HANDLE_WIDTH;
515
- isPushedBySideRef.current = true;
516
- setIsHidden(true);
517
- _reactNative.Animated.timing(animatedPosition, {
518
- toValue: {
519
- x: hiddenX,
520
- y: currentY
521
- },
522
- duration: 200,
523
- useNativeDriver: false
524
- }).start(() => {
525
- savePosition(hiddenX, currentY);
526
- });
527
- } else if (!pushToSide && isHidden && isPushedBySideRef.current) {
528
- // Restore from side when pushToSide becomes false
529
- if (savedPositionRef.current) {
530
- const {
531
- x: targetX,
532
- y: targetY
533
- } = savedPositionRef.current;
534
- isPushedBySideRef.current = false;
535
- userWantsVisibleRef.current = false; // Reset user override when tools close
536
- setIsHidden(false);
537
- _reactNative.Animated.timing(animatedPosition, {
538
- toValue: {
539
- x: targetX,
540
- y: targetY
541
- },
542
- duration: 200,
543
- useNativeDriver: false
544
- }).start(() => {
545
- savePosition(targetX, targetY);
546
- });
547
- }
548
- }
549
- }, [enablePositionPersistence, isPositionInitialized, pushToSide, isHidden, isDragging, screenWidth, animatedPosition, savePosition]);
550
-
551
- // Hidden state is now set via onPositionLoaded callback - no racing effect needed
552
-
553
- // Wait for layout to settle before enabling width tracking
554
- // This prevents false-positive width changes during initial render when
555
- // the bubble measures multiple times as children render
556
- (0, _react.useEffect)(() => {
557
- if (!isPositionInitialized || isLayoutSettled) return;
558
- const timer = setTimeout(() => {
559
- // Capture the current width as the baseline AFTER layout has settled
560
- prevBubbleWidthRef.current = bubbleSize.width;
561
- setIsLayoutSettled(true);
562
- }, LAYOUT_SETTLE_DELAY_MS);
563
- return () => clearTimeout(timer);
564
- }, [isPositionInitialized, isLayoutSettled, bubbleSize.width]);
565
-
566
- // Auto-adjust position when bubble width changes (tools added/removed)
567
- // This keeps the bubble's right edge in the same relative position
568
- (0, _react.useEffect)(() => {
569
- // Skip if position not initialized yet
570
- if (!isPositionInitialized) return;
571
-
572
- // Skip until layout has settled (prevents false-positive width changes during initial render)
573
- if (!isLayoutSettled) return;
574
-
575
- // Skip if prevBubbleWidthRef hasn't been set yet
576
- if (prevBubbleWidthRef.current === null) return;
577
-
578
- // Skip if currently dragging - let drag handle position
579
- if (isDragging) {
580
- prevBubbleWidthRef.current = bubbleSize.width;
581
- return;
582
- }
583
- const prevWidth = prevBubbleWidthRef.current;
584
- const newWidth = bubbleSize.width;
585
- const widthDelta = newWidth - prevWidth;
586
-
587
- // Skip if no significant change (avoid jitter)
588
- if (Math.abs(widthDelta) < 2) {
589
- return;
590
- }
591
-
592
- // Update ref first
593
- prevBubbleWidthRef.current = newWidth;
594
-
595
- // If hidden, only adjust the saved position (not the current animated position)
596
- if (isHidden) {
597
- if (savedPositionRef.current) {
598
- const adjustedX = savedPositionRef.current.x - widthDelta;
599
- // Clamp to valid bounds
600
- savedPositionRef.current.x = Math.max(safeAreaInsets.left, Math.min(adjustedX, screenWidth - newWidth - EDGE_PADDING));
601
- }
602
- return;
603
- }
604
-
605
- // Get current position
606
- const currentX = getAnimatedValue(animatedPosition.x);
607
- const currentY = getAnimatedValue(animatedPosition.y);
608
-
609
- // Calculate new X position
610
- // If bubble grew (positive delta), move left (decrease X)
611
- // If bubble shrunk (negative delta), move right (increase X)
612
- const newX = currentX - widthDelta;
613
-
614
- // Validate new position is within bounds
615
- const clampedX = Math.max(safeAreaInsets.left, Math.min(newX, screenWidth - VISIBLE_HANDLE_WIDTH));
616
-
617
- // Only animate if position actually changed
618
- if (Math.abs(clampedX - currentX) > 1) {
619
- _reactNative.Animated.timing(animatedPosition, {
620
- toValue: {
621
- x: clampedX,
622
- y: currentY
623
- },
624
- duration: 150,
625
- useNativeDriver: false
626
- }).start(() => {
627
- savePosition(clampedX, currentY);
628
- // Update savedPositionRef so show/hide works correctly
629
- if (savedPositionRef.current) {
630
- savedPositionRef.current.x = clampedX;
631
- }
632
- });
633
- }
634
- }, [bubbleSize.width, isPositionInitialized, isLayoutSettled, isDragging, isHidden, animatedPosition, screenWidth, safeAreaInsets.left, savePosition]);
635
-
636
- // Default position when persistence disabled or during onboarding
637
- (0, _react.useEffect)(() => {
638
- if (!enablePositionPersistence) {
639
- if (centerOnboarding) {
640
- // Center the bubble for onboarding - position under tooltip arrow
641
- // Use shared calculation to ensure perfect alignment across all screens
642
- const bottomOffset = (0, _onboardingConstants.calculateTargetPosition)();
643
- const centerX = (screenWidth - bubbleSize.width) / 2;
644
- const centerY = screenHeight - bubbleSize.height - bottomOffset;
645
- animatedPosition.setValue({
646
- x: centerX,
647
- y: centerY
648
- });
649
- } else {
650
- // Default right-side position
651
- const defaultY = defaultPlacement === "bottom" ? Math.max(safeAreaInsets.top + EDGE_PADDING, screenHeight - bubbleSize.height - safeAreaInsets.bottom - EDGE_PADDING) : Math.max(safeAreaInsets.top + EDGE_PADDING, Math.min(100, screenHeight - bubbleSize.height - safeAreaInsets.bottom));
652
- animatedPosition.setValue({
653
- x: screenWidth - bubbleSize.width - EDGE_PADDING,
654
- y: defaultY
655
- });
656
- }
657
- }
658
- }, [enablePositionPersistence, centerOnboarding, animatedPosition, bubbleSize.width, bubbleSize.height, safeAreaInsets.top, safeAreaInsets.bottom, screenWidth, screenHeight]);
659
-
660
- // Toggle hide/show function
661
- const toggleHideShow = (0, _react.useCallback)(() => {
662
- const currentX = getAnimatedValue(animatedPosition.x);
663
- const currentY = getAnimatedValue(animatedPosition.y);
664
-
665
- // Check if the menu is visually off-screen (more than half hidden to the right)
666
- // This handles edge cases where isHidden state might be out of sync with actual position
667
- const isVisuallyOffScreen = currentX > screenWidth - bubbleSize.width / 2;
668
- if (isHidden || isVisuallyOffScreen) {
669
- // Show the bubble - restore to saved position or default visible position
670
- let targetX;
671
- let targetY;
672
- if (savedPositionRef.current && savedPositionRef.current.x < screenWidth - bubbleSize.width / 2) {
673
- // Restore to the saved position only if it's a valid visible position
674
- targetX = savedPositionRef.current.x;
675
- targetY = savedPositionRef.current.y;
676
- } else {
677
- // Default visible position if no saved position or saved position is off-screen
678
- targetX = screenWidth - bubbleSize.width - EDGE_PADDING;
679
- targetY = currentY;
680
- }
681
-
682
- // User explicitly wants the menu visible (overrides pushToSide)
683
- isPushedBySideRef.current = false;
684
- userWantsVisibleRef.current = true;
685
- setIsHidden(false);
686
- _reactNative.Animated.timing(animatedPosition, {
687
- toValue: {
688
- x: targetX,
689
- y: targetY
690
- },
691
- duration: 200,
692
- useNativeDriver: false
693
- }).start(() => {
694
- savePosition(targetX, targetY);
695
- });
696
- } else {
697
- // Hide the bubble - save current position before hiding
698
- savedPositionRef.current = {
699
- x: currentX,
700
- y: currentY
701
- };
702
-
703
- // User explicitly wants the menu hidden
704
- userWantsVisibleRef.current = false;
705
- const hiddenX = screenWidth - VISIBLE_HANDLE_WIDTH;
706
- setIsHidden(true);
707
- _reactNative.Animated.timing(animatedPosition, {
708
- toValue: {
709
- x: hiddenX,
710
- y: currentY
711
- },
712
- duration: 200,
713
- useNativeDriver: false
714
- }).start(() => {
715
- savePosition(hiddenX, currentY);
716
- });
717
- }
718
- }, [animatedPosition, isHidden, bubbleSize.width, savePosition, screenWidth]);
719
- const handleDragStart = (0, _react.useCallback)(() => {
720
- setIsDragging(true);
721
- }, []);
722
- const handleDragEnd = (0, _react.useCallback)(finalPosition => {
723
- let {
724
- x: currentX,
725
- y: currentY
726
- } = finalPosition;
727
-
728
- // Check if bubble is more than 50% over the right edge
729
- const bubbleMidpoint = currentX + bubbleSize.width / 2;
730
- const shouldHide = bubbleMidpoint > screenWidth;
731
- if (shouldHide) {
732
- // Animate to hidden position (only grabber visible)
733
- const hiddenX = screenWidth - VISIBLE_HANDLE_WIDTH;
734
- setIsHidden(true);
735
-
736
- // Update savedPositionRef to preserve the Y position when dragging while hidden
737
- // This ensures that when showing, the bubble restores to the new Y position
738
- if (savedPositionRef.current) {
739
- savedPositionRef.current.y = currentY;
740
- } else {
741
- // If no saved position exists, create one with default visible X
742
- savedPositionRef.current = {
743
- x: screenWidth - bubbleSize.width - EDGE_PADDING,
744
- y: currentY
745
- };
746
- }
747
- _reactNative.Animated.timing(animatedPosition, {
748
- toValue: {
749
- x: hiddenX,
750
- y: currentY
751
- },
752
- duration: 200,
753
- useNativeDriver: false
754
- }).start(() => {
755
- savePosition(hiddenX, currentY);
756
- });
757
- } else {
758
- // Check if we're in hidden state and user is pulling it back
759
- if (isHidden && currentX < screenWidth - VISIBLE_HANDLE_WIDTH - 10) {
760
- setIsHidden(false);
761
- }
762
-
763
- // Update saved position if bubble is in visible area (not hidden)
764
- if (currentX < screenWidth - bubbleSize.width / 2) {
765
- savedPositionRef.current = {
766
- x: currentX,
767
- y: currentY
768
- };
769
- }
770
- savePosition(currentX, currentY);
771
- }
772
- setIsDragging(false);
773
- }, [animatedPosition, bubbleSize.width, isHidden, savePosition, screenWidth]);
774
- const lastViewport = (0, _react.useRef)({
775
- width: screenWidth,
776
- height: screenHeight
777
- });
778
- (0, _react.useEffect)(() => {
779
- if (enablePositionPersistence && !isPositionInitialized) return;
780
- if (lastViewport.current.width === screenWidth && lastViewport.current.height === screenHeight) return;
781
- lastViewport.current = {
782
- width: screenWidth,
783
- height: screenHeight
784
- };
785
- const clamp = point => ({
786
- x: Math.max(safeAreaInsets.left, Math.min(point.x, screenWidth - bubbleSize.width - EDGE_PADDING)),
787
- y: Math.max(safeAreaInsets.top + EDGE_PADDING, Math.min(point.y, screenHeight - bubbleSize.height - safeAreaInsets.bottom))
788
- });
789
- const current = clamp({
790
- x: getAnimatedValue(animatedPosition.x),
791
- y: getAnimatedValue(animatedPosition.y)
792
- });
793
- if (isHidden) current.x = screenWidth - VISIBLE_HANDLE_WIDTH;
794
- if (savedPositionRef.current) savedPositionRef.current = clamp(savedPositionRef.current);
795
- animatedPosition.stopAnimation();
796
- animatedPosition.setValue(current);
797
- void savePosition(current.x, current.y);
798
- }, [screenWidth, screenHeight, isPositionInitialized, enablePositionPersistence, bubbleSize, safeAreaInsets, isHidden, animatedPosition, savePosition]);
799
- const hasAccessory = Boolean(accessory);
800
- (0, _react.useEffect)(() => {
801
- if (!hasAccessory) return;
802
- const update = ({
803
- y
804
- }) => setAccessoryAbove(y + bubbleSize.height + accessoryHeight > screenHeight - safeAreaInsets.bottom);
805
- update({
806
- y: getAnimatedValue(animatedPosition.y)
807
- });
808
- const listener = animatedPosition.addListener(update);
809
- return () => animatedPosition.removeListener(listener);
810
- }, [animatedPosition, bubbleSize.height, accessoryHeight, screenHeight, safeAreaInsets.bottom, hasAccessory]);
811
-
812
- // Stable styles
813
- const bubbleStyle = (0, _react.useMemo)(() => ({
814
- position: "absolute",
815
- zIndex: 1001,
816
- transform: animatedPosition.getTranslateTransform()
817
- }), [animatedPosition]);
818
- const previousReveal = (0, _react.useRef)(undefined);
819
- (0, _react.useEffect)(() => {
820
- if (enablePositionPersistence && !isPositionInitialized) return;
821
- if (previousReveal.current === revealToken) return;
822
- previousReveal.current = revealToken;
823
- if (revealToken !== undefined && revealToken > 0 && isHidden) toggleHideShow();
824
- }, [revealToken, isPositionInitialized, enablePositionPersistence, isHidden, toggleHideShow]);
825
- const hasMinimizedTools = hasMinimizedStack;
826
- const containerStyle = {
827
- flexDirection: "row",
828
- alignItems: "center",
829
- backgroundColor: _gameUIColors.buoyColors.card,
830
- // When minimized tools showing, remove top-left radius so they connect seamlessly
831
- borderTopLeftRadius: hasMinimizedTools ? 0 : 6,
832
- borderTopRightRadius: 6,
833
- borderBottomLeftRadius: 6,
834
- borderBottomRightRadius: 6,
835
- // Use individual border widths when minimized tools are showing
836
- // Always show top border when dragging for visual feedback
837
- borderLeftWidth: isDragging ? 2 : 1,
838
- borderRightWidth: isDragging ? 2 : 1,
839
- borderBottomWidth: isDragging ? 2 : 1,
840
- borderTopWidth: isDragging ? 2 : hasMinimizedTools ? 0 : 1,
841
- borderColor: isDragging ? _floatingToolsCore.floatingToolsColors.dragActive : _gameUIColors.buoyColors.textMuted + "66",
842
- overflow: "visible",
843
- elevation: 8,
844
- shadowColor: isDragging ? _floatingToolsCore.floatingToolsColors.dragActive + "99" : "#000",
845
- shadowOffset: {
846
- width: 0,
847
- height: isDragging ? 6 : 4
848
- },
849
- shadowOpacity: isDragging ? 0.6 : 0.3,
850
- shadowRadius: isDragging ? 12 : 8,
851
- ...(variant === "strip" ? {
852
- borderRadius: _nightTheme.night.radius.card,
853
- borderTopLeftRadius: _nightTheme.night.radius.card,
854
- borderTopRightRadius: _nightTheme.night.radius.card,
855
- borderBottomLeftRadius: _nightTheme.night.radius.card,
856
- borderBottomRightRadius: _nightTheme.night.radius.card,
857
- minHeight: 48,
858
- backgroundColor: _nightTheme.night.color.surface,
859
- borderColor: isDragging ? _nightTheme.night.color.accentBorderStrong : _nightTheme.night.color.separator,
860
- shadowOpacity: 0.24,
861
- shadowRadius: 16
862
- } : {})
863
- };
864
- const dragHandleStyle = {
865
- paddingHorizontal: 6,
866
- paddingVertical: 6,
867
- backgroundColor: _gameUIColors.buoyColors.textMuted + "1A",
868
- alignItems: "center",
869
- justifyContent: "center",
870
- width: 32,
871
- ...(variant === "strip" ? {
872
- minHeight: 48
873
- } : {}),
874
- borderRightWidth: 1,
875
- borderRightColor: _gameUIColors.buoyColors.textMuted + "66",
876
- // Remove top-left radius when minimized tools are showing
877
- borderTopLeftRadius: hasMinimizedTools ? 0 : undefined,
878
- ...(variant === "strip" ? {
879
- backgroundColor: "transparent",
880
- borderRightWidth: 0
881
- } : {})
882
- };
883
- const contentStyle = {
884
- flexDirection: "row",
885
- alignItems: "center",
886
- gap: 6,
887
- paddingRight: 8
888
- };
889
-
890
- // Compose actions row with automatic dividers
891
- const actions = (0, _react.useMemo)(() => variant === "strip" ? _react.Children.toArray(children) : interleaveWithDividers(_react.Children.toArray(children)), [children, variant]);
892
-
893
- // Width for the minimized tools stack - match the drag handle width
894
- const minimizedStackWidth = 32;
895
-
896
- // Don't render until position is initialized (when persistence enabled)
897
- // This prevents the bubble from appearing at {0,0} before position loads
898
- if (enablePositionPersistence && !isPositionInitialized) {
899
- return null;
900
- }
901
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
902
- pointerEvents: suspendPointerEvents ? "none" : "box-none",
903
- testID: id ?? "buoy-floating-tool",
904
- style: bubbleStyle,
905
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
906
- style: {
907
- overflow: "visible"
908
- },
909
- children: [minimizedStack && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
910
- style: {
911
- position: "absolute",
912
- bottom: "100%",
913
- left: 0,
914
- width: minimizedStackWidth,
915
- overflow: "visible",
916
- zIndex: 1001
917
- },
918
- children: minimizedStack
919
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DraggableHeader.DraggableHeader, {
920
- position: animatedPosition,
921
- enabled: dragFromSurface,
922
- claimOnMove: false,
923
- onDragStart: handleDragStart,
924
- onDragEnd: handleDragEnd,
925
- containerBounds: {
926
- width: screenWidth,
927
- height: screenHeight
928
- },
929
- elementSize: bubbleSize,
930
- minPosition: {
931
- x: safeAreaInsets.left,
932
- y: safeAreaInsets.top + EDGE_PADDING
933
- },
934
- maxOverflowX: bubbleSize.width,
935
- hitSlop: {
936
- top: 10,
937
- bottom: 10,
938
- left: 10,
939
- right: 10
940
- },
941
- style: containerStyle,
942
- onLayout: event => {
943
- const {
944
- width,
945
- height
946
- } = event.nativeEvent.layout;
947
- setBubbleSize({
948
- width,
949
- height
950
- });
951
- },
952
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_DraggableHeader.DraggableHeader, {
953
- position: animatedPosition,
954
- testID: id ? `${id}-grip` : "buoy-floating-grip",
955
- accessibilityLabel: accessibilityLabel,
956
- onDragStart: handleDragStart,
957
- onDragEnd: handleDragEnd,
958
- onTap: toggleHideShow,
959
- containerBounds: {
960
- width: screenWidth,
961
- height: screenHeight
962
- },
963
- elementSize: bubbleSize,
964
- minPosition: {
965
- x: safeAreaInsets.left,
966
- y: safeAreaInsets.top + EDGE_PADDING
967
- },
968
- style: dragHandleStyle,
969
- enabled: true,
970
- maxOverflowX: bubbleSize.width,
971
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GripVerticalIcon.GripVerticalIcon, {
972
- size: variant === "strip" ? 20 : 12,
973
- color: _gameUIColors.buoyColors.textSecondary + "CC"
974
- }), handleAdornment]
975
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingToolsContext.Provider, {
976
- value: {
977
- isDragging
978
- },
979
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
980
- style: contentStyle,
981
- children: [showEnvironmentSelector && environment && availableEnvironments && onEnvironmentSwitch && /*#__PURE__*/(0, _jsxRuntime.jsx)(_EnvironmentSelectorInline.EnvironmentSelectorInline, {
982
- currentEnvironment: environment,
983
- availableEnvironments: availableEnvironments,
984
- onSelect: onEnvironmentSwitch
985
- }), actions]
986
- })
987
- })]
988
- }), !isHidden && accessory && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
989
- onLayout: event => setAccessoryHeight(event.nativeEvent.layout.height),
990
- style: {
991
- position: "absolute",
992
- ...(accessoryAbove ? {
993
- bottom: "100%"
994
- } : {
995
- top: "100%"
996
- }),
997
- left: 0,
998
- width: "100%",
999
- zIndex: 1002
1000
- },
1001
- children: accessory
1002
- })]
1003
- })
1004
- });
1005
- }
1006
-
1007
- /** Native AppHost gets its anchor from the minimized-tools provider. */
1008
- function getBubbleAnchorPosition() {
1009
- return null;
1010
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.Divider=Divider;exports.FloatingTool=FloatingTool;exports.UserStatus=UserStatus;exports.getBubbleAnchorPosition=getBubbleAnchorPosition;var _react=require("react");var _reactNative=require("react-native");var _nightTheme=require("../night/nightTheme.js");var _DraggableHeader=require("../components/DraggableHeader.js");var _EnvironmentSelectorInline=require("../../env/EnvironmentSelectorInline");var _GripVerticalIcon=require("../components/GripVerticalIcon.js");var _gameUIColors=require("../gameUI/constants/gameUIColors.js");var _index=require("../../utils/index.js");var _index2=require("../../hooks/index.js");var _onboardingConstants=require("./onboardingConstants");var _floatingToolsCore=require("@buoy-gg/floating-tools-core");var _jsxRuntime=require("react/jsx-runtime");const STORAGE_KEYS={BUBBLE_POSITION_X:"@react_buoy_bubble_position_x",BUBBLE_POSITION_Y:"@react_buoy_bubble_position_y"};const VISIBLE_HANDLE_WIDTH=32;const EDGE_PADDING=20;const LAYOUT_SETTLE_DELAY_MS=150;const getAnimatedValue=c=>c.__getValue();function useFloatingToolsPosition({animatedPosition:c,bubbleWidth:_=100,bubbleHeight:m=32,enabled:a=true,visibleHandleWidth:v=32,listenersSuspended:T=false,defaultPlacement:V="top",onPositionLoaded:N,storageKey:y}){const[A,S]=(0,_react.useState)(false);const C=(0,_react.useRef)(void 0);const x=(0,_react.useRef)(true);(0,_react.useEffect)(()=>{x.current=true;return()=>{x.current=false;if(C.current){clearTimeout(C.current);C.current=void 0}}},[]);const D=(0,_react.useCallback)(async(u,g)=>{if(!a)return;if(!x.current)return;const{width:t}=_reactNative.Dimensions.get("window");if(t<=0||u<0||g<0)return;try{await Promise.all([_index.persistentStorage.setItem(y?`${y}:x`:STORAGE_KEYS.BUBBLE_POSITION_X,u.toString()),_index.persistentStorage.setItem(y?`${y}:y`:STORAGE_KEYS.BUBBLE_POSITION_Y,g.toString())])}catch(n){}},[a,y]);const B=(0,_react.useCallback)((u,g)=>{if(!x.current)return;if(C.current)clearTimeout(C.current);C.current=setTimeout(()=>{if(x.current){D(u,g)}},500)},[D]);const j=(0,_react.useCallback)(async()=>{if(!a)return null;try{const[u,g]=await Promise.all([_index.persistentStorage.getItem(y?`${y}:x`:STORAGE_KEYS.BUBBLE_POSITION_X),_index.persistentStorage.getItem(y?`${y}:y`:STORAGE_KEYS.BUBBLE_POSITION_Y)]);if(u!==null&&g!==null){const t=parseFloat(u);const n=parseFloat(g);if(!Number.isNaN(t)&&!Number.isNaN(n)){return{x:t,y:n}}}}catch(u){}return null},[a,y]);const L=(0,_react.useCallback)(u=>{const{width:g,height:t}=_reactNative.Dimensions.get("window");const n=(0,_index.getSafeAreaInsets)();if(g<=0||t<=0){return{...u,isValid:false}}const M=n.left;const e=g-v;const E=n.top+EDGE_PADDING;const l=t-m-n.bottom;const d={x:Math.max(M,Math.min(u.x,e)),y:Math.max(E,Math.min(u.y,l)),isValid:true};return d},[v,m]);(0,_react.useEffect)(()=>{if(!a||A)return;let u=false;const g=async()=>{const t=await j();if(u||!x.current)return;const{width:n,height:M}=_reactNative.Dimensions.get("window");const e=(0,_index.getSafeAreaInsets)();if(n<=0||M<=0){setTimeout(()=>{if(x.current&&!u){g()}},100);return}let E;let l=false;if(t){const d=L(t);if(!d.isValid){setTimeout(()=>{if(x.current&&!u){g()}},100);return}const Y=Math.abs(t.x-d.x)>5||Math.abs(t.y-d.y)>5;if(Y){await D(d.x,d.y)}E={x:d.x,y:d.y};l=d.x>=n-v-5}else{const d=V==="bottom"?Math.max(e.top+EDGE_PADDING,M-m-e.bottom-EDGE_PADDING):Math.max(e.top+EDGE_PADDING,Math.min(100,M-m-e.bottom));E={x:n-_-EDGE_PADDING,y:d}}if(u||!x.current)return;c.setValue(E);S(true);N?.(E,l)};g();return()=>{u=true}},[a,A,c,j,L,D,_,m,v,N]);(0,_react.useEffect)(()=>{if(!a||!A||T)return;const u=c.addListener(g=>{B(g.x,g.y)});return()=>{c.removeListener(u);if(C.current){clearTimeout(C.current);C.current=void 0}}},[a,A,T,c,B]);return{savePosition:D,isInitialized:A}}function Divider(){const c={width:1,height:12,backgroundColor:_gameUIColors.buoyColors.textMuted+"66",flexShrink:0};return(0,_jsxRuntime.jsx)(_reactNative.View,{style:c})}const gameUIColorsCompat={success:"#20C997",warning:"#FFA94D",error:"#EF4444",muted:_gameUIColors.buoyColors.textMuted,secondary:_gameUIColors.buoyColors.textSecondary,info:"#20C997",primary:"#20C997",optional:_gameUIColors.buoyColors.textSecondary};function getUserStatusConfig(c){return(0,_floatingToolsCore.getUserStatusConfig)(c,gameUIColorsCompat)}const FloatingToolsContext=(0,_react.createContext)({isDragging:false});function UserStatus({userRole:c,onPress:_}){const{isDragging:m}=(0,_react.useContext)(FloatingToolsContext);const a=getUserStatusConfig(c);const v={flexDirection:"row",alignItems:"center",paddingVertical:6,paddingHorizontal:8,flexShrink:0};const T={width:6,height:6,borderRadius:3,backgroundColor:a.dotColor,marginRight:4};const V={fontSize:10,fontWeight:"500",color:a.textColor,letterSpacing:.3};if(!_){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:v,accessibilityLabel:`User status: ${a.label}`,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:T}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:V,children:a.label})]})}return(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{accessibilityRole:"button",accessibilityLabel:"Open Dev Tools Menu",testID:"open-dev-tools-button",onPress:_,hitSlop:{top:10,bottom:10,left:0,right:10},disabled:m,activeOpacity:.85,style:v,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:T}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:V,children:a.label})]})}function interleaveWithDividers(c){const _=(0,_floatingToolsCore.filterValidChildren)(c);const m=[];_.forEach((a,v)=>{m.push(a);if(v<_.length-1)m.push((0,_jsxRuntime.jsx)(Divider,{},`divider-${v}`))});return m}function FloatingTool({id:c,suspendPointerEvents:_=false,revealToken:m,variant:a="bubble",dragFromSurface:v=false,accessibilityLabel:T="Move dev tools bubble",minimizedStack:V,hasMinimizedStack:N=false,accessory:y,handleAdornment:A,enablePositionPersistence:S=true,defaultPlacement:C="top",pushToSide:x=false,centerOnboarding:D=false,children:B,environment:j,availableEnvironments:L,onEnvironmentSwitch:u,showEnvironmentSelector:g=false}){const t=(0,_react.useRef)(new _reactNative.Animated.ValueXY).current;const[n,M]=(0,_react.useState)(false);const[e,E]=(0,_react.useState)({width:100,height:32});const[l,d]=(0,_react.useState)(false);const[Y,Z]=(0,_react.useState)(0);const[K,tt]=(0,_react.useState)(false);const f=(0,_react.useRef)(null);const W=(0,_react.useRef)(false);const O=(0,_react.useRef)(false);const $=(0,_react.useRef)(x);const X=(0,_react.useRef)(null);const[z,et]=(0,_react.useState)(false);const h=(0,_index2.useSafeAreaInsets)();const{width:o,height:p}=(0,_reactNative.useWindowDimensions)();const rt=(0,_react.useCallback)((i,r)=>{if(r){d(true)}},[]);const{savePosition:w,isInitialized:R}=useFloatingToolsPosition({animatedPosition:t,bubbleWidth:e.width,bubbleHeight:e.height,enabled:S,visibleHandleWidth:VISIBLE_HANDLE_WIDTH,listenersSuspended:n,defaultPlacement:C,onPositionLoaded:rt,storageKey:c?`@buoy/floating-tool/${c}`:void 0});(0,_react.useEffect)(()=>{if(S&&!R)return;if(!$.current&&x){O.current=false}$.current=x;if(x&&!l&&!n&&!O.current){const i=getAnimatedValue(t.x);const r=getAnimatedValue(t.y);f.current={x:i,y:r};const s=o-VISIBLE_HANDLE_WIDTH;W.current=true;d(true);_reactNative.Animated.timing(t,{toValue:{x:s,y:r},duration:200,useNativeDriver:false}).start(()=>{w(s,r)})}else if(!x&&l&&W.current){if(f.current){const{x:i,y:r}=f.current;W.current=false;O.current=false;d(false);_reactNative.Animated.timing(t,{toValue:{x:i,y:r},duration:200,useNativeDriver:false}).start(()=>{w(i,r)})}}},[S,R,x,l,n,o,t,w]);(0,_react.useEffect)(()=>{if(!R||z)return;const i=setTimeout(()=>{X.current=e.width;et(true);if(!l&&!n){const r=getAnimatedValue(t.x);const s=o-e.width-EDGE_PADDING;if(r>s){const b=Math.max(h.left,s);const I=getAnimatedValue(t.y);t.setValue({x:b,y:I});w(b,I)}}},LAYOUT_SETTLE_DELAY_MS);return()=>clearTimeout(i)},[R,z,e.width]);(0,_react.useEffect)(()=>{if(!R)return;if(!z)return;if(X.current===null)return;if(n){X.current=e.width;return}const i=X.current;const r=e.width;const s=r-i;if(Math.abs(s)<2){return}X.current=r;if(l){if(f.current){const ct=f.current.x-s;f.current.x=Math.max(h.left,Math.min(ct,o-r-EDGE_PADDING))}return}const b=getAnimatedValue(t.x);const I=getAnimatedValue(t.y);const H=b-s;const U=Math.max(h.left,Math.min(H,o-VISIBLE_HANDLE_WIDTH));if(Math.abs(U-b)>1){_reactNative.Animated.timing(t,{toValue:{x:U,y:I},duration:150,useNativeDriver:false}).start(()=>{w(U,I);if(f.current){f.current.x=U}})}},[e.width,R,z,n,l,t,o,h.left,w]);(0,_react.useEffect)(()=>{if(!S){if(D){const i=(0,_onboardingConstants.calculateTargetPosition)();const r=(o-e.width)/2;const s=p-e.height-i;t.setValue({x:r,y:s})}else{const i=C==="bottom"?Math.max(h.top+EDGE_PADDING,p-e.height-h.bottom-EDGE_PADDING):Math.max(h.top+EDGE_PADDING,Math.min(100,p-e.height-h.bottom));t.setValue({x:o-e.width-EDGE_PADDING,y:i})}}},[S,D,t,e.width,e.height,h.top,h.bottom,o,p]);const k=(0,_react.useCallback)(()=>{const i=getAnimatedValue(t.x);const r=getAnimatedValue(t.y);const s=i>o-e.width/2;if(l||s){let b;let I;if(f.current&&f.current.x<o-e.width/2){b=f.current.x;I=f.current.y}else{b=o-e.width-EDGE_PADDING;I=r}W.current=false;O.current=true;d(false);_reactNative.Animated.timing(t,{toValue:{x:b,y:I},duration:200,useNativeDriver:false}).start(()=>{w(b,I)})}else{f.current={x:i,y:r};O.current=false;const b=o-VISIBLE_HANDLE_WIDTH;d(true);_reactNative.Animated.timing(t,{toValue:{x:b,y:r},duration:200,useNativeDriver:false}).start(()=>{w(b,r)})}},[t,l,e.width,w,o]);const G=(0,_react.useCallback)(()=>{M(true)},[]);const P=(0,_react.useCallback)(i=>{let{x:r,y:s}=i;const b=r+e.width/2;const I=b>o;if(I){const H=o-VISIBLE_HANDLE_WIDTH;d(true);if(f.current){f.current.y=s}else{f.current={x:o-e.width-EDGE_PADDING,y:s}}_reactNative.Animated.timing(t,{toValue:{x:H,y:s},duration:200,useNativeDriver:false}).start(()=>{w(H,s)})}else{if(l&&r<o-VISIBLE_HANDLE_WIDTH-10){d(false)}if(r<o-e.width/2){f.current={x:r,y:s}}w(r,s)}M(false)},[t,e.width,l,w,o]);const q=(0,_react.useRef)({width:o,height:p});(0,_react.useEffect)(()=>{if(S&&!R)return;if(q.current.width===o&&q.current.height===p)return;q.current={width:o,height:p};const i=s=>({x:Math.max(h.left,Math.min(s.x,o-e.width-EDGE_PADDING)),y:Math.max(h.top+EDGE_PADDING,Math.min(s.y,p-e.height-h.bottom))});const r=i({x:getAnimatedValue(t.x),y:getAnimatedValue(t.y)});if(l)r.x=o-VISIBLE_HANDLE_WIDTH;if(f.current)f.current=i(f.current);t.stopAnimation();t.setValue(r);void w(r.x,r.y)},[o,p,R,S,e,h,l,t,w]);const J=Boolean(y);(0,_react.useEffect)(()=>{if(!J)return;const i=({y:s})=>tt(s+e.height+Y>p-h.bottom);i({y:getAnimatedValue(t.y)});const r=t.addListener(i);return()=>t.removeListener(r)},[t,e.height,Y,p,h.bottom,J]);const nt=(0,_react.useMemo)(()=>({position:"absolute",zIndex:1001,transform:t.getTranslateTransform()}),[t]);const Q=(0,_react.useRef)(void 0);(0,_react.useEffect)(()=>{if(S&&!R)return;if(Q.current===m)return;Q.current=m;if(m!==void 0&&m>0&&l)k()},[m,R,S,l,k]);const F=N;const ot={flexDirection:"row",alignItems:"center",backgroundColor:_gameUIColors.buoyColors.card,borderTopLeftRadius:F?0:6,borderTopRightRadius:6,borderBottomLeftRadius:6,borderBottomRightRadius:6,borderLeftWidth:n?2:1,borderRightWidth:n?2:1,borderBottomWidth:n?2:1,borderTopWidth:n?2:F?0:1,borderColor:n?_floatingToolsCore.floatingToolsColors.dragActive:_gameUIColors.buoyColors.textMuted+"66",overflow:"visible",elevation:8,shadowColor:n?_floatingToolsCore.floatingToolsColors.dragActive+"99":"#000",shadowOffset:{width:0,height:n?6:4},shadowOpacity:n?.6:.3,shadowRadius:n?12:8,...a==="strip"?{borderRadius:_nightTheme.night.radius.card,borderTopLeftRadius:_nightTheme.night.radius.card,borderTopRightRadius:_nightTheme.night.radius.card,borderBottomLeftRadius:_nightTheme.night.radius.card,borderBottomRightRadius:_nightTheme.night.radius.card,minHeight:48,backgroundColor:_nightTheme.night.color.surface,borderColor:n?_nightTheme.night.color.accentBorderStrong:_nightTheme.night.color.separator,shadowOpacity:.24,shadowRadius:16}:{}};const it={paddingHorizontal:6,paddingVertical:6,backgroundColor:_gameUIColors.buoyColors.textMuted+"1A",alignItems:"center",justifyContent:"center",width:32,...a==="strip"?{minHeight:48}:{},borderRightWidth:1,borderRightColor:_gameUIColors.buoyColors.textMuted+"66",borderTopLeftRadius:F?0:void 0,...a==="strip"?{backgroundColor:"transparent",borderRightWidth:0}:{}};const st={flexDirection:"row",alignItems:"center",gap:6,paddingRight:8};const at=(0,_react.useMemo)(()=>a==="strip"?_react.Children.toArray(B):interleaveWithDividers(_react.Children.toArray(B)),[B,a]);const ut=32;if(S&&!R){return null}return(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{pointerEvents:_?"none":"box-none",testID:c??"buoy-floating-tool",style:nt,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{overflow:"visible"},children:[V&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:{position:"absolute",bottom:"100%",left:0,width:ut,overflow:"visible",zIndex:1001},children:V}),(0,_jsxRuntime.jsxs)(_DraggableHeader.DraggableHeader,{position:t,enabled:v,claimOnMove:false,onDragStart:G,onDragEnd:P,containerBounds:{width:o,height:p},elementSize:e,minPosition:{x:h.left,y:h.top+EDGE_PADDING},maxOverflowX:e.width,hitSlop:{top:10,bottom:10,left:10,right:10},style:ot,onLayout:i=>{const{width:r,height:s}=i.nativeEvent.layout;E({width:r,height:s})},children:[(0,_jsxRuntime.jsxs)(_DraggableHeader.DraggableHeader,{position:t,testID:c?`${c}-grip`:"buoy-floating-grip",accessibilityLabel:T,onDragStart:G,onDragEnd:P,onTap:k,containerBounds:{width:o,height:p},elementSize:e,minPosition:{x:h.left,y:h.top+EDGE_PADDING},style:it,enabled:true,maxOverflowX:e.width,children:[(0,_jsxRuntime.jsx)(_GripVerticalIcon.GripVerticalIcon,{size:a==="strip"?20:12,color:_gameUIColors.buoyColors.textSecondary+"CC"}),A]}),(0,_jsxRuntime.jsx)(FloatingToolsContext.Provider,{value:{isDragging:n},children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:st,children:[g&&j&&L&&u&&(0,_jsxRuntime.jsx)(_EnvironmentSelectorInline.EnvironmentSelectorInline,{currentEnvironment:j,availableEnvironments:L,onSelect:u}),at]})})]}),!l&&y&&(0,_jsxRuntime.jsx)(_reactNative.View,{onLayout:i=>Z(i.nativeEvent.layout.height),style:{position:"absolute",...K?{bottom:"100%"}:{top:"100%"},left:0,width:"100%",zIndex:1002},children:y})]})})}function getBubbleAnchorPosition(){return null}