@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,1265 +1 @@
1
- "use strict";
2
-
3
- import { useState, useMemo, useCallback, useRef, useEffect, memo } from "react";
4
- import { Text, TouchableOpacity, View, StyleSheet, FlatList } from "react-native";
5
- import { displayValue } from "../utils/displayValue.js";
6
- import { gameUIColors } from "../ui/gameUI/index.js";
7
- import { night } from "../ui/night/nightTheme.js";
8
- import { CopyButton } from "../ui/components/CopyButton.js";
9
- import { ChevronRight } from "../icons/index.js";
10
- import { IndentGuidesOverlay } from "./IndentGuidesOverlay.js";
11
- import { monoFont } from "../ui/fonts.js";
12
- // Stable constants to prevent re-renders [[memory:4875251]]
13
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
14
- const HIT_SLOP_10 = {
15
- top: 10,
16
- bottom: 10,
17
- left: 10,
18
- right: 10
19
- };
20
- const ITEM_HEIGHT = 24; // Fixed height per row for crisp guides
21
- const LONG_ITEM_HEIGHT = 24; // Keep uniform height to match VS Code tree
22
- const CHUNK_SIZE = 50; // Process data in chunks to avoid blocking UI
23
- const MAX_DEPTH_LIMIT = 15; // Prevent excessive nesting
24
- const MAX_ITEMS_PER_LEVEL = 500; // Limit items to prevent memory issues
25
- const LONG_KEY_THRESHOLD = 30; // Keys longer than this use vertical layout
26
- /** Two presses inside this window count as a double-tap (RN has no dblclick). */
27
- const DOUBLE_TAP_MS = 300;
28
-
29
- // Pre-computed indent styles (VS Code-style width)
30
- const INDENT_WIDTH = 16;
31
- const INDENT_STYLES = Array.from({
32
- length: MAX_DEPTH_LIMIT + 1
33
- }, (_, depth) => StyleSheet.create({
34
- container: {
35
- marginLeft: depth * INDENT_WIDTH
36
- }
37
- }).container);
38
-
39
- // Enhanced type color cache using centralized theme colors [[memory:4875251]]
40
- const TYPE_COLOR_CACHE = new Map([["string", gameUIColors.dataTypes.string], ["number", gameUIColors.dataTypes.number], ["bigint", gameUIColors.optional],
41
- // Purple for bigint (distinct from number)
42
- ["boolean", gameUIColors.dataTypes.boolean], ["null", gameUIColors.dataTypes.null], ["undefined", gameUIColors.dataTypes.undefined], ["function", gameUIColors.dataTypes.function], ["symbol", gameUIColors.critical],
43
- // Pink for symbols (distinct from function)
44
- ["date", gameUIColors.critical],
45
- // Pink for dates
46
- ["error", gameUIColors.error],
47
- // Red for errors
48
- ["array", gameUIColors.dataTypes.array], ["object", gameUIColors.dataTypes.object], ["map", gameUIColors.info],
49
- // Cyan for maps (distinct from object/array)
50
- ["set", gameUIColors.success],
51
- // Green for sets (distinct from map/array/object)
52
- ["circular", gameUIColors.warning] // Yellow for circular references
53
- ]);
54
-
55
- // Pre-computed stable styles with React Query-inspired design
56
- const STABLE_STYLES = StyleSheet.create({
57
- container: {
58
- // Night inset panel: darker than the card it sits in, hairline border —
59
- // the old white-wash fill (primary+"08") read as a grey slab on the
60
- // night surfaces. Global on purpose: every tool is moving to night.
61
- backgroundColor: night.color.bg,
62
- borderRadius: 8,
63
- borderWidth: 1,
64
- borderColor: night.color.border
65
- },
66
- header: {
67
- flexDirection: "column",
68
- paddingHorizontal: 16,
69
- // Increased padding like dev tools
70
- paddingVertical: 12
71
- },
72
- headerRow: {
73
- flexDirection: "row",
74
- justifyContent: "space-between",
75
- alignItems: "center",
76
- marginBottom: 6
77
- },
78
- title: {
79
- color: gameUIColors.primary,
80
- // text-white
81
- fontSize: 14,
82
- fontWeight: "500" // font-medium
83
- },
84
- description: {
85
- color: gameUIColors.secondary,
86
- // text-gray-400
87
- fontSize: 12,
88
- marginTop: 2
89
- },
90
- typeLegend: {
91
- flexDirection: "row",
92
- flexWrap: "wrap",
93
- gap: 6,
94
- marginTop: 8,
95
- paddingTop: 8,
96
- borderTopWidth: 1,
97
- borderTopColor: gameUIColors.primary + "14" // border-white/[0.08]
98
- },
99
- typeBadge: {
100
- flexDirection: "row",
101
- alignItems: "center",
102
- paddingHorizontal: 6,
103
- paddingVertical: 2,
104
- borderRadius: 4,
105
- borderWidth: 1
106
- },
107
- typeColor: {
108
- width: 8,
109
- height: 8,
110
- borderRadius: 4,
111
- marginRight: 4
112
- },
113
- typeName: {
114
- fontSize: 10,
115
- fontWeight: "500",
116
- color: gameUIColors.secondary // text-gray-400
117
- },
118
- itemContainer: {
119
- minHeight: ITEM_HEIGHT,
120
- backgroundColor: "transparent",
121
- position: "relative",
122
- flexDirection: "row",
123
- alignItems: "flex-start" // Align items to top for better alignment with expand arrows
124
- },
125
- itemTouchable: {
126
- flex: 1,
127
- flexDirection: "row",
128
- alignItems: "flex-start",
129
- // Changed from center to align expand arrow with first line of text
130
- paddingLeft: 0,
131
- // Remove padding to align with tree lines
132
- paddingRight: 16,
133
- paddingVertical: 2,
134
- // Further reduced for even tighter spacing
135
- minHeight: 24 // Match ITEM_HEIGHT for consistency
136
- },
137
- itemTouchablePressed: {
138
- backgroundColor: gameUIColors.primary + "0A" // slightly more visible on press
139
- },
140
- itemSelected: {
141
- backgroundColor: gameUIColors.primary + "14" // selected row highlight (subtle)
142
- },
143
- expanderContainer: {
144
- width: 16,
145
- // Reduced to minimize space
146
- alignItems: "center",
147
- justifyContent: "center",
148
- marginTop: 4 // Align with text baseline
149
- },
150
- expanderIcon: {
151
- width: 12,
152
- height: 12
153
- },
154
- labelContainer: {
155
- flex: 1,
156
- flexDirection: "row",
157
- alignItems: "flex-start",
158
- paddingLeft: 2
159
- },
160
- labelContainerVertical: {
161
- flex: 1,
162
- flexDirection: "column",
163
- paddingLeft: 2,
164
- // Reduced padding for tighter alignment
165
- paddingVertical: 2
166
- },
167
- labelContainerVerticalRow: {
168
- flexDirection: "row",
169
- alignItems: "center",
170
- marginBottom: 2
171
- },
172
- labelText: {
173
- color: gameUIColors.primary,
174
- // text-white
175
- fontSize: 12,
176
- fontWeight: "500",
177
- // font-medium
178
- fontFamily: monoFont,
179
- marginRight: 8,
180
- flexShrink: 1
181
- },
182
- labelTextTruncated: {
183
- color: gameUIColors.primary,
184
- // text-white
185
- fontSize: 12,
186
- fontWeight: "500",
187
- // font-medium
188
- fontFamily: monoFont,
189
- flexShrink: 1
190
- },
191
- valueText: {
192
- fontSize: 12,
193
- fontFamily: monoFont,
194
- flex: 1,
195
- color: gameUIColors.primaryLight // text-gray-300
196
- },
197
- loadingContainer: {
198
- padding: 16,
199
- alignItems: "center"
200
- },
201
- loadingText: {
202
- color: gameUIColors.secondary,
203
- // text-gray-400
204
- fontSize: 12
205
- },
206
- noDataContainer: {
207
- padding: 16,
208
- alignItems: "center"
209
- },
210
- noDataText: {
211
- color: gameUIColors.secondary,
212
- // text-gray-400
213
- fontSize: 12
214
- },
215
- listContent: {
216
- paddingBottom: 8
217
- },
218
- headerTouchable: {
219
- flex: 1,
220
- flexDirection: "row",
221
- alignItems: "center"
222
- },
223
- expanderMargin: {
224
- marginLeft: 8
225
- }
226
- });
227
-
228
- /**
229
- * A tree row as the HOST sees it.
230
- *
231
- * `item.path` is addressed for the TREE, which is seeded with a synthetic
232
- * "root" node wrapping the caller's data — so the top row is `["root"]` and its
233
- * first child `["root", "0"]`. Ops address the DATA, where those are `[]` and
234
- * `["0"]`. Dropping the first segment is what reconciles the two, and doing it
235
- * in ONE place is what keeps selection, inline editing and ops all agreeing.
236
- */
237
- function selectionOf(item) {
238
- return {
239
- path: item.path.slice(1),
240
- value: item.value,
241
- label: item.key
242
- };
243
- }
244
-
245
- // Type definitions for flattened data structure
246
-
247
- /**
248
- * Node count, capped at `limit`.
249
- *
250
- * Deliberately short-circuits: this runs on every render to decide which
251
- * flattening path to take, so it must cost O(limit), never O(document).
252
- */
253
- function countNodesUpTo(value, limit, seen = 0) {
254
- if (seen >= limit) return seen;
255
- let n = seen + 1;
256
- if (Array.isArray(value)) {
257
- for (const child of value) {
258
- if (n >= limit) return n;
259
- n = countNodesUpTo(child, limit, n);
260
- }
261
- } else if (value !== null && typeof value === "object") {
262
- for (const child of Object.values(value)) {
263
- if (n >= limit) return n;
264
- n = countNodesUpTo(child, limit, n);
265
- }
266
- }
267
- return n;
268
- }
269
-
270
- // Enhanced type detection optimized for performance
271
- const getValueType = value => {
272
- if (value === null) return "null";
273
- if (value === undefined) return "undefined";
274
- if (Array.isArray(value)) return "array";
275
- if (value instanceof Date) return "date";
276
- if (value instanceof Error) return "error";
277
- if (value instanceof Map) return "map";
278
- if (value instanceof Set) return "set";
279
- if (value instanceof RegExp) return "regexp";
280
- if (typeof value === "function") return "function";
281
- if (typeof value === "symbol") return "symbol";
282
- if (typeof value === "bigint") return "bigint";
283
- if (typeof value === "object") return "object";
284
- return typeof value;
285
- };
286
-
287
- // Get value count for collections
288
- const getValueCount = (value, valueType) => {
289
- if (value === null) return 0;
290
- switch (valueType) {
291
- case "array":
292
- return Array.isArray(value) ? value.length : 0;
293
- case "object":
294
- return typeof value === "object" && !(value instanceof Date) && !(value instanceof Error) && !(value instanceof RegExp) && !(value instanceof Map) && !(value instanceof Set) ? Object.keys(value).length : 0;
295
- case "map":
296
- return value instanceof Map ? value.size : 0;
297
- case "set":
298
- return value instanceof Set ? value.size : 0;
299
- default:
300
- return 0;
301
- }
302
- };
303
-
304
- // Format value for display
305
- const formatValue = (value, valueType) => {
306
- if (value === null) return "null";
307
- if (value === undefined) return "undefined";
308
- switch (valueType) {
309
- case "string":
310
- return `"${String(value)}"`;
311
- case "boolean":
312
- return value === true ? "true" : "false";
313
- case "function":
314
- return typeof value === "function" ? value.toString().slice(0, 50) + "..." : "undefined";
315
- case "symbol":
316
- return typeof value === "symbol" ? String(value) : "undefined";
317
- case "date":
318
- return value instanceof Date ? value.toISOString() : "undefined";
319
- case "regexp":
320
- return value instanceof RegExp ? value.toString() : "undefined";
321
- case "bigint":
322
- return typeof value === "bigint" ? value.toString() + "n" : "undefined";
323
- case "error":
324
- return value instanceof Error ? `${value.name}: ${value.message}` : "undefined";
325
- default:
326
- return displayValue(value);
327
- }
328
- };
329
-
330
- // Optimized type color lookup using cache [[memory:4875251]]
331
- const getTypeColor = valueType => {
332
- return TYPE_COLOR_CACHE.get(valueType) || gameUIColors.dataTypes.array;
333
- };
334
-
335
- // Memoized components for performance
336
- const ExpanderComponent = ({
337
- expanded,
338
- onPress
339
- }) => {
340
- return /*#__PURE__*/_jsx(TouchableOpacity, {
341
- "sentry-label": "ignore devtools data explorer expander",
342
- style: STABLE_STYLES.expanderContainer,
343
- onPress: onPress,
344
- hitSlop: HIT_SLOP_10,
345
- children: /*#__PURE__*/_jsx(View, {
346
- style: STABLE_STYLES.expanderIcon,
347
- children: /*#__PURE__*/_jsx(ChevronRight, {
348
- size: 12,
349
- color: gameUIColors.secondary,
350
- strokeWidth: 2,
351
- style: {
352
- transform: [{
353
- rotate: expanded ? "90deg" : "0deg"
354
- }]
355
- }
356
- })
357
- })
358
- });
359
- };
360
- ExpanderComponent.displayName = "Expander";
361
- const Expander = /*#__PURE__*/memo(ExpanderComponent);
362
-
363
- // Type legend component to replace inline type indicators
364
- const TypeLegendComponent = ({
365
- visibleTypes
366
- }) => {
367
- const uniqueTypes = Array.from(new Set(visibleTypes)).slice(0, 8); // Limit to 8 most common types
368
-
369
- return /*#__PURE__*/_jsx(View, {
370
- style: STABLE_STYLES.typeLegend,
371
- children: uniqueTypes.map(type => {
372
- const color = getTypeColor(type);
373
- return /*#__PURE__*/_jsxs(View, {
374
- style: [STABLE_STYLES.typeBadge, {
375
- backgroundColor: `${color}10`,
376
- borderColor: `${color}30`
377
- }],
378
- children: [/*#__PURE__*/_jsx(View, {
379
- style: [STABLE_STYLES.typeColor, {
380
- backgroundColor: color
381
- }]
382
- }), /*#__PURE__*/_jsx(Text, {
383
- style: STABLE_STYLES.typeName,
384
- children: type
385
- })]
386
- }, type);
387
- })
388
- });
389
- };
390
- TypeLegendComponent.displayName = "TypeLegend";
391
- const TypeLegend = /*#__PURE__*/memo(TypeLegendComponent);
392
-
393
- // Optimized data flattening with chunked processing to prevent UI blocking [[memory:4875251]]
394
- const useDataFlattening = (data, maxDepth = 10, autoExpandFirstLevel = false) => {
395
- const [flatData, setFlatData] = useState([]);
396
- const flatDataMapRef = useRef(new Map());
397
-
398
- // Initialize with root expanded and optionally first level
399
- const getInitialExpanded = useCallback(() => {
400
- const initial = new Set(["root"]);
401
- if (autoExpandFirstLevel && data && typeof data === "object") {
402
- if (Array.isArray(data)) {
403
- data.forEach((_, index) => {
404
- initial.add(`root.${index}`);
405
- });
406
- } else {
407
- Object.keys(data).forEach(key => {
408
- initial.add(`root.${key}`);
409
- });
410
- }
411
- }
412
- return initial;
413
- }, [autoExpandFirstLevel, data]);
414
- const [expandedItems, setExpandedItems] = useState(() => getInitialExpanded());
415
- const [isProcessing, setIsProcessing] = useState(false);
416
-
417
- // Debug logging - commented out for less noise
418
- // Store circular cache outside of re-renders to prevent reset
419
- const circularCacheRef = useRef(new WeakSet());
420
- const processingRef = useRef(false);
421
- /**
422
- * Monotonic token identifying the newest flatten run.
423
- *
424
- * WHY: a cancelled run used to `return` without clearing `isProcessing`, so
425
- * whenever renders arrived faster than the 10ms debounce + flatten, every run
426
- * was superseded before it finished and the spinner never came down — the
427
- * viewer sat on "Processing data…" forever. Now each run checks it is still
428
- * the current one, and the run that ends up last ALWAYS resolves the flag.
429
- */
430
- const runIdRef = useRef(0);
431
- const dataVersionRef = useRef(0);
432
- const lastActionRef = useRef(undefined);
433
-
434
- // Stable flattenData function that doesn't depend on expandedItems
435
- const flattenDataStable = useCallback((value, expandedSet, circularCache, key = "root", depth = 0, parentId, path = [], siblingIndex = 0, totalSiblings = 1, parentHasMoreSiblings = []) => {
436
- // Early termination for performance [[memory:4875251]]
437
- if (depth > Math.min(maxDepth, MAX_DEPTH_LIMIT)) return [];
438
- const currentPath = [...path, key];
439
- const id = currentPath.join(".");
440
- const valueType = getValueType(value);
441
- const isExpandable = ["object", "array", "map", "set"].includes(valueType) && value !== null;
442
- const rawChildCount = isExpandable ? getValueCount(value, valueType) : 0;
443
- // Limit child count to prevent performance issues [[memory:4875251]]
444
- const childCount = Math.min(rawChildCount, MAX_ITEMS_PER_LEVEL);
445
-
446
- // Check for circular references
447
- if (value && typeof value === "object") {
448
- if (circularCache.has(value)) {
449
- return [{
450
- id,
451
- key,
452
- value: "[Circular Reference]",
453
- valueType: "circular",
454
- depth,
455
- isExpandable: false,
456
- isExpanded: false,
457
- parentId,
458
- hasChildren: false,
459
- childCount: 0,
460
- path: currentPath,
461
- type: "circular",
462
- isLastChild: siblingIndex === totalSiblings - 1,
463
- parentHasMoreSiblings: [...parentHasMoreSiblings],
464
- siblingIndex,
465
- totalSiblings
466
- }];
467
- }
468
- circularCache.add(value);
469
- }
470
- const currentItem = {
471
- id,
472
- key,
473
- value,
474
- valueType,
475
- depth,
476
- isExpandable,
477
- isExpanded: expandedSet.has(id),
478
- parentId,
479
- hasChildren: childCount > 0,
480
- childCount,
481
- path: currentPath,
482
- type: isExpandable ? "expandable" : valueType,
483
- isLastChild: siblingIndex === totalSiblings - 1,
484
- parentHasMoreSiblings: [...parentHasMoreSiblings],
485
- siblingIndex,
486
- totalSiblings
487
- };
488
- const result = [currentItem];
489
-
490
- // Only add children if expanded and not too deep [[memory:4875251]]
491
- if (isExpandable && expandedSet.has(id) && depth < Math.min(maxDepth, MAX_DEPTH_LIMIT)) {
492
- try {
493
- let entries = [];
494
- switch (valueType) {
495
- case "array":
496
- entries = Array.isArray(value) ? value.map((item, index) => [index.toString(), item]) : [];
497
- break;
498
- case "object":
499
- entries = typeof value === "object" && value !== null && !(value instanceof Date) && !(value instanceof Error) && !(value instanceof RegExp) && !(value instanceof Map) && !(value instanceof Set) ? Object.entries(value) : [];
500
- break;
501
- case "map":
502
- entries = value instanceof Map ? Array.from(value.entries()).map(([k, v]) => [String(k), v]) : [];
503
- break;
504
- case "set":
505
- entries = value instanceof Set ? Array.from(value.values()).map((v, index) => [index.toString(), v]) : [];
506
- break;
507
- }
508
-
509
- // Aggressively limit children for performance [[memory:4875251]]
510
- const limitedEntries = entries.slice(0, childCount);
511
- const totalChildCount = limitedEntries.length;
512
-
513
- // Update parent's sibling tracking for children
514
- const newParentHasMoreSiblings = [...parentHasMoreSiblings];
515
- if (depth > 0) {
516
- // Current item has more siblings if it's not the last child
517
- newParentHasMoreSiblings[depth - 1] = !currentItem.isLastChild;
518
- }
519
-
520
- // Process children in smaller batches to avoid blocking
521
- for (let i = 0; i < limitedEntries.length; i += CHUNK_SIZE) {
522
- const chunk = limitedEntries.slice(i, i + CHUNK_SIZE);
523
- let chunkIndex = i;
524
- for (const [childKey, childValue] of chunk) {
525
- result.push(...flattenDataStable(childValue, expandedSet, circularCache, childKey, depth + 1, id, currentPath, chunkIndex, totalChildCount, newParentHasMoreSiblings));
526
- chunkIndex++;
527
- }
528
-
529
- // Yield to main thread periodically for large datasets
530
- if (i > 0 && i % (CHUNK_SIZE * 2) === 0) {
531
- break; // Let InteractionManager handle the rest
532
- }
533
- }
534
- } catch (error) {
535
- console.error(error);
536
- // Skip malformed data
537
- }
538
- }
539
- return result;
540
- }, [maxDepth] // Only depend on maxDepth, not expandedItems
541
- );
542
-
543
- // Only process full data when data changes (not on expand/collapse)
544
- useEffect(() => {
545
- // Skip if this was just an expand/collapse action
546
- if (lastActionRef.current && (lastActionRef.current.type === "expand" || lastActionRef.current.type === "collapse")) {
547
- // Make sure processing flag is cleared for incremental updates
548
- if (isProcessing) {
549
- setIsProcessing(false);
550
- processingRef.current = false;
551
- }
552
- lastActionRef.current = undefined;
553
- return;
554
- }
555
-
556
- // Prevent concurrent processing
557
- if (processingRef.current) {
558
- return;
559
- }
560
- let timeoutId;
561
- const runId = ++runIdRef.current;
562
- /** True while this run is still the newest one scheduled. */
563
- const isCurrent = () => runIdRef.current === runId;
564
- processingRef.current = true;
565
- setIsProcessing(true);
566
- const processData = async () => {
567
- // Failsafe timeout to prevent stuck processing
568
- timeoutId = setTimeout(() => {
569
- if (processingRef.current && isCurrent()) {
570
- setIsProcessing(false);
571
- processingRef.current = false;
572
- }
573
- }, 5000);
574
- // Small delay to debounce rapid changes
575
- // Small delay to batch rapid changes
576
- await new Promise(resolve => setTimeout(() => resolve(), 10));
577
-
578
- // Superseded by a newer run — that run now owns `isProcessing`, so leave
579
- // the flag alone and let it resolve.
580
- if (!isCurrent()) {
581
- return;
582
- }
583
- try {
584
- // Initialize circular cache for new data
585
- circularCacheRef.current = new WeakSet();
586
- dataVersionRef.current = Date.now();
587
- const newFlatData = flattenDataStable(data, expandedItems, circularCacheRef.current, "root", 0, undefined, [], 0, 1, []);
588
-
589
- // Build the map for incremental updates
590
- const newMap = new Map();
591
- newFlatData.forEach((item, index) => {
592
- newMap.set(item.id, {
593
- item,
594
- index
595
- });
596
- });
597
- flatDataMapRef.current = newMap;
598
- if (timeoutId) clearTimeout(timeoutId);
599
- if (isCurrent()) {
600
- setFlatData(newFlatData);
601
- setIsProcessing(false);
602
- processingRef.current = false;
603
- }
604
- } catch (error) {
605
- console.error(error);
606
- // Reset to empty data on error
607
- if (timeoutId) clearTimeout(timeoutId);
608
- if (isCurrent()) {
609
- setFlatData([]);
610
- flatDataMapRef.current = new Map();
611
- setIsProcessing(false);
612
- processingRef.current = false;
613
- }
614
- }
615
- };
616
- processData();
617
- return () => {
618
- processingRef.current = false;
619
- if (timeoutId) clearTimeout(timeoutId);
620
- };
621
- }, [data, expandedItems, flattenDataStable, maxDepth]);
622
-
623
- // Incremental update function for expand/collapse
624
- const updateFlatDataIncremental = useCallback((itemId, isExpanding) => {
625
- // Clear processing flag since we're doing incremental update
626
- setIsProcessing(false);
627
- processingRef.current = false;
628
- setFlatData(prevFlatData => {
629
- const itemEntry = flatDataMapRef.current.get(itemId);
630
- if (!itemEntry) {
631
- return prevFlatData;
632
- }
633
- const {
634
- item,
635
- index
636
- } = itemEntry;
637
- if (isExpanding && item.isExpandable && item.hasChildren) {
638
- // Expand: insert children after the item
639
- const newItems = [...prevFlatData];
640
-
641
- // Create a new circular cache for this subtree
642
- const subCircularCache = new WeakSet();
643
- if (item.value && typeof item.value === "object") {
644
- subCircularCache.add(item.value);
645
- }
646
-
647
- // We need to get the actual children, not re-process the parent
648
- // So we process each child entry individually
649
- const childrenItems = [];
650
- try {
651
- let entries = [];
652
- const valueType = item.valueType;
653
- switch (valueType) {
654
- case "array":
655
- entries = Array.isArray(item.value) ? item.value.map((childValue, index) => [index.toString(), childValue]) : [];
656
- break;
657
- case "object":
658
- entries = typeof item.value === "object" && item.value !== null && !(item.value instanceof Date) && !(item.value instanceof Error) && !(item.value instanceof RegExp) && !(item.value instanceof Map) && !(item.value instanceof Set) ? Object.entries(item.value) : [];
659
- break;
660
- case "map":
661
- entries = item.value instanceof Map ? Array.from(item.value.entries()).map(([k, v]) => [String(k), v]) : [];
662
- break;
663
- case "set":
664
- entries = item.value instanceof Set ? Array.from(item.value.values()).map((v, index) => [index.toString(), v]) : [];
665
- break;
666
- }
667
-
668
- // Process each child with sibling tracking
669
- const totalEntries = entries.length;
670
- const parentHasMoreSiblings = item.parentHasMoreSiblings || [];
671
- const newParentHasMoreSiblings = [...parentHasMoreSiblings];
672
- if (item.depth > 0) {
673
- newParentHasMoreSiblings[item.depth - 1] = !item.isLastChild;
674
- }
675
- entries.forEach(([childKey, childValue], index) => {
676
- const childItems = flattenDataStable(childValue, new Set(),
677
- // Children start collapsed
678
- subCircularCache, childKey, item.depth + 1, itemId, item.path, index, totalEntries, newParentHasMoreSiblings);
679
- childrenItems.push(...childItems);
680
- });
681
- } catch (error) {
682
- console.error(error);
683
- }
684
- const childrenToInsert = childrenItems;
685
- if (childrenToInsert.length > 0) {
686
- // Children are ready to insert
687
- }
688
-
689
- // Update the parent item to show it's expanded
690
- newItems[index] = {
691
- ...item,
692
- isExpanded: true
693
- };
694
-
695
- // Insert children after the parent
696
- newItems.splice(index + 1, 0, ...childrenToInsert);
697
-
698
- // Rebuild the map
699
- const newMap = new Map();
700
- newItems.forEach((item, index) => {
701
- newMap.set(item.id, {
702
- item,
703
- index
704
- });
705
- });
706
- flatDataMapRef.current = newMap;
707
- return newItems;
708
- } else if (!isExpanding) {
709
- // Collapse: remove all descendants
710
- const itemsToRemove = new Set();
711
- const findDescendants = (parentId, depth) => {
712
- prevFlatData.forEach(child => {
713
- if (child.parentId === parentId || child.id.startsWith(parentId + ".") && child.depth > depth) {
714
- itemsToRemove.add(child.id);
715
- if (child.hasChildren) {
716
- findDescendants(child.id, child.depth);
717
- }
718
- }
719
- });
720
- };
721
- findDescendants(itemId, item.depth);
722
-
723
- // Filter out descendants and update the parent
724
- const newItems = prevFlatData.map(it => {
725
- if (it.id === itemId) {
726
- return {
727
- ...it,
728
- isExpanded: false
729
- };
730
- }
731
- return it;
732
- }).filter(it => !itemsToRemove.has(it.id));
733
-
734
- // Rebuild the map
735
- const newMap = new Map();
736
- newItems.forEach((item, index) => {
737
- newMap.set(item.id, {
738
- item,
739
- index
740
- });
741
- });
742
- flatDataMapRef.current = newMap;
743
- return newItems;
744
- }
745
- return prevFlatData;
746
- });
747
- }, [flattenDataStable]);
748
- const toggleExpanded = useCallback(itemId => {
749
- setExpandedItems(prev => {
750
- const newSet = new Set(prev);
751
- const isExpanding = !newSet.has(itemId);
752
- if (isExpanding) {
753
- newSet.add(itemId);
754
- } else {
755
- newSet.delete(itemId);
756
- }
757
-
758
- // Store the action for the effect to use
759
- lastActionRef.current = {
760
- type: isExpanding ? "expand" : "collapse",
761
- itemId
762
- };
763
-
764
- // Perform incremental update
765
- updateFlatDataIncremental(itemId, isExpanding);
766
- return newSet;
767
- });
768
- }, [updateFlatDataIncremental]);
769
-
770
- /**
771
- * Small documents flatten SYNCHRONOUSLY, during render.
772
- *
773
- * The chunked effect above exists so a 500-node payload can't block a frame,
774
- * and it pays for that with an async, multi-commit rebuild every time `data`
775
- * changes identity. Editing is immutable, so that's every single op — which
776
- * made a three-item array rebuild itself in stages on every tap, visibly, for
777
- * machinery it never needed. Below the chunk threshold the entire flatten is
778
- * cheaper than one of those commits, so derive it inline and let React
779
- * reconcile the rows normally. The chunked path is untouched above that size.
780
- */
781
- const isSmallDocument = countNodesUpTo(data, CHUNK_SIZE, 0) < CHUNK_SIZE;
782
- const syncFlatData = useMemo(() => {
783
- if (!isSmallDocument) return null;
784
- return flattenDataStable(data, expandedItems, new WeakSet(), "root", 0, undefined, [], 0, 1, []);
785
- }, [isSmallDocument, data, expandedItems, flattenDataStable]);
786
-
787
- /**
788
- * Expand a set of ancestor ids so a node deeper in the tree becomes visible.
789
- *
790
- * Needed because a host can relocate the selection to a node the user never
791
- * expanded their way to — append into a collapsed array and the new entry is
792
- * selected but off-tree, which reads as "nothing happened". Unlike
793
- * `toggleExpanded` this doesn't patch `flatData` incrementally; the full
794
- * flatten effect already re-runs on `expandedItems`, and a reveal is rare
795
- * enough that the extra pass isn't worth a second incremental code path.
796
- */
797
- const revealPath = useCallback(ancestorIds => {
798
- if (ancestorIds.length === 0) return;
799
- setExpandedItems(prev => {
800
- if (ancestorIds.every(id => prev.has(id))) return prev;
801
- const next = new Set(prev);
802
- for (const id of ancestorIds) next.add(id);
803
- return next;
804
- });
805
- }, []);
806
- return {
807
- flatData: syncFlatData ?? flatData,
808
- // A synchronous list is never "processing" — the spinner would flash on
809
- // every keystroke otherwise.
810
- isProcessing: syncFlatData ? false : isProcessing,
811
- toggleExpanded,
812
- revealPath
813
- };
814
- };
815
-
816
- // Optimized virtualized item renderer with full-row clickability [[memory:4875251]]
817
- const VirtualizedItemComponent = ({
818
- item,
819
- onToggleExpanded,
820
- index,
821
- onSelect,
822
- isSelected,
823
- selectable,
824
- onRequestInlineEdit,
825
- isInlineEditing,
826
- inlineEditor,
827
- testIDPrefix
828
- }) => {
829
- const [isPressed, setIsPressed] = useState(false);
830
- const [showFullKey, setShowFullKey] = useState(false);
831
- const canEdit = selectable === true;
832
- const lastPressRef = useRef(0);
833
-
834
- /**
835
- * `item.path` is addressed for the TREE, which is seeded with a synthetic
836
- * "root" node wrapping the caller's data — so the top row is `["root"]` and
837
- * its first child `["root", "0"]`. Ops address the DATA, where those are `[]`
838
- * and `["0"]`. Dropping the first segment is what reconciles the two.
839
- *
840
- * Worth stating plainly because getting it wrong fails silently: `applyJsonOp`
841
- * treats an unresolvable path as a no-op, so every button would simply have
842
- * done nothing rather than erroring.
843
- */
844
- const dataPath = item.path.slice(1);
845
-
846
- // Use pre-computed styles to avoid inline calculations [[memory:4875251]]
847
- const indentStyle = INDENT_STYLES[Math.min(item.depth, MAX_DEPTH_LIMIT)] || INDENT_STYLES[0];
848
- const color = getTypeColor(item.valueType);
849
-
850
- // Uniform row layout: single-line like VS Code tree
851
- const isLongKey = false;
852
-
853
- // Use inline handler since component is already memoized [[memory:4875251]]
854
-
855
- /**
856
- * Row body. In editable mode this SELECTS only — pressing a container to see
857
- * its actions would otherwise collapse the very subtree you're editing, and
858
- * the expander already exists to do the toggling (the same split every tree
859
- * view makes). Read-only mode keeps the original toggle-on-row-press.
860
- */
861
- const handlePress = () => {
862
- if (canEdit) {
863
- // Double-tap opens the inline editor, matching the mockup's
864
- // double-click. Detected by hand because RN has no dblclick: two presses
865
- // inside DOUBLE_TAP_MS on an already-selected scalar row.
866
- const now = Date.now();
867
- const isDouble = now - lastPressRef.current < DOUBLE_TAP_MS;
868
- lastPressRef.current = now;
869
- if (isDouble && !item.isExpandable && onRequestInlineEdit) {
870
- onRequestInlineEdit(item);
871
- return;
872
- }
873
- onSelect(item);
874
- return;
875
- }
876
- if (item.isExpandable) {
877
- onToggleExpanded(item.id);
878
- }
879
- onSelect(item);
880
- };
881
-
882
- /** The chevron always toggles, in both modes. */
883
- const handleExpanderPress = () => {
884
- if (item.isExpandable) {
885
- onToggleExpanded(item.id);
886
- }
887
- onSelect(item);
888
- };
889
- const handleKeyPress = () => {};
890
-
891
- // Always show full key for better identification
892
- const displayKey = item.key;
893
- return /*#__PURE__*/_jsxs(View, {
894
- style: [STABLE_STYLES.itemContainer, indentStyle],
895
- children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
896
- "sentry-label": "ignore devtools data explorer item"
897
- // `item.id` is the dotted path from the root ("root.settings.theme"),
898
- // so this handle addresses a NODE rather than a list position — stable
899
- // across expand/collapse and across re-renders.
900
- ,
901
- testID: `${testIDPrefix}-${item.id}`,
902
- accessibilityLabel: `${item.key}: ${item.valueType}`,
903
- style: [STABLE_STYLES.itemTouchable, isPressed && STABLE_STYLES.itemTouchablePressed,
904
- // The selected wash exists for the action-bar/edit flow. In a plain
905
- // read-only viewer every expand/collapse tap ALSO selects, which
906
- // left a permanent grey strip on the last-tapped row (the collapsed
907
- // root, usually) — so the wash only paints when selection means
908
- // something. selectedId still tracks either way: the indent-guide
909
- // depth highlight uses it.
910
- canEdit && isSelected && STABLE_STYLES.itemSelected, isLongKey && {
911
- minHeight: LONG_ITEM_HEIGHT,
912
- paddingVertical: 2
913
- }],
914
- onPress: handlePress,
915
- onPressIn: () => setIsPressed(true),
916
- onPressOut: () => setIsPressed(false),
917
- activeOpacity: item.isExpandable || canEdit ? 0.7 : 1
918
- // A leaf row has nothing to expand, so it was left unpressable. In
919
- // editable mode the press IS the selection that reveals this row's
920
- // actions, so scalars — the ones you most want to edit — have to be
921
- // pressable too.
922
- ,
923
- disabled: !item.isExpandable && !canEdit,
924
- children: [item.isExpandable ? /*#__PURE__*/_jsx(Expander, {
925
- expanded: item.isExpanded,
926
- onPress: handleExpanderPress
927
- }) : /*#__PURE__*/_jsx(View, {
928
- style: STABLE_STYLES.expanderContainer
929
- }), /*#__PURE__*/_jsxs(View, {
930
- style: STABLE_STYLES.labelContainer,
931
- children: [/*#__PURE__*/_jsxs(Text, {
932
- style: STABLE_STYLES.labelText,
933
- numberOfLines: 1,
934
- children: [item.key, ":"]
935
- }), isInlineEditing && inlineEditor ? inlineEditor : item.isExpandable ? /*#__PURE__*/_jsxs(Text, {
936
- style: [STABLE_STYLES.valueText, {
937
- color: gameUIColors.secondary
938
- }],
939
- numberOfLines: 1,
940
- children: [item.valueType, " (", item.childCount, " ", item.childCount === 1 ? "item" : "items", ")"]
941
- }) : /*#__PURE__*/_jsx(Text, {
942
- style: [STABLE_STYLES.valueText, {
943
- color
944
- }],
945
- numberOfLines: 1,
946
- children: formatValue(item.value, item.valueType)
947
- })]
948
- })]
949
- }), item.value !== undefined ? /*#__PURE__*/_jsx(CopyButton, {
950
- value: item.value,
951
- size: 14,
952
- buttonStyle: {
953
- marginLeft: 8,
954
- marginRight: 8
955
- }
956
- }) : null]
957
- });
958
- };
959
- VirtualizedItemComponent.displayName = "VirtualizedItem";
960
- const VirtualizedItem = /*#__PURE__*/memo(VirtualizedItemComponent);
961
-
962
- // Main virtualized data explorer component
963
-
964
- export const VirtualizedDataExplorer = ({
965
- title,
966
- description,
967
- data,
968
- maxDepth = 10,
969
- rawMode = false,
970
- initialExpanded = false,
971
- // disableCopy is accepted for API compatibility but CopyButton handles Pro gating internally
972
- disableCopy: _disableCopy = false,
973
- onSelectionChange,
974
- onRequestInlineEdit,
975
- inlineEditPath,
976
- renderInlineEditor,
977
- selectPath,
978
- testIDPrefix = "buoy-tree-row"
979
- }) => {
980
- const [isExpanded, setIsExpanded] = useState(rawMode); // Auto-expand in raw mode
981
- const {
982
- flatData,
983
- isProcessing,
984
- toggleExpanded,
985
- revealPath
986
- } = useDataFlattening(data, maxDepth, initialExpanded);
987
-
988
- // Track visible range for overlay rendering
989
- const listRef = useRef(null);
990
- const [visibleRange, setVisibleRange] = useState({
991
- start: 0,
992
- end: Math.min(flatData.length - 1, Math.max(0, Math.ceil(400 / ITEM_HEIGHT) - 1))
993
- });
994
- const viewabilityConfigRef = useRef({
995
- itemVisiblePercentThreshold: 1
996
- });
997
- const onViewableItemsChanged = useRef(({
998
- viewableItems
999
- }) => {
1000
- const idx = viewableItems.map(v => v.index).filter(n => typeof n === "number");
1001
- if (idx.length) {
1002
- setVisibleRange({
1003
- start: Math.min(...idx),
1004
- end: Math.max(...idx)
1005
- });
1006
- }
1007
- }).current;
1008
- useEffect(() => {
1009
- // When data changes, reset the presumed visible window
1010
- setVisibleRange({
1011
- start: 0,
1012
- end: Math.min(flatData.length - 1, Math.max(0, Math.ceil(400 / ITEM_HEIGHT) - 1))
1013
- });
1014
- }, [flatData.length]);
1015
-
1016
- // Calculate visible types for the legend with single pass deduplication
1017
- // Performance: Avoiding array.map() + Array.from(new Set()), using single loop for unique types
1018
- const visibleTypes = useMemo(() => {
1019
- const typeSet = new Set();
1020
- for (const item of flatData) {
1021
- typeSet.add(item.valueType);
1022
- // Early exit if we have enough types for the legend (max 8 as per TypeLegend component)
1023
- if (typeSet.size >= 8) break;
1024
- }
1025
- return Array.from(typeSet);
1026
- }, [flatData]);
1027
-
1028
- // Remove unnecessary useCallback - not passed to memoized components [[memory:4875251]]
1029
- const toggleMainExpanded = () => {
1030
- setIsExpanded(!isExpanded);
1031
- };
1032
-
1033
- // Stable renderItem using module-scope function [[memory:4875251]]
1034
- /**
1035
- * Selection is tracked by the row's stable id (its path), NOT its index.
1036
- *
1037
- * An edit reshapes the list — removing item 1 slides everything up — so an
1038
- * index-based selection would silently start pointing at a different node
1039
- * and the action bar would operate on the wrong one. An id survives that, and
1040
- * resolves to nothing when the node it named is gone.
1041
- */
1042
- const [selectedId, setSelectedId] = useState(null);
1043
- const selectedItem = useMemo(() => selectedId == null ? undefined : flatData.find(it => it.id === selectedId), [flatData, selectedId]);
1044
- const activeDepth = selectedItem?.depth;
1045
-
1046
- // Report the selection outward, re-emitting after each data change so the
1047
- // action bar is looking at the CURRENT value of the node it has selected.
1048
- useEffect(() => {
1049
- if (!onSelectionChange) return;
1050
- onSelectionChange(selectedItem ? selectionOf(selectedItem) : null);
1051
- }, [selectedItem, onSelectionChange]);
1052
-
1053
- /** Tapping the selected row again clears it, so the bar can be dismissed. */
1054
- const handleSelect = useCallback(item => {
1055
- setSelectedId(prev => prev === item.id ? null : item.id);
1056
- }, []);
1057
-
1058
- // Re-sync when the host relocates the selection. Keyed on the joined path so
1059
- // an unchanged array identity (a fresh render) doesn't clobber a user's tap.
1060
- const selectPathKey = selectPath === undefined ? undefined : selectPath === null ? "\u0000null" : selectPath.join(".");
1061
- const lastSelectPathKey = useRef(selectPathKey);
1062
- useEffect(() => {
1063
- if (selectPathKey === lastSelectPathKey.current) return;
1064
- lastSelectPathKey.current = selectPathKey;
1065
- if (selectPathKey === undefined) return;
1066
- if (selectPath == null) {
1067
- setSelectedId(null);
1068
- return;
1069
- }
1070
- // Reveal it first — a selection the user can't see reads as a no-op.
1071
- const ancestors = ["root"];
1072
- for (const segment of selectPath.slice(0, -1)) {
1073
- ancestors.push(`${ancestors[ancestors.length - 1]}.${segment}`);
1074
- }
1075
- revealPath(ancestors);
1076
- setSelectedId(["root", ...selectPath].join("."));
1077
- }, [selectPathKey, selectPath, revealPath]);
1078
- const handleRequestInlineEdit = useCallback(item => {
1079
- setSelectedId(item.id);
1080
- onRequestInlineEdit?.(selectionOf(item));
1081
- }, [onRequestInlineEdit]);
1082
- const renderItem = ({
1083
- item,
1084
- index
1085
- }) => /*#__PURE__*/_jsx(VirtualizedItem, {
1086
- item: item,
1087
- index: index,
1088
- onToggleExpanded: toggleExpanded,
1089
- onSelect: handleSelect,
1090
- isSelected: selectedItem?.id === item.id,
1091
- selectable: onSelectionChange != null,
1092
- onRequestInlineEdit: handleRequestInlineEdit,
1093
- isInlineEditing: inlineEditPath != null && inlineEditPath.join(".") === item.path.slice(1).join("."),
1094
- inlineEditor: renderInlineEditor ? renderInlineEditor(selectionOf(item)) : null,
1095
- testIDPrefix: testIDPrefix
1096
- });
1097
-
1098
- // Uniform row height for crisp guide geometry
1099
- const averageItemSize = ITEM_HEIGHT;
1100
-
1101
- // Simple keyExtractor without useCallback [[memory:4875251]]
1102
- const keyExtractor = item => item.id;
1103
- const hasData = data !== null && data !== undefined && (typeof data === "string" ? data.length > 0 : typeof data === "number" || typeof data === "boolean" ? true : Array.isArray(data) ? data.length > 0 : typeof data === "object" ? Object.keys(data).length > 0 : false);
1104
-
1105
- // Raw mode: render data directly without header/container
1106
- if (rawMode) {
1107
- if (!hasData) {
1108
- return /*#__PURE__*/_jsx(View, {
1109
- style: {
1110
- flex: 1,
1111
- justifyContent: "center",
1112
- alignItems: "center",
1113
- padding: 20
1114
- },
1115
- children: /*#__PURE__*/_jsx(Text, {
1116
- style: STABLE_STYLES.noDataText,
1117
- children: "No data available"
1118
- })
1119
- });
1120
- }
1121
- return /*#__PURE__*/_jsx(View, {
1122
- style: {
1123
- minHeight: isProcessing ? 40 : flatData.length * ITEM_HEIGHT
1124
- },
1125
- children: isProcessing ? /*#__PURE__*/_jsx(View, {
1126
- style: {
1127
- flex: 1,
1128
- justifyContent: "center",
1129
- alignItems: "center"
1130
- },
1131
- children: /*#__PURE__*/_jsxs(Text, {
1132
- style: STABLE_STYLES.loadingText,
1133
- children: ["Processing data... (raw mode, isProcessing=", String(isProcessing), ")"]
1134
- })
1135
- }) : /*#__PURE__*/_jsxs(View, {
1136
- style: {
1137
- position: "relative",
1138
- height: flatData.length * ITEM_HEIGHT
1139
- },
1140
- children: [/*#__PURE__*/_jsx(IndentGuidesOverlay, {
1141
- items: flatData,
1142
- visibleRange: {
1143
- start: 0,
1144
- end: Math.max(0, flatData.length - 1)
1145
- },
1146
- itemHeight: ITEM_HEIGHT,
1147
- indentWidth: INDENT_WIDTH,
1148
- activeDepth: activeDepth
1149
- }), /*#__PURE__*/_jsx(FlatList, {
1150
- ref: listRef,
1151
- "sentry-label": "ignore devtools data explorer list",
1152
- data: flatData,
1153
- renderItem: renderItem,
1154
- keyExtractor: keyExtractor,
1155
- showsVerticalScrollIndicator: true,
1156
- contentContainerStyle: STABLE_STYLES.listContent,
1157
- initialNumToRender: 15,
1158
- maxToRenderPerBatch: 10,
1159
- windowSize: 10,
1160
- scrollEnabled: false
1161
- })]
1162
- })
1163
- });
1164
- }
1165
-
1166
- // Standard mode: render with header and container
1167
- if (!hasData) {
1168
- return /*#__PURE__*/_jsxs(View, {
1169
- style: STABLE_STYLES.container,
1170
- children: [/*#__PURE__*/_jsx(View, {
1171
- style: STABLE_STYLES.header,
1172
- children: /*#__PURE__*/_jsx(View, {
1173
- style: STABLE_STYLES.headerRow,
1174
- children: /*#__PURE__*/_jsxs(View, {
1175
- style: {
1176
- flex: 1
1177
- },
1178
- children: [/*#__PURE__*/_jsx(Text, {
1179
- style: STABLE_STYLES.title,
1180
- children: title
1181
- }), description && /*#__PURE__*/_jsx(Text, {
1182
- style: STABLE_STYLES.description,
1183
- children: description
1184
- })]
1185
- })
1186
- })
1187
- }), /*#__PURE__*/_jsx(View, {
1188
- style: STABLE_STYLES.noDataContainer,
1189
- children: /*#__PURE__*/_jsx(Text, {
1190
- style: STABLE_STYLES.noDataText,
1191
- children: "No data available"
1192
- })
1193
- })]
1194
- });
1195
- }
1196
- return /*#__PURE__*/_jsxs(View, {
1197
- style: STABLE_STYLES.container,
1198
- children: [/*#__PURE__*/_jsxs(View, {
1199
- style: STABLE_STYLES.header,
1200
- children: [/*#__PURE__*/_jsx(View, {
1201
- style: STABLE_STYLES.headerRow,
1202
- children: /*#__PURE__*/_jsxs(TouchableOpacity, {
1203
- "sentry-label": "ignore devtools data explorer header toggle",
1204
- onPress: toggleMainExpanded,
1205
- hitSlop: HIT_SLOP_10,
1206
- style: STABLE_STYLES.headerTouchable,
1207
- children: [/*#__PURE__*/_jsxs(View, {
1208
- style: {
1209
- flex: 1
1210
- },
1211
- children: [/*#__PURE__*/_jsx(Text, {
1212
- style: STABLE_STYLES.title,
1213
- children: title
1214
- }), description && /*#__PURE__*/_jsx(Text, {
1215
- style: STABLE_STYLES.description,
1216
- children: description
1217
- })]
1218
- }), /*#__PURE__*/_jsx(View, {
1219
- style: STABLE_STYLES.expanderMargin,
1220
- children: /*#__PURE__*/_jsx(Expander, {
1221
- expanded: isExpanded,
1222
- onPress: toggleMainExpanded
1223
- })
1224
- })]
1225
- })
1226
- }), isExpanded && visibleTypes.length > 0 && !rawMode && /*#__PURE__*/_jsx(TypeLegend, {
1227
- visibleTypes: visibleTypes
1228
- })]
1229
- }), isExpanded && /*#__PURE__*/_jsx(_Fragment, {
1230
- children: isProcessing ? /*#__PURE__*/_jsx(View, {
1231
- style: STABLE_STYLES.loadingContainer,
1232
- children: /*#__PURE__*/_jsxs(Text, {
1233
- style: STABLE_STYLES.loadingText,
1234
- children: ["Processing data... (isProcessing=", String(isProcessing), ")"]
1235
- })
1236
- }) : /*#__PURE__*/_jsxs(View, {
1237
- style: {
1238
- height: flatData.length * ITEM_HEIGHT,
1239
- position: "relative"
1240
- },
1241
- children: [/*#__PURE__*/_jsx(IndentGuidesOverlay, {
1242
- items: flatData,
1243
- visibleRange: visibleRange,
1244
- itemHeight: ITEM_HEIGHT,
1245
- indentWidth: INDENT_WIDTH,
1246
- activeDepth: activeDepth
1247
- }), /*#__PURE__*/_jsx(FlatList, {
1248
- ref: listRef,
1249
- "sentry-label": "ignore devtools data explorer collapsed list",
1250
- data: flatData,
1251
- renderItem: renderItem,
1252
- keyExtractor: keyExtractor,
1253
- showsVerticalScrollIndicator: true,
1254
- contentContainerStyle: STABLE_STYLES.listContent,
1255
- initialNumToRender: 15,
1256
- maxToRenderPerBatch: 10,
1257
- windowSize: 10,
1258
- scrollEnabled: false,
1259
- onViewableItemsChanged: onViewableItemsChanged,
1260
- viewabilityConfig: viewabilityConfigRef.current
1261
- })]
1262
- })
1263
- })]
1264
- });
1265
- };
1
+ "use strict";import{useState as $,useMemo as re,useCallback as U,useRef as _,useEffect as te,memo as oe}from"react";import{Text as P,TouchableOpacity as ie,View as u,StyleSheet as ue,FlatList as pe}from"react-native";import{displayValue as Me}from"../utils/displayValue.js";import{gameUIColors as a}from"../ui/gameUI/index.js";import{night as ye}from"../ui/night/nightTheme.js";import{CopyButton as De}from"../ui/components/CopyButton.js";import{ChevronRight as Re}from"../icons/index.js";import{IndentGuidesOverlay as he}from"./IndentGuidesOverlay.js";import{monoFont as se}from"../ui/fonts.js";import{jsx as i,jsxs as T,Fragment as je}from"react/jsx-runtime";const ge={top:10,bottom:10,left:10,right:10};const z=24;const ke=24;const ee=50;const ne=15;const Pe=500;const Ze=30;const Le=300;const ae=16;const me=Array.from({length:ne+1},(e,l)=>ue.create({container:{marginLeft:l*ae}}).container);const Ae=new Map([["string",a.dataTypes.string],["number",a.dataTypes.number],["bigint",a.optional],["boolean",a.dataTypes.boolean],["null",a.dataTypes.null],["undefined",a.dataTypes.undefined],["function",a.dataTypes.function],["symbol",a.critical],["date",a.critical],["error",a.error],["array",a.dataTypes.array],["object",a.dataTypes.object],["map",a.info],["set",a.success],["circular",a.warning]]);const o=ue.create({container:{backgroundColor:ye.color.bg,borderRadius:8,borderWidth:1,borderColor:ye.color.border},header:{flexDirection:"column",paddingHorizontal:16,paddingVertical:12},headerRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:6},title:{color:a.primary,fontSize:14,fontWeight:"500"},description:{color:a.secondary,fontSize:12,marginTop:2},typeLegend:{flexDirection:"row",flexWrap:"wrap",gap:6,marginTop:8,paddingTop:8,borderTopWidth:1,borderTopColor:a.primary+"14"},typeBadge:{flexDirection:"row",alignItems:"center",paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},typeColor:{width:8,height:8,borderRadius:4,marginRight:4},typeName:{fontSize:10,fontWeight:"500",color:a.secondary},itemContainer:{minHeight:z,backgroundColor:"transparent",position:"relative",flexDirection:"row",alignItems:"flex-start"},itemTouchable:{flex:1,flexDirection:"row",alignItems:"flex-start",paddingLeft:0,paddingRight:16,paddingVertical:2,minHeight:24},itemTouchablePressed:{backgroundColor:a.primary+"0A"},itemSelected:{backgroundColor:a.primary+"14"},expanderContainer:{width:16,alignItems:"center",justifyContent:"center",marginTop:4},expanderIcon:{width:12,height:12},labelContainer:{flex:1,flexDirection:"row",alignItems:"flex-start",paddingLeft:2},labelContainerVertical:{flex:1,flexDirection:"column",paddingLeft:2,paddingVertical:2},labelContainerVerticalRow:{flexDirection:"row",alignItems:"center",marginBottom:2},labelText:{color:a.primary,fontSize:12,fontWeight:"500",fontFamily:se,marginRight:8,flexShrink:1},labelTextTruncated:{color:a.primary,fontSize:12,fontWeight:"500",fontFamily:se,flexShrink:1},valueText:{fontSize:12,fontFamily:se,flex:1,color:a.primaryLight},loadingContainer:{padding:16,alignItems:"center"},loadingText:{color:a.secondary,fontSize:12},noDataContainer:{padding:16,alignItems:"center"},noDataText:{color:a.secondary,fontSize:12},listContent:{paddingBottom:8},headerTouchable:{flex:1,flexDirection:"row",alignItems:"center"},expanderMargin:{marginLeft:8}});function le(e){return{path:e.path.slice(1),value:e.value,label:e.key}}function ce(e,l,d=0){if(d>=l)return d;let h=d+1;if(Array.isArray(e)){for(const w of e){if(h>=l)return h;h=ce(w,l,h)}}else if(e!==null&&typeof e==="object"){for(const w of Object.values(e)){if(h>=l)return h;h=ce(w,l,h)}}return h}const _e=e=>{if(e===null)return"null";if(e===void 0)return"undefined";if(Array.isArray(e))return"array";if(e instanceof Date)return"date";if(e instanceof Error)return"error";if(e instanceof Map)return"map";if(e instanceof Set)return"set";if(e instanceof RegExp)return"regexp";if(typeof e==="function")return"function";if(typeof e==="symbol")return"symbol";if(typeof e==="bigint")return"bigint";if(typeof e==="object")return"object";return typeof e};const Ve=(e,l)=>{if(e===null)return 0;switch(l){case"array":return Array.isArray(e)?e.length:0;case"object":return typeof e==="object"&&!(e instanceof Date)&&!(e instanceof Error)&&!(e instanceof RegExp)&&!(e instanceof Map)&&!(e instanceof Set)?Object.keys(e).length:0;case"map":return e instanceof Map?e.size:0;case"set":return e instanceof Set?e.size:0;default:return 0}};const He=(e,l)=>{if(e===null)return"null";if(e===void 0)return"undefined";switch(l){case"string":return`"${String(e)}"`;case"boolean":return e===true?"true":"false";case"function":return typeof e==="function"?e.toString().slice(0,50)+"...":"undefined";case"symbol":return typeof e==="symbol"?String(e):"undefined";case"date":return e instanceof Date?e.toISOString():"undefined";case"regexp":return e instanceof RegExp?e.toString():"undefined";case"bigint":return typeof e==="bigint"?e.toString()+"n":"undefined";case"error":return e instanceof Error?`${e.name}: ${e.message}`:"undefined";default:return Me(e)}};const be=e=>{return Ae.get(e)||a.dataTypes.array};const xe=({expanded:e,onPress:l})=>{return i(ie,{"sentry-label":"ignore devtools data explorer expander",style:o.expanderContainer,onPress:l,hitSlop:ge,children:i(u,{style:o.expanderIcon,children:i(Re,{size:12,color:a.secondary,strokeWidth:2,style:{transform:[{rotate:e?"90deg":"0deg"}]}})})})};xe.displayName="Expander";const Te=oe(xe);const Se=({visibleTypes:e})=>{const l=Array.from(new Set(e)).slice(0,8);return i(u,{style:o.typeLegend,children:l.map(d=>{const h=be(d);return T(u,{style:[o.typeBadge,{backgroundColor:`${h}10`,borderColor:`${h}30`}],children:[i(u,{style:[o.typeColor,{backgroundColor:h}]}),i(P,{style:o.typeName,children:d})]},d)})})};Se.displayName="TypeLegend";const ze=oe(Se);const Oe=(e,l=10,d=false)=>{const[h,w]=$([]);const V=_(new Map);const Q=U(()=>{const t=new Set(["root"]);if(d&&e&&typeof e==="object"){if(Array.isArray(e)){e.forEach((m,s)=>{t.add(`root.${s}`)})}else{Object.keys(e).forEach(m=>{t.add(`root.${m}`)})}}return t},[d,e]);const[L,O]=$(()=>Q());const[B,A]=$(false);const I=_(new WeakSet);const j=_(false);const N=_(0);const W=_(0);const c=_(void 0);const C=U((t,m,s,g="root",n=0,M,x=[],S=0,k=1,E=[])=>{if(n>Math.min(l,ne))return[];const p=[...x,g];const f=p.join(".");const b=_e(t);const F=["object","array","map","set"].includes(b)&&t!==null;const J=F?Ve(t,b):0;const H=Math.min(J,Pe);if(t&&typeof t==="object"){if(s.has(t)){return[{id:f,key:g,value:"[Circular Reference]",valueType:"circular",depth:n,isExpandable:false,isExpanded:false,parentId:M,hasChildren:false,childCount:0,path:p,type:"circular",isLastChild:S===k-1,parentHasMoreSiblings:[...E],siblingIndex:S,totalSiblings:k}]}s.add(t)}const r={id:f,key:g,value:t,valueType:b,depth:n,isExpandable:F,isExpanded:m.has(f),parentId:M,hasChildren:H>0,childCount:H,path:p,type:F?"expandable":b,isLastChild:S===k-1,parentHasMoreSiblings:[...E],siblingIndex:S,totalSiblings:k};const y=[r];if(F&&m.has(f)&&n<Math.min(l,ne)){try{let D=[];switch(b){case"array":D=Array.isArray(t)?t.map((R,G)=>[G.toString(),R]):[];break;case"object":D=typeof t==="object"&&t!==null&&!(t instanceof Date)&&!(t instanceof Error)&&!(t instanceof RegExp)&&!(t instanceof Map)&&!(t instanceof Set)?Object.entries(t):[];break;case"map":D=t instanceof Map?Array.from(t.entries()).map(([R,G])=>[String(R),G]):[];break;case"set":D=t instanceof Set?Array.from(t.values()).map((R,G)=>[G.toString(),R]):[];break}const v=D.slice(0,H);const Ce=v.length;const de=[...E];if(n>0){de[n-1]=!r.isLastChild}for(let R=0;R<v.length;R+=ee){const G=v.slice(R,R+ee);let fe=R;for(const[we,Ie]of G){y.push(...C(Ie,m,s,we,n+1,f,p,fe,Ce,de));fe++}if(R>0&&R%(ee*2)===0){break}}}catch(D){console.error(D)}}return y},[l]);te(()=>{if(c.current&&(c.current.type==="expand"||c.current.type==="collapse")){if(B){A(false);j.current=false}c.current=void 0;return}if(j.current){return}let t;const m=++N.current;const s=()=>N.current===m;j.current=true;A(true);const g=async()=>{t=setTimeout(()=>{if(j.current&&s()){A(false);j.current=false}},5e3);await new Promise(n=>setTimeout(()=>n(),10));if(!s()){return}try{I.current=new WeakSet;W.current=Date.now();const n=C(e,L,I.current,"root",0,void 0,[],0,1,[]);const M=new Map;n.forEach((x,S)=>{M.set(x.id,{item:x,index:S})});V.current=M;if(t)clearTimeout(t);if(s()){w(n);A(false);j.current=false}}catch(n){console.error(n);if(t)clearTimeout(t);if(s()){w([]);V.current=new Map;A(false);j.current=false}}};g();return()=>{j.current=false;if(t)clearTimeout(t)}},[e,L,C,l]);const Y=U((t,m)=>{A(false);j.current=false;w(s=>{const g=V.current.get(t);if(!g){return s}const{item:n,index:M}=g;if(m&&n.isExpandable&&n.hasChildren){const x=[...s];const S=new WeakSet;if(n.value&&typeof n.value==="object"){S.add(n.value)}const k=[];try{let f=[];const b=n.valueType;switch(b){case"array":f=Array.isArray(n.value)?n.value.map((r,y)=>[y.toString(),r]):[];break;case"object":f=typeof n.value==="object"&&n.value!==null&&!(n.value instanceof Date)&&!(n.value instanceof Error)&&!(n.value instanceof RegExp)&&!(n.value instanceof Map)&&!(n.value instanceof Set)?Object.entries(n.value):[];break;case"map":f=n.value instanceof Map?Array.from(n.value.entries()).map(([r,y])=>[String(r),y]):[];break;case"set":f=n.value instanceof Set?Array.from(n.value.values()).map((r,y)=>[y.toString(),r]):[];break}const F=f.length;const J=n.parentHasMoreSiblings||[];const H=[...J];if(n.depth>0){H[n.depth-1]=!n.isLastChild}f.forEach(([r,y],D)=>{const v=C(y,new Set,S,r,n.depth+1,t,n.path,D,F,H);k.push(...v)})}catch(f){console.error(f)}const E=k;if(E.length>0){}x[M]={...n,isExpanded:true};x.splice(M+1,0,...E);const p=new Map;x.forEach((f,b)=>{p.set(f.id,{item:f,index:b})});V.current=p;return x}else if(!m){const x=new Set;const S=(p,f)=>{s.forEach(b=>{if(b.parentId===p||b.id.startsWith(p+".")&&b.depth>f){x.add(b.id);if(b.hasChildren){S(b.id,b.depth)}}})};S(t,n.depth);const k=s.map(p=>{if(p.id===t){return{...p,isExpanded:false}}return p}).filter(p=>!x.has(p.id));const E=new Map;k.forEach((p,f)=>{E.set(p.id,{item:p,index:f})});V.current=E;return k}return s})},[C]);const X=U(t=>{O(m=>{const s=new Set(m);const g=!s.has(t);if(g){s.add(t)}else{s.delete(t)}c.current={type:g?"expand":"collapse",itemId:t};Y(t,g);return s})},[Y]);const K=ce(e,ee,0)<ee;const q=re(()=>{if(!K)return null;return C(e,L,new WeakSet,"root",0,void 0,[],0,1,[])},[K,e,L,C]);const Z=U(t=>{if(t.length===0)return;O(m=>{if(t.every(g=>m.has(g)))return m;const s=new Set(m);for(const g of t)s.add(g);return s})},[]);return{flatData:q??h,isProcessing:q?false:B,toggleExpanded:X,revealPath:Z}};const Ee=({item:e,onToggleExpanded:l,index:d,onSelect:h,isSelected:w,selectable:V,onRequestInlineEdit:Q,isInlineEditing:L,inlineEditor:O,testIDPrefix:B})=>{const[A,I]=$(false);const[j,N]=$(false);const W=V===true;const c=_(0);const C=e.path.slice(1);const Y=me[Math.min(e.depth,ne)]||me[0];const X=be(e.valueType);const K=false;const q=()=>{if(W){const s=Date.now();const g=s-c.current<Le;c.current=s;if(g&&!e.isExpandable&&Q){Q(e);return}h(e);return}if(e.isExpandable){l(e.id)}h(e)};const Z=()=>{if(e.isExpandable){l(e.id)}h(e)};const t=()=>{};const m=e.key;return T(u,{style:[o.itemContainer,Y],children:[T(ie,{"sentry-label":"ignore devtools data explorer item",testID:`${B}-${e.id}`,accessibilityLabel:`${e.key}: ${e.valueType}`,style:[o.itemTouchable,A&&o.itemTouchablePressed,W&&w&&o.itemSelected,K&&{minHeight:ke,paddingVertical:2}],onPress:q,onPressIn:()=>I(true),onPressOut:()=>I(false),activeOpacity:e.isExpandable||W?.7:1,disabled:!e.isExpandable&&!W,children:[e.isExpandable?i(Te,{expanded:e.isExpanded,onPress:Z}):i(u,{style:o.expanderContainer}),T(u,{style:o.labelContainer,children:[T(P,{style:o.labelText,numberOfLines:1,children:[e.key,":"]}),L&&O?O:e.isExpandable?T(P,{style:[o.valueText,{color:a.secondary}],numberOfLines:1,children:[e.valueType," (",e.childCount," ",e.childCount===1?"item":"items",")"]}):i(P,{style:[o.valueText,{color:X}],numberOfLines:1,children:He(e.value,e.valueType)})]})]}),e.value!==void 0?i(De,{value:e.value,size:14,buttonStyle:{marginLeft:8,marginRight:8}}):null]})};Ee.displayName="VirtualizedItem";const Ne=oe(Ee);export const VirtualizedDataExplorer=({title:e,description:l,data:d,maxDepth:h=10,rawMode:w=false,initialExpanded:V=false,disableCopy:Q=false,onSelectionChange:L,onRequestInlineEdit:O,inlineEditPath:B,renderInlineEditor:A,selectPath:I,testIDPrefix:j="buoy-tree-row"})=>{const[N,W]=$(w);const{flatData:c,isProcessing:C,toggleExpanded:Y,revealPath:X}=Oe(d,h,V);const K=_(null);const[q,Z]=$({start:0,end:Math.min(c.length-1,Math.max(0,Math.ceil(400/z)-1))});const t=_({itemVisiblePercentThreshold:1});const m=_(({viewableItems:r})=>{const y=r.map(D=>D.index).filter(D=>typeof D==="number");if(y.length){Z({start:Math.min(...y),end:Math.max(...y)})}}).current;te(()=>{Z({start:0,end:Math.min(c.length-1,Math.max(0,Math.ceil(400/z)-1))})},[c.length]);const s=re(()=>{const r=new Set;for(const y of c){r.add(y.valueType);if(r.size>=8)break}return Array.from(r)},[c]);const g=()=>{W(!N)};const[n,M]=$(null);const x=re(()=>n==null?void 0:c.find(r=>r.id===n),[c,n]);const S=x?.depth;te(()=>{if(!L)return;L(x?le(x):null)},[x,L]);const k=U(r=>{M(y=>y===r.id?null:r.id)},[]);const E=I===void 0?void 0:I===null?"\0null":I.join(".");const p=_(E);te(()=>{if(E===p.current)return;p.current=E;if(E===void 0)return;if(I==null){M(null);return}const r=["root"];for(const y of I.slice(0,-1)){r.push(`${r[r.length-1]}.${y}`)}X(r);M(["root",...I].join("."))},[E,I,X]);const f=U(r=>{M(r.id);O?.(le(r))},[O]);const b=({item:r,index:y})=>i(Ne,{item:r,index:y,onToggleExpanded:Y,onSelect:k,isSelected:x?.id===r.id,selectable:L!=null,onRequestInlineEdit:f,isInlineEditing:B!=null&&B.join(".")===r.path.slice(1).join("."),inlineEditor:A?A(le(r)):null,testIDPrefix:j});const F=z;const J=r=>r.id;const H=d!==null&&d!==void 0&&(typeof d==="string"?d.length>0:typeof d==="number"||typeof d==="boolean"?true:Array.isArray(d)?d.length>0:typeof d==="object"?Object.keys(d).length>0:false);if(w){if(!H){return i(u,{style:{flex:1,justifyContent:"center",alignItems:"center",padding:20},children:i(P,{style:o.noDataText,children:"No data available"})})}return i(u,{style:{minHeight:C?40:c.length*z},children:C?i(u,{style:{flex:1,justifyContent:"center",alignItems:"center"},children:T(P,{style:o.loadingText,children:["Processing data... (raw mode, isProcessing=",String(C),")"]})}):T(u,{style:{position:"relative",height:c.length*z},children:[i(he,{items:c,visibleRange:{start:0,end:Math.max(0,c.length-1)},itemHeight:z,indentWidth:ae,activeDepth:S}),i(pe,{ref:K,"sentry-label":"ignore devtools data explorer list",data:c,renderItem:b,keyExtractor:J,showsVerticalScrollIndicator:true,contentContainerStyle:o.listContent,initialNumToRender:15,maxToRenderPerBatch:10,windowSize:10,scrollEnabled:false})]})})}if(!H){return T(u,{style:o.container,children:[i(u,{style:o.header,children:i(u,{style:o.headerRow,children:T(u,{style:{flex:1},children:[i(P,{style:o.title,children:e}),l&&i(P,{style:o.description,children:l})]})})}),i(u,{style:o.noDataContainer,children:i(P,{style:o.noDataText,children:"No data available"})})]})}return T(u,{style:o.container,children:[T(u,{style:o.header,children:[i(u,{style:o.headerRow,children:T(ie,{"sentry-label":"ignore devtools data explorer header toggle",onPress:g,hitSlop:ge,style:o.headerTouchable,children:[T(u,{style:{flex:1},children:[i(P,{style:o.title,children:e}),l&&i(P,{style:o.description,children:l})]}),i(u,{style:o.expanderMargin,children:i(Te,{expanded:N,onPress:g})})]})}),N&&s.length>0&&!w&&i(ze,{visibleTypes:s})]}),N&&i(je,{children:C?i(u,{style:o.loadingContainer,children:T(P,{style:o.loadingText,children:["Processing data... (isProcessing=",String(C),")"]})}):T(u,{style:{height:c.length*z,position:"relative"},children:[i(he,{items:c,visibleRange:q,itemHeight:z,indentWidth:ae,activeDepth:S}),i(pe,{ref:K,"sentry-label":"ignore devtools data explorer collapsed list",data:c,renderItem:b,keyExtractor:J,showsVerticalScrollIndicator:true,contentContainerStyle:o.listContent,initialNumToRender:15,maxToRenderPerBatch:10,windowSize:10,scrollEnabled:false,onViewableItemsChanged:m,viewabilityConfig:t.current})]})})]})};