@buoy-gg/shared-ui 7.0.41 → 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 (1206) hide show
  1. package/dataViewer.js +1 -9
  2. package/floating.js +1 -2
  3. package/history.js +1 -7
  4. package/hooks.js +1 -7
  5. package/lib/commonjs/JsModal.js +1 -1766
  6. package/lib/commonjs/JsModal.web.js +1 -1589
  7. package/lib/commonjs/clipboard/autoDetectClipboard.js +1 -67
  8. package/lib/commonjs/clipboard/clipboard-impl.js +1 -128
  9. package/lib/commonjs/clipboard/clipboard-impl.web.js +1 -21
  10. package/lib/commonjs/clipboard/copyToClipboard.js +1 -64
  11. package/lib/commonjs/clipboard/index.js +1 -25
  12. package/lib/commonjs/colors/index.js +1 -49
  13. package/lib/commonjs/context/HintsContext.js +1 -49
  14. package/lib/commonjs/context/index.js +1 -24
  15. package/lib/commonjs/dataViewer/CyberpunkInput.js +1 -388
  16. package/lib/commonjs/dataViewer/DataTreeActionBar.js +1 -390
  17. package/lib/commonjs/dataViewer/DataTreeActionDock.js +1 -226
  18. package/lib/commonjs/dataViewer/DataViewer.js +1 -158
  19. package/lib/commonjs/dataViewer/DiffSummary.js +1 -134
  20. package/lib/commonjs/dataViewer/IndentGuides.js +1 -128
  21. package/lib/commonjs/dataViewer/IndentGuidesOverlay.js +1 -104
  22. package/lib/commonjs/dataViewer/JsonStringNotice.js +1 -59
  23. package/lib/commonjs/dataViewer/LiveExplorer.js +1 -943
  24. package/lib/commonjs/dataViewer/SplitDiffViewer.js +1 -421
  25. package/lib/commonjs/dataViewer/ThemedSplitView.js +1 -642
  26. package/lib/commonjs/dataViewer/TimestampDeltaBar.js +1 -96
  27. package/lib/commonjs/dataViewer/TypeLegend.js +1 -111
  28. package/lib/commonjs/dataViewer/ValueEditModal.js +1 -386
  29. package/lib/commonjs/dataViewer/VirtualizedDataExplorer.js +1 -1270
  30. package/lib/commonjs/dataViewer/diffThemes.js +1 -113
  31. package/lib/commonjs/dataViewer/index.js +1 -320
  32. package/lib/commonjs/dataViewer/jsonOps.js +1 -320
  33. package/lib/commonjs/dataViewer/jsonStringValue.js +1 -94
  34. package/lib/commonjs/dataViewer/lineDiff.js +1 -568
  35. package/lib/commonjs/dataViewer/nestedPath.js +1 -115
  36. package/lib/commonjs/dataViewer/objectDiff.js +1 -304
  37. package/lib/commonjs/dataViewer/timestampDiff.js +1 -146
  38. package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +1 -915
  39. package/lib/commonjs/dataViewer/treeActions.js +1 -168
  40. package/lib/commonjs/dataViewer/useTreeDraft.js +1 -125
  41. package/lib/commonjs/dataViewer/useTreeEditor.js +1 -105
  42. package/lib/commonjs/env/EnvironmentIndicator.js +1 -129
  43. package/lib/commonjs/env/EnvironmentIndicator.web.js +1 -114
  44. package/lib/commonjs/env/EnvironmentSelector.js +1 -205
  45. package/lib/commonjs/env/EnvironmentSelectorInline.js +1 -299
  46. package/lib/commonjs/env/EnvironmentSelectorInline.web.js +1 -178
  47. package/lib/commonjs/history/HistoryProvider.js +1 -246
  48. package/lib/commonjs/history/components/HistoryEntryRow.js +1 -146
  49. package/lib/commonjs/history/components/HistoryList.js +1 -174
  50. package/lib/commonjs/history/components/index.js +1 -25
  51. package/lib/commonjs/history/index.js +1 -61
  52. package/lib/commonjs/history/types.js +1 -5
  53. package/lib/commonjs/hooks/index.js +1 -77
  54. package/lib/commonjs/hooks/safe-area-impl.js +1 -28
  55. package/lib/commonjs/hooks/useChangeLog.js +1 -55
  56. package/lib/commonjs/hooks/useDeviceInfo.js +1 -524
  57. package/lib/commonjs/hooks/useEventStoreEvents.js +1 -65
  58. package/lib/commonjs/hooks/useFilterManager.js +1 -136
  59. package/lib/commonjs/hooks/usePersistedState.js +1 -106
  60. package/lib/commonjs/hooks/useSafeAreaInsets.js +1 -250
  61. package/lib/commonjs/hooks/useSafeAreaInsets.web.js +1 -41
  62. package/lib/commonjs/icons/BenchmarkIcon.js +1 -109
  63. package/lib/commonjs/icons/EnvLaptopIcon.js +1 -204
  64. package/lib/commonjs/icons/IconBackground.js +1 -279
  65. package/lib/commonjs/icons/ReactQueryIcon.js +1 -17
  66. package/lib/commonjs/icons/RenderCountIcon.js +1 -147
  67. package/lib/commonjs/icons/RouteMapIcon.js +1 -250
  68. package/lib/commonjs/icons/SentryBugIcon.js +1 -19
  69. package/lib/commonjs/icons/StackPulseIcon.js +1 -158
  70. package/lib/commonjs/icons/StorageStackIcon.js +1 -156
  71. package/lib/commonjs/icons/WifiCircuitIcon.js +1 -169
  72. package/lib/commonjs/icons/index.js +1 -840
  73. package/lib/commonjs/icons/lucide-icons-original-full.js +1 -3248
  74. package/lib/commonjs/icons/lucide-icons.js +1 -2476
  75. package/lib/commonjs/icons/primitives/GlobeIcon.js +1 -66
  76. package/lib/commonjs/icons/primitives/icon-primitives.js +1 -169
  77. package/lib/commonjs/icons/primitives/index.js +1 -49
  78. package/lib/commonjs/index.js +1 -1132
  79. package/lib/commonjs/license/AccountSetup.js +1 -35
  80. package/lib/commonjs/license/AccountSetup.web.js +2 -83
  81. package/lib/commonjs/license/AccountSetupContent.js +1 -482
  82. package/lib/commonjs/license/FeatureGate.js +1 -788
  83. package/lib/commonjs/license/FreeAccountPrompt.js +1 -59
  84. package/lib/commonjs/license/LicenseEntryModal.js +2 -387
  85. package/lib/commonjs/license/accountRuntime.js +1 -8
  86. package/lib/commonjs/license/accountRuntime.web.js +1 -9
  87. package/lib/commonjs/license/index.js +1 -106
  88. package/lib/commonjs/license/licenseModule.js +1 -121
  89. package/lib/commonjs/license/openPricing.js +1 -36
  90. package/lib/commonjs/license/tierLimits.js +1 -128
  91. package/lib/commonjs/logger/index-sentry.js +1 -245
  92. package/lib/commonjs/logger/index.js +1 -62
  93. package/lib/commonjs/logger/logDump.js +1 -19
  94. package/lib/commonjs/logger/types.js +1 -38
  95. package/lib/commonjs/settings/components/BubbleSettingsSection.js +1 -384
  96. package/lib/commonjs/settings/index.js +1 -24
  97. package/lib/commonjs/storage/definePersistedSetting.js +1 -67
  98. package/lib/commonjs/storage/devToolsStorageKeys.js +1 -359
  99. package/lib/commonjs/storage/index.js +1 -25
  100. package/lib/commonjs/stores/BaseEventStore.js +1 -343
  101. package/lib/commonjs/stores/ChangeLog.js +1 -197
  102. package/lib/commonjs/stores/createToolStore.js +1 -193
  103. package/lib/commonjs/stores/floatingToolStore.js +1 -71
  104. package/lib/commonjs/stores/floatingToolStore.test.js +1 -112
  105. package/lib/commonjs/stores/ignoredPatternsCore.js +1 -75
  106. package/lib/commonjs/stores/ignoredPatternsStore.js +1 -16
  107. package/lib/commonjs/stores/ignoredPatternsStore.shared.js +1 -205
  108. package/lib/commonjs/stores/ignoredPatternsStore.web.js +1 -16
  109. package/lib/commonjs/stores/index.js +1 -51
  110. package/lib/commonjs/sync/keyedArrays.js +1 -209
  111. package/lib/commonjs/sync/toolActionRegistry.js +1 -249
  112. package/lib/commonjs/sync/toolAttention.test.js +1 -51
  113. package/lib/commonjs/sync/toolSyncAdapter.js +1 -63
  114. package/lib/commonjs/sync/toolUiBridge.js +1 -132
  115. package/lib/commonjs/sync/typedEdit.js +1 -228
  116. package/lib/commonjs/sync/valuePath.js +1 -337
  117. package/lib/commonjs/sync/valueShape.js +1 -161
  118. package/lib/commonjs/sync/wireBudget.js +1 -97
  119. package/lib/commonjs/sync/wireForm.js +1 -172
  120. package/lib/commonjs/tools/defineTool.js +1 -79
  121. package/lib/commonjs/types/types.d.js +1 -1
  122. package/lib/commonjs/types/types.js +1 -37
  123. package/lib/commonjs/ui/backgrounds/BackgroundSwitcher.js +1 -354
  124. package/lib/commonjs/ui/backgrounds/ToolBackground.js +1 -76
  125. package/lib/commonjs/ui/backgrounds/backgroundStore.js +1 -130
  126. package/lib/commonjs/ui/backgrounds/index.js +1 -167
  127. package/lib/commonjs/ui/backgrounds/primitives.js +1 -369
  128. package/lib/commonjs/ui/backgrounds/registry.js +1 -98
  129. package/lib/commonjs/ui/backgrounds/rng.js +1 -93
  130. package/lib/commonjs/ui/backgrounds/skyClock.js +1 -45
  131. package/lib/commonjs/ui/backgrounds/types.js +1 -1
  132. package/lib/commonjs/ui/backgrounds/variants/daylight.js +1 -453
  133. package/lib/commonjs/ui/backgrounds/variants/deepField.js +1 -381
  134. package/lib/commonjs/ui/backgrounds/variants/hyperspace.js +1 -218
  135. package/lib/commonjs/ui/backgrounds/variants/liveSky.js +1 -898
  136. package/lib/commonjs/ui/backgrounds/variants/meteors.js +1 -401
  137. package/lib/commonjs/ui/backgrounds/variants/moonlight.js +1 -472
  138. package/lib/commonjs/ui/backgrounds/variants/underwater.js +1 -757
  139. package/lib/commonjs/ui/backgrounds/variants/wormhole/motion.js +1 -48
  140. package/lib/commonjs/ui/backgrounds/variants/wormhole/textures.js +1 -3
  141. package/lib/commonjs/ui/backgrounds/variants/wormhole.js +1 -136
  142. package/lib/commonjs/ui/components/BackButton.js +1 -47
  143. package/lib/commonjs/ui/components/Badge.js +1 -226
  144. package/lib/commonjs/ui/components/ChangeRow.js +1 -111
  145. package/lib/commonjs/ui/components/ChipStrip.js +1 -94
  146. package/lib/commonjs/ui/components/ClipboardHintBanner.js +1 -149
  147. package/lib/commonjs/ui/components/CollapsibleSection.js +1 -170
  148. package/lib/commonjs/ui/components/CompactFilterChips.js +1 -114
  149. package/lib/commonjs/ui/components/CompactRow.js +1 -295
  150. package/lib/commonjs/ui/components/CopyButton.js +1 -307
  151. package/lib/commonjs/ui/components/DataInspector.js +1 -323
  152. package/lib/commonjs/ui/components/DetailView.js +1 -358
  153. package/lib/commonjs/ui/components/DetailViewToggle.js +1 -130
  154. package/lib/commonjs/ui/components/DevToolsCard.js +1 -126
  155. package/lib/commonjs/ui/components/DraggableHeader.js +1 -215
  156. package/lib/commonjs/ui/components/DynamicFilterView.js +1 -758
  157. package/lib/commonjs/ui/components/EmptyState.js +1 -151
  158. package/lib/commonjs/ui/components/EntityFilterView.js +1 -355
  159. package/lib/commonjs/ui/components/EventHistoryViewer/CompareBar.js +1 -211
  160. package/lib/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.js +1 -99
  161. package/lib/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -184
  162. package/lib/commonjs/ui/components/EventHistoryViewer/EventPickerModal.js +1 -208
  163. package/lib/commonjs/ui/components/EventHistoryViewer/ViewToggleCards.js +1 -137
  164. package/lib/commonjs/ui/components/EventHistoryViewer/index.js +1 -40
  165. package/lib/commonjs/ui/components/EventHistoryViewer/types.js +1 -5
  166. package/lib/commonjs/ui/components/EventListItem.js +1 -247
  167. package/lib/commonjs/ui/components/EventStepperFooter.js +1 -185
  168. package/lib/commonjs/ui/components/ExpandablePopover.js +1 -381
  169. package/lib/commonjs/ui/components/ExpandedInfoRow.js +1 -108
  170. package/lib/commonjs/ui/components/ExportPreview.js +1 -174
  171. package/lib/commonjs/ui/components/FilterComponents.js +1 -291
  172. package/lib/commonjs/ui/components/GripVerticalIcon.js +1 -65
  173. package/lib/commonjs/ui/components/HeaderSearchButton.js +1 -50
  174. package/lib/commonjs/ui/components/InfoRow.js +1 -91
  175. package/lib/commonjs/ui/components/ListItem.js +1 -173
  176. package/lib/commonjs/ui/components/ModalHeader.js +1 -305
  177. package/lib/commonjs/ui/components/ModalHintBanner.js +1 -147
  178. package/lib/commonjs/ui/components/Pill.js +1 -115
  179. package/lib/commonjs/ui/components/PowerToggleButton.js +1 -78
  180. package/lib/commonjs/ui/components/SearchBar.js +1 -165
  181. package/lib/commonjs/ui/components/SectionHeader.js +1 -129
  182. package/lib/commonjs/ui/components/StatsCard.js +1 -198
  183. package/lib/commonjs/ui/components/StatusIndicator.js +1 -231
  184. package/lib/commonjs/ui/components/StorageTypeBadge.js +1 -97
  185. package/lib/commonjs/ui/components/TabSelector.js +1 -102
  186. package/lib/commonjs/ui/components/TimeDisplay.js +1 -142
  187. package/lib/commonjs/ui/components/ToggleRow.js +1 -116
  188. package/lib/commonjs/ui/components/ToolButton.js +1 -93
  189. package/lib/commonjs/ui/components/ToolEmptyState.js +1 -154
  190. package/lib/commonjs/ui/components/ToolFooter.js +1 -205
  191. package/lib/commonjs/ui/components/ValueTypeBadge.js +1 -147
  192. package/lib/commonjs/ui/components/WindowControls.js +1 -387
  193. package/lib/commonjs/ui/components/index.js +1 -507
  194. package/lib/commonjs/ui/components/windowDrag.js +1 -45
  195. package/lib/commonjs/ui/console/CyberpunkButtonOutline.js +1 -261
  196. package/lib/commonjs/ui/console/CyberpunkIconContainer.js +1 -186
  197. package/lib/commonjs/ui/console/CyberpunkSectionButton.js +1 -123
  198. package/lib/commonjs/ui/floating/FloatingTool.js +1 -1010
  199. package/lib/commonjs/ui/floating/FloatingTool.web.js +1 -601
  200. package/lib/commonjs/ui/floating/FloatingToolHost.js +1 -32
  201. package/lib/commonjs/ui/floating/FloatingToolHost.web.js +1 -28
  202. package/lib/commonjs/ui/floating/index.js +1 -105
  203. package/lib/commonjs/ui/floating/index.web.js +1 -105
  204. package/lib/commonjs/ui/floating/onboardingConstants.js +1 -70
  205. package/lib/commonjs/ui/floating/onboardingConstants.web.js +1 -34
  206. package/lib/commonjs/ui/fonts.js +1 -12
  207. package/lib/commonjs/ui/gameUI/components/GameUICollapsibleSection.js +1 -121
  208. package/lib/commonjs/ui/gameUI/components/GameUICompactStats.js +1 -336
  209. package/lib/commonjs/ui/gameUI/components/GameUIIssuesList.js +1 -284
  210. package/lib/commonjs/ui/gameUI/components/GameUIStatusHeader.js +1 -145
  211. package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +1 -224
  212. package/lib/commonjs/ui/gameUI/constants/macOSDesignSystemColors.js +1 -224
  213. package/lib/commonjs/ui/gameUI/hooks/useGameUIAlertState.js +1 -110
  214. package/lib/commonjs/ui/gameUI/index.js +1 -72
  215. package/lib/commonjs/ui/index.js +1 -217
  216. package/lib/commonjs/ui/listPresets.js +1 -43
  217. package/lib/commonjs/ui/night/nightTheme.js +1 -130
  218. package/lib/commonjs/ui/night/primitives.js +1 -524
  219. package/lib/commonjs/ui/otto/OttoSceneView.js +1 -69
  220. package/lib/commonjs/ui/otto/OttoSprite.js +1 -510
  221. package/lib/commonjs/ui/otto/index.js +1 -60
  222. package/lib/commonjs/ui/otto/ottoEngine.js +1 -2737
  223. package/lib/commonjs/ui/otto/ottoScenes.js +1 -949
  224. package/lib/commonjs/ui/otto/ottoSheet.js +1 -191
  225. package/lib/commonjs/ui/toolTheme.js +1 -97
  226. package/lib/commonjs/utils/absoluteFill.js +1 -28
  227. package/lib/commonjs/utils/browserAsyncStorage.js +1 -157
  228. package/lib/commonjs/utils/browserNavigation.js +1 -116
  229. package/lib/commonjs/utils/devServer.js +1 -66
  230. package/lib/commonjs/utils/devServer.web.js +1 -10
  231. package/lib/commonjs/utils/displayValue.js +1 -41
  232. package/lib/commonjs/utils/domRuntime.js +1 -143
  233. package/lib/commonjs/utils/expoRouterModule.js +1 -51
  234. package/lib/commonjs/utils/expoRouterModule.web.js +1 -14
  235. package/lib/commonjs/utils/formatting/dataFormatting.js +1 -102
  236. package/lib/commonjs/utils/formatting/httpFormatting.js +1 -147
  237. package/lib/commonjs/utils/formatting/index.js +1 -27
  238. package/lib/commonjs/utils/getSafeAreaInsets.js +1 -40
  239. package/lib/commonjs/utils/getSafeAreaInsets.web.js +1 -35
  240. package/lib/commonjs/utils/index.js +1 -416
  241. package/lib/commonjs/utils/loadOptionalModule.js +1 -94
  242. package/lib/commonjs/utils/loadToolModule.js +1 -46
  243. package/lib/commonjs/utils/loadToolModule.web.js +1 -12
  244. package/lib/commonjs/utils/minimalSuperJSON.js +1 -347
  245. package/lib/commonjs/utils/modalStorage.js +1 -42
  246. package/lib/commonjs/utils/nativeWeb.js +1 -454
  247. package/lib/commonjs/utils/persistentStorage.js +1 -609
  248. package/lib/commonjs/utils/persistentStorage.web.js +1 -78
  249. package/lib/commonjs/utils/realNow.js +1 -0
  250. package/lib/commonjs/utils/reloadApp.js +1 -105
  251. package/lib/commonjs/utils/reloadPlatform.js +1 -37
  252. package/lib/commonjs/utils/reloadPlatform.web.js +1 -17
  253. package/lib/commonjs/utils/renderCaptureRegistry.js +1 -59
  254. package/lib/commonjs/utils/safeExpoRouter.js +1 -200
  255. package/lib/commonjs/utils/safeExpoRouter.web.js +1 -48
  256. package/lib/commonjs/utils/safeStringify.js +1 -229
  257. package/lib/commonjs/utils/snapshotProviderKit.js +1 -167
  258. package/lib/commonjs/utils/stateSnapshotRegistry.js +1 -71
  259. package/lib/commonjs/utils/stateTools.js +1 -160
  260. package/lib/commonjs/utils/subscribable.js +1 -113
  261. package/lib/commonjs/utils/subscriberCountNotifier.js +1 -72
  262. package/lib/commonjs/utils/time/RelativeTime.js +1 -31
  263. package/lib/commonjs/utils/time/TickContext.js +1 -43
  264. package/lib/commonjs/utils/time/formatRelativeTime.js +1 -34
  265. package/lib/commonjs/utils/time/index.js +1 -39
  266. package/lib/commonjs/utils/time/useRelativeTime.js +1 -36
  267. package/lib/commonjs/utils/toolModules.js +1 -25
  268. package/lib/commonjs/utils/typeHelpers.js +1 -142
  269. package/lib/commonjs/utils/valueFormatting.js +1 -140
  270. package/lib/module/JsModal.js +1 -1762
  271. package/lib/module/JsModal.web.js +1 -1585
  272. package/lib/module/clipboard/autoDetectClipboard.js +1 -45
  273. package/lib/module/clipboard/clipboard-impl.js +1 -121
  274. package/lib/module/clipboard/clipboard-impl.web.js +1 -14
  275. package/lib/module/clipboard/copyToClipboard.js +1 -60
  276. package/lib/module/clipboard/index.js +1 -5
  277. package/lib/module/colors/index.js +1 -21
  278. package/lib/module/context/HintsContext.js +1 -43
  279. package/lib/module/context/index.js +1 -3
  280. package/lib/module/dataViewer/CyberpunkInput.js +1 -384
  281. package/lib/module/dataViewer/DataTreeActionBar.js +1 -385
  282. package/lib/module/dataViewer/DataTreeActionDock.js +1 -222
  283. package/lib/module/dataViewer/DataViewer.js +1 -153
  284. package/lib/module/dataViewer/DiffSummary.js +1 -129
  285. package/lib/module/dataViewer/IndentGuides.js +1 -124
  286. package/lib/module/dataViewer/IndentGuidesOverlay.js +1 -99
  287. package/lib/module/dataViewer/JsonStringNotice.js +1 -54
  288. package/lib/module/dataViewer/LiveExplorer.js +1 -937
  289. package/lib/module/dataViewer/SplitDiffViewer.js +1 -416
  290. package/lib/module/dataViewer/ThemedSplitView.js +1 -637
  291. package/lib/module/dataViewer/TimestampDeltaBar.js +1 -91
  292. package/lib/module/dataViewer/TypeLegend.js +1 -105
  293. package/lib/module/dataViewer/ValueEditModal.js +1 -382
  294. package/lib/module/dataViewer/VirtualizedDataExplorer.js +1 -1265
  295. package/lib/module/dataViewer/diffThemes.js +1 -109
  296. package/lib/module/dataViewer/index.js +1 -57
  297. package/lib/module/dataViewer/jsonOps.js +1 -311
  298. package/lib/module/dataViewer/jsonStringValue.js +1 -89
  299. package/lib/module/dataViewer/lineDiff.js +1 -564
  300. package/lib/module/dataViewer/nestedPath.js +1 -109
  301. package/lib/module/dataViewer/objectDiff.js +1 -297
  302. package/lib/module/dataViewer/timestampDiff.js +1 -139
  303. package/lib/module/dataViewer/tree/TreeDiffViewer.js +1 -909
  304. package/lib/module/dataViewer/treeActions.js +1 -162
  305. package/lib/module/dataViewer/useTreeDraft.js +1 -121
  306. package/lib/module/dataViewer/useTreeEditor.js +1 -101
  307. package/lib/module/env/EnvironmentIndicator.js +1 -125
  308. package/lib/module/env/EnvironmentIndicator.web.js +1 -108
  309. package/lib/module/env/EnvironmentSelector.js +1 -201
  310. package/lib/module/env/EnvironmentSelectorInline.js +1 -295
  311. package/lib/module/env/EnvironmentSelectorInline.web.js +1 -173
  312. package/lib/module/history/HistoryProvider.js +1 -237
  313. package/lib/module/history/components/HistoryEntryRow.js +1 -142
  314. package/lib/module/history/components/HistoryList.js +1 -169
  315. package/lib/module/history/components/index.js +1 -8
  316. package/lib/module/history/index.js +1 -15
  317. package/lib/module/history/types.js +1 -3
  318. package/lib/module/hooks/index.js +1 -9
  319. package/lib/module/hooks/safe-area-impl.js +1 -23
  320. package/lib/module/hooks/useChangeLog.js +1 -50
  321. package/lib/module/hooks/useDeviceInfo.js +1 -519
  322. package/lib/module/hooks/useEventStoreEvents.js +1 -61
  323. package/lib/module/hooks/useFilterManager.js +1 -132
  324. package/lib/module/hooks/usePersistedState.js +1 -102
  325. package/lib/module/hooks/useSafeAreaInsets.js +1 -245
  326. package/lib/module/hooks/useSafeAreaInsets.web.js +1 -30
  327. package/lib/module/icons/BenchmarkIcon.js +1 -104
  328. package/lib/module/icons/EnvLaptopIcon.js +1 -199
  329. package/lib/module/icons/IconBackground.js +1 -274
  330. package/lib/module/icons/ReactQueryIcon.js +1 -12
  331. package/lib/module/icons/RenderCountIcon.js +1 -142
  332. package/lib/module/icons/RouteMapIcon.js +1 -245
  333. package/lib/module/icons/SentryBugIcon.js +1 -14
  334. package/lib/module/icons/StackPulseIcon.js +1 -153
  335. package/lib/module/icons/StorageStackIcon.js +1 -151
  336. package/lib/module/icons/WifiCircuitIcon.js +1 -164
  337. package/lib/module/icons/index.js +1 -63
  338. package/lib/module/icons/lucide-icons-original-full.js +1 -3178
  339. package/lib/module/icons/lucide-icons.js +1 -2420
  340. package/lib/module/icons/primitives/GlobeIcon.js +1 -61
  341. package/lib/module/icons/primitives/icon-primitives.js +1 -161
  342. package/lib/module/icons/primitives/index.js +1 -15
  343. package/lib/module/index.js +1 -111
  344. package/lib/module/license/AccountSetup.js +1 -31
  345. package/lib/module/license/AccountSetup.web.js +3 -80
  346. package/lib/module/license/AccountSetupContent.js +1 -476
  347. package/lib/module/license/FeatureGate.js +1 -778
  348. package/lib/module/license/FreeAccountPrompt.js +1 -50
  349. package/lib/module/license/LicenseEntryModal.js +2 -381
  350. package/lib/module/license/accountRuntime.js +1 -3
  351. package/lib/module/license/accountRuntime.web.js +1 -4
  352. package/lib/module/license/index.js +1 -9
  353. package/lib/module/license/licenseModule.js +1 -109
  354. package/lib/module/license/openPricing.js +1 -31
  355. package/lib/module/license/tierLimits.js +1 -122
  356. package/lib/module/logger/index-sentry.js +1 -230
  357. package/lib/module/logger/index.js +1 -13
  358. package/lib/module/logger/logDump.js +1 -13
  359. package/lib/module/logger/types.js +1 -37
  360. package/lib/module/settings/components/BubbleSettingsSection.js +1 -378
  361. package/lib/module/settings/index.js +1 -3
  362. package/lib/module/storage/definePersistedSetting.js +1 -63
  363. package/lib/module/storage/devToolsStorageKeys.js +1 -352
  364. package/lib/module/storage/index.js +1 -4
  365. package/lib/module/stores/BaseEventStore.js +1 -339
  366. package/lib/module/stores/ChangeLog.js +1 -192
  367. package/lib/module/stores/createToolStore.js +1 -189
  368. package/lib/module/stores/floatingToolStore.js +1 -61
  369. package/lib/module/stores/floatingToolStore.test.js +1 -111
  370. package/lib/module/stores/ignoredPatternsCore.js +1 -69
  371. package/lib/module/stores/ignoredPatternsStore.js +1 -3
  372. package/lib/module/stores/ignoredPatternsStore.shared.js +1 -189
  373. package/lib/module/stores/ignoredPatternsStore.web.js +1 -3
  374. package/lib/module/stores/index.js +1 -10
  375. package/lib/module/sync/keyedArrays.js +1 -204
  376. package/lib/module/sync/toolActionRegistry.js +1 -236
  377. package/lib/module/sync/toolAttention.test.js +1 -50
  378. package/lib/module/sync/toolSyncAdapter.js +1 -58
  379. package/lib/module/sync/toolUiBridge.js +1 -123
  380. package/lib/module/sync/typedEdit.js +1 -220
  381. package/lib/module/sync/valuePath.js +1 -330
  382. package/lib/module/sync/valueShape.js +1 -153
  383. package/lib/module/sync/wireBudget.js +1 -92
  384. package/lib/module/sync/wireForm.js +1 -159
  385. package/lib/module/tools/defineTool.js +1 -74
  386. package/lib/module/types/types.d.js +1 -1
  387. package/lib/module/types/types.js +1 -32
  388. package/lib/module/ui/backgrounds/BackgroundSwitcher.js +1 -350
  389. package/lib/module/ui/backgrounds/ToolBackground.js +1 -72
  390. package/lib/module/ui/backgrounds/backgroundStore.js +1 -125
  391. package/lib/module/ui/backgrounds/index.js +1 -19
  392. package/lib/module/ui/backgrounds/primitives.js +1 -365
  393. package/lib/module/ui/backgrounds/registry.js +1 -91
  394. package/lib/module/ui/backgrounds/rng.js +1 -85
  395. package/lib/module/ui/backgrounds/skyClock.js +1 -39
  396. package/lib/module/ui/backgrounds/types.js +1 -1
  397. package/lib/module/ui/backgrounds/variants/daylight.js +1 -449
  398. package/lib/module/ui/backgrounds/variants/deepField.js +1 -378
  399. package/lib/module/ui/backgrounds/variants/hyperspace.js +1 -214
  400. package/lib/module/ui/backgrounds/variants/liveSky.js +1 -893
  401. package/lib/module/ui/backgrounds/variants/meteors.js +1 -397
  402. package/lib/module/ui/backgrounds/variants/moonlight.js +1 -468
  403. package/lib/module/ui/backgrounds/variants/underwater.js +1 -753
  404. package/lib/module/ui/backgrounds/variants/wormhole/motion.js +1 -44
  405. package/lib/module/ui/backgrounds/variants/wormhole/textures.js +1 -3
  406. package/lib/module/ui/backgrounds/variants/wormhole.js +1 -132
  407. package/lib/module/ui/components/BackButton.js +1 -43
  408. package/lib/module/ui/components/Badge.js +1 -218
  409. package/lib/module/ui/components/ChangeRow.js +1 -106
  410. package/lib/module/ui/components/ChipStrip.js +1 -91
  411. package/lib/module/ui/components/ClipboardHintBanner.js +1 -145
  412. package/lib/module/ui/components/CollapsibleSection.js +1 -166
  413. package/lib/module/ui/components/CompactFilterChips.js +1 -110
  414. package/lib/module/ui/components/CompactRow.js +1 -291
  415. package/lib/module/ui/components/CopyButton.js +1 -303
  416. package/lib/module/ui/components/DataInspector.js +1 -319
  417. package/lib/module/ui/components/DetailView.js +1 -354
  418. package/lib/module/ui/components/DetailViewToggle.js +1 -125
  419. package/lib/module/ui/components/DevToolsCard.js +1 -122
  420. package/lib/module/ui/components/DraggableHeader.js +1 -211
  421. package/lib/module/ui/components/DynamicFilterView.js +1 -754
  422. package/lib/module/ui/components/EmptyState.js +1 -144
  423. package/lib/module/ui/components/EntityFilterView.js +1 -351
  424. package/lib/module/ui/components/EventHistoryViewer/CompareBar.js +1 -206
  425. package/lib/module/ui/components/EventHistoryViewer/DiffModeTabs.js +1 -94
  426. package/lib/module/ui/components/EventHistoryViewer/EventHistoryViewer.js +1 -179
  427. package/lib/module/ui/components/EventHistoryViewer/EventPickerModal.js +1 -203
  428. package/lib/module/ui/components/EventHistoryViewer/ViewToggleCards.js +1 -132
  429. package/lib/module/ui/components/EventHistoryViewer/index.js +1 -19
  430. package/lib/module/ui/components/EventHistoryViewer/types.js +1 -3
  431. package/lib/module/ui/components/EventListItem.js +1 -243
  432. package/lib/module/ui/components/EventStepperFooter.js +1 -180
  433. package/lib/module/ui/components/ExpandablePopover.js +1 -378
  434. package/lib/module/ui/components/ExpandedInfoRow.js +1 -103
  435. package/lib/module/ui/components/ExportPreview.js +1 -169
  436. package/lib/module/ui/components/FilterComponents.js +1 -282
  437. package/lib/module/ui/components/GripVerticalIcon.js +1 -61
  438. package/lib/module/ui/components/HeaderSearchButton.js +1 -46
  439. package/lib/module/ui/components/InfoRow.js +1 -87
  440. package/lib/module/ui/components/ListItem.js +1 -169
  441. package/lib/module/ui/components/ModalHeader.js +1 -297
  442. package/lib/module/ui/components/ModalHintBanner.js +1 -143
  443. package/lib/module/ui/components/Pill.js +1 -111
  444. package/lib/module/ui/components/PowerToggleButton.js +1 -74
  445. package/lib/module/ui/components/SearchBar.js +1 -161
  446. package/lib/module/ui/components/SectionHeader.js +1 -125
  447. package/lib/module/ui/components/StatsCard.js +1 -194
  448. package/lib/module/ui/components/StatusIndicator.js +1 -227
  449. package/lib/module/ui/components/StorageTypeBadge.js +1 -93
  450. package/lib/module/ui/components/TabSelector.js +1 -98
  451. package/lib/module/ui/components/TimeDisplay.js +1 -138
  452. package/lib/module/ui/components/ToggleRow.js +1 -112
  453. package/lib/module/ui/components/ToolButton.js +1 -89
  454. package/lib/module/ui/components/ToolEmptyState.js +1 -149
  455. package/lib/module/ui/components/ToolFooter.js +1 -197
  456. package/lib/module/ui/components/ValueTypeBadge.js +1 -143
  457. package/lib/module/ui/components/WindowControls.js +1 -383
  458. package/lib/module/ui/components/index.js +1 -52
  459. package/lib/module/ui/components/windowDrag.js +1 -41
  460. package/lib/module/ui/console/CyberpunkButtonOutline.js +1 -257
  461. package/lib/module/ui/console/CyberpunkIconContainer.js +1 -182
  462. package/lib/module/ui/console/CyberpunkSectionButton.js +1 -119
  463. package/lib/module/ui/floating/FloatingTool.js +1 -1003
  464. package/lib/module/ui/floating/FloatingTool.web.js +1 -600
  465. package/lib/module/ui/floating/FloatingToolHost.js +1 -29
  466. package/lib/module/ui/floating/FloatingToolHost.web.js +1 -25
  467. package/lib/module/ui/floating/index.js +1 -6
  468. package/lib/module/ui/floating/index.web.js +1 -6
  469. package/lib/module/ui/floating/onboardingConstants.js +1 -64
  470. package/lib/module/ui/floating/onboardingConstants.web.js +1 -27
  471. package/lib/module/ui/fonts.js +1 -8
  472. package/lib/module/ui/gameUI/components/GameUICollapsibleSection.js +1 -117
  473. package/lib/module/ui/gameUI/components/GameUICompactStats.js +1 -332
  474. package/lib/module/ui/gameUI/components/GameUIIssuesList.js +1 -280
  475. package/lib/module/ui/gameUI/components/GameUIStatusHeader.js +1 -141
  476. package/lib/module/ui/gameUI/constants/gameUIColors.js +1 -220
  477. package/lib/module/ui/gameUI/constants/macOSDesignSystemColors.js +1 -219
  478. package/lib/module/ui/gameUI/hooks/useGameUIAlertState.js +1 -105
  479. package/lib/module/ui/gameUI/index.js +1 -19
  480. package/lib/module/ui/index.js +1 -31
  481. package/lib/module/ui/listPresets.js +1 -39
  482. package/lib/module/ui/night/nightTheme.js +1 -126
  483. package/lib/module/ui/night/primitives.js +1 -511
  484. package/lib/module/ui/otto/OttoSceneView.js +1 -64
  485. package/lib/module/ui/otto/OttoSprite.js +1 -496
  486. package/lib/module/ui/otto/index.js +1 -22
  487. package/lib/module/ui/otto/ottoEngine.js +1 -2729
  488. package/lib/module/ui/otto/ottoScenes.js +1 -942
  489. package/lib/module/ui/otto/ottoSheet.js +1 -180
  490. package/lib/module/ui/toolTheme.js +1 -93
  491. package/lib/module/utils/absoluteFill.js +1 -24
  492. package/lib/module/utils/browserAsyncStorage.js +1 -151
  493. package/lib/module/utils/browserNavigation.js +1 -108
  494. package/lib/module/utils/devServer.js +1 -62
  495. package/lib/module/utils/devServer.web.js +1 -6
  496. package/lib/module/utils/displayValue.js +1 -36
  497. package/lib/module/utils/domRuntime.js +1 -134
  498. package/lib/module/utils/expoRouterModule.js +1 -46
  499. package/lib/module/utils/expoRouterModule.web.js +1 -9
  500. package/lib/module/utils/formatting/dataFormatting.js +1 -93
  501. package/lib/module/utils/formatting/httpFormatting.js +1 -142
  502. package/lib/module/utils/formatting/index.js +1 -8
  503. package/lib/module/utils/getSafeAreaInsets.js +1 -36
  504. package/lib/module/utils/getSafeAreaInsets.web.js +1 -31
  505. package/lib/module/utils/index.js +1 -23
  506. package/lib/module/utils/loadOptionalModule.js +1 -89
  507. package/lib/module/utils/loadToolModule.js +1 -42
  508. package/lib/module/utils/loadToolModule.web.js +1 -8
  509. package/lib/module/utils/minimalSuperJSON.js +1 -342
  510. package/lib/module/utils/modalStorage.js +1 -37
  511. package/lib/module/utils/nativeWeb.js +1 -107
  512. package/lib/module/utils/persistentStorage.js +1 -603
  513. package/lib/module/utils/persistentStorage.web.js +1 -72
  514. package/lib/module/utils/realNow.js +1 -0
  515. package/lib/module/utils/reloadApp.js +1 -99
  516. package/lib/module/utils/reloadPlatform.js +1 -31
  517. package/lib/module/utils/reloadPlatform.web.js +1 -11
  518. package/lib/module/utils/renderCaptureRegistry.js +1 -54
  519. package/lib/module/utils/safeExpoRouter.js +1 -189
  520. package/lib/module/utils/safeExpoRouter.web.js +1 -37
  521. package/lib/module/utils/safeStringify.js +1 -225
  522. package/lib/module/utils/snapshotProviderKit.js +1 -156
  523. package/lib/module/utils/stateSnapshotRegistry.js +1 -64
  524. package/lib/module/utils/stateTools.js +1 -154
  525. package/lib/module/utils/subscribable.js +1 -108
  526. package/lib/module/utils/subscriberCountNotifier.js +1 -66
  527. package/lib/module/utils/time/RelativeTime.js +1 -28
  528. package/lib/module/utils/time/TickContext.js +1 -38
  529. package/lib/module/utils/time/formatRelativeTime.js +1 -30
  530. package/lib/module/utils/time/index.js +1 -6
  531. package/lib/module/utils/time/useRelativeTime.js +1 -33
  532. package/lib/module/utils/toolModules.js +1 -19
  533. package/lib/module/utils/typeHelpers.js +1 -130
  534. package/lib/module/utils/valueFormatting.js +1 -131
  535. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  536. package/lib/typescript/commonjs/icons/index.d.ts +1 -0
  537. package/lib/typescript/commonjs/index.d.ts +1 -1
  538. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +8 -0
  539. package/lib/typescript/commonjs/ui/night/primitives.d.ts +9 -3
  540. package/lib/typescript/commonjs/utils/index.d.ts +1 -0
  541. package/lib/typescript/commonjs/utils/realNow.d.ts +11 -0
  542. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  543. package/lib/typescript/module/icons/index.d.ts +1 -0
  544. package/lib/typescript/module/index.d.ts +1 -1
  545. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +8 -0
  546. package/lib/typescript/module/ui/night/primitives.d.ts +9 -3
  547. package/lib/typescript/module/utils/index.d.ts +1 -0
  548. package/lib/typescript/module/utils/realNow.d.ts +11 -0
  549. package/lib/web/asyncStorage.mjs +1 -2
  550. package/lib/web/chunks/chunk-26OV3QDY.mjs +1 -0
  551. package/lib/web/chunks/chunk-3UTMGIUG.mjs +1 -2
  552. package/lib/web/chunks/chunk-53J2FMUD.mjs +1 -2
  553. package/lib/web/chunks/chunk-5KWAGM5V.mjs +1 -0
  554. package/lib/web/chunks/chunk-5NZOQR6Q.mjs +1 -2
  555. package/lib/web/chunks/chunk-7PRKERDN.mjs +1 -0
  556. package/lib/web/chunks/chunk-CE5U3CSQ.mjs +1 -2
  557. package/lib/web/chunks/chunk-D4RXBAOO.mjs +15 -0
  558. package/lib/web/chunks/chunk-ER3T3IDI.mjs +1 -0
  559. package/lib/web/chunks/chunk-GF5C5DVX.mjs +1 -2
  560. package/lib/web/chunks/chunk-K7CGIEFU.mjs +1 -2
  561. package/lib/web/chunks/{chunk-GTYIS7H7.mjs → chunk-L3AFTHWX.mjs} +8 -9
  562. package/lib/web/chunks/chunk-LZ7FZZ7R.mjs +1 -2
  563. package/lib/web/chunks/chunk-PTK5FO6C.mjs +1 -2
  564. package/lib/web/chunks/chunk-TJUBBXXK.mjs +1 -0
  565. package/lib/web/chunks/chunk-UKYVRCMZ.mjs +1 -0
  566. package/lib/web/chunks/chunk-XYUAUO57.mjs +1 -2
  567. package/lib/web/chunks/persistentStorage.web-6OAJAVRK.mjs +1 -0
  568. package/lib/web/colors.mjs +1 -2
  569. package/lib/web/dataViewer.mjs +2 -3
  570. package/lib/web/floating.mjs +1 -2
  571. package/lib/web/history.mjs +1 -2
  572. package/lib/web/hooks.mjs +1 -2
  573. package/lib/web/index.mjs +2 -3
  574. package/lib/web/native.mjs +1 -2
  575. package/lib/web/ui.mjs +1 -2
  576. package/lib/web/utils.mjs +1 -2
  577. package/package.json +8 -7
  578. package/scripts/detect-clipboard.js +5 -121
  579. package/scripts/detect-safe-area.js +3 -127
  580. package/ui.js +1 -7
  581. package/utils.js +1 -7
  582. package/lib/typescript/commonjs/JsModal.d.ts.map +0 -1
  583. package/lib/typescript/commonjs/JsModal.web.d.ts.map +0 -1
  584. package/lib/typescript/commonjs/clipboard/autoDetectClipboard.d.ts.map +0 -1
  585. package/lib/typescript/commonjs/clipboard/clipboard-impl.d.ts.map +0 -1
  586. package/lib/typescript/commonjs/clipboard/clipboard-impl.web.d.ts.map +0 -1
  587. package/lib/typescript/commonjs/clipboard/copyToClipboard.d.ts.map +0 -1
  588. package/lib/typescript/commonjs/clipboard/index.d.ts.map +0 -1
  589. package/lib/typescript/commonjs/colors/index.d.ts.map +0 -1
  590. package/lib/typescript/commonjs/context/HintsContext.d.ts.map +0 -1
  591. package/lib/typescript/commonjs/context/index.d.ts.map +0 -1
  592. package/lib/typescript/commonjs/dataViewer/CyberpunkInput.d.ts.map +0 -1
  593. package/lib/typescript/commonjs/dataViewer/DataTreeActionBar.d.ts.map +0 -1
  594. package/lib/typescript/commonjs/dataViewer/DataTreeActionDock.d.ts.map +0 -1
  595. package/lib/typescript/commonjs/dataViewer/DataViewer.d.ts.map +0 -1
  596. package/lib/typescript/commonjs/dataViewer/DiffSummary.d.ts.map +0 -1
  597. package/lib/typescript/commonjs/dataViewer/IndentGuides.d.ts.map +0 -1
  598. package/lib/typescript/commonjs/dataViewer/IndentGuidesOverlay.d.ts.map +0 -1
  599. package/lib/typescript/commonjs/dataViewer/JsonStringNotice.d.ts.map +0 -1
  600. package/lib/typescript/commonjs/dataViewer/LiveExplorer.d.ts.map +0 -1
  601. package/lib/typescript/commonjs/dataViewer/SplitDiffViewer.d.ts.map +0 -1
  602. package/lib/typescript/commonjs/dataViewer/ThemedSplitView.d.ts.map +0 -1
  603. package/lib/typescript/commonjs/dataViewer/TimestampDeltaBar.d.ts.map +0 -1
  604. package/lib/typescript/commonjs/dataViewer/TypeLegend.d.ts.map +0 -1
  605. package/lib/typescript/commonjs/dataViewer/ValueEditModal.d.ts.map +0 -1
  606. package/lib/typescript/commonjs/dataViewer/VirtualizedDataExplorer.d.ts.map +0 -1
  607. package/lib/typescript/commonjs/dataViewer/diffThemes.d.ts.map +0 -1
  608. package/lib/typescript/commonjs/dataViewer/index.d.ts.map +0 -1
  609. package/lib/typescript/commonjs/dataViewer/jsonOps.d.ts.map +0 -1
  610. package/lib/typescript/commonjs/dataViewer/jsonStringValue.d.ts.map +0 -1
  611. package/lib/typescript/commonjs/dataViewer/lineDiff.d.ts.map +0 -1
  612. package/lib/typescript/commonjs/dataViewer/nestedPath.d.ts.map +0 -1
  613. package/lib/typescript/commonjs/dataViewer/objectDiff.d.ts.map +0 -1
  614. package/lib/typescript/commonjs/dataViewer/timestampDiff.d.ts.map +0 -1
  615. package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +0 -1
  616. package/lib/typescript/commonjs/dataViewer/treeActions.d.ts.map +0 -1
  617. package/lib/typescript/commonjs/dataViewer/useTreeDraft.d.ts.map +0 -1
  618. package/lib/typescript/commonjs/dataViewer/useTreeEditor.d.ts.map +0 -1
  619. package/lib/typescript/commonjs/env/EnvironmentIndicator.d.ts.map +0 -1
  620. package/lib/typescript/commonjs/env/EnvironmentIndicator.web.d.ts.map +0 -1
  621. package/lib/typescript/commonjs/env/EnvironmentSelector.d.ts.map +0 -1
  622. package/lib/typescript/commonjs/env/EnvironmentSelectorInline.d.ts.map +0 -1
  623. package/lib/typescript/commonjs/env/EnvironmentSelectorInline.web.d.ts.map +0 -1
  624. package/lib/typescript/commonjs/history/HistoryProvider.d.ts.map +0 -1
  625. package/lib/typescript/commonjs/history/components/HistoryEntryRow.d.ts.map +0 -1
  626. package/lib/typescript/commonjs/history/components/HistoryList.d.ts.map +0 -1
  627. package/lib/typescript/commonjs/history/components/index.d.ts.map +0 -1
  628. package/lib/typescript/commonjs/history/index.d.ts.map +0 -1
  629. package/lib/typescript/commonjs/history/types.d.ts.map +0 -1
  630. package/lib/typescript/commonjs/hooks/index.d.ts.map +0 -1
  631. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts.map +0 -1
  632. package/lib/typescript/commonjs/hooks/useChangeLog.d.ts.map +0 -1
  633. package/lib/typescript/commonjs/hooks/useDeviceInfo.d.ts.map +0 -1
  634. package/lib/typescript/commonjs/hooks/useEventStoreEvents.d.ts.map +0 -1
  635. package/lib/typescript/commonjs/hooks/useFilterManager.d.ts.map +0 -1
  636. package/lib/typescript/commonjs/hooks/usePersistedState.d.ts.map +0 -1
  637. package/lib/typescript/commonjs/hooks/useSafeAreaInsets.d.ts.map +0 -1
  638. package/lib/typescript/commonjs/hooks/useSafeAreaInsets.web.d.ts.map +0 -1
  639. package/lib/typescript/commonjs/icons/BenchmarkIcon.d.ts.map +0 -1
  640. package/lib/typescript/commonjs/icons/EnvLaptopIcon.d.ts.map +0 -1
  641. package/lib/typescript/commonjs/icons/IconBackground.d.ts.map +0 -1
  642. package/lib/typescript/commonjs/icons/ReactQueryIcon.d.ts.map +0 -1
  643. package/lib/typescript/commonjs/icons/RenderCountIcon.d.ts.map +0 -1
  644. package/lib/typescript/commonjs/icons/RouteMapIcon.d.ts.map +0 -1
  645. package/lib/typescript/commonjs/icons/SentryBugIcon.d.ts.map +0 -1
  646. package/lib/typescript/commonjs/icons/StackPulseIcon.d.ts.map +0 -1
  647. package/lib/typescript/commonjs/icons/StorageStackIcon.d.ts.map +0 -1
  648. package/lib/typescript/commonjs/icons/WifiCircuitIcon.d.ts.map +0 -1
  649. package/lib/typescript/commonjs/icons/index.d.ts.map +0 -1
  650. package/lib/typescript/commonjs/icons/lucide-icons-original-full.d.ts.map +0 -1
  651. package/lib/typescript/commonjs/icons/lucide-icons.d.ts.map +0 -1
  652. package/lib/typescript/commonjs/icons/primitives/GlobeIcon.d.ts.map +0 -1
  653. package/lib/typescript/commonjs/icons/primitives/icon-primitives.d.ts.map +0 -1
  654. package/lib/typescript/commonjs/icons/primitives/index.d.ts.map +0 -1
  655. package/lib/typescript/commonjs/index.d.ts.map +0 -1
  656. package/lib/typescript/commonjs/license/AccountSetup.d.ts.map +0 -1
  657. package/lib/typescript/commonjs/license/AccountSetup.web.d.ts.map +0 -1
  658. package/lib/typescript/commonjs/license/AccountSetupContent.d.ts.map +0 -1
  659. package/lib/typescript/commonjs/license/FeatureGate.d.ts.map +0 -1
  660. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +0 -1
  661. package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts.map +0 -1
  662. package/lib/typescript/commonjs/license/accountRuntime.d.ts.map +0 -1
  663. package/lib/typescript/commonjs/license/accountRuntime.web.d.ts.map +0 -1
  664. package/lib/typescript/commonjs/license/index.d.ts.map +0 -1
  665. package/lib/typescript/commonjs/license/licenseModule.d.ts.map +0 -1
  666. package/lib/typescript/commonjs/license/openPricing.d.ts.map +0 -1
  667. package/lib/typescript/commonjs/license/tierLimits.d.ts.map +0 -1
  668. package/lib/typescript/commonjs/logger/index-sentry.d.ts.map +0 -1
  669. package/lib/typescript/commonjs/logger/index.d.ts.map +0 -1
  670. package/lib/typescript/commonjs/logger/logDump.d.ts.map +0 -1
  671. package/lib/typescript/commonjs/logger/types.d.ts.map +0 -1
  672. package/lib/typescript/commonjs/settings/components/BubbleSettingsSection.d.ts.map +0 -1
  673. package/lib/typescript/commonjs/settings/index.d.ts.map +0 -1
  674. package/lib/typescript/commonjs/storage/definePersistedSetting.d.ts.map +0 -1
  675. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +0 -1
  676. package/lib/typescript/commonjs/storage/index.d.ts.map +0 -1
  677. package/lib/typescript/commonjs/stores/BaseEventStore.d.ts.map +0 -1
  678. package/lib/typescript/commonjs/stores/ChangeLog.d.ts.map +0 -1
  679. package/lib/typescript/commonjs/stores/createToolStore.d.ts.map +0 -1
  680. package/lib/typescript/commonjs/stores/floatingToolStore.d.ts.map +0 -1
  681. package/lib/typescript/commonjs/stores/floatingToolStore.test.d.ts.map +0 -1
  682. package/lib/typescript/commonjs/stores/ignoredPatternsCore.d.ts.map +0 -1
  683. package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts.map +0 -1
  684. package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts.map +0 -1
  685. package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts.map +0 -1
  686. package/lib/typescript/commonjs/stores/index.d.ts.map +0 -1
  687. package/lib/typescript/commonjs/sync/keyedArrays.d.ts.map +0 -1
  688. package/lib/typescript/commonjs/sync/toolActionRegistry.d.ts.map +0 -1
  689. package/lib/typescript/commonjs/sync/toolAttention.test.d.ts.map +0 -1
  690. package/lib/typescript/commonjs/sync/toolSyncAdapter.d.ts.map +0 -1
  691. package/lib/typescript/commonjs/sync/toolUiBridge.d.ts.map +0 -1
  692. package/lib/typescript/commonjs/sync/typedEdit.d.ts.map +0 -1
  693. package/lib/typescript/commonjs/sync/valuePath.d.ts.map +0 -1
  694. package/lib/typescript/commonjs/sync/valueShape.d.ts.map +0 -1
  695. package/lib/typescript/commonjs/sync/wireBudget.d.ts.map +0 -1
  696. package/lib/typescript/commonjs/sync/wireForm.d.ts.map +0 -1
  697. package/lib/typescript/commonjs/tools/defineTool.d.ts.map +0 -1
  698. package/lib/typescript/commonjs/types/types.d.ts.map +0 -1
  699. package/lib/typescript/commonjs/ui/backgrounds/BackgroundSwitcher.d.ts.map +0 -1
  700. package/lib/typescript/commonjs/ui/backgrounds/ToolBackground.d.ts.map +0 -1
  701. package/lib/typescript/commonjs/ui/backgrounds/backgroundStore.d.ts.map +0 -1
  702. package/lib/typescript/commonjs/ui/backgrounds/index.d.ts.map +0 -1
  703. package/lib/typescript/commonjs/ui/backgrounds/primitives.d.ts.map +0 -1
  704. package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts.map +0 -1
  705. package/lib/typescript/commonjs/ui/backgrounds/rng.d.ts.map +0 -1
  706. package/lib/typescript/commonjs/ui/backgrounds/skyClock.d.ts.map +0 -1
  707. package/lib/typescript/commonjs/ui/backgrounds/types.d.ts.map +0 -1
  708. package/lib/typescript/commonjs/ui/backgrounds/variants/daylight.d.ts.map +0 -1
  709. package/lib/typescript/commonjs/ui/backgrounds/variants/deepField.d.ts.map +0 -1
  710. package/lib/typescript/commonjs/ui/backgrounds/variants/hyperspace.d.ts.map +0 -1
  711. package/lib/typescript/commonjs/ui/backgrounds/variants/liveSky.d.ts.map +0 -1
  712. package/lib/typescript/commonjs/ui/backgrounds/variants/meteors.d.ts.map +0 -1
  713. package/lib/typescript/commonjs/ui/backgrounds/variants/moonlight.d.ts.map +0 -1
  714. package/lib/typescript/commonjs/ui/backgrounds/variants/underwater.d.ts.map +0 -1
  715. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/motion.d.ts.map +0 -1
  716. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/textures.d.ts.map +0 -1
  717. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole.d.ts.map +0 -1
  718. package/lib/typescript/commonjs/ui/components/BackButton.d.ts.map +0 -1
  719. package/lib/typescript/commonjs/ui/components/Badge.d.ts.map +0 -1
  720. package/lib/typescript/commonjs/ui/components/ChangeRow.d.ts.map +0 -1
  721. package/lib/typescript/commonjs/ui/components/ChipStrip.d.ts.map +0 -1
  722. package/lib/typescript/commonjs/ui/components/ClipboardHintBanner.d.ts.map +0 -1
  723. package/lib/typescript/commonjs/ui/components/CollapsibleSection.d.ts.map +0 -1
  724. package/lib/typescript/commonjs/ui/components/CompactFilterChips.d.ts.map +0 -1
  725. package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +0 -1
  726. package/lib/typescript/commonjs/ui/components/CopyButton.d.ts.map +0 -1
  727. package/lib/typescript/commonjs/ui/components/DataInspector.d.ts.map +0 -1
  728. package/lib/typescript/commonjs/ui/components/DetailView.d.ts.map +0 -1
  729. package/lib/typescript/commonjs/ui/components/DetailViewToggle.d.ts.map +0 -1
  730. package/lib/typescript/commonjs/ui/components/DevToolsCard.d.ts.map +0 -1
  731. package/lib/typescript/commonjs/ui/components/DraggableHeader.d.ts.map +0 -1
  732. package/lib/typescript/commonjs/ui/components/DynamicFilterView.d.ts.map +0 -1
  733. package/lib/typescript/commonjs/ui/components/EmptyState.d.ts.map +0 -1
  734. package/lib/typescript/commonjs/ui/components/EntityFilterView.d.ts.map +0 -1
  735. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/CompareBar.d.ts.map +0 -1
  736. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +0 -1
  737. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +0 -1
  738. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +0 -1
  739. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/ViewToggleCards.d.ts.map +0 -1
  740. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/index.d.ts.map +0 -1
  741. package/lib/typescript/commonjs/ui/components/EventHistoryViewer/types.d.ts.map +0 -1
  742. package/lib/typescript/commonjs/ui/components/EventListItem.d.ts.map +0 -1
  743. package/lib/typescript/commonjs/ui/components/EventStepperFooter.d.ts.map +0 -1
  744. package/lib/typescript/commonjs/ui/components/ExpandablePopover.d.ts.map +0 -1
  745. package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts.map +0 -1
  746. package/lib/typescript/commonjs/ui/components/ExportPreview.d.ts.map +0 -1
  747. package/lib/typescript/commonjs/ui/components/FilterComponents.d.ts.map +0 -1
  748. package/lib/typescript/commonjs/ui/components/GripVerticalIcon.d.ts.map +0 -1
  749. package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts.map +0 -1
  750. package/lib/typescript/commonjs/ui/components/InfoRow.d.ts.map +0 -1
  751. package/lib/typescript/commonjs/ui/components/ListItem.d.ts.map +0 -1
  752. package/lib/typescript/commonjs/ui/components/ModalHeader.d.ts.map +0 -1
  753. package/lib/typescript/commonjs/ui/components/ModalHintBanner.d.ts.map +0 -1
  754. package/lib/typescript/commonjs/ui/components/Pill.d.ts.map +0 -1
  755. package/lib/typescript/commonjs/ui/components/PowerToggleButton.d.ts.map +0 -1
  756. package/lib/typescript/commonjs/ui/components/SearchBar.d.ts.map +0 -1
  757. package/lib/typescript/commonjs/ui/components/SectionHeader.d.ts.map +0 -1
  758. package/lib/typescript/commonjs/ui/components/StatsCard.d.ts.map +0 -1
  759. package/lib/typescript/commonjs/ui/components/StatusIndicator.d.ts.map +0 -1
  760. package/lib/typescript/commonjs/ui/components/StorageTypeBadge.d.ts.map +0 -1
  761. package/lib/typescript/commonjs/ui/components/TabSelector.d.ts.map +0 -1
  762. package/lib/typescript/commonjs/ui/components/TimeDisplay.d.ts.map +0 -1
  763. package/lib/typescript/commonjs/ui/components/ToggleRow.d.ts.map +0 -1
  764. package/lib/typescript/commonjs/ui/components/ToolButton.d.ts.map +0 -1
  765. package/lib/typescript/commonjs/ui/components/ToolEmptyState.d.ts.map +0 -1
  766. package/lib/typescript/commonjs/ui/components/ToolFooter.d.ts.map +0 -1
  767. package/lib/typescript/commonjs/ui/components/ValueTypeBadge.d.ts.map +0 -1
  768. package/lib/typescript/commonjs/ui/components/WindowControls.d.ts.map +0 -1
  769. package/lib/typescript/commonjs/ui/components/index.d.ts.map +0 -1
  770. package/lib/typescript/commonjs/ui/components/windowDrag.d.ts.map +0 -1
  771. package/lib/typescript/commonjs/ui/console/CyberpunkButtonOutline.d.ts.map +0 -1
  772. package/lib/typescript/commonjs/ui/console/CyberpunkIconContainer.d.ts.map +0 -1
  773. package/lib/typescript/commonjs/ui/console/CyberpunkSectionButton.d.ts.map +0 -1
  774. package/lib/typescript/commonjs/ui/floating/FloatingTool.d.ts.map +0 -1
  775. package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts.map +0 -1
  776. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.d.ts.map +0 -1
  777. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.web.d.ts.map +0 -1
  778. package/lib/typescript/commonjs/ui/floating/index.d.ts.map +0 -1
  779. package/lib/typescript/commonjs/ui/floating/index.web.d.ts.map +0 -1
  780. package/lib/typescript/commonjs/ui/floating/onboardingConstants.d.ts.map +0 -1
  781. package/lib/typescript/commonjs/ui/floating/onboardingConstants.web.d.ts.map +0 -1
  782. package/lib/typescript/commonjs/ui/fonts.d.ts.map +0 -1
  783. package/lib/typescript/commonjs/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +0 -1
  784. package/lib/typescript/commonjs/ui/gameUI/components/GameUICompactStats.d.ts.map +0 -1
  785. package/lib/typescript/commonjs/ui/gameUI/components/GameUIIssuesList.d.ts.map +0 -1
  786. package/lib/typescript/commonjs/ui/gameUI/components/GameUIStatusHeader.d.ts.map +0 -1
  787. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +0 -1
  788. package/lib/typescript/commonjs/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +0 -1
  789. package/lib/typescript/commonjs/ui/gameUI/hooks/useGameUIAlertState.d.ts.map +0 -1
  790. package/lib/typescript/commonjs/ui/gameUI/index.d.ts.map +0 -1
  791. package/lib/typescript/commonjs/ui/index.d.ts.map +0 -1
  792. package/lib/typescript/commonjs/ui/listPresets.d.ts.map +0 -1
  793. package/lib/typescript/commonjs/ui/night/nightTheme.d.ts.map +0 -1
  794. package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +0 -1
  795. package/lib/typescript/commonjs/ui/otto/OttoSceneView.d.ts.map +0 -1
  796. package/lib/typescript/commonjs/ui/otto/OttoSprite.d.ts.map +0 -1
  797. package/lib/typescript/commonjs/ui/otto/index.d.ts.map +0 -1
  798. package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts.map +0 -1
  799. package/lib/typescript/commonjs/ui/otto/ottoScenes.d.ts.map +0 -1
  800. package/lib/typescript/commonjs/ui/otto/ottoSheet.d.ts.map +0 -1
  801. package/lib/typescript/commonjs/ui/toolTheme.d.ts.map +0 -1
  802. package/lib/typescript/commonjs/utils/absoluteFill.d.ts.map +0 -1
  803. package/lib/typescript/commonjs/utils/browserAsyncStorage.d.ts.map +0 -1
  804. package/lib/typescript/commonjs/utils/browserNavigation.d.ts.map +0 -1
  805. package/lib/typescript/commonjs/utils/devServer.d.ts.map +0 -1
  806. package/lib/typescript/commonjs/utils/devServer.web.d.ts.map +0 -1
  807. package/lib/typescript/commonjs/utils/displayValue.d.ts.map +0 -1
  808. package/lib/typescript/commonjs/utils/domRuntime.d.ts.map +0 -1
  809. package/lib/typescript/commonjs/utils/expoRouterModule.d.ts.map +0 -1
  810. package/lib/typescript/commonjs/utils/expoRouterModule.web.d.ts.map +0 -1
  811. package/lib/typescript/commonjs/utils/formatting/dataFormatting.d.ts.map +0 -1
  812. package/lib/typescript/commonjs/utils/formatting/httpFormatting.d.ts.map +0 -1
  813. package/lib/typescript/commonjs/utils/formatting/index.d.ts.map +0 -1
  814. package/lib/typescript/commonjs/utils/getSafeAreaInsets.d.ts.map +0 -1
  815. package/lib/typescript/commonjs/utils/getSafeAreaInsets.web.d.ts.map +0 -1
  816. package/lib/typescript/commonjs/utils/index.d.ts.map +0 -1
  817. package/lib/typescript/commonjs/utils/loadOptionalModule.d.ts.map +0 -1
  818. package/lib/typescript/commonjs/utils/loadToolModule.d.ts.map +0 -1
  819. package/lib/typescript/commonjs/utils/loadToolModule.web.d.ts.map +0 -1
  820. package/lib/typescript/commonjs/utils/minimalSuperJSON.d.ts.map +0 -1
  821. package/lib/typescript/commonjs/utils/modalStorage.d.ts.map +0 -1
  822. package/lib/typescript/commonjs/utils/nativeWeb.d.ts.map +0 -1
  823. package/lib/typescript/commonjs/utils/persistentStorage.d.ts.map +0 -1
  824. package/lib/typescript/commonjs/utils/persistentStorage.web.d.ts.map +0 -1
  825. package/lib/typescript/commonjs/utils/reloadApp.d.ts.map +0 -1
  826. package/lib/typescript/commonjs/utils/reloadPlatform.d.ts.map +0 -1
  827. package/lib/typescript/commonjs/utils/reloadPlatform.web.d.ts.map +0 -1
  828. package/lib/typescript/commonjs/utils/renderCaptureRegistry.d.ts.map +0 -1
  829. package/lib/typescript/commonjs/utils/safeExpoRouter.d.ts.map +0 -1
  830. package/lib/typescript/commonjs/utils/safeExpoRouter.web.d.ts.map +0 -1
  831. package/lib/typescript/commonjs/utils/safeStringify.d.ts.map +0 -1
  832. package/lib/typescript/commonjs/utils/snapshotProviderKit.d.ts.map +0 -1
  833. package/lib/typescript/commonjs/utils/stateSnapshotRegistry.d.ts.map +0 -1
  834. package/lib/typescript/commonjs/utils/stateTools.d.ts.map +0 -1
  835. package/lib/typescript/commonjs/utils/subscribable.d.ts.map +0 -1
  836. package/lib/typescript/commonjs/utils/subscriberCountNotifier.d.ts.map +0 -1
  837. package/lib/typescript/commonjs/utils/time/RelativeTime.d.ts.map +0 -1
  838. package/lib/typescript/commonjs/utils/time/TickContext.d.ts.map +0 -1
  839. package/lib/typescript/commonjs/utils/time/formatRelativeTime.d.ts.map +0 -1
  840. package/lib/typescript/commonjs/utils/time/index.d.ts.map +0 -1
  841. package/lib/typescript/commonjs/utils/time/useRelativeTime.d.ts.map +0 -1
  842. package/lib/typescript/commonjs/utils/toolModules.d.ts.map +0 -1
  843. package/lib/typescript/commonjs/utils/typeHelpers.d.ts.map +0 -1
  844. package/lib/typescript/commonjs/utils/valueFormatting.d.ts.map +0 -1
  845. package/lib/typescript/module/JsModal.d.ts.map +0 -1
  846. package/lib/typescript/module/JsModal.web.d.ts.map +0 -1
  847. package/lib/typescript/module/clipboard/autoDetectClipboard.d.ts.map +0 -1
  848. package/lib/typescript/module/clipboard/clipboard-impl.d.ts.map +0 -1
  849. package/lib/typescript/module/clipboard/clipboard-impl.web.d.ts.map +0 -1
  850. package/lib/typescript/module/clipboard/copyToClipboard.d.ts.map +0 -1
  851. package/lib/typescript/module/clipboard/index.d.ts.map +0 -1
  852. package/lib/typescript/module/colors/index.d.ts.map +0 -1
  853. package/lib/typescript/module/context/HintsContext.d.ts.map +0 -1
  854. package/lib/typescript/module/context/index.d.ts.map +0 -1
  855. package/lib/typescript/module/dataViewer/CyberpunkInput.d.ts.map +0 -1
  856. package/lib/typescript/module/dataViewer/DataTreeActionBar.d.ts.map +0 -1
  857. package/lib/typescript/module/dataViewer/DataTreeActionDock.d.ts.map +0 -1
  858. package/lib/typescript/module/dataViewer/DataViewer.d.ts.map +0 -1
  859. package/lib/typescript/module/dataViewer/DiffSummary.d.ts.map +0 -1
  860. package/lib/typescript/module/dataViewer/IndentGuides.d.ts.map +0 -1
  861. package/lib/typescript/module/dataViewer/IndentGuidesOverlay.d.ts.map +0 -1
  862. package/lib/typescript/module/dataViewer/JsonStringNotice.d.ts.map +0 -1
  863. package/lib/typescript/module/dataViewer/LiveExplorer.d.ts.map +0 -1
  864. package/lib/typescript/module/dataViewer/SplitDiffViewer.d.ts.map +0 -1
  865. package/lib/typescript/module/dataViewer/ThemedSplitView.d.ts.map +0 -1
  866. package/lib/typescript/module/dataViewer/TimestampDeltaBar.d.ts.map +0 -1
  867. package/lib/typescript/module/dataViewer/TypeLegend.d.ts.map +0 -1
  868. package/lib/typescript/module/dataViewer/ValueEditModal.d.ts.map +0 -1
  869. package/lib/typescript/module/dataViewer/VirtualizedDataExplorer.d.ts.map +0 -1
  870. package/lib/typescript/module/dataViewer/diffThemes.d.ts.map +0 -1
  871. package/lib/typescript/module/dataViewer/index.d.ts.map +0 -1
  872. package/lib/typescript/module/dataViewer/jsonOps.d.ts.map +0 -1
  873. package/lib/typescript/module/dataViewer/jsonStringValue.d.ts.map +0 -1
  874. package/lib/typescript/module/dataViewer/lineDiff.d.ts.map +0 -1
  875. package/lib/typescript/module/dataViewer/nestedPath.d.ts.map +0 -1
  876. package/lib/typescript/module/dataViewer/objectDiff.d.ts.map +0 -1
  877. package/lib/typescript/module/dataViewer/timestampDiff.d.ts.map +0 -1
  878. package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +0 -1
  879. package/lib/typescript/module/dataViewer/treeActions.d.ts.map +0 -1
  880. package/lib/typescript/module/dataViewer/useTreeDraft.d.ts.map +0 -1
  881. package/lib/typescript/module/dataViewer/useTreeEditor.d.ts.map +0 -1
  882. package/lib/typescript/module/env/EnvironmentIndicator.d.ts.map +0 -1
  883. package/lib/typescript/module/env/EnvironmentIndicator.web.d.ts.map +0 -1
  884. package/lib/typescript/module/env/EnvironmentSelector.d.ts.map +0 -1
  885. package/lib/typescript/module/env/EnvironmentSelectorInline.d.ts.map +0 -1
  886. package/lib/typescript/module/env/EnvironmentSelectorInline.web.d.ts.map +0 -1
  887. package/lib/typescript/module/history/HistoryProvider.d.ts.map +0 -1
  888. package/lib/typescript/module/history/components/HistoryEntryRow.d.ts.map +0 -1
  889. package/lib/typescript/module/history/components/HistoryList.d.ts.map +0 -1
  890. package/lib/typescript/module/history/components/index.d.ts.map +0 -1
  891. package/lib/typescript/module/history/index.d.ts.map +0 -1
  892. package/lib/typescript/module/history/types.d.ts.map +0 -1
  893. package/lib/typescript/module/hooks/index.d.ts.map +0 -1
  894. package/lib/typescript/module/hooks/safe-area-impl.d.ts.map +0 -1
  895. package/lib/typescript/module/hooks/useChangeLog.d.ts.map +0 -1
  896. package/lib/typescript/module/hooks/useDeviceInfo.d.ts.map +0 -1
  897. package/lib/typescript/module/hooks/useEventStoreEvents.d.ts.map +0 -1
  898. package/lib/typescript/module/hooks/useFilterManager.d.ts.map +0 -1
  899. package/lib/typescript/module/hooks/usePersistedState.d.ts.map +0 -1
  900. package/lib/typescript/module/hooks/useSafeAreaInsets.d.ts.map +0 -1
  901. package/lib/typescript/module/hooks/useSafeAreaInsets.web.d.ts.map +0 -1
  902. package/lib/typescript/module/icons/BenchmarkIcon.d.ts.map +0 -1
  903. package/lib/typescript/module/icons/EnvLaptopIcon.d.ts.map +0 -1
  904. package/lib/typescript/module/icons/IconBackground.d.ts.map +0 -1
  905. package/lib/typescript/module/icons/ReactQueryIcon.d.ts.map +0 -1
  906. package/lib/typescript/module/icons/RenderCountIcon.d.ts.map +0 -1
  907. package/lib/typescript/module/icons/RouteMapIcon.d.ts.map +0 -1
  908. package/lib/typescript/module/icons/SentryBugIcon.d.ts.map +0 -1
  909. package/lib/typescript/module/icons/StackPulseIcon.d.ts.map +0 -1
  910. package/lib/typescript/module/icons/StorageStackIcon.d.ts.map +0 -1
  911. package/lib/typescript/module/icons/WifiCircuitIcon.d.ts.map +0 -1
  912. package/lib/typescript/module/icons/index.d.ts.map +0 -1
  913. package/lib/typescript/module/icons/lucide-icons-original-full.d.ts.map +0 -1
  914. package/lib/typescript/module/icons/lucide-icons.d.ts.map +0 -1
  915. package/lib/typescript/module/icons/primitives/GlobeIcon.d.ts.map +0 -1
  916. package/lib/typescript/module/icons/primitives/icon-primitives.d.ts.map +0 -1
  917. package/lib/typescript/module/icons/primitives/index.d.ts.map +0 -1
  918. package/lib/typescript/module/index.d.ts.map +0 -1
  919. package/lib/typescript/module/license/AccountSetup.d.ts.map +0 -1
  920. package/lib/typescript/module/license/AccountSetup.web.d.ts.map +0 -1
  921. package/lib/typescript/module/license/AccountSetupContent.d.ts.map +0 -1
  922. package/lib/typescript/module/license/FeatureGate.d.ts.map +0 -1
  923. package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +0 -1
  924. package/lib/typescript/module/license/LicenseEntryModal.d.ts.map +0 -1
  925. package/lib/typescript/module/license/accountRuntime.d.ts.map +0 -1
  926. package/lib/typescript/module/license/accountRuntime.web.d.ts.map +0 -1
  927. package/lib/typescript/module/license/index.d.ts.map +0 -1
  928. package/lib/typescript/module/license/licenseModule.d.ts.map +0 -1
  929. package/lib/typescript/module/license/openPricing.d.ts.map +0 -1
  930. package/lib/typescript/module/license/tierLimits.d.ts.map +0 -1
  931. package/lib/typescript/module/logger/index-sentry.d.ts.map +0 -1
  932. package/lib/typescript/module/logger/index.d.ts.map +0 -1
  933. package/lib/typescript/module/logger/logDump.d.ts.map +0 -1
  934. package/lib/typescript/module/logger/types.d.ts.map +0 -1
  935. package/lib/typescript/module/settings/components/BubbleSettingsSection.d.ts.map +0 -1
  936. package/lib/typescript/module/settings/index.d.ts.map +0 -1
  937. package/lib/typescript/module/storage/definePersistedSetting.d.ts.map +0 -1
  938. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +0 -1
  939. package/lib/typescript/module/storage/index.d.ts.map +0 -1
  940. package/lib/typescript/module/stores/BaseEventStore.d.ts.map +0 -1
  941. package/lib/typescript/module/stores/ChangeLog.d.ts.map +0 -1
  942. package/lib/typescript/module/stores/createToolStore.d.ts.map +0 -1
  943. package/lib/typescript/module/stores/floatingToolStore.d.ts.map +0 -1
  944. package/lib/typescript/module/stores/floatingToolStore.test.d.ts.map +0 -1
  945. package/lib/typescript/module/stores/ignoredPatternsCore.d.ts.map +0 -1
  946. package/lib/typescript/module/stores/ignoredPatternsStore.d.ts.map +0 -1
  947. package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts.map +0 -1
  948. package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts.map +0 -1
  949. package/lib/typescript/module/stores/index.d.ts.map +0 -1
  950. package/lib/typescript/module/sync/keyedArrays.d.ts.map +0 -1
  951. package/lib/typescript/module/sync/toolActionRegistry.d.ts.map +0 -1
  952. package/lib/typescript/module/sync/toolAttention.test.d.ts.map +0 -1
  953. package/lib/typescript/module/sync/toolSyncAdapter.d.ts.map +0 -1
  954. package/lib/typescript/module/sync/toolUiBridge.d.ts.map +0 -1
  955. package/lib/typescript/module/sync/typedEdit.d.ts.map +0 -1
  956. package/lib/typescript/module/sync/valuePath.d.ts.map +0 -1
  957. package/lib/typescript/module/sync/valueShape.d.ts.map +0 -1
  958. package/lib/typescript/module/sync/wireBudget.d.ts.map +0 -1
  959. package/lib/typescript/module/sync/wireForm.d.ts.map +0 -1
  960. package/lib/typescript/module/tools/defineTool.d.ts.map +0 -1
  961. package/lib/typescript/module/types/types.d.ts.map +0 -1
  962. package/lib/typescript/module/ui/backgrounds/BackgroundSwitcher.d.ts.map +0 -1
  963. package/lib/typescript/module/ui/backgrounds/ToolBackground.d.ts.map +0 -1
  964. package/lib/typescript/module/ui/backgrounds/backgroundStore.d.ts.map +0 -1
  965. package/lib/typescript/module/ui/backgrounds/index.d.ts.map +0 -1
  966. package/lib/typescript/module/ui/backgrounds/primitives.d.ts.map +0 -1
  967. package/lib/typescript/module/ui/backgrounds/registry.d.ts.map +0 -1
  968. package/lib/typescript/module/ui/backgrounds/rng.d.ts.map +0 -1
  969. package/lib/typescript/module/ui/backgrounds/skyClock.d.ts.map +0 -1
  970. package/lib/typescript/module/ui/backgrounds/types.d.ts.map +0 -1
  971. package/lib/typescript/module/ui/backgrounds/variants/daylight.d.ts.map +0 -1
  972. package/lib/typescript/module/ui/backgrounds/variants/deepField.d.ts.map +0 -1
  973. package/lib/typescript/module/ui/backgrounds/variants/hyperspace.d.ts.map +0 -1
  974. package/lib/typescript/module/ui/backgrounds/variants/liveSky.d.ts.map +0 -1
  975. package/lib/typescript/module/ui/backgrounds/variants/meteors.d.ts.map +0 -1
  976. package/lib/typescript/module/ui/backgrounds/variants/moonlight.d.ts.map +0 -1
  977. package/lib/typescript/module/ui/backgrounds/variants/underwater.d.ts.map +0 -1
  978. package/lib/typescript/module/ui/backgrounds/variants/wormhole/motion.d.ts.map +0 -1
  979. package/lib/typescript/module/ui/backgrounds/variants/wormhole/textures.d.ts.map +0 -1
  980. package/lib/typescript/module/ui/backgrounds/variants/wormhole.d.ts.map +0 -1
  981. package/lib/typescript/module/ui/components/BackButton.d.ts.map +0 -1
  982. package/lib/typescript/module/ui/components/Badge.d.ts.map +0 -1
  983. package/lib/typescript/module/ui/components/ChangeRow.d.ts.map +0 -1
  984. package/lib/typescript/module/ui/components/ChipStrip.d.ts.map +0 -1
  985. package/lib/typescript/module/ui/components/ClipboardHintBanner.d.ts.map +0 -1
  986. package/lib/typescript/module/ui/components/CollapsibleSection.d.ts.map +0 -1
  987. package/lib/typescript/module/ui/components/CompactFilterChips.d.ts.map +0 -1
  988. package/lib/typescript/module/ui/components/CompactRow.d.ts.map +0 -1
  989. package/lib/typescript/module/ui/components/CopyButton.d.ts.map +0 -1
  990. package/lib/typescript/module/ui/components/DataInspector.d.ts.map +0 -1
  991. package/lib/typescript/module/ui/components/DetailView.d.ts.map +0 -1
  992. package/lib/typescript/module/ui/components/DetailViewToggle.d.ts.map +0 -1
  993. package/lib/typescript/module/ui/components/DevToolsCard.d.ts.map +0 -1
  994. package/lib/typescript/module/ui/components/DraggableHeader.d.ts.map +0 -1
  995. package/lib/typescript/module/ui/components/DynamicFilterView.d.ts.map +0 -1
  996. package/lib/typescript/module/ui/components/EmptyState.d.ts.map +0 -1
  997. package/lib/typescript/module/ui/components/EntityFilterView.d.ts.map +0 -1
  998. package/lib/typescript/module/ui/components/EventHistoryViewer/CompareBar.d.ts.map +0 -1
  999. package/lib/typescript/module/ui/components/EventHistoryViewer/DiffModeTabs.d.ts.map +0 -1
  1000. package/lib/typescript/module/ui/components/EventHistoryViewer/EventHistoryViewer.d.ts.map +0 -1
  1001. package/lib/typescript/module/ui/components/EventHistoryViewer/EventPickerModal.d.ts.map +0 -1
  1002. package/lib/typescript/module/ui/components/EventHistoryViewer/ViewToggleCards.d.ts.map +0 -1
  1003. package/lib/typescript/module/ui/components/EventHistoryViewer/index.d.ts.map +0 -1
  1004. package/lib/typescript/module/ui/components/EventHistoryViewer/types.d.ts.map +0 -1
  1005. package/lib/typescript/module/ui/components/EventListItem.d.ts.map +0 -1
  1006. package/lib/typescript/module/ui/components/EventStepperFooter.d.ts.map +0 -1
  1007. package/lib/typescript/module/ui/components/ExpandablePopover.d.ts.map +0 -1
  1008. package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts.map +0 -1
  1009. package/lib/typescript/module/ui/components/ExportPreview.d.ts.map +0 -1
  1010. package/lib/typescript/module/ui/components/FilterComponents.d.ts.map +0 -1
  1011. package/lib/typescript/module/ui/components/GripVerticalIcon.d.ts.map +0 -1
  1012. package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts.map +0 -1
  1013. package/lib/typescript/module/ui/components/InfoRow.d.ts.map +0 -1
  1014. package/lib/typescript/module/ui/components/ListItem.d.ts.map +0 -1
  1015. package/lib/typescript/module/ui/components/ModalHeader.d.ts.map +0 -1
  1016. package/lib/typescript/module/ui/components/ModalHintBanner.d.ts.map +0 -1
  1017. package/lib/typescript/module/ui/components/Pill.d.ts.map +0 -1
  1018. package/lib/typescript/module/ui/components/PowerToggleButton.d.ts.map +0 -1
  1019. package/lib/typescript/module/ui/components/SearchBar.d.ts.map +0 -1
  1020. package/lib/typescript/module/ui/components/SectionHeader.d.ts.map +0 -1
  1021. package/lib/typescript/module/ui/components/StatsCard.d.ts.map +0 -1
  1022. package/lib/typescript/module/ui/components/StatusIndicator.d.ts.map +0 -1
  1023. package/lib/typescript/module/ui/components/StorageTypeBadge.d.ts.map +0 -1
  1024. package/lib/typescript/module/ui/components/TabSelector.d.ts.map +0 -1
  1025. package/lib/typescript/module/ui/components/TimeDisplay.d.ts.map +0 -1
  1026. package/lib/typescript/module/ui/components/ToggleRow.d.ts.map +0 -1
  1027. package/lib/typescript/module/ui/components/ToolButton.d.ts.map +0 -1
  1028. package/lib/typescript/module/ui/components/ToolEmptyState.d.ts.map +0 -1
  1029. package/lib/typescript/module/ui/components/ToolFooter.d.ts.map +0 -1
  1030. package/lib/typescript/module/ui/components/ValueTypeBadge.d.ts.map +0 -1
  1031. package/lib/typescript/module/ui/components/WindowControls.d.ts.map +0 -1
  1032. package/lib/typescript/module/ui/components/index.d.ts.map +0 -1
  1033. package/lib/typescript/module/ui/components/windowDrag.d.ts.map +0 -1
  1034. package/lib/typescript/module/ui/console/CyberpunkButtonOutline.d.ts.map +0 -1
  1035. package/lib/typescript/module/ui/console/CyberpunkIconContainer.d.ts.map +0 -1
  1036. package/lib/typescript/module/ui/console/CyberpunkSectionButton.d.ts.map +0 -1
  1037. package/lib/typescript/module/ui/floating/FloatingTool.d.ts.map +0 -1
  1038. package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts.map +0 -1
  1039. package/lib/typescript/module/ui/floating/FloatingToolHost.d.ts.map +0 -1
  1040. package/lib/typescript/module/ui/floating/FloatingToolHost.web.d.ts.map +0 -1
  1041. package/lib/typescript/module/ui/floating/index.d.ts.map +0 -1
  1042. package/lib/typescript/module/ui/floating/index.web.d.ts.map +0 -1
  1043. package/lib/typescript/module/ui/floating/onboardingConstants.d.ts.map +0 -1
  1044. package/lib/typescript/module/ui/floating/onboardingConstants.web.d.ts.map +0 -1
  1045. package/lib/typescript/module/ui/fonts.d.ts.map +0 -1
  1046. package/lib/typescript/module/ui/gameUI/components/GameUICollapsibleSection.d.ts.map +0 -1
  1047. package/lib/typescript/module/ui/gameUI/components/GameUICompactStats.d.ts.map +0 -1
  1048. package/lib/typescript/module/ui/gameUI/components/GameUIIssuesList.d.ts.map +0 -1
  1049. package/lib/typescript/module/ui/gameUI/components/GameUIStatusHeader.d.ts.map +0 -1
  1050. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +0 -1
  1051. package/lib/typescript/module/ui/gameUI/constants/macOSDesignSystemColors.d.ts.map +0 -1
  1052. package/lib/typescript/module/ui/gameUI/hooks/useGameUIAlertState.d.ts.map +0 -1
  1053. package/lib/typescript/module/ui/gameUI/index.d.ts.map +0 -1
  1054. package/lib/typescript/module/ui/index.d.ts.map +0 -1
  1055. package/lib/typescript/module/ui/listPresets.d.ts.map +0 -1
  1056. package/lib/typescript/module/ui/night/nightTheme.d.ts.map +0 -1
  1057. package/lib/typescript/module/ui/night/primitives.d.ts.map +0 -1
  1058. package/lib/typescript/module/ui/otto/OttoSceneView.d.ts.map +0 -1
  1059. package/lib/typescript/module/ui/otto/OttoSprite.d.ts.map +0 -1
  1060. package/lib/typescript/module/ui/otto/index.d.ts.map +0 -1
  1061. package/lib/typescript/module/ui/otto/ottoEngine.d.ts.map +0 -1
  1062. package/lib/typescript/module/ui/otto/ottoScenes.d.ts.map +0 -1
  1063. package/lib/typescript/module/ui/otto/ottoSheet.d.ts.map +0 -1
  1064. package/lib/typescript/module/ui/toolTheme.d.ts.map +0 -1
  1065. package/lib/typescript/module/utils/absoluteFill.d.ts.map +0 -1
  1066. package/lib/typescript/module/utils/browserAsyncStorage.d.ts.map +0 -1
  1067. package/lib/typescript/module/utils/browserNavigation.d.ts.map +0 -1
  1068. package/lib/typescript/module/utils/devServer.d.ts.map +0 -1
  1069. package/lib/typescript/module/utils/devServer.web.d.ts.map +0 -1
  1070. package/lib/typescript/module/utils/displayValue.d.ts.map +0 -1
  1071. package/lib/typescript/module/utils/domRuntime.d.ts.map +0 -1
  1072. package/lib/typescript/module/utils/expoRouterModule.d.ts.map +0 -1
  1073. package/lib/typescript/module/utils/expoRouterModule.web.d.ts.map +0 -1
  1074. package/lib/typescript/module/utils/formatting/dataFormatting.d.ts.map +0 -1
  1075. package/lib/typescript/module/utils/formatting/httpFormatting.d.ts.map +0 -1
  1076. package/lib/typescript/module/utils/formatting/index.d.ts.map +0 -1
  1077. package/lib/typescript/module/utils/getSafeAreaInsets.d.ts.map +0 -1
  1078. package/lib/typescript/module/utils/getSafeAreaInsets.web.d.ts.map +0 -1
  1079. package/lib/typescript/module/utils/index.d.ts.map +0 -1
  1080. package/lib/typescript/module/utils/loadOptionalModule.d.ts.map +0 -1
  1081. package/lib/typescript/module/utils/loadToolModule.d.ts.map +0 -1
  1082. package/lib/typescript/module/utils/loadToolModule.web.d.ts.map +0 -1
  1083. package/lib/typescript/module/utils/minimalSuperJSON.d.ts.map +0 -1
  1084. package/lib/typescript/module/utils/modalStorage.d.ts.map +0 -1
  1085. package/lib/typescript/module/utils/nativeWeb.d.ts.map +0 -1
  1086. package/lib/typescript/module/utils/persistentStorage.d.ts.map +0 -1
  1087. package/lib/typescript/module/utils/persistentStorage.web.d.ts.map +0 -1
  1088. package/lib/typescript/module/utils/reloadApp.d.ts.map +0 -1
  1089. package/lib/typescript/module/utils/reloadPlatform.d.ts.map +0 -1
  1090. package/lib/typescript/module/utils/reloadPlatform.web.d.ts.map +0 -1
  1091. package/lib/typescript/module/utils/renderCaptureRegistry.d.ts.map +0 -1
  1092. package/lib/typescript/module/utils/safeExpoRouter.d.ts.map +0 -1
  1093. package/lib/typescript/module/utils/safeExpoRouter.web.d.ts.map +0 -1
  1094. package/lib/typescript/module/utils/safeStringify.d.ts.map +0 -1
  1095. package/lib/typescript/module/utils/snapshotProviderKit.d.ts.map +0 -1
  1096. package/lib/typescript/module/utils/stateSnapshotRegistry.d.ts.map +0 -1
  1097. package/lib/typescript/module/utils/stateTools.d.ts.map +0 -1
  1098. package/lib/typescript/module/utils/subscribable.d.ts.map +0 -1
  1099. package/lib/typescript/module/utils/subscriberCountNotifier.d.ts.map +0 -1
  1100. package/lib/typescript/module/utils/time/RelativeTime.d.ts.map +0 -1
  1101. package/lib/typescript/module/utils/time/TickContext.d.ts.map +0 -1
  1102. package/lib/typescript/module/utils/time/formatRelativeTime.d.ts.map +0 -1
  1103. package/lib/typescript/module/utils/time/index.d.ts.map +0 -1
  1104. package/lib/typescript/module/utils/time/useRelativeTime.d.ts.map +0 -1
  1105. package/lib/typescript/module/utils/toolModules.d.ts.map +0 -1
  1106. package/lib/typescript/module/utils/typeHelpers.d.ts.map +0 -1
  1107. package/lib/typescript/module/utils/valueFormatting.d.ts.map +0 -1
  1108. package/lib/web/chunks/chunk-2MHKRRQW.mjs +0 -8
  1109. package/lib/web/chunks/chunk-2Q3SDPH2.mjs +0 -14
  1110. package/lib/web/chunks/chunk-34YQ42KI.mjs +0 -2
  1111. package/lib/web/chunks/chunk-3NNNCQYP.mjs +0 -14
  1112. package/lib/web/chunks/chunk-46CXXOQB.mjs +0 -2
  1113. package/lib/web/chunks/chunk-475BSDCB.mjs +0 -2
  1114. package/lib/web/chunks/chunk-552W4COI.mjs +0 -2
  1115. package/lib/web/chunks/chunk-56TTTMX4.mjs +0 -6145
  1116. package/lib/web/chunks/chunk-5LOQZINQ.mjs +0 -14
  1117. package/lib/web/chunks/chunk-5NOIO6ZM.mjs +0 -16
  1118. package/lib/web/chunks/chunk-6CCRCSA2.mjs +0 -2
  1119. package/lib/web/chunks/chunk-6Q52HRBL.mjs +0 -2
  1120. package/lib/web/chunks/chunk-6TEDFSNM.mjs +0 -655
  1121. package/lib/web/chunks/chunk-7BMRSMHN.mjs +0 -2
  1122. package/lib/web/chunks/chunk-A2SOFE47.mjs +0 -24
  1123. package/lib/web/chunks/chunk-A7KJCK4R.mjs +0 -14
  1124. package/lib/web/chunks/chunk-AEXGGXS7.mjs +0 -2
  1125. package/lib/web/chunks/chunk-AGD7ZT6O.mjs +0 -15
  1126. package/lib/web/chunks/chunk-AIEOQWNG.mjs +0 -2
  1127. package/lib/web/chunks/chunk-ASTM35HG.mjs +0 -16
  1128. package/lib/web/chunks/chunk-AZBMFPMX.mjs +0 -1421
  1129. package/lib/web/chunks/chunk-B2V2UDCU.mjs +0 -16
  1130. package/lib/web/chunks/chunk-BFGKGTAC.mjs +0 -2
  1131. package/lib/web/chunks/chunk-BHW6AFO6.mjs +0 -2
  1132. package/lib/web/chunks/chunk-BWRW3NJ2.mjs +0 -16
  1133. package/lib/web/chunks/chunk-CBM2IZAK.mjs +0 -2
  1134. package/lib/web/chunks/chunk-CDLCFF44.mjs +0 -2
  1135. package/lib/web/chunks/chunk-CI5CO7FQ.mjs +0 -2
  1136. package/lib/web/chunks/chunk-CIB4U2YK.mjs +0 -2
  1137. package/lib/web/chunks/chunk-CLLTZQGD.mjs +0 -596
  1138. package/lib/web/chunks/chunk-D5HQLRFW.mjs +0 -655
  1139. package/lib/web/chunks/chunk-DZDTNXXK.mjs +0 -2
  1140. package/lib/web/chunks/chunk-FDOZ6YSS.mjs +0 -2
  1141. package/lib/web/chunks/chunk-FMEWNGQO.mjs +0 -2
  1142. package/lib/web/chunks/chunk-G4DH7GMT.mjs +0 -2
  1143. package/lib/web/chunks/chunk-GBUZCZE4.mjs +0 -2
  1144. package/lib/web/chunks/chunk-GLMS5ZLJ.mjs +0 -445
  1145. package/lib/web/chunks/chunk-GNGMIA7V.mjs +0 -2
  1146. package/lib/web/chunks/chunk-HJ36IONA.mjs +0 -15
  1147. package/lib/web/chunks/chunk-HXPTZMAZ.mjs +0 -2
  1148. package/lib/web/chunks/chunk-I27M4JCS.mjs +0 -2
  1149. package/lib/web/chunks/chunk-IVCT27JB.mjs +0 -2
  1150. package/lib/web/chunks/chunk-JG4QSK5B.mjs +0 -2
  1151. package/lib/web/chunks/chunk-JR7BJW6B.mjs +0 -389
  1152. package/lib/web/chunks/chunk-K46ZJUXJ.mjs +0 -90
  1153. package/lib/web/chunks/chunk-K4LXMO4D.mjs +0 -2
  1154. package/lib/web/chunks/chunk-KBTYK5YE.mjs +0 -662
  1155. package/lib/web/chunks/chunk-KHP6CSSM.mjs +0 -2
  1156. package/lib/web/chunks/chunk-KRDRIW7T.mjs +0 -14
  1157. package/lib/web/chunks/chunk-L2DTKDER.mjs +0 -2
  1158. package/lib/web/chunks/chunk-LFDFDGHY.mjs +0 -655
  1159. package/lib/web/chunks/chunk-MAIUUK4E.mjs +0 -2
  1160. package/lib/web/chunks/chunk-MKJKS3IG.mjs +0 -275
  1161. package/lib/web/chunks/chunk-MRQKVLXG.mjs +0 -2
  1162. package/lib/web/chunks/chunk-NK3OISOL.mjs +0 -14
  1163. package/lib/web/chunks/chunk-NLJDDIXW.mjs +0 -2
  1164. package/lib/web/chunks/chunk-OENR3XFI.mjs +0 -11
  1165. package/lib/web/chunks/chunk-OZB3VKZE.mjs +0 -2
  1166. package/lib/web/chunks/chunk-P64PFJT3.mjs +0 -17618
  1167. package/lib/web/chunks/chunk-PACPGYH7.mjs +0 -2
  1168. package/lib/web/chunks/chunk-PART6HOE.mjs +0 -14
  1169. package/lib/web/chunks/chunk-PMRXUQRH.mjs +0 -2
  1170. package/lib/web/chunks/chunk-PZ45TQ55.mjs +0 -14
  1171. package/lib/web/chunks/chunk-Q5LN7GET.mjs +0 -17624
  1172. package/lib/web/chunks/chunk-QCD6T6L4.mjs +0 -297
  1173. package/lib/web/chunks/chunk-QD5EUANU.mjs +0 -2
  1174. package/lib/web/chunks/chunk-QJTECJCO.mjs +0 -2
  1175. package/lib/web/chunks/chunk-QPIZURPZ.mjs +0 -2
  1176. package/lib/web/chunks/chunk-QPY45R5F.mjs +0 -274
  1177. package/lib/web/chunks/chunk-R2SGZIG5.mjs +0 -2
  1178. package/lib/web/chunks/chunk-S3GYQYVJ.mjs +0 -16
  1179. package/lib/web/chunks/chunk-SCCXVTDM.mjs +0 -2
  1180. package/lib/web/chunks/chunk-SHJHD646.mjs +0 -2
  1181. package/lib/web/chunks/chunk-TCRVZ55E.mjs +0 -2
  1182. package/lib/web/chunks/chunk-TJ6ZVV2L.mjs +0 -15
  1183. package/lib/web/chunks/chunk-TPSY4RC3.mjs +0 -14
  1184. package/lib/web/chunks/chunk-U5KNX5O6.mjs +0 -17624
  1185. package/lib/web/chunks/chunk-UCKELQSM.mjs +0 -2
  1186. package/lib/web/chunks/chunk-UGGCYHRH.mjs +0 -15
  1187. package/lib/web/chunks/chunk-UNYQJZET.mjs +0 -16
  1188. package/lib/web/chunks/chunk-VE72SWLV.mjs +0 -15
  1189. package/lib/web/chunks/chunk-VKONO6MI.mjs +0 -2
  1190. package/lib/web/chunks/chunk-W4BGMPJO.mjs +0 -2
  1191. package/lib/web/chunks/chunk-WHNEEKLR.mjs +0 -2
  1192. package/lib/web/chunks/chunk-WLGUP3KY.mjs +0 -16
  1193. package/lib/web/chunks/chunk-WY7D4WBZ.mjs +0 -2
  1194. package/lib/web/chunks/chunk-XRNB2MHO.mjs +0 -107
  1195. package/lib/web/chunks/chunk-XXTIAXQY.mjs +0 -2
  1196. package/lib/web/chunks/chunk-YG6DIKQD.mjs +0 -2
  1197. package/lib/web/chunks/chunk-YIZFMU66.mjs +0 -2
  1198. package/lib/web/chunks/chunk-YOGAPOGC.mjs +0 -2
  1199. package/lib/web/chunks/chunk-Z7373DS5.mjs +0 -2
  1200. package/lib/web/chunks/chunk-Z76GRN66.mjs +0 -17627
  1201. package/lib/web/chunks/persistentStorage.web-4FBAOYJ4.mjs +0 -12
  1202. package/lib/web/chunks/persistentStorage.web-7W3Y6Q24.mjs +0 -12
  1203. package/lib/web/chunks/persistentStorage.web-GOWNFMVT.mjs +0 -2
  1204. package/lib/web/chunks/persistentStorage.web-RF47FXIK.mjs +0 -12
  1205. package/scripts/generate-wormhole-textures.cjs +0 -261
  1206. package/scripts/test-wormhole-motion.cjs +0 -59
@@ -1,1766 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.JsModal = void 0;
7
- var _licenseModule = require("./license/licenseModule.js");
8
- var _AccountSetup = require("./license/AccountSetup");
9
- var _react = require("react");
10
- var _reactNative = require("react-native");
11
- var _absoluteFill = require("./utils/absoluteFill.js");
12
- var _useSafeAreaInsets = require("./hooks/useSafeAreaInsets");
13
- var _index = require("./ui/gameUI/index.js");
14
- var _index2 = require("./ui/components/index.js");
15
- var _ToolBackground = require("./ui/backgrounds/ToolBackground.js");
16
- var _nightTheme = require("./ui/night/nightTheme.js");
17
- var _persistentStorage = require("./utils/persistentStorage");
18
- var _modalStorage = require("./utils/modalStorage.js");
19
- var _devToolsStorageKeys = require("./storage/devToolsStorageKeys.js");
20
- var _index3 = require("./context/index.js");
21
- var _jsxRuntime = require("react/jsx-runtime");
22
- /**
23
- * JsModal - Ultra-optimized for true 60FPS performance
24
- *
25
- * Achieves 60FPS by following the principles from the dial menu:
26
- * 1. ALWAYS use native driver (useNativeDriver: true)
27
- * 2. Use transforms instead of layout properties (translateY instead of height)
28
- * 3. Use interpolation for all calculations (no JS thread math)
29
- * 4. Minimize PanResponder JS work (direct setValue, no state updates)
30
- *
31
- * Structure follows SRP with each function doing ONE thing only.
32
- */
33
-
34
- // ============================================================================
35
- // CONSTANTS - Modal dimensions and configuration
36
- // ============================================================================
37
-
38
- /**
39
- * Tool modals open and close without an entrance animation.
40
- *
41
- * The animated entrance was `parallel([spring(tension:180, friction:22),
42
- * timing(200ms)])`. Two measured problems: the modal mounts at opacity 0 and
43
- * the fade only starts once its content has committed, so a tap left the screen
44
- * unchanged for ~240ms; and the spring's completion did not land until ~1s,
45
- * creeping long after it looked settled. Snapping to the final state made the
46
- * whole devtools UI feel markedly faster.
47
- *
48
- * Setting this to `false` restores the animation for every tool modal — this is
49
- * shared chrome, not settings-specific.
50
- */
51
- const INSTANT_MODAL_ENTRANCE = true;
52
- const SCREEN = _reactNative.Dimensions.get("window");
53
- const MIN_HEIGHT = 100;
54
- const DEFAULT_HEIGHT = 400;
55
- const FLOATING_WIDTH = SCREEN.width; // Full width
56
- const FLOATING_HEIGHT = 500;
57
- const FLOATING_MIN_WIDTH = SCREEN.width * 0.25; // 1/4 of screen width
58
- const FLOATING_MIN_HEIGHT = 80; // Just a bit more than header height (60px header + 20px content)
59
-
60
- /**
61
- * Vertical band the absolutely-positioned window controls occupy at the top
62
- * right of the chrome: `windowControlsContainer` top 4 + the expandable
63
- * trigger's 2pt padding + a 12pt dot + 2 = 20. The drag-indicator strip above
64
- * custom header content reserves exactly this, which is what lets a tool's
65
- * header row below run the FULL width instead of buying its clearance with a
66
- * right inset (that inset read as a hole on the right of every tool's nav).
67
- */
68
- const WINDOW_CONTROLS_BAND = 20;
69
-
70
- // ============================================================================
71
- // TYPE DEFINITIONS - Interface contracts for the modal
72
- // ============================================================================
73
-
74
- /**
75
- * Chrome variant. "night" (the default since the suite-wide theme move) is
76
- * the Everlights-style sheet (see ui/night): near-black `#050505` surfaces at
77
- * radius 16, a hairline accent border, a neutral drag handle instead of the
78
- * teal bar, a transparent header, and the ToolBackground hoisted to the sheet
79
- * root so the star field runs through the header instead of stopping under
80
- * it. "default" is the legacy card-grey chrome, kept as an escape hatch.
81
- */
82
-
83
- /**
84
- * Modal state that can be saved and restored when minimizing/restoring
85
- */
86
-
87
- // ============================================================================
88
- // ICON COMPONENTS - Visual indicators for modal controls
89
- // ============================================================================
90
-
91
- /**
92
- * DragIndicator - Visual feedback for draggable areas
93
- */
94
- const DragIndicator = /*#__PURE__*/(0, _react.memo)(function DragIndicator({
95
- isResizing,
96
- mode,
97
- hasCustomContent = false,
98
- variant = "default"
99
- }) {
100
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
101
- style: [styles.dragIndicatorContainer, hasCustomContent && styles.dragIndicatorContainerCustom],
102
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
103
- style: [styles.dragIndicator, mode === "floating" && styles.floatingDragIndicator, isResizing && styles.dragIndicatorActive,
104
- // Night: the neutral Everlights sheet handle, no glow, both modes.
105
- variant === "night" && styles.nightDragIndicator]
106
- }), isResizing && mode === "bottomSheet" && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
107
- style: styles.resizeGripContainer,
108
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
109
- style: styles.resizeGripLine
110
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
111
- style: styles.resizeGripLine
112
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
113
- style: styles.resizeGripLine
114
- })]
115
- })]
116
- });
117
- });
118
-
119
- /**
120
- * CornerHandle - Resize handle for floating mode corners
121
- */
122
- const CornerHandle = /*#__PURE__*/(0, _react.memo)(function CornerHandle({
123
- position,
124
- isActive
125
- }) {
126
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
127
- style: [styles.cornerHandle],
128
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
129
- style: [styles.handler, isActive && styles.handlerActive]
130
- })
131
- });
132
- });
133
-
134
- /**
135
- * ModalHeader - Header bar with title, controls, and drag area
136
- */
137
-
138
- const ModalHeader = /*#__PURE__*/(0, _react.memo)(function ModalHeader({
139
- header,
140
- onClose,
141
- onToggleMode,
142
- onMinimize,
143
- isResizing,
144
- mode,
145
- panHandlers,
146
- variant = "default"
147
- }) {
148
- const lastTapRef = (0, _react.useRef)(0);
149
- const tapCountRef = (0, _react.useRef)(0);
150
- const tapTimeoutRef = (0, _react.useRef)(null);
151
- const handleHeaderTap = (0, _react.useCallback)(() => {
152
- const now = Date.now();
153
- const timeSinceLastTap = now - lastTapRef.current;
154
-
155
- // Reset tap count if more than 500ms since last tap
156
- if (timeSinceLastTap > 500) {
157
- tapCountRef.current = 0;
158
- }
159
- tapCountRef.current++;
160
- lastTapRef.current = now;
161
-
162
- // Clear existing timeout
163
- if (tapTimeoutRef.current) {
164
- clearTimeout(tapTimeoutRef.current);
165
- }
166
-
167
- // Set timeout to process the tap gesture
168
- tapTimeoutRef.current = setTimeout(() => {
169
- if (tapCountRef.current === 2) {
170
- // Double tap - toggle mode
171
- onToggleMode();
172
- } else if (tapCountRef.current >= 3) {
173
- // Triple tap - minimize modal (if available)
174
- if (onMinimize) {
175
- onMinimize();
176
- }
177
- }
178
- tapCountRef.current = 0;
179
- }, 300);
180
- }, [onToggleMode, onMinimize]);
181
-
182
- // Clean up timeout on unmount
183
- (0, _react.useEffect)(() => {
184
- return () => {
185
- if (tapTimeoutRef.current) {
186
- clearTimeout(tapTimeoutRef.current);
187
- }
188
- };
189
- }, []);
190
- const headerProps = panHandlers ? panHandlers : {};
191
- // Disable tap handling when no panHandlers (i.e., when using DraggableHeader in floating mode)
192
- const shouldHandleTap = !!panHandlers;
193
-
194
- // If custom content is provided, check if it's a complete replacement
195
- if (header?.customContent) {
196
- // Check if the custom content is a complete header replacement (like CyberpunkModalHeader)
197
- // by checking if it's a React element with specific props
198
- const isCompleteReplacement = /*#__PURE__*/(0, _react.isValidElement)(header.customContent) && typeof header.customContent.type === "function" && header.customContent.type.name === "CyberpunkModalHeader";
199
- if (isCompleteReplacement) {
200
- // Clone the element and pass the necessary props
201
- return /*#__PURE__*/(0, _react.cloneElement)(header.customContent, {
202
- onToggleMode,
203
- onClose,
204
- mode,
205
- panHandlers: headerProps,
206
- showToggleButton: header?.showToggleButton !== false,
207
- hideCloseButton: header?.hideCloseButton
208
- });
209
- }
210
-
211
- // Otherwise, render custom content within the standard header structure
212
- // Apply pan handlers to the outer View for dragging in floating mode
213
- // If the custom content is a React element, inject onMinimize so it can trigger minimize
214
- let customContentWithMinimize = header.customContent;
215
- if (/*#__PURE__*/(0, _react.isValidElement)(header.customContent) && onMinimize) {
216
- customContentWithMinimize = /*#__PURE__*/(0, _react.cloneElement)(header.customContent, {
217
- onMinimize
218
- });
219
- }
220
- const headerContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
221
- style: styles.headerInner,
222
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DragIndicator, {
223
- isResizing: isResizing,
224
- mode: mode,
225
- hasCustomContent: true,
226
- variant: variant
227
- }), customContentWithMinimize]
228
- });
229
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
230
- style: [styles.header, variant === "night" && styles.nightHeader],
231
- ...headerProps,
232
- children: shouldHandleTap ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableWithoutFeedback, {
233
- onPress: handleHeaderTap,
234
- children: headerContent
235
- }) : headerContent
236
- });
237
- }
238
- const headerContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
239
- style: styles.headerInner,
240
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DragIndicator, {
241
- isResizing: isResizing,
242
- mode: mode,
243
- variant: variant
244
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
245
- style: styles.headerContent,
246
- children: [header?.title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
247
- style: styles.headerTitle,
248
- children: header.title
249
- }), header?.subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
250
- style: styles.headerSubtitle,
251
- children: header.subtitle
252
- })]
253
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
254
- style: styles.headerHintText,
255
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
256
- style: styles.hintText,
257
- children: "Double tap: Toggle \u2022 Triple tap: Close"
258
- })
259
- })]
260
- });
261
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
262
- style: [styles.header, mode === "floating" && styles.floatingModeHeader, variant === "night" && styles.nightHeader],
263
- ...headerProps,
264
- children: shouldHandleTap ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableWithoutFeedback, {
265
- onPress: handleHeaderTap,
266
- children: headerContent
267
- }) : headerContent
268
- });
269
- });
270
-
271
- // ============================================================================
272
- // MAIN COMPONENT - Optimized for 60FPS with transforms and interpolation
273
- // ============================================================================
274
- /**
275
- * JsModal - Ultra-optimized modal component for true 60FPS performance
276
- *
277
- * This modal component is designed for maximum performance using native driver
278
- * animations, transforms instead of layout properties, and minimal JavaScript
279
- * thread work. It supports two modes: bottom sheet and floating window.
280
- *
281
- * Key Performance Features:
282
- * - Uses native driver for all animations (useNativeDriver: true)
283
- * - Transform-based positioning instead of layout changes
284
- * - Interpolation for all calculations on the native thread
285
- * - Minimal PanResponder JavaScript work
286
- * - State persistence with AsyncStorage
287
- * - Drag and resize functionality in both modes
288
- *
289
- * @param props - Modal configuration and content
290
- * @returns JSX.Element representing the modal
291
- *
292
- * @example
293
- * ```typescript
294
- * <JsModal
295
- * visible={isVisible}
296
- * onClose={() => setVisible(false)}
297
- * header={{
298
- * title: "Settings",
299
- * subtitle: "Configure your preferences"
300
- * }}
301
- * persistenceKey="settings-modal"
302
- * enablePersistence={true}
303
- * >
304
- * <SettingsContent />
305
- * </JsModal>
306
- * ```
307
- *
308
- * @performance All animations use native driver for 60FPS performance
309
- * @performance Uses transform-based positioning for optimal rendering
310
- * @performance Includes state persistence and restoration capabilities
311
- */
312
- const JsModalComponent = ({
313
- visible,
314
- onClose,
315
- children,
316
- header,
317
- styles: customStyles = {},
318
- minHeight = MIN_HEIGHT,
319
- maxHeight,
320
- initialHeight = DEFAULT_HEIGHT,
321
- animatedHeight: externalAnimatedHeight,
322
- benchMotion,
323
- initialMode = "bottomSheet",
324
- onModeChange,
325
- persistenceKey,
326
- enablePersistence = true,
327
- initialFloatingPosition,
328
- footer,
329
- footerHeight = 0,
330
- onBack,
331
- onMinimize,
332
- minimizeRequest = 0,
333
- minimizeTargetPosition,
334
- initialModalState,
335
- zIndex,
336
- disableScrollWrapper = false,
337
- background = true,
338
- variant = "night"
339
- }) => {
340
- const insets = (0, _useSafeAreaInsets.useSafeAreaInsets)();
341
- const [isStateLoaded, setIsStateLoaded] = (0, _react.useState)(!enablePersistence);
342
- const [mode, setMode] = (0, _react.useState)(initialMode);
343
- const [isResizing, setIsResizing] = (0, _react.useState)(false);
344
- const [isDragging, setIsDragging] = (0, _react.useState)(false);
345
- const [panelHeight, setPanelHeight] = (0, _react.useState)(initialHeight);
346
- const [dimensions, setDimensions] = (0, _react.useState)({
347
- width: FLOATING_WIDTH,
348
- height: FLOATING_HEIGHT,
349
- top: (SCREEN.height - FLOATING_HEIGHT) / 2,
350
- left: 0 // Flush with left edge
351
- });
352
- const [containerBounds] = (0, _react.useState)({
353
- width: SCREEN.width,
354
- height: SCREEN.height
355
- });
356
- const [showHint, setShowHint] = (0, _react.useState)(false);
357
- const [hintLoaded, setHintLoaded] = (0, _react.useState)(false);
358
- const hintsDisabled = (0, _index3.useHintsDisabled)();
359
-
360
- // ============================================================================
361
- // ANIMATED VALUES - All using native driver
362
- // ============================================================================
363
-
364
- // Main visibility progress (0 = hidden, 1 = visible)
365
- const visibilityProgress = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
366
-
367
- // Bottom sheet specific - using translateY for performance!
368
- const bottomSheetTranslateY = (0, _react.useRef)(new _reactNative.Animated.Value(SCREEN.height)).current;
369
- const dragOffset = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
370
-
371
- // Height tracking for resize - actual position from bottom
372
- const animatedBottomPosition = (0, _react.useRef)(new _reactNative.Animated.Value(initialHeight)).current;
373
- const currentHeightRef = (0, _react.useRef)(initialHeight);
374
-
375
- // Save state with debounce
376
- (0, _react.useEffect)(() => {
377
- if (!enablePersistence || !persistenceKey || !isStateLoaded) return;
378
- const timeoutId = setTimeout(() => {
379
- _modalStorage.ModalStorage.save(persistenceKey, {
380
- mode,
381
- panelHeight: currentHeightRef.current,
382
- dimensions,
383
- isVisible: visible
384
- });
385
- }, 500);
386
- return () => clearTimeout(timeoutId);
387
- }, [mode, panelHeight, dimensions, visible, persistenceKey, enablePersistence, isStateLoaded]);
388
-
389
- // Seed the external height ONCE. This used to re-run when `isResizing`
390
- // flipped, which snapped an externally-controlled sheet back to
391
- // initialHeight the moment a drag-resize ended (the release handler had
392
- // just written the real height). The host owns the value after the seed;
393
- // persistence restore above may overwrite the seed, which is correct.
394
- const externalHeightSeeded = (0, _react.useRef)(false);
395
- (0, _react.useEffect)(() => {
396
- if (externalAnimatedHeight && !externalHeightSeeded.current) {
397
- externalHeightSeeded.current = true;
398
- currentHeightRef.current = initialHeight;
399
- externalAnimatedHeight.setValue(initialHeight);
400
- }
401
- }, [externalAnimatedHeight, initialHeight]);
402
-
403
- // Update refs when dimensions change
404
- (0, _react.useEffect)(() => {
405
- currentDimensionsRef.current = dimensions;
406
- }, [dimensions]);
407
-
408
- // Floating mode animations - use initialFloatingPosition if provided
409
- const floatingPosition = (0, _react.useRef)(new _reactNative.Animated.ValueXY({
410
- x: initialFloatingPosition?.x ?? 0,
411
- // Flush with left edge
412
- y: initialFloatingPosition?.y ?? (SCREEN.height - FLOATING_HEIGHT) / 2
413
- })).current;
414
- const floatingScale = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
415
- const animatedWidth = (0, _react.useRef)(new _reactNative.Animated.Value(FLOATING_WIDTH)).current;
416
- const animatedFloatingHeight = (0, _react.useRef)(new _reactNative.Animated.Value(FLOATING_HEIGHT)).current;
417
-
418
- // Refs for resize handles
419
- const currentDimensionsRef = (0, _react.useRef)(dimensions);
420
- const startDimensionsRef = (0, _react.useRef)(dimensions);
421
- const offsetX = (0, _react.useRef)(0);
422
- const offsetY = (0, _react.useRef)(0);
423
- const sHeight = (0, _react.useRef)(0);
424
- const sWidth = (0, _react.useRef)(0);
425
-
426
- // Load hint acknowledgment status on mount
427
- (0, _react.useEffect)(() => {
428
- let mounted = true;
429
- const loadHintStatus = async () => {
430
- try {
431
- const hintKey = _devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();
432
- const acknowledged = await _persistentStorage.persistentStorage.getItem(hintKey);
433
- if (mounted) {
434
- // Show hint if not acknowledged yet
435
- setShowHint(acknowledged !== "true");
436
- setHintLoaded(true);
437
- }
438
- } catch (error) {
439
- // Failed to load hint status, default to showing hint
440
- if (mounted) {
441
- setShowHint(true);
442
- setHintLoaded(true);
443
- }
444
- }
445
- };
446
- loadHintStatus();
447
- return () => {
448
- mounted = false;
449
- };
450
- }, []);
451
-
452
- // Handle hint acknowledgment
453
- const handleHintAcknowledge = (0, _react.useCallback)(async () => {
454
- try {
455
- const hintKey = _devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();
456
- await _persistentStorage.persistentStorage.setItem(hintKey, "true");
457
- setShowHint(false);
458
- } catch (error) {
459
- // Failed to save hint acknowledgment, just hide it locally
460
- setShowHint(false);
461
- }
462
- }, []);
463
-
464
- // Parents routinely pass an inline `onModeChange` (a new identity every
465
- // render). The persisted-state load below is mount/key-scoped — if the
466
- // callback identity re-triggered it, every parent re-render would reload
467
- // the OLD persisted mode and stomp a live toggleMode() before the 500ms
468
- // save debounce could write the new one (mode flipped to floating, then
469
- // snapped back ~50ms later). So the callback rides in a ref instead of
470
- // the dependency list.
471
- const onModeChangeRef = (0, _react.useRef)(onModeChange);
472
- onModeChangeRef.current = onModeChange;
473
-
474
- // Load persisted state on mount
475
- (0, _react.useEffect)(() => {
476
- if (!enablePersistence || !persistenceKey) {
477
- setIsStateLoaded(true);
478
- return;
479
- }
480
- let mounted = true;
481
- const loadState = async () => {
482
- const savedState = await _modalStorage.ModalStorage.load(persistenceKey);
483
- if (mounted && savedState) {
484
- // Restore mode
485
- if (savedState.mode) {
486
- setMode(savedState.mode);
487
- // Notify parent of loaded mode
488
- onModeChangeRef.current?.(savedState.mode);
489
- }
490
-
491
- // Restore bottom sheet height. The external animated height (when a
492
- // host passes one) IS the rendered height, so it must be restored
493
- // too or a persisted sheet always reopens at initialHeight.
494
- if (savedState.panelHeight) {
495
- setPanelHeight(savedState.panelHeight);
496
- currentHeightRef.current = savedState.panelHeight;
497
- animatedBottomPosition.setValue(savedState.panelHeight);
498
- externalAnimatedHeight?.setValue(savedState.panelHeight);
499
- }
500
-
501
- // Restore floating dimensions and position
502
- if (savedState.dimensions) {
503
- setDimensions(savedState.dimensions);
504
- floatingPosition.setValue({
505
- x: savedState.dimensions.left,
506
- y: savedState.dimensions.top
507
- });
508
- animatedWidth.setValue(savedState.dimensions.width);
509
- animatedFloatingHeight.setValue(savedState.dimensions.height);
510
- }
511
- }
512
- if (mounted) setIsStateLoaded(true);
513
- };
514
- loadState();
515
- return () => {
516
- mounted = false;
517
- };
518
- }, [persistenceKey, enablePersistence, animatedBottomPosition, animatedFloatingHeight, animatedWidth, floatingPosition]);
519
-
520
- // Cleanup on unmount
521
- (0, _react.useEffect)(() => {
522
- // Mount/Unmount effect
523
- return () => {
524
- // Stop all animations and reset when component unmounts
525
- visibilityProgress.stopAnimation();
526
- bottomSheetTranslateY.stopAnimation();
527
- floatingScale.stopAnimation();
528
- dragOffset.stopAnimation();
529
- animatedBottomPosition.stopAnimation();
530
- floatingPosition.stopAnimation();
531
- animatedWidth.stopAnimation();
532
- animatedFloatingHeight.stopAnimation();
533
-
534
- // Reset to initial values
535
- visibilityProgress.setValue(0);
536
- bottomSheetTranslateY.setValue(SCREEN.height);
537
- floatingScale.setValue(0);
538
- dragOffset.setValue(0);
539
- animatedBottomPosition.setValue(initialHeight);
540
- currentHeightRef.current = initialHeight;
541
- };
542
- }, []);
543
-
544
- // ============================================================================
545
- // INTERPOLATIONS - All math done natively!
546
- // ============================================================================
547
-
548
- // Opacity interpolation for smooth fade
549
- const modalOpacity = visibilityProgress.interpolate({
550
- inputRange: [0, 1],
551
- outputRange: [0, 1],
552
- extrapolate: "clamp"
553
- });
554
-
555
- // ============================================================================
556
- // REFS for values we need to track
557
- // ============================================================================
558
- const effectiveMaxHeight = maxHeight || SCREEN.height - insets.top;
559
-
560
- // Mode toggle handler
561
- /**
562
- * Toggle between bottom sheet and floating modal modes
563
- *
564
- * Clears active dragging and resizing states to prevent visual artifacts
565
- * when switching between modes with different interaction patterns.
566
- */
567
- const toggleMode = (0, _react.useCallback)(() => {
568
- // Avoid carrying active styling across modes
569
- setIsDragging(false);
570
- setIsResizing(false);
571
- const newMode = mode === "bottomSheet" ? "floating" : "bottomSheet";
572
- setMode(newMode);
573
- onModeChange?.(newMode);
574
- }, [mode, onModeChange]);
575
-
576
- // Belt-and-suspenders: also clear flags when mode changes
577
- (0, _react.useEffect)(() => {
578
- setIsDragging(false);
579
- setIsResizing(false);
580
- }, [mode]);
581
-
582
- // Minimize handler - captures current state and animates out
583
- const handleMinimize = (0, _react.useCallback)(() => {
584
- if (!onMinimize) return;
585
-
586
- // Capture current modal state for restoration
587
- const currentState = {
588
- mode,
589
- panelHeight: currentHeightRef.current,
590
- floatingPosition: {
591
- x: currentDimensionsRef.current.left,
592
- y: currentDimensionsRef.current.top
593
- },
594
- floatingDimensions: {
595
- width: currentDimensionsRef.current.width,
596
- height: currentDimensionsRef.current.height
597
- }
598
- };
599
- if (enablePersistence && persistenceKey) void _modalStorage.ModalStorage.saveMinimized(persistenceKey, currentState);
600
-
601
- // Animate modal shrinking toward target position
602
- const targetX = minimizeTargetPosition?.x ?? SCREEN.width - 50;
603
- const targetY = minimizeTargetPosition?.y ?? SCREEN.height - 150;
604
-
605
- // Calculate animation based on current mode
606
- if (mode === "bottomSheet") {
607
- // Animate bottom sheet shrinking and moving toward target
608
- _reactNative.Animated.parallel([_reactNative.Animated.timing(visibilityProgress, {
609
- toValue: 0,
610
- duration: 300,
611
- useNativeDriver: true
612
- }), _reactNative.Animated.timing(bottomSheetTranslateY, {
613
- toValue: SCREEN.height,
614
- duration: 300,
615
- useNativeDriver: true
616
- })]).start(() => {
617
- onMinimize(currentState);
618
- });
619
- } else {
620
- // Floating mode - animate scale and position toward icon
621
- _reactNative.Animated.parallel([_reactNative.Animated.timing(floatingScale, {
622
- toValue: 0,
623
- duration: 300,
624
- useNativeDriver: true
625
- }), _reactNative.Animated.timing(visibilityProgress, {
626
- toValue: 0,
627
- duration: 300,
628
- useNativeDriver: true
629
- }), _reactNative.Animated.timing(floatingPosition, {
630
- toValue: {
631
- x: targetX,
632
- y: targetY
633
- },
634
- duration: 300,
635
- useNativeDriver: true
636
- })]).start(() => {
637
- onMinimize(currentState);
638
- });
639
- }
640
- }, [mode, onMinimize, minimizeTargetPosition, enablePersistence, persistenceKey, visibilityProgress, bottomSheetTranslateY, floatingScale, floatingPosition]);
641
- const lastMinimizeRequest = (0, _react.useRef)(minimizeRequest);
642
- (0, _react.useEffect)(() => {
643
- if (lastMinimizeRequest.current === minimizeRequest) return;
644
- lastMinimizeRequest.current = minimizeRequest;
645
- handleMinimize();
646
- }, [minimizeRequest, handleMinimize]);
647
-
648
- // Apply initial modal state when restoring from minimized
649
- (0, _react.useEffect)(() => {
650
- if (!initialModalState) return;
651
-
652
- // Restore mode
653
- if (initialModalState.mode) {
654
- setMode(initialModalState.mode);
655
- onModeChange?.(initialModalState.mode);
656
- }
657
-
658
- // Restore bottom sheet height
659
- if (initialModalState.panelHeight) {
660
- setPanelHeight(initialModalState.panelHeight);
661
- currentHeightRef.current = initialModalState.panelHeight;
662
- animatedBottomPosition.setValue(initialModalState.panelHeight);
663
- }
664
-
665
- // Restore floating dimensions and position
666
- if (initialModalState.floatingDimensions && initialModalState.floatingPosition) {
667
- const newDimensions = {
668
- width: initialModalState.floatingDimensions.width,
669
- height: initialModalState.floatingDimensions.height,
670
- top: initialModalState.floatingPosition.y,
671
- left: initialModalState.floatingPosition.x
672
- };
673
- setDimensions(newDimensions);
674
- floatingPosition.setValue({
675
- x: initialModalState.floatingPosition.x,
676
- y: initialModalState.floatingPosition.y
677
- });
678
- animatedWidth.setValue(initialModalState.floatingDimensions.width);
679
- animatedFloatingHeight.setValue(initialModalState.floatingDimensions.height);
680
- }
681
- }, [initialModalState]);
682
-
683
- // ============================================================================
684
- // EFFECT: Visibility Animations - All using native driver!
685
- // ============================================================================
686
- const snapVisibility = shown => {
687
- if (shown) {
688
- if (mode === "bottomSheet") {
689
- bottomSheetTranslateY.setValue(0);
690
- } else {
691
- floatingScale.setValue(1);
692
- floatingPosition.setValue({
693
- x: currentDimensionsRef.current.left,
694
- y: currentDimensionsRef.current.top
695
- });
696
- }
697
- visibilityProgress.setValue(1);
698
- } else {
699
- if (mode === "bottomSheet") {
700
- bottomSheetTranslateY.setValue(SCREEN.height);
701
- }
702
- visibilityProgress.setValue(0);
703
- }
704
- };
705
-
706
- /**
707
- * Snap DURING RENDER when `visible` flips, not only in the effect below.
708
- *
709
- * These values drive the sheet's opacity/translate through the native
710
- * driver. The React commit for a `visible` change carries whatever the
711
- * JS-side values are at render time — the OLD, hidden ones when the snap
712
- * only happens in the effect — and on Fabric that commit's mount can land
713
- * on the main thread AFTER the effect's native `setValue`, overwriting it.
714
- * The Animated node then says "shown" while the UIView sits at opacity 0,
715
- * until some unrelated re-render commits the JS-side values again. That
716
- * is how "restore tool A: nothing; restore tool B: A appears; hide B: now
717
- * B appears" happened — every restore was one commit behind.
718
- *
719
- * Setting the values before the render's props are computed makes the
720
- * commit and the native node agree, whichever lands last. `setValue` is
721
- * idempotent, so a re-run render is harmless.
722
- */
723
- const snappedVisibleRef = (0, _react.useRef)(null);
724
- if (INSTANT_MODAL_ENTRANCE && snappedVisibleRef.current !== visible) {
725
- snappedVisibleRef.current = visible;
726
- snapVisibility(visible);
727
- }
728
- (0, _react.useEffect)(() => {
729
- // Visibility effect
730
- let openAnimation = null;
731
- let closeAnimation = null;
732
- if (INSTANT_MODAL_ENTRANCE) {
733
- // Snap to the final state — no animation in either direction. The
734
- // render-phase snap above already did this for a `visible` flip; this
735
- // re-applies it for a `mode` change while shown.
736
- snapVisibility(visible);
737
- return;
738
- }
739
- if (visible) {
740
- // Reset position if needed and then open
741
- bottomSheetTranslateY.setValue(SCREEN.height);
742
- visibilityProgress.setValue(0);
743
-
744
- // Open animations
745
- if (mode === "bottomSheet") {
746
- // Parallel animations for smooth opening
747
- openAnimation = _reactNative.Animated.parallel([
748
- // Slide up from bottom
749
- _reactNative.Animated.spring(bottomSheetTranslateY, {
750
- toValue: 0,
751
- tension: 180,
752
- friction: 22,
753
- useNativeDriver: true
754
- }),
755
- // Fade in backdrop
756
- _reactNative.Animated.timing(visibilityProgress, {
757
- toValue: 1,
758
- duration: 200,
759
- useNativeDriver: true
760
- })]);
761
- openAnimation.start();
762
- } else {
763
- // Floating mode entrance - simple fade without scale pop
764
- floatingScale.setValue(1); // Set scale to 1 directly, no animation
765
- // Minimizing animated the window to the dock icon's corner. Put it
766
- // back where it actually lives, or reopening leaves it parked
767
- // off-screen — `initialModalState` only covers the dock's restore
768
- // path, and the dial opens the same tool without one.
769
- floatingPosition.setValue({
770
- x: currentDimensionsRef.current.left,
771
- y: currentDimensionsRef.current.top
772
- });
773
- openAnimation = _reactNative.Animated.timing(visibilityProgress, {
774
- toValue: 1,
775
- duration: 200,
776
- useNativeDriver: true
777
- });
778
- openAnimation.start();
779
- }
780
- } else {
781
- // Close animations
782
- if (mode === "bottomSheet") {
783
- closeAnimation = _reactNative.Animated.parallel([
784
- // Slide down
785
- _reactNative.Animated.spring(bottomSheetTranslateY, {
786
- toValue: SCREEN.height,
787
- tension: 180,
788
- friction: 22,
789
- useNativeDriver: true
790
- }),
791
- // Fade out backdrop
792
- _reactNative.Animated.timing(visibilityProgress, {
793
- toValue: 0,
794
- duration: 200,
795
- useNativeDriver: true
796
- })]);
797
- closeAnimation.start();
798
- } else {
799
- // Floating mode exit - simple fade without scale
800
- closeAnimation = _reactNative.Animated.timing(visibilityProgress, {
801
- toValue: 0,
802
- duration: 200,
803
- useNativeDriver: true
804
- });
805
- closeAnimation.start();
806
- }
807
- }
808
-
809
- // Cleanup function - only stop animations, don't reset values
810
- return () => {
811
- // Cleanup animations
812
- if (openAnimation) {
813
- openAnimation.stop();
814
- // Stopped open animation
815
- }
816
- if (closeAnimation) {
817
- closeAnimation.stop();
818
- // Stopped close animation
819
- }
820
- };
821
- }, [visible, mode, visibilityProgress, bottomSheetTranslateY, floatingScale, floatingPosition, externalAnimatedHeight]); // Removed initialHeight to prevent animation restarts on height changes
822
-
823
- // ============================================================================
824
- // OPTIMIZED PAN RESPONDER: Bottom Sheet Resize
825
- // Following the documentation pattern for proper resize
826
- // ============================================================================
827
- const headerTouchOffsetRef = (0, _react.useRef)(0);
828
-
829
- // DEV-ONLY scripted resize motion (see benchMotion prop). Mirrors
830
- // onPanResponderMove exactly: direct setValue, no per-frame state. Every
831
- // ~2.5s it simulates a grab/release (setIsResizing toggles) so the
832
- // benchmark includes the gesture-boundary re-render cost.
833
- (0, _react.useEffect)(() => {
834
- if (!__DEV__ || !benchMotion || !visible) return undefined;
835
- let rafId = null;
836
- let intervalId = null;
837
- let running = true;
838
- const start = Date.now();
839
- let grabbed = false;
840
- const setGrab = on => {
841
- grabbed = on;
842
- if (benchMotion === "resize" || benchMotion === "float-resize") {
843
- setIsResizing(on);
844
- } else if (benchMotion === "float-drag") {
845
- setIsDragging(on);
846
- }
847
- };
848
- if (benchMotion === "mode-cycle") {
849
- intervalId = setInterval(() => toggleMode(), 2200);
850
- } else {
851
- const min = minHeight;
852
- const max = effectiveMaxHeight;
853
- const tick = () => {
854
- if (!running) return;
855
- const t = (Date.now() - start) / 1000;
856
- const phase = t % 2.5; // grab 2s, release 0.5s
857
- if (phase < 2 && !grabbed) setGrab(true);else if (phase >= 2 && grabbed) setGrab(false);
858
- if (grabbed) {
859
- const wave = (Math.sin(t * 2.2) + 1) / 2;
860
- if (benchMotion === "resize") {
861
- const targetHeight = min + wave * (max - min);
862
- animatedBottomPosition.setValue(targetHeight);
863
- currentHeightRef.current = targetHeight;
864
- if (externalAnimatedHeight) {
865
- externalAnimatedHeight.setValue(targetHeight);
866
- }
867
- } else if (benchMotion === "float-drag") {
868
- // Same write DraggableHeader makes per move event.
869
- const wave2 = (Math.sin(t * 1.7) + 1) / 2;
870
- floatingPosition.setValue({
871
- x: 10 + wave * Math.max(SCREEN.width - FLOATING_WIDTH - 20, 0),
872
- y: 70 + wave2 * 260
873
- });
874
- } else if (benchMotion === "float-resize") {
875
- // Same writes as the bottom-right corner resize handler.
876
- const width = FLOATING_WIDTH + wave * Math.max(SCREEN.width - FLOATING_WIDTH - 40, 0);
877
- const height = FLOATING_HEIGHT + wave * 240;
878
- animatedWidth.setValue(width);
879
- animatedFloatingHeight.setValue(height);
880
- currentDimensionsRef.current = {
881
- ...currentDimensionsRef.current,
882
- width,
883
- height
884
- };
885
- }
886
- }
887
- rafId = requestAnimationFrame(tick);
888
- };
889
- rafId = requestAnimationFrame(tick);
890
- }
891
- return () => {
892
- running = false;
893
- if (rafId != null) cancelAnimationFrame(rafId);
894
- if (intervalId != null) clearInterval(intervalId);
895
- setIsResizing(false);
896
- setIsDragging(false);
897
- };
898
- // eslint-disable-next-line react-hooks/exhaustive-deps
899
- }, [benchMotion, visible]);
900
- const bottomSheetPanResponder = (0, _react.useMemo)(() => _reactNative.PanResponder.create({
901
- // An external `animatedHeight` used to disable this responder
902
- // outright ("externally controlled"), which left Ask Buoy's sheet —
903
- // the one host that passes one, for its peek animation — with a
904
- // header that could not be dragged in bottom-sheet mode. The move
905
- // and release handlers below already write every height into the
906
- // external value, so the host and the finger share one number; the
907
- // grab just has to stop whatever the host is animating first.
908
- onStartShouldSetPanResponder: () => mode === "bottomSheet",
909
- onMoveShouldSetPanResponder: (evt, gestureState) => mode === "bottomSheet" && Math.abs(gestureState.dy) > 3,
910
- onPanResponderTerminationRequest: () => false,
911
- onPanResponderGrant: evt => {
912
- setIsResizing(true);
913
-
914
- // Where inside the header the finger grabbed
915
- headerTouchOffsetRef.current = evt.nativeEvent.locationY || 0;
916
-
917
- // Stop any in-flight animations so we start from truth
918
- animatedBottomPosition.stopAnimation(val => {
919
- currentHeightRef.current = val;
920
- });
921
- externalAnimatedHeight?.stopAnimation();
922
- bottomSheetTranslateY.stopAnimation();
923
- },
924
- onPanResponderMove: evt => {
925
- // Absolute finger anchoring: sheet top should match finger (minus header offset)
926
- const sheetTop = evt.nativeEvent.pageY - headerTouchOffsetRef.current;
927
- // Height is from bottom of screen to sheetTop
928
- let targetHeight = SCREEN.height - sheetTop;
929
-
930
- // Clamp
931
- targetHeight = Math.max(minHeight, Math.min(targetHeight, effectiveMaxHeight));
932
-
933
- // Push to UI (no React state!)
934
- animatedBottomPosition.setValue(targetHeight);
935
- currentHeightRef.current = targetHeight;
936
- if (externalAnimatedHeight) {
937
- externalAnimatedHeight.setValue(targetHeight);
938
- }
939
- },
940
- onPanResponderRelease: (evt, gestureState) => {
941
- setIsResizing(false);
942
- const finalHeight = currentHeightRef.current;
943
-
944
- // Optional: close with fast downward swipe
945
- const shouldClose = gestureState.vy > 0.8 && gestureState.dy > 50 || gestureState.dy > 150 && finalHeight <= minHeight;
946
- if (shouldClose) {
947
- _reactNative.Animated.parallel([_reactNative.Animated.timing(visibilityProgress, {
948
- toValue: 0,
949
- duration: 200,
950
- useNativeDriver: true
951
- }), _reactNative.Animated.spring(bottomSheetTranslateY, {
952
- toValue: SCREEN.height,
953
- tension: 180,
954
- friction: 22,
955
- useNativeDriver: true
956
- })]).start(() => onClose());
957
- return;
958
- }
959
-
960
- // We're already at the finger-tracked height; avoid re-animating it.
961
- setPanelHeight(finalHeight);
962
- if (externalAnimatedHeight) externalAnimatedHeight.setValue(finalHeight);
963
- },
964
- onPanResponderTerminate: () => {
965
- setIsResizing(false);
966
- // snap back to the last stable height if you want; otherwise no-op
967
- }
968
- }), [mode, minHeight, effectiveMaxHeight, animatedBottomPosition, externalAnimatedHeight, bottomSheetTranslateY, visibilityProgress, onClose]);
969
-
970
- // ============================================================================
971
- // CREATE RESIZE HANDLER: For 4-corner resize in floating mode (fixed geometry)
972
- // ============================================================================
973
- /**
974
- * Create a PanResponder for handling corner-based resizing in floating mode
975
- *
976
- * This function generates resize handlers for each corner that allow users to
977
- * resize the floating modal by dragging from any corner. It includes boundary
978
- * checking and minimum size constraints.
979
- *
980
- * @param corner - Which corner this handler is for
981
- * @returns PanResponder configured for that corner's resize behavior
982
- *
983
- * @performance Uses direct animated value updates for smooth resizing
984
- * @performance Includes safe area boundary checking for all corners
985
- */
986
- const createResizeHandler = (0, _react.useCallback)(corner => {
987
- let didResize = false;
988
- return _reactNative.PanResponder.create({
989
- onStartShouldSetPanResponder: () => mode === "floating",
990
- onMoveShouldSetPanResponder: () => mode === "floating",
991
- onPanResponderGrant: () => {
992
- didResize = false;
993
- const currentDims = currentDimensionsRef.current;
994
-
995
- // If any animation is in-flight, stop and capture final XY to keep math consistent
996
- floatingPosition.stopAnimation(({
997
- x,
998
- y
999
- }) => {
1000
- floatingPosition.setValue({
1001
- x,
1002
- y
1003
- });
1004
- });
1005
- setIsResizing(true);
1006
- // Snapshot starting rect
1007
- startDimensionsRef.current = {
1008
- ...currentDims
1009
- };
1010
-
1011
- // Keep your existing refs up-to-date (not strictly needed now, but harmless)
1012
- sHeight.current = currentDims.height;
1013
- sWidth.current = currentDims.width;
1014
- offsetX.current = currentDims.left;
1015
- offsetY.current = currentDims.top;
1016
- },
1017
- onPanResponderMove: (_evt, gestureState) => {
1018
- const {
1019
- dx,
1020
- dy
1021
- } = gestureState;
1022
- if (Math.abs(dx) < 0.5 && Math.abs(dy) < 0.5) return;
1023
- didResize = true;
1024
- // Safe-area–aware bounds
1025
- const minLeft = Math.max(0, insets.left || 0);
1026
- const maxRight = containerBounds.width - Math.max(0, insets.right || 0);
1027
- const minTop = Math.max(0, insets.top || 0);
1028
- const maxBottom = containerBounds.height - Math.max(0, insets.bottom || 0);
1029
- const start = startDimensionsRef.current;
1030
- const startRight = start.left + start.width;
1031
- const startBottom = start.top + start.height;
1032
- let left = start.left;
1033
- let top = start.top;
1034
- let right = startRight;
1035
- let bottom = startBottom;
1036
- switch (corner) {
1037
- case "topLeft":
1038
- {
1039
- // Move left & top; anchor right & bottom
1040
- const newLeft = Math.max(minLeft, Math.min(start.left + dx, startRight - FLOATING_MIN_WIDTH));
1041
- const newTop = Math.max(minTop, Math.min(start.top + dy, startBottom - FLOATING_MIN_HEIGHT));
1042
- left = newLeft;
1043
- top = newTop;
1044
- right = startRight;
1045
- bottom = startBottom;
1046
- break;
1047
- }
1048
- case "topRight":
1049
- {
1050
- // Move right & top; anchor left & bottom
1051
- const newRight = Math.min(maxRight, Math.max(startRight + dx, start.left + FLOATING_MIN_WIDTH));
1052
- const newTop = Math.max(minTop, Math.min(start.top + dy, startBottom - FLOATING_MIN_HEIGHT));
1053
- left = start.left;
1054
- top = newTop;
1055
- right = newRight;
1056
- bottom = startBottom;
1057
- break;
1058
- }
1059
- case "bottomLeft":
1060
- {
1061
- // Move left & bottom; anchor right & top
1062
- const newLeft = Math.max(minLeft, Math.min(start.left + dx, startRight - FLOATING_MIN_WIDTH));
1063
- const newBottom = Math.min(maxBottom, Math.max(startBottom + dy, start.top + FLOATING_MIN_HEIGHT));
1064
- left = newLeft;
1065
- top = start.top;
1066
- right = startRight;
1067
- bottom = newBottom;
1068
- break;
1069
- }
1070
- case "bottomRight":
1071
- {
1072
- // Move right & bottom; anchor left & top
1073
- const newRight = Math.min(maxRight, Math.max(startRight + dx, start.left + FLOATING_MIN_WIDTH));
1074
- const newBottom = Math.min(maxBottom, Math.max(startBottom + dy, start.top + FLOATING_MIN_HEIGHT));
1075
- left = start.left;
1076
- top = start.top;
1077
- right = newRight;
1078
- bottom = newBottom;
1079
- break;
1080
- }
1081
- }
1082
-
1083
- // Derive width/height from the edges
1084
- const updatedWidth = Math.max(FLOATING_MIN_WIDTH, right - left);
1085
- const updatedHeight = Math.max(FLOATING_MIN_HEIGHT, bottom - top);
1086
-
1087
- // Push to UI
1088
- setDimensions({
1089
- width: updatedWidth,
1090
- height: updatedHeight,
1091
- left,
1092
- top
1093
- });
1094
-
1095
- // Keep animated values in sync for your transforms
1096
- animatedWidth.setValue(updatedWidth);
1097
- animatedFloatingHeight.setValue(updatedHeight);
1098
- floatingPosition.setValue({
1099
- x: left,
1100
- y: top
1101
- });
1102
-
1103
- // Cache
1104
- currentDimensionsRef.current = {
1105
- width: updatedWidth,
1106
- height: updatedHeight,
1107
- left,
1108
- top
1109
- };
1110
- },
1111
- onPanResponderRelease: () => {
1112
- setIsResizing(false);
1113
- didResize = false;
1114
- // currentDimensionsRef already holds the last values
1115
- setDimensions(currentDimensionsRef.current);
1116
- },
1117
- onPanResponderTerminate: () => {
1118
- setIsResizing(false);
1119
- didResize = false;
1120
- }
1121
- });
1122
- }, [mode, containerBounds, insets.left, insets.right, insets.top, insets.bottom, floatingPosition, animatedWidth, animatedFloatingHeight, onClose, onBack]);
1123
- const resizeHandlers = (0, _react.useMemo)(() => {
1124
- return {
1125
- topLeft: createResizeHandler("topLeft"),
1126
- topRight: createResizeHandler("topRight"),
1127
- bottomLeft: createResizeHandler("bottomLeft"),
1128
- bottomRight: createResizeHandler("bottomRight")
1129
- };
1130
- }, [createResizeHandler]);
1131
-
1132
- // ============================================================================
1133
- // Floating Mode Drag Handlers for DraggableHeader
1134
- // ============================================================================
1135
- const handleFloatingDragStart = (0, _react.useCallback)(() => {
1136
- setIsDragging(true);
1137
- }, []);
1138
- const handleFloatingDragEnd = (0, _react.useCallback)(finalPosition => {
1139
- setIsDragging(false);
1140
-
1141
- // Update dimensions state to match final position
1142
- const currentDims = currentDimensionsRef.current;
1143
- const newDimensions = {
1144
- ...currentDims,
1145
- left: finalPosition.x,
1146
- top: finalPosition.y
1147
- };
1148
- setDimensions(newDimensions);
1149
- }, []);
1150
-
1151
- // Track taps for double/triple tap functionality
1152
- const lastTapRef = (0, _react.useRef)(0);
1153
- const tapCountRef = (0, _react.useRef)(0);
1154
- const tapTimeoutRef = (0, _react.useRef)(null);
1155
- const handleFloatingTap = (0, _react.useCallback)(() => {
1156
- const now = Date.now();
1157
- const timeSinceLastTap = now - lastTapRef.current;
1158
-
1159
- // Reset tap count if more than 500ms since last tap
1160
- if (timeSinceLastTap > 500) {
1161
- tapCountRef.current = 0;
1162
- }
1163
- tapCountRef.current++;
1164
- lastTapRef.current = now;
1165
-
1166
- // Clear existing timeout
1167
- if (tapTimeoutRef.current) {
1168
- clearTimeout(tapTimeoutRef.current);
1169
- }
1170
-
1171
- // Set timeout to process the tap gesture
1172
- tapTimeoutRef.current = setTimeout(() => {
1173
- if (tapCountRef.current === 2) {
1174
- // Double tap - toggle mode
1175
- toggleMode();
1176
- } else if (tapCountRef.current >= 3) {
1177
- // Triple tap - minimize modal (if available)
1178
- if (onMinimize) {
1179
- handleMinimize();
1180
- }
1181
- }
1182
- tapCountRef.current = 0;
1183
- }, 300);
1184
- }, [toggleMode, onMinimize, handleMinimize]);
1185
-
1186
- // Clean up timeout on unmount for main component tap handler
1187
- (0, _react.useEffect)(() => {
1188
- return () => {
1189
- if (tapTimeoutRef.current) {
1190
- clearTimeout(tapTimeoutRef.current);
1191
- }
1192
- };
1193
- }, []);
1194
-
1195
- // ============================================================================
1196
- // RENDER: Modal UI with transform-based animations
1197
- // ============================================================================
1198
-
1199
- // When not visible the SAME tree is rendered, just parked off-screen. It has
1200
- // to be the same tree: React reconciles by position, so a separate "hidden"
1201
- // branch would unmount and rebuild every child on each minimize AND each
1202
- // restore — which is the whole cost minimizing is supposed to avoid.
1203
-
1204
- // Render floating mode
1205
- if (mode === "floating") {
1206
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
1207
- nativeID: "jsmodal-root",
1208
- pointerEvents: visible ? "auto" : "none",
1209
- accessibilityElementsHidden: !visible,
1210
- importantForAccessibility: visible ? "auto" : "no-hide-descendants",
1211
- style: [styles.floatingModal, {
1212
- width: dimensions.width,
1213
- // Use state dimensions for real-time updates
1214
- height: dimensions.height,
1215
- opacity: modalOpacity,
1216
- transform: [{
1217
- translateX: floatingPosition.x
1218
- }, {
1219
- translateY: floatingPosition.y
1220
- }],
1221
- ...(zIndex !== undefined && {
1222
- zIndex
1223
- })
1224
- }, variant === "night" && styles.nightFloatingModal, (isDragging || isResizing) && styles.floatingModalDragging, customStyles.container, !visible && styles.parkedOffscreen],
1225
- children: [background && variant === "night" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1226
- style: styles.nightBackdropFloating,
1227
- pointerEvents: "none",
1228
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolBackground.ToolBackground, {})
1229
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.DraggableHeader, {
1230
- position: floatingPosition,
1231
- onDragStart: handleFloatingDragStart,
1232
- onDragEnd: handleFloatingDragEnd,
1233
- onTap: handleFloatingTap,
1234
- containerBounds: containerBounds,
1235
- elementSize: dimensions,
1236
- minPosition: {
1237
- x: 0,
1238
- y: insets.top
1239
- },
1240
- style: styles.floatingHeader,
1241
- enabled: mode === "floating" && !isResizing,
1242
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ModalHeader, {
1243
- header: header,
1244
- onClose: onClose,
1245
- onToggleMode: toggleMode,
1246
- onMinimize: onMinimize ? handleMinimize : undefined,
1247
- isResizing: isDragging || isResizing,
1248
- mode: mode,
1249
- variant: variant
1250
- })
1251
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1252
- style: styles.windowControlsContainer,
1253
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.WindowControls, {
1254
- onClose: onClose,
1255
- onMinimize: onMinimize ? handleMinimize : undefined,
1256
- onToggleMode: toggleMode,
1257
- mode: mode,
1258
- variant: variant
1259
- })
1260
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1261
- style: [styles.content, variant === "night" && styles.nightContent, customStyles.content],
1262
- children: [background && variant !== "night" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolBackground.ToolBackground, {}) : null, disableScrollWrapper ?
1263
- /*#__PURE__*/
1264
- // Render children directly when they manage their own scrolling (FlatList, etc.)
1265
- (0, _jsxRuntime.jsx)(_reactNative.View, {
1266
- style: {
1267
- flex: 1,
1268
- paddingBottom: footerHeight
1269
- },
1270
- children: children
1271
- }) :
1272
- /*#__PURE__*/
1273
- // Wrap in ScrollView for content that needs scrolling
1274
- (0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
1275
- style: {
1276
- flex: 1
1277
- },
1278
- contentContainerStyle: {
1279
- flexGrow: 1,
1280
- paddingBottom: footerHeight
1281
- },
1282
- showsVerticalScrollIndicator: true,
1283
- nestedScrollEnabled: true
1284
- // Without this, a tap on a button while the keyboard is up only
1285
- // dismisses the keyboard: typing a URL and tapping Load did nothing.
1286
- ,
1287
- keyboardShouldPersistTaps: "handled",
1288
- children: children
1289
- }), footer ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1290
- style: footerStyles.footerContainer,
1291
- children: footer
1292
- }) : null]
1293
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1294
- ...resizeHandlers.bottomLeft.panHandlers,
1295
- style: [styles.cornerHandleWrapper, {
1296
- bottom: 4,
1297
- left: 4
1298
- }],
1299
- hitSlop: {
1300
- top: 2,
1301
- left: 2,
1302
- right: 2,
1303
- bottom: 2
1304
- },
1305
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CornerHandle, {
1306
- position: "bottomLeft",
1307
- isActive: isDragging || isResizing
1308
- })
1309
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1310
- ...resizeHandlers.bottomRight.panHandlers,
1311
- style: [styles.cornerHandleWrapper, {
1312
- bottom: 4,
1313
- right: 4
1314
- }],
1315
- hitSlop: {
1316
- top: 2,
1317
- left: 2,
1318
- right: 2,
1319
- bottom: 2
1320
- },
1321
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CornerHandle, {
1322
- position: "bottomRight",
1323
- isActive: isDragging || isResizing
1324
- })
1325
- })]
1326
- });
1327
- }
1328
-
1329
- // Render bottom sheet mode with proper height animation
1330
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1331
- style: [
1332
- // Same box either way — parking it off-screen instead of resizing it
1333
- // keeps the sheet's layout intact, so coming back is a translate and
1334
- // not a full relayout.
1335
- visible ? styles.fullScreenContainer : styles.parkedFullScreen, visible && zIndex !== undefined && {
1336
- zIndex
1337
- }],
1338
- pointerEvents: visible ? "box-none" : "none",
1339
- accessibilityElementsHidden: !visible,
1340
- importantForAccessibility: visible ? "auto" : "no-hide-descendants",
1341
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
1342
- nativeID: "jsmodal-root",
1343
- style: [styles.bottomSheetWrapper, {
1344
- opacity: modalOpacity,
1345
- transform: [{
1346
- translateY: bottomSheetTranslateY
1347
- }]
1348
- }],
1349
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
1350
- style: [styles.bottomSheet, variant === "night" && styles.nightBottomSheet, customStyles.container, {
1351
- height: externalAnimatedHeight || animatedBottomPosition
1352
- }],
1353
- children: [background && variant === "night" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1354
- style: styles.nightBackdropSheet,
1355
- pointerEvents: "none",
1356
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolBackground.ToolBackground, {})
1357
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(ModalHeader, {
1358
- header: header,
1359
- onClose: onClose,
1360
- onToggleMode: toggleMode,
1361
- onMinimize: onMinimize ? handleMinimize : undefined,
1362
- isResizing: isResizing,
1363
- mode: mode,
1364
- panHandlers: bottomSheetPanResponder.panHandlers,
1365
- variant: variant
1366
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1367
- style: styles.windowControlsContainer,
1368
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.WindowControls, {
1369
- onClose: onClose,
1370
- onMinimize: onMinimize ? handleMinimize : undefined,
1371
- onToggleMode: toggleMode,
1372
- mode: mode,
1373
- variant: variant
1374
- })
1375
- }), hintLoaded && showHint && mode === "bottomSheet" && !hintsDisabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.ModalHintBanner, {
1376
- onAcknowledge: handleHintAcknowledge
1377
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
1378
- style: [styles.content, variant === "night" && styles.nightContent, customStyles.content],
1379
- children: [background && variant !== "night" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolBackground.ToolBackground, {}) : null, disableScrollWrapper ?
1380
- /*#__PURE__*/
1381
- // Render children directly when they manage their own scrolling (FlatList, etc.)
1382
- (0, _jsxRuntime.jsx)(_reactNative.View, {
1383
- style: {
1384
- flex: 1,
1385
- paddingBottom: footerHeight
1386
- },
1387
- children: children
1388
- }) :
1389
- /*#__PURE__*/
1390
- // Wrap in ScrollView for content that needs scrolling
1391
- (0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
1392
- style: {
1393
- flex: 1
1394
- },
1395
- contentContainerStyle: {
1396
- flexGrow: 1,
1397
- paddingBottom: footerHeight
1398
- },
1399
- showsVerticalScrollIndicator: true,
1400
- nestedScrollEnabled: true,
1401
- keyboardShouldPersistTaps: "handled",
1402
- children: children
1403
- }), footer ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
1404
- style: footerStyles.footerContainer,
1405
- children: footer
1406
- }) : null]
1407
- })]
1408
- })
1409
- })
1410
- });
1411
- };
1412
-
1413
- // ============================================================================
1414
- // STYLES - Visual styling for all modal components
1415
- // ============================================================================
1416
- const styles = _reactNative.StyleSheet.create({
1417
- fullScreenContainer: {
1418
- ..._absoluteFill.absoluteFill,
1419
- zIndex: 1000
1420
- },
1421
- bottomSheetWrapper: {
1422
- position: "absolute",
1423
- bottom: 0,
1424
- left: 0,
1425
- right: 0
1426
- },
1427
- bottomSheet: {
1428
- backgroundColor: _index.buoyColors.card,
1429
- // Buoy card
1430
- borderTopLeftRadius: 6,
1431
- borderTopRightRadius: 6,
1432
- borderWidth: 1,
1433
- borderColor: _index.buoyColors.border,
1434
- shadowColor: _index.buoyColors.primary,
1435
- shadowOffset: {
1436
- width: 0,
1437
- height: -4
1438
- },
1439
- shadowOpacity: 0.2,
1440
- shadowRadius: 12,
1441
- elevation: 20
1442
- },
1443
- /** Off-screen park for a minimized floating modal — same box, moved away. */
1444
- parkedOffscreen: {
1445
- left: -9999,
1446
- top: -9999,
1447
- opacity: 0
1448
- },
1449
- /**
1450
- * Off-screen park for a minimized bottom sheet. Screen-sized on purpose:
1451
- * `fullScreenContainer` is an absolute fill, and shrinking it here would
1452
- * relayout the whole sheet on every minimize/restore.
1453
- */
1454
- parkedFullScreen: {
1455
- position: "absolute",
1456
- left: -9999,
1457
- top: -9999,
1458
- width: SCREEN.width,
1459
- height: SCREEN.height,
1460
- opacity: 0
1461
- },
1462
- floatingModal: {
1463
- position: "absolute",
1464
- backgroundColor: _index.buoyColors.card,
1465
- borderRadius: 6,
1466
- borderWidth: 1,
1467
- borderColor: _index.buoyColors.border,
1468
- shadowColor: _index.buoyColors.primary,
1469
- shadowOffset: {
1470
- width: 0,
1471
- height: 0
1472
- },
1473
- shadowOpacity: 0.3,
1474
- shadowRadius: 20,
1475
- elevation: 24,
1476
- zIndex: 1000,
1477
- // Default dimensions, will be overridden by animated values
1478
- width: FLOATING_WIDTH,
1479
- height: FLOATING_HEIGHT
1480
- },
1481
- floatingModalDragging: {
1482
- borderColor: _index.buoyColors.primary,
1483
- borderWidth: 2,
1484
- shadowColor: _index.buoyColors.primary + "99",
1485
- shadowOpacity: 0.8,
1486
- shadowRadius: 12
1487
- },
1488
- header: {
1489
- borderTopLeftRadius: 6,
1490
- borderTopRightRadius: 6,
1491
- backgroundColor: _index.buoyColors.card,
1492
- // Buoy card color
1493
- minHeight: 56,
1494
- borderWidth: 1,
1495
- borderColor: _index.buoyColors.border,
1496
- // Buoy border
1497
- borderBottomWidth: 1,
1498
- borderBottomColor: _index.buoyColors.border
1499
- },
1500
- // ── Night variant (Everlights sheet — see ui/night/nightTheme.ts) ────────
1501
- // NO `overflow: "hidden"` on the sheets: Fabric clips children to the
1502
- // square rect, so the star-field layer's corner painted OVER the rounded
1503
- // corner (it read as chopped off) — and iOS suppresses a layer's own shadow
1504
- // when it clips. The backdrop clips itself instead (nightBackdrop* below).
1505
- nightBottomSheet: {
1506
- backgroundColor: _nightTheme.night.color.bg,
1507
- borderTopLeftRadius: _nightTheme.night.radius.sheet,
1508
- borderTopRightRadius: _nightTheme.night.radius.sheet,
1509
- borderWidth: _reactNative.StyleSheet.hairlineWidth,
1510
- borderColor: _nightTheme.night.color.accent + "55",
1511
- shadowColor: _nightTheme.night.color.accent,
1512
- shadowOffset: {
1513
- width: 0,
1514
- height: -4
1515
- },
1516
- shadowOpacity: 0.22,
1517
- shadowRadius: 10
1518
- },
1519
- nightFloatingModal: {
1520
- backgroundColor: _nightTheme.night.color.bg,
1521
- borderRadius: _nightTheme.night.radius.sheet,
1522
- borderWidth: _reactNative.StyleSheet.hairlineWidth,
1523
- borderColor: _nightTheme.night.color.accent + "55",
1524
- shadowColor: _nightTheme.night.color.accent,
1525
- shadowOffset: {
1526
- width: 0,
1527
- height: 0
1528
- },
1529
- shadowOpacity: 0.22,
1530
- shadowRadius: 14
1531
- },
1532
- /** The header is glass — the sheet-level star field runs through it. */
1533
- nightHeader: {
1534
- backgroundColor: "transparent",
1535
- borderWidth: 0,
1536
- borderBottomWidth: 0,
1537
- borderTopLeftRadius: _nightTheme.night.radius.sheet,
1538
- borderTopRightRadius: _nightTheme.night.radius.sheet
1539
- },
1540
- nightContent: {
1541
- backgroundColor: "transparent"
1542
- },
1543
- /**
1544
- * The hoisted star field clips ITSELF to the sheet's corners (matching
1545
- * radii + overflow hidden) — see the note on the sheet styles above. It
1546
- * also keeps scenes that animate outside their own bounds (Hyperspace's
1547
- * scaled shells) from bleeding past the window.
1548
- */
1549
- nightBackdropSheet: {
1550
- ..._absoluteFill.absoluteFill,
1551
- borderTopLeftRadius: _nightTheme.night.radius.sheet,
1552
- borderTopRightRadius: _nightTheme.night.radius.sheet,
1553
- overflow: "hidden"
1554
- },
1555
- nightBackdropFloating: {
1556
- ..._absoluteFill.absoluteFill,
1557
- borderRadius: _nightTheme.night.radius.sheet,
1558
- overflow: "hidden"
1559
- },
1560
- /** Neutral Everlights handle instead of the glowing teal bar. */
1561
- nightDragIndicator: {
1562
- width: 36,
1563
- height: 5,
1564
- borderRadius: 2.5,
1565
- backgroundColor: _nightTheme.night.color.placeholder,
1566
- shadowOpacity: 0,
1567
- elevation: 0
1568
- },
1569
- floatingHeader: {
1570
- borderTopLeftRadius: 6,
1571
- borderTopRightRadius: 6
1572
- },
1573
- windowControlsContainer: {
1574
- position: "absolute",
1575
- top: 4,
1576
- right: 4,
1577
- zIndex: 10
1578
- },
1579
- floatingModeHeader: {
1580
- borderTopLeftRadius: 6,
1581
- borderTopRightRadius: 6
1582
- },
1583
- headerInner: {
1584
- flex: 1,
1585
- justifyContent: "center"
1586
- },
1587
- dragIndicatorContainer: {
1588
- alignItems: "center",
1589
- paddingVertical: 8,
1590
- backgroundColor: "transparent"
1591
- },
1592
- /**
1593
- * With custom header content the pill shares the top band with the window
1594
- * controls, so the strip claims that band (and centres the pill in it)
1595
- * rather than the header row below paying for the clearance sideways.
1596
- */
1597
- dragIndicatorContainerCustom: {
1598
- minHeight: WINDOW_CONTROLS_BAND,
1599
- justifyContent: "center",
1600
- paddingVertical: 0,
1601
- backgroundColor: "transparent"
1602
- },
1603
- dragIndicator: {
1604
- width: 40,
1605
- height: 3,
1606
- backgroundColor: _index.buoyColors.primary,
1607
- // Buoy primary teal
1608
- borderRadius: 2,
1609
- shadowColor: _index.buoyColors.primary,
1610
- shadowOffset: {
1611
- width: 0,
1612
- height: 0
1613
- },
1614
- shadowOpacity: 0.6,
1615
- shadowRadius: 4
1616
- },
1617
- floatingDragIndicator: {
1618
- width: 50,
1619
- height: 5,
1620
- backgroundColor: _index.buoyColors.textMuted
1621
- },
1622
- dragIndicatorActive: {
1623
- backgroundColor: _index.buoyColors.primary,
1624
- width: 40
1625
- },
1626
- resizeGripContainer: {
1627
- position: "absolute",
1628
- flexDirection: "row",
1629
- gap: 2,
1630
- marginTop: 12
1631
- },
1632
- resizeGripLine: {
1633
- width: 12,
1634
- height: 1,
1635
- backgroundColor: _index.gameUIColors.success,
1636
- opacity: 0.6
1637
- },
1638
- headerContent: {
1639
- paddingHorizontal: 16,
1640
- alignItems: "center"
1641
- },
1642
- headerControls: {
1643
- position: "absolute",
1644
- top: 8,
1645
- right: 16,
1646
- flexDirection: "row",
1647
- alignItems: "center"
1648
- },
1649
- headerTitle: {
1650
- fontSize: 16,
1651
- fontWeight: "600",
1652
- color: _index.gameUIColors.primary
1653
- },
1654
- headerSubtitle: {
1655
- fontSize: 12,
1656
- color: _index.gameUIColors.secondary,
1657
- paddingTop: 4
1658
- },
1659
- headerHintText: {
1660
- position: "absolute",
1661
- top: 0,
1662
- left: 0,
1663
- right: 0,
1664
- bottom: 0,
1665
- justifyContent: "center",
1666
- alignItems: "center"
1667
- },
1668
- hintText: {
1669
- fontSize: 10,
1670
- color: _index.gameUIColors.muted,
1671
- fontStyle: "italic"
1672
- },
1673
- controlButton: {
1674
- width: 28,
1675
- height: 28,
1676
- borderRadius: 6,
1677
- justifyContent: "center",
1678
- alignItems: "center",
1679
- marginLeft: 8
1680
- },
1681
- toggleButton: {
1682
- backgroundColor: _index.gameUIColors.info + "1A",
1683
- borderWidth: 1,
1684
- borderColor: _index.gameUIColors.info + "33"
1685
- },
1686
- closeButton: {
1687
- width: 28,
1688
- height: 28,
1689
- borderRadius: 6,
1690
- justifyContent: "center",
1691
- alignItems: "center",
1692
- backgroundColor: _index.gameUIColors.error + "1A",
1693
- borderWidth: 1,
1694
- borderColor: _index.gameUIColors.error + "33",
1695
- marginLeft: 8
1696
- },
1697
- iconLine: {
1698
- position: "absolute",
1699
- top: 7.25,
1700
- left: 2,
1701
- width: 12,
1702
- height: 1.5,
1703
- backgroundColor: _index.gameUIColors.error
1704
- },
1705
- content: {
1706
- flex: 1,
1707
- backgroundColor: _index.buoyColors.base,
1708
- borderBottomLeftRadius: 16,
1709
- borderBottomRightRadius: 16,
1710
- overflow: "hidden"
1711
- },
1712
- cornerHandle: {
1713
- position: "absolute",
1714
- zIndex: 1
1715
- },
1716
- cornerHandleWrapper: {
1717
- position: "absolute",
1718
- width: 30,
1719
- height: 30,
1720
- zIndex: 1000
1721
- },
1722
- handler: {
1723
- width: 20,
1724
- height: 20,
1725
- backgroundColor: "transparent",
1726
- borderRadius: 10,
1727
- borderWidth: 0,
1728
- borderColor: "transparent"
1729
- },
1730
- handlerActive: {
1731
- backgroundColor: _index.gameUIColors.success + "1A",
1732
- borderColor: _index.gameUIColors.success,
1733
- borderWidth: 2,
1734
- shadowColor: _index.gameUIColors.success + "99",
1735
- shadowOffset: {
1736
- width: 0,
1737
- height: 0
1738
- },
1739
- shadowOpacity: 1,
1740
- shadowRadius: 8
1741
- }
1742
- });
1743
-
1744
- // Footer container styles (absolute within modal content area)
1745
- const footerStyles = _reactNative.StyleSheet.create({
1746
- footerContainer: {
1747
- position: "absolute",
1748
- left: 0,
1749
- right: 0,
1750
- bottom: 0,
1751
- backgroundColor: _index.buoyColors.base,
1752
- borderBottomLeftRadius: 16,
1753
- borderBottomRightRadius: 16
1754
- }
1755
- });
1756
-
1757
- // ============================================================================
1758
- // EXPORT - Memoized modal component for optimal performance
1759
- // ============================================================================
1760
- const JsModal = exports.JsModal = /*#__PURE__*/(0, _react.memo)(props => {
1761
- const access = (0, _licenseModule.getUseAccountAccess)()();
1762
- if (access.status !== "admitted") return props.visible ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_AccountSetup.AccountSetup, {}) : null;
1763
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(JsModalComponent, {
1764
- ...props
1765
- });
1766
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.JsModal=void 0;var _licenseModule=require("./license/licenseModule.js");var _AccountSetup=require("./license/AccountSetup");var _react=require("react");var _reactNative=require("react-native");var _absoluteFill=require("./utils/absoluteFill.js");var _useSafeAreaInsets=require("./hooks/useSafeAreaInsets");var _index=require("./ui/gameUI/index.js");var _index2=require("./ui/components/index.js");var _ToolBackground=require("./ui/backgrounds/ToolBackground.js");var _nightTheme=require("./ui/night/nightTheme.js");var _persistentStorage=require("./utils/persistentStorage");var _modalStorage=require("./utils/modalStorage.js");var _devToolsStorageKeys=require("./storage/devToolsStorageKeys.js");var _index3=require("./context/index.js");var _jsxRuntime=require("react/jsx-runtime");const INSTANT_MODAL_ENTRANCE=true;const SCREEN=_reactNative.Dimensions.get("window");const MIN_HEIGHT=100;const DEFAULT_HEIGHT=400;const FLOATING_WIDTH=SCREEN.width;const FLOATING_HEIGHT=500;const FLOATING_MIN_WIDTH=SCREEN.width*.25;const FLOATING_MIN_HEIGHT=80;const WINDOW_CONTROLS_BAND=20;const DragIndicator=(0,_react.memo)(function s({isResizing:n,mode:x,hasCustomContent:B=false,variant:m="default"}){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.dragIndicatorContainer,B&&styles.dragIndicatorContainerCustom],children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.dragIndicator,x==="floating"&&styles.floatingDragIndicator,n&&styles.dragIndicatorActive,m==="night"&&styles.nightDragIndicator]}),n&&x==="bottomSheet"&&(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.resizeGripContainer,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.resizeGripLine}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.resizeGripLine}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.resizeGripLine})]})]})});const CornerHandle=(0,_react.memo)(function s({position:n,isActive:x}){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.cornerHandle],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.handler,x&&styles.handlerActive]})})});const ModalHeader=(0,_react.memo)(function s({header:n,onClose:x,onToggleMode:B,onMinimize:m,isResizing:W,mode:Y,panHandlers:p,variant:a="default"}){const b=(0,_react.useRef)(0);const N=(0,_react.useRef)(0);const V=(0,_react.useRef)(null);const w=(0,_react.useCallback)(()=>{const D=Date.now();const J=D-b.current;if(J>500){N.current=0}N.current++;b.current=D;if(V.current){clearTimeout(V.current)}V.current=setTimeout(()=>{if(N.current===2){B()}else if(N.current>=3){if(m){m()}}N.current=0},300)},[B,m]);(0,_react.useEffect)(()=>{return()=>{if(V.current){clearTimeout(V.current)}}},[]);const T=p?p:{};const $=!!p;if(n?.customContent){const D=(0,_react.isValidElement)(n.customContent)&&typeof n.customContent.type==="function"&&n.customContent.type.name==="CyberpunkModalHeader";if(D){return(0,_react.cloneElement)(n.customContent,{onToggleMode:B,onClose:x,mode:Y,panHandlers:T,showToggleButton:n?.showToggleButton!==false,hideCloseButton:n?.hideCloseButton})}let J=n.customContent;if((0,_react.isValidElement)(n.customContent)&&m){J=(0,_react.cloneElement)(n.customContent,{onMinimize:m})}const g=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.headerInner,children:[(0,_jsxRuntime.jsx)(DragIndicator,{isResizing:W,mode:Y,hasCustomContent:true,variant:a}),J]});return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.header,a==="night"&&styles.nightHeader],...T,children:$?(0,_jsxRuntime.jsx)(_reactNative.TouchableWithoutFeedback,{onPress:w,children:g}):g})}const O=(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.headerInner,children:[(0,_jsxRuntime.jsx)(DragIndicator,{isResizing:W,mode:Y,variant:a}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.headerContent,children:[n?.title&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.headerTitle,children:n.title}),n?.subtitle&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.headerSubtitle,children:n.subtitle})]}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.headerHintText,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.hintText,children:"Double tap: Toggle \u2022 Triple tap: Close"})})]});return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.header,Y==="floating"&&styles.floatingModeHeader,a==="night"&&styles.nightHeader],...T,children:$?(0,_jsxRuntime.jsx)(_reactNative.TouchableWithoutFeedback,{onPress:w,children:O}):O})});const JsModalComponent=({visible:s,onClose:n,children:x,header:B,styles:m={},minHeight:W=MIN_HEIGHT,maxHeight:Y,initialHeight:p=DEFAULT_HEIGHT,animatedHeight:a,benchMotion:b,initialMode:N="bottomSheet",onModeChange:V,persistenceKey:w,enablePersistence:T=true,initialFloatingPosition:$,footer:O,footerHeight:D=0,onBack:J,onMinimize:g,minimizeRequest:ie=0,minimizeTargetPosition:fe,initialModalState:l,zIndex:ae,disableScrollWrapper:Ce=false,background:le=true,variant:C="night"})=>{const j=(0,_useSafeAreaInsets.useSafeAreaInsets)();const[ye,Re]=(0,_react.useState)(!T);const[r,ge]=(0,_react.useState)(N);const[X,I]=(0,_react.useState)(false);const[de,Q]=(0,_react.useState)(false);const[Be,me]=(0,_react.useState)(p);const[k,K]=(0,_react.useState)({width:FLOATING_WIDTH,height:FLOATING_HEIGHT,top:(SCREEN.height-FLOATING_HEIGHT)/2,left:0});const[ue]=(0,_react.useState)({width:SCREEN.width,height:SCREEN.height});const[Ee,ce]=(0,_react.useState)(false);const[Me,xe]=(0,_react.useState)(false);const _e=(0,_index3.useHintsDisabled)();const u=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;const f=(0,_react.useRef)(new _reactNative.Animated.Value(SCREEN.height)).current;const Ve=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;const v=(0,_react.useRef)(new _reactNative.Animated.Value(p)).current;const A=(0,_react.useRef)(p);(0,_react.useEffect)(()=>{if(!T||!w||!ye)return;const e=setTimeout(()=>{_modalStorage.ModalStorage.save(w,{mode:r,panelHeight:A.current,dimensions:k,isVisible:s})},500);return()=>clearTimeout(e)},[r,Be,k,s,w,T,ye]);const Te=(0,_react.useRef)(false);(0,_react.useEffect)(()=>{if(a&&!Te.current){Te.current=true;A.current=p;a.setValue(p)}},[a,p]);(0,_react.useEffect)(()=>{h.current=k},[k]);const d=(0,_react.useRef)(new _reactNative.Animated.ValueXY({x:$?.x??0,y:$?.y??(SCREEN.height-FLOATING_HEIGHT)/2})).current;const F=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;const P=(0,_react.useRef)(new _reactNative.Animated.Value(FLOATING_WIDTH)).current;const G=(0,_react.useRef)(new _reactNative.Animated.Value(FLOATING_HEIGHT)).current;const h=(0,_react.useRef)(k);const Se=(0,_react.useRef)(k);const We=(0,_react.useRef)(0);const Ne=(0,_react.useRef)(0);const Oe=(0,_react.useRef)(0);const Fe=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{let e=true;const o=async()=>{try{const t=_devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();const H=await _persistentStorage.persistentStorage.getItem(t);if(e){ce(H!=="true");xe(true)}}catch(t){if(e){ce(true);xe(true)}}};o();return()=>{e=false}},[]);const Pe=(0,_react.useCallback)(async()=>{try{const e=_devToolsStorageKeys.devToolsStorageKeys.modal.hintAcknowledged();await _persistentStorage.persistentStorage.setItem(e,"true");ce(false)}catch(e){ce(false)}},[]);const je=(0,_react.useRef)(V);je.current=V;(0,_react.useEffect)(()=>{if(!T||!w){Re(true);return}let e=true;const o=async()=>{const t=await _modalStorage.ModalStorage.load(w);if(e&&t){if(t.mode){ge(t.mode);je.current?.(t.mode)}if(t.panelHeight){me(t.panelHeight);A.current=t.panelHeight;v.setValue(t.panelHeight);a?.setValue(t.panelHeight)}if(t.dimensions){K(t.dimensions);d.setValue({x:t.dimensions.left,y:t.dimensions.top});P.setValue(t.dimensions.width);G.setValue(t.dimensions.height)}}if(e)Re(true)};o();return()=>{e=false}},[w,T,v,G,P,d]);(0,_react.useEffect)(()=>{return()=>{u.stopAnimation();f.stopAnimation();F.stopAnimation();Ve.stopAnimation();v.stopAnimation();d.stopAnimation();P.stopAnimation();G.stopAnimation();u.setValue(0);f.setValue(SCREEN.height);F.setValue(0);Ve.setValue(0);v.setValue(p);A.current=p}},[]);const Ie=u.interpolate({inputRange:[0,1],outputRange:[0,1],extrapolate:"clamp"});const pe=Y||SCREEN.height-j.top;const q=(0,_react.useCallback)(()=>{Q(false);I(false);const e=r==="bottomSheet"?"floating":"bottomSheet";ge(e);V?.(e)},[r,V]);(0,_react.useEffect)(()=>{Q(false);I(false)},[r]);const E=(0,_react.useCallback)(()=>{if(!g)return;const e={mode:r,panelHeight:A.current,floatingPosition:{x:h.current.left,y:h.current.top},floatingDimensions:{width:h.current.width,height:h.current.height}};if(T&&w)void _modalStorage.ModalStorage.saveMinimized(w,e);const o=fe?.x??SCREEN.width-50;const t=fe?.y??SCREEN.height-150;if(r==="bottomSheet"){_reactNative.Animated.parallel([_reactNative.Animated.timing(u,{toValue:0,duration:300,useNativeDriver:true}),_reactNative.Animated.timing(f,{toValue:SCREEN.height,duration:300,useNativeDriver:true})]).start(()=>{g(e)})}else{_reactNative.Animated.parallel([_reactNative.Animated.timing(F,{toValue:0,duration:300,useNativeDriver:true}),_reactNative.Animated.timing(u,{toValue:0,duration:300,useNativeDriver:true}),_reactNative.Animated.timing(d,{toValue:{x:o,y:t},duration:300,useNativeDriver:true})]).start(()=>{g(e)})}},[r,g,fe,T,w,u,f,F,d]);const ve=(0,_react.useRef)(ie);(0,_react.useEffect)(()=>{if(ve.current===ie)return;ve.current=ie;E()},[ie,E]);(0,_react.useEffect)(()=>{if(!l)return;if(l.mode){ge(l.mode);V?.(l.mode)}if(l.panelHeight){me(l.panelHeight);A.current=l.panelHeight;v.setValue(l.panelHeight)}if(l.floatingDimensions&&l.floatingPosition){const e={width:l.floatingDimensions.width,height:l.floatingDimensions.height,top:l.floatingPosition.y,left:l.floatingPosition.x};K(e);d.setValue({x:l.floatingPosition.x,y:l.floatingPosition.y});P.setValue(l.floatingDimensions.width);G.setValue(l.floatingDimensions.height)}},[l]);const Ae=e=>{if(e){if(r==="bottomSheet"){f.setValue(0)}else{F.setValue(1);d.setValue({x:h.current.left,y:h.current.top})}u.setValue(1)}else{if(r==="bottomSheet"){f.setValue(SCREEN.height)}u.setValue(0)}};const De=(0,_react.useRef)(null);if(INSTANT_MODAL_ENTRANCE&&De.current!==s){De.current=s;Ae(s)}(0,_react.useEffect)(()=>{let e=null;let o=null;if(INSTANT_MODAL_ENTRANCE){Ae(s);return}if(s){f.setValue(SCREEN.height);u.setValue(0);if(r==="bottomSheet"){e=_reactNative.Animated.parallel([_reactNative.Animated.spring(f,{toValue:0,tension:180,friction:22,useNativeDriver:true}),_reactNative.Animated.timing(u,{toValue:1,duration:200,useNativeDriver:true})]);e.start()}else{F.setValue(1);d.setValue({x:h.current.left,y:h.current.top});e=_reactNative.Animated.timing(u,{toValue:1,duration:200,useNativeDriver:true});e.start()}}else{if(r==="bottomSheet"){o=_reactNative.Animated.parallel([_reactNative.Animated.spring(f,{toValue:SCREEN.height,tension:180,friction:22,useNativeDriver:true}),_reactNative.Animated.timing(u,{toValue:0,duration:200,useNativeDriver:true})]);o.start()}else{o=_reactNative.Animated.timing(u,{toValue:0,duration:200,useNativeDriver:true});o.start()}}return()=>{if(e){e.stop()}if(o){o.stop()}}},[s,r,u,f,F,d,a]);const ke=(0,_react.useRef)(0);(0,_react.useEffect)(()=>{if(!__DEV__||!b||!s)return void 0;let e=null;let o=null;let t=true;const H=Date.now();let y=false;const M=L=>{y=L;if(b==="resize"||b==="float-resize"){I(L)}else if(b==="float-drag"){Q(L)}};if(b==="mode-cycle"){o=setInterval(()=>q(),2200)}else{const L=W;const he=pe;const ne=()=>{if(!t)return;const Z=(Date.now()-H)/1e3;const i=Z%2.5;if(i<2&&!y)M(true);else if(i>=2&&y)M(false);if(y){const R=(Math.sin(Z*2.2)+1)/2;if(b==="resize"){const c=L+R*(he-L);v.setValue(c);A.current=c;if(a){a.setValue(c)}}else if(b==="float-drag"){const c=(Math.sin(Z*1.7)+1)/2;d.setValue({x:10+R*Math.max(SCREEN.width-FLOATING_WIDTH-20,0),y:70+c*260})}else if(b==="float-resize"){const c=FLOATING_WIDTH+R*Math.max(SCREEN.width-FLOATING_WIDTH-40,0);const S=FLOATING_HEIGHT+R*240;P.setValue(c);G.setValue(S);h.current={...h.current,width:c,height:S}}}e=requestAnimationFrame(ne)};e=requestAnimationFrame(ne)}return()=>{t=false;if(e!=null)cancelAnimationFrame(e);if(o!=null)clearInterval(o);I(false);Q(false)}},[b,s]);const Ge=(0,_react.useMemo)(()=>_reactNative.PanResponder.create({onStartShouldSetPanResponder:()=>r==="bottomSheet",onMoveShouldSetPanResponder:(e,o)=>r==="bottomSheet"&&Math.abs(o.dy)>3,onPanResponderTerminationRequest:()=>false,onPanResponderGrant:e=>{I(true);ke.current=e.nativeEvent.locationY||0;v.stopAnimation(o=>{A.current=o});a?.stopAnimation();f.stopAnimation()},onPanResponderMove:e=>{const o=e.nativeEvent.pageY-ke.current;let t=SCREEN.height-o;t=Math.max(W,Math.min(t,pe));v.setValue(t);A.current=t;if(a){a.setValue(t)}},onPanResponderRelease:(e,o)=>{I(false);const t=A.current;const H=o.vy>.8&&o.dy>50||o.dy>150&&t<=W;if(H){_reactNative.Animated.parallel([_reactNative.Animated.timing(u,{toValue:0,duration:200,useNativeDriver:true}),_reactNative.Animated.spring(f,{toValue:SCREEN.height,tension:180,friction:22,useNativeDriver:true})]).start(()=>n());return}me(t);if(a)a.setValue(t)},onPanResponderTerminate:()=>{I(false)}}),[r,W,pe,v,a,f,u,n]);const ee=(0,_react.useCallback)(e=>{let o=false;return _reactNative.PanResponder.create({onStartShouldSetPanResponder:()=>r==="floating",onMoveShouldSetPanResponder:()=>r==="floating",onPanResponderGrant:()=>{o=false;const t=h.current;d.stopAnimation(({x:H,y})=>{d.setValue({x:H,y})});I(true);Se.current={...t};Oe.current=t.height;Fe.current=t.width;We.current=t.left;Ne.current=t.top},onPanResponderMove:(t,H)=>{const{dx:y,dy:M}=H;if(Math.abs(y)<.5&&Math.abs(M)<.5)return;o=true;const L=Math.max(0,j.left||0);const he=ue.width-Math.max(0,j.right||0);const ne=Math.max(0,j.top||0);const Z=ue.height-Math.max(0,j.bottom||0);const i=Se.current;const R=i.left+i.width;const c=i.top+i.height;let S=i.left;let _=i.top;let re=R;let se=c;switch(e){case"topLeft":{const U=Math.max(L,Math.min(i.left+y,R-FLOATING_MIN_WIDTH));const z=Math.max(ne,Math.min(i.top+M,c-FLOATING_MIN_HEIGHT));S=U;_=z;re=R;se=c;break}case"topRight":{const U=Math.min(he,Math.max(R+y,i.left+FLOATING_MIN_WIDTH));const z=Math.max(ne,Math.min(i.top+M,c-FLOATING_MIN_HEIGHT));S=i.left;_=z;re=U;se=c;break}case"bottomLeft":{const U=Math.max(L,Math.min(i.left+y,R-FLOATING_MIN_WIDTH));const z=Math.min(Z,Math.max(c+M,i.top+FLOATING_MIN_HEIGHT));S=U;_=i.top;re=R;se=z;break}case"bottomRight":{const U=Math.min(he,Math.max(R+y,i.left+FLOATING_MIN_WIDTH));const z=Math.min(Z,Math.max(c+M,i.top+FLOATING_MIN_HEIGHT));S=i.left;_=i.top;re=U;se=z;break}}const be=Math.max(FLOATING_MIN_WIDTH,re-S);const we=Math.max(FLOATING_MIN_HEIGHT,se-_);K({width:be,height:we,left:S,top:_});P.setValue(be);G.setValue(we);d.setValue({x:S,y:_});h.current={width:be,height:we,left:S,top:_}},onPanResponderRelease:()=>{I(false);o=false;K(h.current)},onPanResponderTerminate:()=>{I(false);o=false}})},[r,ue,j.left,j.right,j.top,j.bottom,d,P,G,n,J]);const He=(0,_react.useMemo)(()=>{return{topLeft:ee("topLeft"),topRight:ee("topRight"),bottomLeft:ee("bottomLeft"),bottomRight:ee("bottomRight")}},[ee]);const qe=(0,_react.useCallback)(()=>{Q(true)},[]);const Ue=(0,_react.useCallback)(e=>{Q(false);const o=h.current;const t={...o,left:e.x,top:e.y};K(t)},[]);const Le=(0,_react.useRef)(0);const te=(0,_react.useRef)(0);const oe=(0,_react.useRef)(null);const ze=(0,_react.useCallback)(()=>{const e=Date.now();const o=e-Le.current;if(o>500){te.current=0}te.current++;Le.current=e;if(oe.current){clearTimeout(oe.current)}oe.current=setTimeout(()=>{if(te.current===2){q()}else if(te.current>=3){if(g){E()}}te.current=0},300)},[q,g,E]);(0,_react.useEffect)(()=>{return()=>{if(oe.current){clearTimeout(oe.current)}}},[]);if(r==="floating"){return(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{nativeID:"jsmodal-root",pointerEvents:s?"auto":"none",accessibilityElementsHidden:!s,importantForAccessibility:s?"auto":"no-hide-descendants",style:[styles.floatingModal,{width:k.width,height:k.height,opacity:Ie,transform:[{translateX:d.x},{translateY:d.y}],...ae!==void 0&&{zIndex:ae}},C==="night"&&styles.nightFloatingModal,(de||X)&&styles.floatingModalDragging,m.container,!s&&styles.parkedOffscreen],children:[le&&C==="night"?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.nightBackdropFloating,pointerEvents:"none",children:(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{})}):null,(0,_jsxRuntime.jsx)(_index2.DraggableHeader,{position:d,onDragStart:qe,onDragEnd:Ue,onTap:ze,containerBounds:ue,elementSize:k,minPosition:{x:0,y:j.top},style:styles.floatingHeader,enabled:r==="floating"&&!X,children:(0,_jsxRuntime.jsx)(ModalHeader,{header:B,onClose:n,onToggleMode:q,onMinimize:g?E:void 0,isResizing:de||X,mode:r,variant:C})}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.windowControlsContainer,children:(0,_jsxRuntime.jsx)(_index2.WindowControls,{onClose:n,onMinimize:g?E:void 0,onToggleMode:q,mode:r,variant:C})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.content,C==="night"&&styles.nightContent,m.content],children:[le&&C!=="night"?(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{}):null,Ce?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1,paddingBottom:D},children:x}):(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{style:{flex:1},contentContainerStyle:{flexGrow:1,paddingBottom:D},showsVerticalScrollIndicator:true,nestedScrollEnabled:true,keyboardShouldPersistTaps:"handled",children:x}),O?(0,_jsxRuntime.jsx)(_reactNative.View,{style:footerStyles.footerContainer,children:O}):null]}),(0,_jsxRuntime.jsx)(_reactNative.View,{...He.bottomLeft.panHandlers,style:[styles.cornerHandleWrapper,{bottom:4,left:4}],hitSlop:{top:2,left:2,right:2,bottom:2},children:(0,_jsxRuntime.jsx)(CornerHandle,{position:"bottomLeft",isActive:de||X})}),(0,_jsxRuntime.jsx)(_reactNative.View,{...He.bottomRight.panHandlers,style:[styles.cornerHandleWrapper,{bottom:4,right:4}],hitSlop:{top:2,left:2,right:2,bottom:2},children:(0,_jsxRuntime.jsx)(CornerHandle,{position:"bottomRight",isActive:de||X})})]})}return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[s?styles.fullScreenContainer:styles.parkedFullScreen,s&&ae!==void 0&&{zIndex:ae}],pointerEvents:s?"box-none":"none",accessibilityElementsHidden:!s,importantForAccessibility:s?"auto":"no-hide-descendants",children:(0,_jsxRuntime.jsx)(_reactNative.Animated.View,{nativeID:"jsmodal-root",style:[styles.bottomSheetWrapper,{opacity:Ie,transform:[{translateY:f}]}],children:(0,_jsxRuntime.jsxs)(_reactNative.Animated.View,{style:[styles.bottomSheet,C==="night"&&styles.nightBottomSheet,m.container,{height:a||v}],children:[le&&C==="night"?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.nightBackdropSheet,pointerEvents:"none",children:(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{})}):null,(0,_jsxRuntime.jsx)(ModalHeader,{header:B,onClose:n,onToggleMode:q,onMinimize:g?E:void 0,isResizing:X,mode:r,panHandlers:Ge.panHandlers,variant:C}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.windowControlsContainer,children:(0,_jsxRuntime.jsx)(_index2.WindowControls,{onClose:n,onMinimize:g?E:void 0,onToggleMode:q,mode:r,variant:C})}),Me&&Ee&&r==="bottomSheet"&&!_e&&(0,_jsxRuntime.jsx)(_index2.ModalHintBanner,{onAcknowledge:Pe}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.content,C==="night"&&styles.nightContent,m.content],children:[le&&C!=="night"?(0,_jsxRuntime.jsx)(_ToolBackground.ToolBackground,{}):null,Ce?(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1,paddingBottom:D},children:x}):(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{style:{flex:1},contentContainerStyle:{flexGrow:1,paddingBottom:D},showsVerticalScrollIndicator:true,nestedScrollEnabled:true,keyboardShouldPersistTaps:"handled",children:x}),O?(0,_jsxRuntime.jsx)(_reactNative.View,{style:footerStyles.footerContainer,children:O}):null]})]})})})};const styles=_reactNative.StyleSheet.create({fullScreenContainer:{..._absoluteFill.absoluteFill,zIndex:1e3},bottomSheetWrapper:{position:"absolute",bottom:0,left:0,right:0},bottomSheet:{backgroundColor:_index.buoyColors.card,borderTopLeftRadius:6,borderTopRightRadius:6,borderWidth:1,borderColor:_index.buoyColors.border,shadowColor:_index.buoyColors.primary,shadowOffset:{width:0,height:-4},shadowOpacity:.2,shadowRadius:12,elevation:20},parkedOffscreen:{left:-9999,top:-9999,opacity:0},parkedFullScreen:{position:"absolute",left:-9999,top:-9999,width:SCREEN.width,height:SCREEN.height,opacity:0},floatingModal:{position:"absolute",backgroundColor:_index.buoyColors.card,borderRadius:6,borderWidth:1,borderColor:_index.buoyColors.border,shadowColor:_index.buoyColors.primary,shadowOffset:{width:0,height:0},shadowOpacity:.3,shadowRadius:20,elevation:24,zIndex:1e3,width:FLOATING_WIDTH,height:FLOATING_HEIGHT},floatingModalDragging:{borderColor:_index.buoyColors.primary,borderWidth:2,shadowColor:_index.buoyColors.primary+"99",shadowOpacity:.8,shadowRadius:12},header:{borderTopLeftRadius:6,borderTopRightRadius:6,backgroundColor:_index.buoyColors.card,minHeight:56,borderWidth:1,borderColor:_index.buoyColors.border,borderBottomWidth:1,borderBottomColor:_index.buoyColors.border},nightBottomSheet:{backgroundColor:_nightTheme.night.color.bg,borderTopLeftRadius:_nightTheme.night.radius.sheet,borderTopRightRadius:_nightTheme.night.radius.sheet,borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:_nightTheme.night.color.accent+"55",shadowColor:_nightTheme.night.color.accent,shadowOffset:{width:0,height:-4},shadowOpacity:.22,shadowRadius:10},nightFloatingModal:{backgroundColor:_nightTheme.night.color.bg,borderRadius:_nightTheme.night.radius.sheet,borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:_nightTheme.night.color.accent+"55",shadowColor:_nightTheme.night.color.accent,shadowOffset:{width:0,height:0},shadowOpacity:.22,shadowRadius:14},nightHeader:{backgroundColor:"transparent",borderWidth:0,borderBottomWidth:0,borderTopLeftRadius:_nightTheme.night.radius.sheet,borderTopRightRadius:_nightTheme.night.radius.sheet},nightContent:{backgroundColor:"transparent"},nightBackdropSheet:{..._absoluteFill.absoluteFill,borderTopLeftRadius:_nightTheme.night.radius.sheet,borderTopRightRadius:_nightTheme.night.radius.sheet,overflow:"hidden"},nightBackdropFloating:{..._absoluteFill.absoluteFill,borderRadius:_nightTheme.night.radius.sheet,overflow:"hidden"},nightDragIndicator:{width:36,height:5,borderRadius:2.5,backgroundColor:_nightTheme.night.color.placeholder,shadowOpacity:0,elevation:0},floatingHeader:{borderTopLeftRadius:6,borderTopRightRadius:6},windowControlsContainer:{position:"absolute",top:4,right:4,zIndex:10},floatingModeHeader:{borderTopLeftRadius:6,borderTopRightRadius:6},headerInner:{flex:1,justifyContent:"center"},dragIndicatorContainer:{alignItems:"center",paddingVertical:8,backgroundColor:"transparent"},dragIndicatorContainerCustom:{minHeight:WINDOW_CONTROLS_BAND,justifyContent:"center",paddingVertical:0,backgroundColor:"transparent"},dragIndicator:{width:40,height:3,backgroundColor:_index.buoyColors.primary,borderRadius:2,shadowColor:_index.buoyColors.primary,shadowOffset:{width:0,height:0},shadowOpacity:.6,shadowRadius:4},floatingDragIndicator:{width:50,height:5,backgroundColor:_index.buoyColors.textMuted},dragIndicatorActive:{backgroundColor:_index.buoyColors.primary,width:40},resizeGripContainer:{position:"absolute",flexDirection:"row",gap:2,marginTop:12},resizeGripLine:{width:12,height:1,backgroundColor:_index.gameUIColors.success,opacity:.6},headerContent:{paddingHorizontal:16,alignItems:"center"},headerControls:{position:"absolute",top:8,right:16,flexDirection:"row",alignItems:"center"},headerTitle:{fontSize:16,fontWeight:"600",color:_index.gameUIColors.primary},headerSubtitle:{fontSize:12,color:_index.gameUIColors.secondary,paddingTop:4},headerHintText:{position:"absolute",top:0,left:0,right:0,bottom:0,justifyContent:"center",alignItems:"center"},hintText:{fontSize:10,color:_index.gameUIColors.muted,fontStyle:"italic"},controlButton:{width:28,height:28,borderRadius:6,justifyContent:"center",alignItems:"center",marginLeft:8},toggleButton:{backgroundColor:_index.gameUIColors.info+"1A",borderWidth:1,borderColor:_index.gameUIColors.info+"33"},closeButton:{width:28,height:28,borderRadius:6,justifyContent:"center",alignItems:"center",backgroundColor:_index.gameUIColors.error+"1A",borderWidth:1,borderColor:_index.gameUIColors.error+"33",marginLeft:8},iconLine:{position:"absolute",top:7.25,left:2,width:12,height:1.5,backgroundColor:_index.gameUIColors.error},content:{flex:1,backgroundColor:_index.buoyColors.base,borderBottomLeftRadius:16,borderBottomRightRadius:16,overflow:"hidden"},cornerHandle:{position:"absolute",zIndex:1},cornerHandleWrapper:{position:"absolute",width:30,height:30,zIndex:1e3},handler:{width:20,height:20,backgroundColor:"transparent",borderRadius:10,borderWidth:0,borderColor:"transparent"},handlerActive:{backgroundColor:_index.gameUIColors.success+"1A",borderColor:_index.gameUIColors.success,borderWidth:2,shadowColor:_index.gameUIColors.success+"99",shadowOffset:{width:0,height:0},shadowOpacity:1,shadowRadius:8}});const footerStyles=_reactNative.StyleSheet.create({footerContainer:{position:"absolute",left:0,right:0,bottom:0,backgroundColor:_index.buoyColors.base,borderBottomLeftRadius:16,borderBottomRightRadius:16}});const JsModal=exports.JsModal=(0,_react.memo)(s=>{const n=(0,_licenseModule.getUseAccountAccess)()();if(n.status!=="admitted")return s.visible?(0,_jsxRuntime.jsx)(_AccountSetup.AccountSetup,{}):null;return(0,_jsxRuntime.jsx)(JsModalComponent,{...s})});