@buoy-gg/shared-ui 7.0.39 → 7.0.41

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 (377) hide show
  1. package/README.md +6 -0
  2. package/lib/commonjs/JsModal.js +13 -61
  3. package/lib/commonjs/JsModal.web.js +32 -95
  4. package/lib/commonjs/clipboard/autoDetectClipboard.js +1 -1
  5. package/lib/commonjs/clipboard/clipboard-impl.web.js +21 -0
  6. package/lib/commonjs/dataViewer/tree/TreeDiffViewer.js +4 -2
  7. package/lib/commonjs/hooks/index.js +1 -1
  8. package/lib/commonjs/hooks/safe-area-impl.js +1 -1
  9. package/lib/commonjs/hooks/usePersistedState.js +1 -1
  10. package/lib/commonjs/hooks/useSafeAreaInsets.web.js +41 -0
  11. package/lib/commonjs/icons/index.js +14 -0
  12. package/lib/commonjs/index.js +34 -0
  13. package/lib/commonjs/license/AccountSetup.js +4 -25
  14. package/lib/commonjs/license/AccountSetup.web.js +78 -64
  15. package/lib/commonjs/license/AccountSetupContent.js +482 -0
  16. package/lib/commonjs/license/FreeAccountPrompt.js +32 -178
  17. package/lib/commonjs/license/LicenseEntryModal.js +5 -12
  18. package/lib/commonjs/license/accountRuntime.js +8 -0
  19. package/lib/commonjs/license/accountRuntime.web.js +9 -0
  20. package/lib/commonjs/license/licenseModule.js +2 -0
  21. package/lib/commonjs/settings/components/BubbleSettingsSection.js +1 -1
  22. package/lib/commonjs/storage/definePersistedSetting.js +1 -1
  23. package/lib/commonjs/stores/ignoredPatternsCore.js +8 -1
  24. package/lib/commonjs/stores/ignoredPatternsStore.js +10 -199
  25. package/lib/commonjs/stores/ignoredPatternsStore.shared.js +205 -0
  26. package/lib/commonjs/stores/ignoredPatternsStore.web.js +10 -230
  27. package/lib/commonjs/ui/backgrounds/backgroundStore.js +1 -1
  28. package/lib/commonjs/ui/backgrounds/variants/wormhole.js +3 -0
  29. package/lib/commonjs/ui/components/CopyButton.js +1 -1
  30. package/lib/commonjs/ui/components/EventStepperFooter.js +1 -1
  31. package/lib/commonjs/ui/components/ToolFooter.js +1 -1
  32. package/lib/commonjs/ui/floating/FloatingTool.web.js +12 -2
  33. package/lib/commonjs/ui/night/primitives.js +10 -3
  34. package/lib/commonjs/ui/otto/OttoSprite.js +1 -1
  35. package/lib/commonjs/utils/browserAsyncStorage.js +157 -0
  36. package/lib/commonjs/utils/browserNavigation.js +116 -0
  37. package/lib/commonjs/utils/devServer.js +8 -4
  38. package/lib/commonjs/utils/devServer.web.js +10 -0
  39. package/lib/commonjs/utils/domRuntime.js +143 -0
  40. package/lib/commonjs/utils/expoRouterModule.js +51 -0
  41. package/lib/commonjs/utils/expoRouterModule.web.js +14 -0
  42. package/lib/commonjs/utils/getSafeAreaInsets.web.js +35 -0
  43. package/lib/commonjs/utils/index.js +111 -4
  44. package/lib/commonjs/utils/loadToolModule.js +46 -0
  45. package/lib/commonjs/utils/loadToolModule.web.js +12 -0
  46. package/lib/commonjs/utils/modalStorage.js +42 -0
  47. package/lib/commonjs/utils/nativeWeb.js +454 -0
  48. package/lib/commonjs/utils/persistentStorage.web.js +78 -0
  49. package/lib/commonjs/utils/reloadApp.js +18 -57
  50. package/lib/commonjs/utils/reloadPlatform.js +37 -0
  51. package/lib/commonjs/utils/reloadPlatform.web.js +17 -0
  52. package/lib/commonjs/utils/safeExpoRouter.js +3 -53
  53. package/lib/commonjs/utils/safeExpoRouter.web.js +48 -0
  54. package/lib/commonjs/utils/toolModules.js +25 -0
  55. package/lib/module/JsModal.js +11 -59
  56. package/lib/module/JsModal.web.js +28 -91
  57. package/lib/module/clipboard/autoDetectClipboard.js +2 -2
  58. package/lib/module/clipboard/clipboard-impl.web.js +14 -0
  59. package/lib/module/dataViewer/tree/TreeDiffViewer.js +4 -2
  60. package/lib/module/hooks/index.js +2 -2
  61. package/lib/module/hooks/safe-area-impl.js +1 -1
  62. package/lib/module/hooks/usePersistedState.js +1 -1
  63. package/lib/module/hooks/useSafeAreaInsets.web.js +30 -0
  64. package/lib/module/icons/index.js +2 -1
  65. package/lib/module/index.js +3 -0
  66. package/lib/module/license/AccountSetup.js +5 -26
  67. package/lib/module/license/AccountSetup.web.js +79 -65
  68. package/lib/module/license/AccountSetupContent.js +476 -0
  69. package/lib/module/license/FreeAccountPrompt.js +27 -176
  70. package/lib/module/license/LicenseEntryModal.js +6 -13
  71. package/lib/module/license/accountRuntime.js +3 -0
  72. package/lib/module/license/accountRuntime.web.js +4 -0
  73. package/lib/module/license/licenseModule.js +2 -0
  74. package/lib/module/settings/components/BubbleSettingsSection.js +1 -1
  75. package/lib/module/storage/definePersistedSetting.js +1 -1
  76. package/lib/module/stores/ignoredPatternsCore.js +8 -1
  77. package/lib/module/stores/ignoredPatternsStore.js +1 -187
  78. package/lib/module/stores/ignoredPatternsStore.shared.js +189 -0
  79. package/lib/module/stores/ignoredPatternsStore.web.js +1 -219
  80. package/lib/module/ui/backgrounds/backgroundStore.js +1 -1
  81. package/lib/module/ui/backgrounds/variants/wormhole.js +3 -0
  82. package/lib/module/ui/components/CopyButton.js +1 -1
  83. package/lib/module/ui/components/EventStepperFooter.js +1 -1
  84. package/lib/module/ui/components/ToolFooter.js +1 -1
  85. package/lib/module/ui/floating/FloatingTool.web.js +12 -2
  86. package/lib/module/ui/night/primitives.js +11 -4
  87. package/lib/module/ui/otto/OttoSprite.js +1 -1
  88. package/lib/module/utils/browserAsyncStorage.js +151 -0
  89. package/lib/module/utils/browserNavigation.js +108 -0
  90. package/lib/module/utils/devServer.js +8 -4
  91. package/lib/module/utils/devServer.web.js +6 -0
  92. package/lib/module/utils/domRuntime.js +134 -0
  93. package/lib/module/utils/expoRouterModule.js +46 -0
  94. package/lib/module/utils/expoRouterModule.web.js +9 -0
  95. package/lib/module/utils/getSafeAreaInsets.web.js +31 -0
  96. package/lib/module/utils/index.js +9 -4
  97. package/lib/module/utils/loadToolModule.js +42 -0
  98. package/lib/module/utils/loadToolModule.web.js +8 -0
  99. package/lib/module/utils/modalStorage.js +37 -0
  100. package/lib/module/utils/nativeWeb.js +107 -0
  101. package/lib/module/utils/persistentStorage.web.js +72 -0
  102. package/lib/module/utils/reloadApp.js +13 -51
  103. package/lib/module/utils/reloadPlatform.js +31 -0
  104. package/lib/module/utils/reloadPlatform.web.js +11 -0
  105. package/lib/module/utils/safeExpoRouter.js +3 -53
  106. package/lib/module/utils/safeExpoRouter.web.js +37 -0
  107. package/lib/module/utils/toolModules.js +19 -0
  108. package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
  109. package/lib/typescript/commonjs/JsModal.web.d.ts +7 -18
  110. package/lib/typescript/commonjs/JsModal.web.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/clipboard/clipboard-impl.web.d.ts +5 -0
  112. package/lib/typescript/commonjs/clipboard/clipboard-impl.web.d.ts.map +1 -0
  113. package/lib/typescript/commonjs/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  115. package/lib/typescript/commonjs/hooks/useSafeAreaInsets.web.d.ts +6 -0
  116. package/lib/typescript/commonjs/hooks/useSafeAreaInsets.web.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/icons/index.d.ts +1 -0
  118. package/lib/typescript/commonjs/icons/index.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/index.d.ts +2 -0
  120. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/license/AccountSetup.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/license/AccountSetup.web.d.ts +1 -1
  123. package/lib/typescript/commonjs/license/AccountSetup.web.d.ts.map +1 -1
  124. package/lib/typescript/commonjs/license/AccountSetupContent.d.ts +11 -0
  125. package/lib/typescript/commonjs/license/AccountSetupContent.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts +3 -15
  127. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +1 -1
  128. package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/license/accountRuntime.d.ts +2 -0
  130. package/lib/typescript/commonjs/license/accountRuntime.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/license/accountRuntime.web.d.ts +2 -0
  132. package/lib/typescript/commonjs/license/accountRuntime.web.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/license/licenseModule.d.ts +3 -1
  134. package/lib/typescript/commonjs/license/licenseModule.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/stores/ignoredPatternsCore.d.ts +5 -1
  136. package/lib/typescript/commonjs/stores/ignoredPatternsCore.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts +1 -59
  138. package/lib/typescript/commonjs/stores/ignoredPatternsStore.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts +60 -0
  140. package/lib/typescript/commonjs/stores/ignoredPatternsStore.shared.d.ts.map +1 -0
  141. package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts +1 -71
  142. package/lib/typescript/commonjs/stores/ignoredPatternsStore.web.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts +1 -1
  146. package/lib/typescript/commonjs/utils/browserAsyncStorage.d.ts +25 -0
  147. package/lib/typescript/commonjs/utils/browserAsyncStorage.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/utils/browserNavigation.d.ts +31 -0
  149. package/lib/typescript/commonjs/utils/browserNavigation.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/utils/devServer.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/utils/devServer.web.d.ts +2 -0
  152. package/lib/typescript/commonjs/utils/devServer.web.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/utils/domRuntime.d.ts +27 -0
  154. package/lib/typescript/commonjs/utils/domRuntime.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/utils/expoRouterModule.d.ts +3 -0
  156. package/lib/typescript/commonjs/utils/expoRouterModule.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/utils/expoRouterModule.web.d.ts +3 -0
  158. package/lib/typescript/commonjs/utils/expoRouterModule.web.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/utils/getSafeAreaInsets.web.d.ts +8 -0
  160. package/lib/typescript/commonjs/utils/getSafeAreaInsets.web.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/utils/index.d.ts +5 -0
  162. package/lib/typescript/commonjs/utils/index.d.ts.map +1 -1
  163. package/lib/typescript/commonjs/utils/loadToolModule.d.ts +3 -0
  164. package/lib/typescript/commonjs/utils/loadToolModule.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/utils/loadToolModule.web.d.ts +2 -0
  166. package/lib/typescript/commonjs/utils/loadToolModule.web.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/utils/modalStorage.d.ts +21 -0
  168. package/lib/typescript/commonjs/utils/modalStorage.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/utils/nativeWeb.d.ts +22 -0
  170. package/lib/typescript/commonjs/utils/nativeWeb.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/utils/persistentStorage.web.d.ts +6 -0
  172. package/lib/typescript/commonjs/utils/persistentStorage.web.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/utils/reloadApp.d.ts +7 -25
  174. package/lib/typescript/commonjs/utils/reloadApp.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/utils/reloadPlatform.d.ts +8 -0
  176. package/lib/typescript/commonjs/utils/reloadPlatform.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/utils/reloadPlatform.web.d.ts +4 -0
  178. package/lib/typescript/commonjs/utils/reloadPlatform.web.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/utils/safeExpoRouter.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/utils/safeExpoRouter.web.d.ts +43 -0
  181. package/lib/typescript/commonjs/utils/safeExpoRouter.web.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/utils/toolModules.d.ts +5 -0
  183. package/lib/typescript/commonjs/utils/toolModules.d.ts.map +1 -0
  184. package/lib/typescript/module/JsModal.d.ts.map +1 -1
  185. package/lib/typescript/module/JsModal.web.d.ts +7 -18
  186. package/lib/typescript/module/JsModal.web.d.ts.map +1 -1
  187. package/lib/typescript/module/clipboard/clipboard-impl.web.d.ts +5 -0
  188. package/lib/typescript/module/clipboard/clipboard-impl.web.d.ts.map +1 -0
  189. package/lib/typescript/module/dataViewer/tree/TreeDiffViewer.d.ts.map +1 -1
  190. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  191. package/lib/typescript/module/hooks/useSafeAreaInsets.web.d.ts +6 -0
  192. package/lib/typescript/module/hooks/useSafeAreaInsets.web.d.ts.map +1 -0
  193. package/lib/typescript/module/icons/index.d.ts +1 -0
  194. package/lib/typescript/module/icons/index.d.ts.map +1 -1
  195. package/lib/typescript/module/index.d.ts +2 -0
  196. package/lib/typescript/module/index.d.ts.map +1 -1
  197. package/lib/typescript/module/license/AccountSetup.d.ts.map +1 -1
  198. package/lib/typescript/module/license/AccountSetup.web.d.ts +1 -1
  199. package/lib/typescript/module/license/AccountSetup.web.d.ts.map +1 -1
  200. package/lib/typescript/module/license/AccountSetupContent.d.ts +11 -0
  201. package/lib/typescript/module/license/AccountSetupContent.d.ts.map +1 -0
  202. package/lib/typescript/module/license/FreeAccountPrompt.d.ts +3 -15
  203. package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +1 -1
  204. package/lib/typescript/module/license/LicenseEntryModal.d.ts.map +1 -1
  205. package/lib/typescript/module/license/accountRuntime.d.ts +2 -0
  206. package/lib/typescript/module/license/accountRuntime.d.ts.map +1 -0
  207. package/lib/typescript/module/license/accountRuntime.web.d.ts +2 -0
  208. package/lib/typescript/module/license/accountRuntime.web.d.ts.map +1 -0
  209. package/lib/typescript/module/license/licenseModule.d.ts +3 -1
  210. package/lib/typescript/module/license/licenseModule.d.ts.map +1 -1
  211. package/lib/typescript/module/stores/ignoredPatternsCore.d.ts +5 -1
  212. package/lib/typescript/module/stores/ignoredPatternsCore.d.ts.map +1 -1
  213. package/lib/typescript/module/stores/ignoredPatternsStore.d.ts +1 -59
  214. package/lib/typescript/module/stores/ignoredPatternsStore.d.ts.map +1 -1
  215. package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts +60 -0
  216. package/lib/typescript/module/stores/ignoredPatternsStore.shared.d.ts.map +1 -0
  217. package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts +1 -71
  218. package/lib/typescript/module/stores/ignoredPatternsStore.web.d.ts.map +1 -1
  219. package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts.map +1 -1
  220. package/lib/typescript/module/ui/night/primitives.d.ts.map +1 -1
  221. package/lib/typescript/module/ui/otto/ottoEngine.d.ts +1 -1
  222. package/lib/typescript/module/utils/browserAsyncStorage.d.ts +25 -0
  223. package/lib/typescript/module/utils/browserAsyncStorage.d.ts.map +1 -0
  224. package/lib/typescript/module/utils/browserNavigation.d.ts +31 -0
  225. package/lib/typescript/module/utils/browserNavigation.d.ts.map +1 -0
  226. package/lib/typescript/module/utils/devServer.d.ts.map +1 -1
  227. package/lib/typescript/module/utils/devServer.web.d.ts +2 -0
  228. package/lib/typescript/module/utils/devServer.web.d.ts.map +1 -0
  229. package/lib/typescript/module/utils/domRuntime.d.ts +27 -0
  230. package/lib/typescript/module/utils/domRuntime.d.ts.map +1 -0
  231. package/lib/typescript/module/utils/expoRouterModule.d.ts +3 -0
  232. package/lib/typescript/module/utils/expoRouterModule.d.ts.map +1 -0
  233. package/lib/typescript/module/utils/expoRouterModule.web.d.ts +3 -0
  234. package/lib/typescript/module/utils/expoRouterModule.web.d.ts.map +1 -0
  235. package/lib/typescript/module/utils/getSafeAreaInsets.web.d.ts +8 -0
  236. package/lib/typescript/module/utils/getSafeAreaInsets.web.d.ts.map +1 -0
  237. package/lib/typescript/module/utils/index.d.ts +5 -0
  238. package/lib/typescript/module/utils/index.d.ts.map +1 -1
  239. package/lib/typescript/module/utils/loadToolModule.d.ts +3 -0
  240. package/lib/typescript/module/utils/loadToolModule.d.ts.map +1 -0
  241. package/lib/typescript/module/utils/loadToolModule.web.d.ts +2 -0
  242. package/lib/typescript/module/utils/loadToolModule.web.d.ts.map +1 -0
  243. package/lib/typescript/module/utils/modalStorage.d.ts +21 -0
  244. package/lib/typescript/module/utils/modalStorage.d.ts.map +1 -0
  245. package/lib/typescript/module/utils/nativeWeb.d.ts +22 -0
  246. package/lib/typescript/module/utils/nativeWeb.d.ts.map +1 -0
  247. package/lib/typescript/module/utils/persistentStorage.web.d.ts +6 -0
  248. package/lib/typescript/module/utils/persistentStorage.web.d.ts.map +1 -0
  249. package/lib/typescript/module/utils/reloadApp.d.ts +7 -25
  250. package/lib/typescript/module/utils/reloadApp.d.ts.map +1 -1
  251. package/lib/typescript/module/utils/reloadPlatform.d.ts +8 -0
  252. package/lib/typescript/module/utils/reloadPlatform.d.ts.map +1 -0
  253. package/lib/typescript/module/utils/reloadPlatform.web.d.ts +4 -0
  254. package/lib/typescript/module/utils/reloadPlatform.web.d.ts.map +1 -0
  255. package/lib/typescript/module/utils/safeExpoRouter.d.ts.map +1 -1
  256. package/lib/typescript/module/utils/safeExpoRouter.web.d.ts +43 -0
  257. package/lib/typescript/module/utils/safeExpoRouter.web.d.ts.map +1 -0
  258. package/lib/typescript/module/utils/toolModules.d.ts +5 -0
  259. package/lib/typescript/module/utils/toolModules.d.ts.map +1 -0
  260. package/lib/web/asyncStorage.mjs +2 -0
  261. package/lib/web/chunks/chunk-2MHKRRQW.mjs +8 -0
  262. package/lib/web/chunks/chunk-2Q3SDPH2.mjs +14 -0
  263. package/lib/web/chunks/chunk-34YQ42KI.mjs +2 -0
  264. package/lib/web/chunks/chunk-3NNNCQYP.mjs +14 -0
  265. package/lib/web/chunks/chunk-3UTMGIUG.mjs +2 -0
  266. package/lib/web/chunks/chunk-46CXXOQB.mjs +2 -0
  267. package/lib/web/chunks/chunk-475BSDCB.mjs +2 -0
  268. package/lib/web/chunks/chunk-53J2FMUD.mjs +2 -0
  269. package/lib/web/chunks/chunk-552W4COI.mjs +2 -0
  270. package/lib/web/chunks/chunk-56TTTMX4.mjs +6145 -0
  271. package/lib/web/chunks/chunk-5LOQZINQ.mjs +14 -0
  272. package/lib/web/chunks/chunk-5NOIO6ZM.mjs +16 -0
  273. package/lib/web/chunks/chunk-5NZOQR6Q.mjs +2 -0
  274. package/lib/web/chunks/chunk-6CCRCSA2.mjs +2 -0
  275. package/lib/web/chunks/chunk-6Q52HRBL.mjs +2 -0
  276. package/lib/web/chunks/chunk-6TEDFSNM.mjs +655 -0
  277. package/lib/web/chunks/chunk-7BMRSMHN.mjs +2 -0
  278. package/lib/web/chunks/chunk-A2SOFE47.mjs +24 -0
  279. package/lib/web/chunks/chunk-A7KJCK4R.mjs +14 -0
  280. package/lib/web/chunks/chunk-AEXGGXS7.mjs +2 -0
  281. package/lib/web/chunks/chunk-AGD7ZT6O.mjs +15 -0
  282. package/lib/web/chunks/chunk-AIEOQWNG.mjs +2 -0
  283. package/lib/web/chunks/chunk-ASTM35HG.mjs +16 -0
  284. package/lib/web/chunks/chunk-AZBMFPMX.mjs +1421 -0
  285. package/lib/web/chunks/chunk-B2V2UDCU.mjs +16 -0
  286. package/lib/web/chunks/chunk-BFGKGTAC.mjs +2 -0
  287. package/lib/web/chunks/chunk-BHW6AFO6.mjs +2 -0
  288. package/lib/web/chunks/chunk-BWRW3NJ2.mjs +16 -0
  289. package/lib/web/chunks/chunk-CBM2IZAK.mjs +2 -0
  290. package/lib/web/chunks/chunk-CDLCFF44.mjs +2 -0
  291. package/lib/web/chunks/chunk-CE5U3CSQ.mjs +2 -0
  292. package/lib/web/chunks/chunk-CI5CO7FQ.mjs +2 -0
  293. package/lib/web/chunks/chunk-CIB4U2YK.mjs +2 -0
  294. package/lib/web/chunks/chunk-CLLTZQGD.mjs +596 -0
  295. package/lib/web/chunks/chunk-D5HQLRFW.mjs +655 -0
  296. package/lib/web/chunks/chunk-DZDTNXXK.mjs +2 -0
  297. package/lib/web/chunks/chunk-FDOZ6YSS.mjs +2 -0
  298. package/lib/web/chunks/chunk-FMEWNGQO.mjs +2 -0
  299. package/lib/web/chunks/chunk-G4DH7GMT.mjs +2 -0
  300. package/lib/web/chunks/chunk-GBUZCZE4.mjs +2 -0
  301. package/lib/web/chunks/chunk-GF5C5DVX.mjs +2 -0
  302. package/lib/web/chunks/chunk-GLMS5ZLJ.mjs +445 -0
  303. package/lib/web/chunks/chunk-GNGMIA7V.mjs +2 -0
  304. package/lib/web/chunks/chunk-GTYIS7H7.mjs +15 -0
  305. package/lib/web/chunks/chunk-HJ36IONA.mjs +15 -0
  306. package/lib/web/chunks/chunk-HXPTZMAZ.mjs +2 -0
  307. package/lib/web/chunks/chunk-I27M4JCS.mjs +2 -0
  308. package/lib/web/chunks/chunk-IVCT27JB.mjs +2 -0
  309. package/lib/web/chunks/chunk-JG4QSK5B.mjs +2 -0
  310. package/lib/web/chunks/chunk-JR7BJW6B.mjs +389 -0
  311. package/lib/web/chunks/chunk-K46ZJUXJ.mjs +90 -0
  312. package/lib/web/chunks/chunk-K4LXMO4D.mjs +2 -0
  313. package/lib/web/chunks/chunk-K7CGIEFU.mjs +2 -0
  314. package/lib/web/chunks/chunk-KBTYK5YE.mjs +662 -0
  315. package/lib/web/chunks/chunk-KHP6CSSM.mjs +2 -0
  316. package/lib/web/chunks/chunk-KRDRIW7T.mjs +14 -0
  317. package/lib/web/chunks/chunk-L2DTKDER.mjs +2 -0
  318. package/lib/web/chunks/chunk-LFDFDGHY.mjs +655 -0
  319. package/lib/web/chunks/chunk-LZ7FZZ7R.mjs +2 -0
  320. package/lib/web/chunks/chunk-MAIUUK4E.mjs +2 -0
  321. package/lib/web/chunks/chunk-MKJKS3IG.mjs +275 -0
  322. package/lib/web/chunks/chunk-MRQKVLXG.mjs +2 -0
  323. package/lib/web/chunks/chunk-NK3OISOL.mjs +14 -0
  324. package/lib/web/chunks/chunk-NLJDDIXW.mjs +2 -0
  325. package/lib/web/chunks/chunk-OENR3XFI.mjs +11 -0
  326. package/lib/web/chunks/chunk-OZB3VKZE.mjs +2 -0
  327. package/lib/web/chunks/chunk-P64PFJT3.mjs +17618 -0
  328. package/lib/web/chunks/chunk-PACPGYH7.mjs +2 -0
  329. package/lib/web/chunks/chunk-PART6HOE.mjs +14 -0
  330. package/lib/web/chunks/chunk-PMRXUQRH.mjs +2 -0
  331. package/lib/web/chunks/chunk-PTK5FO6C.mjs +2 -0
  332. package/lib/web/chunks/chunk-PZ45TQ55.mjs +14 -0
  333. package/lib/web/chunks/chunk-Q5LN7GET.mjs +17624 -0
  334. package/lib/web/chunks/chunk-QCD6T6L4.mjs +297 -0
  335. package/lib/web/chunks/chunk-QD5EUANU.mjs +2 -0
  336. package/lib/web/chunks/chunk-QJTECJCO.mjs +2 -0
  337. package/lib/web/chunks/chunk-QPIZURPZ.mjs +2 -0
  338. package/lib/web/chunks/chunk-QPY45R5F.mjs +274 -0
  339. package/lib/web/chunks/chunk-R2SGZIG5.mjs +2 -0
  340. package/lib/web/chunks/chunk-S3GYQYVJ.mjs +16 -0
  341. package/lib/web/chunks/chunk-SCCXVTDM.mjs +2 -0
  342. package/lib/web/chunks/chunk-SHJHD646.mjs +2 -0
  343. package/lib/web/chunks/chunk-TCRVZ55E.mjs +2 -0
  344. package/lib/web/chunks/chunk-TJ6ZVV2L.mjs +15 -0
  345. package/lib/web/chunks/chunk-TPSY4RC3.mjs +14 -0
  346. package/lib/web/chunks/chunk-U5KNX5O6.mjs +17624 -0
  347. package/lib/web/chunks/chunk-UCKELQSM.mjs +2 -0
  348. package/lib/web/chunks/chunk-UGGCYHRH.mjs +15 -0
  349. package/lib/web/chunks/chunk-UNYQJZET.mjs +16 -0
  350. package/lib/web/chunks/chunk-VE72SWLV.mjs +15 -0
  351. package/lib/web/chunks/chunk-VKONO6MI.mjs +2 -0
  352. package/lib/web/chunks/chunk-W4BGMPJO.mjs +2 -0
  353. package/lib/web/chunks/chunk-WHNEEKLR.mjs +2 -0
  354. package/lib/web/chunks/chunk-WLGUP3KY.mjs +16 -0
  355. package/lib/web/chunks/chunk-WY7D4WBZ.mjs +2 -0
  356. package/lib/web/chunks/chunk-XRNB2MHO.mjs +107 -0
  357. package/lib/web/chunks/chunk-XXTIAXQY.mjs +2 -0
  358. package/lib/web/chunks/chunk-XYUAUO57.mjs +2 -0
  359. package/lib/web/chunks/chunk-YG6DIKQD.mjs +2 -0
  360. package/lib/web/chunks/chunk-YIZFMU66.mjs +2 -0
  361. package/lib/web/chunks/chunk-YOGAPOGC.mjs +2 -0
  362. package/lib/web/chunks/chunk-Z7373DS5.mjs +2 -0
  363. package/lib/web/chunks/chunk-Z76GRN66.mjs +17627 -0
  364. package/lib/web/chunks/persistentStorage.web-4FBAOYJ4.mjs +12 -0
  365. package/lib/web/chunks/persistentStorage.web-7W3Y6Q24.mjs +12 -0
  366. package/lib/web/chunks/persistentStorage.web-GOWNFMVT.mjs +2 -0
  367. package/lib/web/chunks/persistentStorage.web-RF47FXIK.mjs +12 -0
  368. package/lib/web/colors.mjs +2 -0
  369. package/lib/web/dataViewer.mjs +3 -0
  370. package/lib/web/floating.mjs +2 -0
  371. package/lib/web/history.mjs +2 -0
  372. package/lib/web/hooks.mjs +2 -0
  373. package/lib/web/index.mjs +15 -0
  374. package/lib/web/native.mjs +2 -0
  375. package/lib/web/ui.mjs +2 -0
  376. package/lib/web/utils.mjs +2 -0
  377. package/package.json +118 -36
@@ -0,0 +1,297 @@
1
+ "use client";
2
+ import {
3
+ ChevronDownGlyph,
4
+ ChevronRightGlyph,
5
+ monoFont
6
+ } from "./chunk-56TTTMX4.mjs";
7
+ import {
8
+ night
9
+ } from "./chunk-XRNB2MHO.mjs";
10
+
11
+ // src/ui/components/CompactRow.tsx
12
+ import { View, Text, TouchableOpacity, StyleSheet } from "react-native-web";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ function CompactRow({
15
+ statusDotColor,
16
+ statusLabel,
17
+ statusSublabel,
18
+ primaryText,
19
+ secondaryText,
20
+ secondaryAccessory,
21
+ expandedContent,
22
+ isExpanded,
23
+ badgeText,
24
+ badgeColor,
25
+ customBadge,
26
+ showChevron,
27
+ bottomRightText,
28
+ isSelected,
29
+ onPress,
30
+ disabled,
31
+ expandedGlowColor,
32
+ testID,
33
+ statusTestID,
34
+ statusSublabelTestID,
35
+ primaryTestID,
36
+ secondaryTestID,
37
+ accessibilityLabel,
38
+ trailingAction
39
+ }) {
40
+ return /* @__PURE__ */ jsx(View, { style: [styles.rowWrapper, isExpanded && styles.rowWrapperExpanded], children: /* @__PURE__ */ jsxs(
41
+ View,
42
+ {
43
+ style: [
44
+ styles.row,
45
+ isSelected && styles.selectedRow,
46
+ isExpanded && [
47
+ styles.expandedRowActive,
48
+ {
49
+ borderColor: expandedGlowColor || night.color.accent,
50
+ // The resting hairline sets borderBottomColor specifically, and a
51
+ // specific side always beats the generic borderColor — restate it
52
+ // or the expanded card's bottom edge keeps the faint separator.
53
+ borderBottomColor: expandedGlowColor || night.color.accent,
54
+ shadowColor: expandedGlowColor || night.color.accent
55
+ }
56
+ ]
57
+ ],
58
+ children: [
59
+ /* @__PURE__ */ jsxs(View, { style: styles.headerRow, children: [
60
+ /* @__PURE__ */ jsx(
61
+ TouchableOpacity,
62
+ {
63
+ style: styles.headerPress,
64
+ onPress,
65
+ activeOpacity: 0.8,
66
+ disabled: disabled || !onPress,
67
+ testID,
68
+ accessibilityLabel,
69
+ accessibilityRole: onPress ? "button" : void 0,
70
+ children: /* @__PURE__ */ jsxs(View, { style: styles.rowContent, children: [
71
+ /* @__PURE__ */ jsxs(View, { style: styles.statusSection, children: [
72
+ /* @__PURE__ */ jsx(
73
+ View,
74
+ {
75
+ style: [styles.statusDot, { backgroundColor: statusDotColor }]
76
+ }
77
+ ),
78
+ /* @__PURE__ */ jsxs(View, { style: styles.statusInfo, children: [
79
+ /* @__PURE__ */ jsx(
80
+ Text,
81
+ {
82
+ style: [styles.statusLabel, { color: statusDotColor }],
83
+ numberOfLines: 1,
84
+ testID: statusTestID,
85
+ children: statusLabel
86
+ }
87
+ ),
88
+ statusSublabel ? /* @__PURE__ */ jsx(
89
+ Text,
90
+ {
91
+ style: styles.observerText,
92
+ numberOfLines: 1,
93
+ testID: statusSublabelTestID,
94
+ children: statusSublabel
95
+ }
96
+ ) : null
97
+ ] })
98
+ ] }),
99
+ /* @__PURE__ */ jsxs(View, { style: styles.querySection, children: [
100
+ /* @__PURE__ */ jsx(
101
+ Text,
102
+ {
103
+ style: styles.queryHash,
104
+ numberOfLines: isExpanded ? void 0 : 2,
105
+ testID: primaryTestID,
106
+ children: primaryText
107
+ }
108
+ ),
109
+ !isExpanded && (secondaryText || secondaryAccessory) ? /* @__PURE__ */ jsxs(View, { style: styles.secondaryRow, children: [
110
+ secondaryText ? /* @__PURE__ */ jsx(
111
+ Text,
112
+ {
113
+ style: styles.secondaryText,
114
+ numberOfLines: 1,
115
+ testID: secondaryTestID,
116
+ children: secondaryText
117
+ }
118
+ ) : null,
119
+ secondaryAccessory
120
+ ] }) : null
121
+ ] }),
122
+ /* @__PURE__ */ jsxs(View, { style: styles.rightSection, children: [
123
+ (customBadge || badgeText !== void 0 || !isExpanded && bottomRightText) && /* @__PURE__ */ jsxs(View, { style: styles.badgeContainer, children: [
124
+ customBadge ? customBadge : badgeText !== void 0 ? /* @__PURE__ */ jsx(
125
+ Text,
126
+ {
127
+ style: [
128
+ styles.statusBadge,
129
+ { color: badgeColor || statusDotColor }
130
+ ],
131
+ children: badgeText
132
+ }
133
+ ) : null,
134
+ !isExpanded && bottomRightText ? /* @__PURE__ */ jsx(Text, { style: styles.bottomRightText, numberOfLines: 1, children: bottomRightText }) : null
135
+ ] }),
136
+ showChevron && /* @__PURE__ */ jsx(View, { style: styles.chevronContainer, children: isExpanded ? /* @__PURE__ */ jsx(ChevronDownGlyph, { size: 14, color: night.color.textTertiary }) : /* @__PURE__ */ jsx(ChevronRightGlyph, { size: 14, color: night.color.textTertiary }) })
137
+ ] })
138
+ ] })
139
+ }
140
+ ),
141
+ trailingAction ? /* @__PURE__ */ jsx(View, { style: styles.trailingAction, children: trailingAction }) : null
142
+ ] }),
143
+ isExpanded && expandedContent && /* @__PURE__ */ jsx(View, { style: styles.expandedContent, children: expandedContent })
144
+ ]
145
+ }
146
+ ) });
147
+ }
148
+ var styles = StyleSheet.create({
149
+ rowWrapper: {
150
+ position: "relative",
151
+ marginHorizontal: 8,
152
+ marginVertical: 3
153
+ },
154
+ /** The expanded card scales to 1.02 and grows a 2px glow border, which eats
155
+ * the 3px resting margin — without extra room its bottom edge sits on the
156
+ * next card. */
157
+ rowWrapperExpanded: {
158
+ marginVertical: 12
159
+ },
160
+ row: {
161
+ // Translucent night scrim so the shared ToolBackground reads through —
162
+ // kept in step with DevToolsCard (same fill, same luminance contract).
163
+ backgroundColor: "rgba(12, 12, 12, 0.9)",
164
+ borderRadius: 8,
165
+ borderWidth: 1,
166
+ borderColor: night.color.border,
167
+ // …separated by a single hairline instead of four borders per row.
168
+ // Declared after borderWidth so the specific side wins on the chat path.
169
+ borderBottomWidth: 1,
170
+ borderBottomColor: night.color.separator,
171
+ padding: 12,
172
+ paddingHorizontal: 12,
173
+ transform: [{ scale: 1 }]
174
+ },
175
+ selectedRow: {
176
+ // Neutral fill, no outline, no lift — the same selection language as the
177
+ // sidebar. The classic path keeps its tinted, scaled, glowing card.
178
+ backgroundColor: night.color.accentSoft,
179
+ borderColor: night.color.accentBorderStrong,
180
+ transform: [{ scale: 1.01 }],
181
+ shadowColor: night.color.accent,
182
+ shadowOffset: { width: 0, height: 0 },
183
+ shadowOpacity: 0.1,
184
+ shadowRadius: 8,
185
+ elevation: 2
186
+ },
187
+ expandedRowActive: {
188
+ transform: [{ scale: 1.02 }],
189
+ borderWidth: 2,
190
+ paddingBottom: 16,
191
+ shadowOffset: { width: 0, height: 0 },
192
+ shadowOpacity: 0.8,
193
+ shadowRadius: 20,
194
+ elevation: 10
195
+ },
196
+ headerRow: {
197
+ flexDirection: "row",
198
+ alignItems: "center"
199
+ },
200
+ headerPress: {
201
+ flex: 1,
202
+ minWidth: 0
203
+ },
204
+ trailingAction: {
205
+ marginLeft: 8,
206
+ justifyContent: "center"
207
+ },
208
+ rowContent: {
209
+ flexDirection: "row",
210
+ alignItems: "center",
211
+ justifyContent: "space-between"
212
+ },
213
+ statusSection: {
214
+ flexDirection: "row",
215
+ alignItems: "center",
216
+ gap: 8,
217
+ width: 90,
218
+ // Fixed width instead of flex to ensure consistent alignment
219
+ minWidth: 90
220
+ },
221
+ statusDot: {
222
+ width: 8,
223
+ height: 8,
224
+ borderRadius: 4
225
+ },
226
+ statusInfo: {
227
+ flex: 1,
228
+ maxWidth: 70
229
+ // Ensure status text doesn't overflow
230
+ },
231
+ statusLabel: {
232
+ fontSize: 11,
233
+ fontWeight: "600",
234
+ lineHeight: 14
235
+ },
236
+ observerText: {
237
+ fontSize: 10,
238
+ color: night.color.textTertiary,
239
+ marginTop: 1
240
+ },
241
+ querySection: {
242
+ flex: 2,
243
+ paddingHorizontal: 12
244
+ },
245
+ queryHash: {
246
+ fontFamily: monoFont,
247
+ fontSize: 12,
248
+ color: night.color.text,
249
+ lineHeight: 16
250
+ },
251
+ secondaryRow: {
252
+ flexDirection: "row",
253
+ alignItems: "center",
254
+ gap: 6,
255
+ marginTop: 1
256
+ },
257
+ secondaryText: {
258
+ fontSize: 10,
259
+ color: night.color.textTertiary,
260
+ marginTop: 1
261
+ },
262
+ rightSection: {
263
+ flexDirection: "row",
264
+ alignItems: "center",
265
+ gap: 8
266
+ },
267
+ badgeContainer: {
268
+ flexDirection: "column",
269
+ alignItems: "flex-end",
270
+ gap: 2
271
+ },
272
+ statusBadge: {
273
+ fontSize: 12,
274
+ fontWeight: "600",
275
+ fontVariant: ["tabular-nums"]
276
+ },
277
+ chevronContainer: {
278
+ padding: 2
279
+ },
280
+ expandedContent: {
281
+ marginTop: 8,
282
+ paddingTop: 8,
283
+ borderTopWidth: 1,
284
+ borderTopColor: night.color.separator,
285
+ marginLeft: 24
286
+ // Align with content after status dot
287
+ },
288
+ bottomRightText: {
289
+ fontSize: 9,
290
+ color: night.color.textTertiary,
291
+ fontFamily: monoFont
292
+ }
293
+ });
294
+
295
+ export {
296
+ CompactRow
297
+ };
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{a as t}from"./chunk-GF5C5DVX.mjs";import{Wb as T,Yb as C,ld as w}from"./chunk-CIB4U2YK.mjs";import{R as a,W as x,Y as o,x as p}from"./chunk-K4LXMO4D.mjs";import{jsx as r,jsxs as i}from"react/jsx-runtime";function k({statusDotColor:s,statusLabel:R,statusSublabel:f,primaryText:D,secondaryText:l,secondaryAccessory:y,expandedContent:m,isExpanded:n,badgeText:c,badgeColor:I,customBadge:d,showChevron:S,bottomRightText:g,isSelected:V,onPress:b,disabled:v,expandedGlowColor:h,testID:L,statusTestID:O,statusSublabelTestID:W,primaryTestID:z,secondaryTestID:H,accessibilityLabel:B,trailingAction:u}){return r(o,{style:[e.rowWrapper,n&&e.rowWrapperExpanded],children:i(o,{style:[e.row,V&&e.selectedRow,n&&[e.expandedRowActive,{borderColor:h||t.color.accent,borderBottomColor:h||t.color.accent,shadowColor:h||t.color.accent}]],children:[i(o,{style:e.headerRow,children:[r(x,{style:e.headerPress,onPress:b,activeOpacity:.8,disabled:v||!b,testID:L,accessibilityLabel:B,accessibilityRole:b?"button":void 0,children:i(o,{style:e.rowContent,children:[i(o,{style:e.statusSection,children:[r(o,{style:[e.statusDot,{backgroundColor:s}]}),i(o,{style:e.statusInfo,children:[r(a,{style:[e.statusLabel,{color:s}],numberOfLines:1,testID:O,children:R}),f?r(a,{style:e.observerText,numberOfLines:1,testID:W,children:f}):null]})]}),i(o,{style:e.querySection,children:[r(a,{style:e.queryHash,numberOfLines:n?void 0:2,testID:z,children:D}),!n&&(l||y)?i(o,{style:e.secondaryRow,children:[l?r(a,{style:e.secondaryText,numberOfLines:1,testID:H,children:l}):null,y]}):null]}),i(o,{style:e.rightSection,children:[(d||c!==void 0||!n&&g)&&i(o,{style:e.badgeContainer,children:[d||(c!==void 0?r(a,{style:[e.statusBadge,{color:I||s}],children:c}):null),!n&&g?r(a,{style:e.bottomRightText,numberOfLines:1,children:g}):null]}),S&&r(o,{style:e.chevronContainer,children:n?r(T,{size:14,color:t.color.textTertiary}):r(C,{size:14,color:t.color.textTertiary})})]})]})}),u?r(o,{style:e.trailingAction,children:u}):null]}),n&&m&&r(o,{style:e.expandedContent,children:m})]})})}var e=p.create({rowWrapper:{position:"relative",marginHorizontal:8,marginVertical:3},rowWrapperExpanded:{marginVertical:12},row:{backgroundColor:"rgba(12, 12, 12, 0.9)",borderRadius:8,borderWidth:1,borderColor:t.color.border,borderBottomWidth:1,borderBottomColor:t.color.separator,padding:12,paddingHorizontal:12,transform:[{scale:1}]},selectedRow:{backgroundColor:t.color.accentSoft,borderColor:t.color.accentBorderStrong,transform:[{scale:1.01}],shadowColor:t.color.accent,shadowOffset:{width:0,height:0},shadowOpacity:.1,shadowRadius:8,elevation:2},expandedRowActive:{transform:[{scale:1.02}],borderWidth:2,paddingBottom:16,shadowOffset:{width:0,height:0},shadowOpacity:.8,shadowRadius:20,elevation:10},headerRow:{flexDirection:"row",alignItems:"center"},headerPress:{flex:1,minWidth:0},trailingAction:{marginLeft:8,justifyContent:"center"},rowContent:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},statusSection:{flexDirection:"row",alignItems:"center",gap:8,width:90,minWidth:90},statusDot:{width:8,height:8,borderRadius:4},statusInfo:{flex:1,maxWidth:70},statusLabel:{fontSize:11,fontWeight:"600",lineHeight:14},observerText:{fontSize:10,color:t.color.textTertiary,marginTop:1},querySection:{flex:2,paddingHorizontal:12},queryHash:{fontFamily:w,fontSize:12,color:t.color.text,lineHeight:16},secondaryRow:{flexDirection:"row",alignItems:"center",gap:6,marginTop:1},secondaryText:{fontSize:10,color:t.color.textTertiary,marginTop:1},rightSection:{flexDirection:"row",alignItems:"center",gap:8},badgeContainer:{flexDirection:"column",alignItems:"flex-end",gap:2},statusBadge:{fontSize:12,fontWeight:"600",fontVariant:["tabular-nums"]},chevronContainer:{padding:2},expandedContent:{marginTop:8,paddingTop:8,borderTopWidth:1,borderTopColor:t.color.separator,marginLeft:24},bottomRightText:{fontSize:9,color:t.color.textTertiary,fontFamily:w}});export{k as a};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{a as t}from"./chunk-GF5C5DVX.mjs";import{Wb as T,Yb as C,ld as w}from"./chunk-IVCT27JB.mjs";import{J as x,a as o,b as a,d as p}from"./chunk-3UTMGIUG.mjs";import{jsx as r,jsxs as i}from"react/jsx-runtime";function k({statusDotColor:s,statusLabel:R,statusSublabel:f,primaryText:D,secondaryText:l,secondaryAccessory:y,expandedContent:m,isExpanded:n,badgeText:c,badgeColor:I,customBadge:d,showChevron:S,bottomRightText:g,isSelected:V,onPress:b,disabled:v,expandedGlowColor:h,testID:L,statusTestID:O,statusSublabelTestID:W,primaryTestID:z,secondaryTestID:H,accessibilityLabel:B,trailingAction:u}){return r(o,{style:[e.rowWrapper,n&&e.rowWrapperExpanded],children:i(o,{style:[e.row,V&&e.selectedRow,n&&[e.expandedRowActive,{borderColor:h||t.color.accent,borderBottomColor:h||t.color.accent,shadowColor:h||t.color.accent}]],children:[i(o,{style:e.headerRow,children:[r(p,{style:e.headerPress,onPress:b,activeOpacity:.8,disabled:v||!b,testID:L,accessibilityLabel:B,accessibilityRole:b?"button":void 0,children:i(o,{style:e.rowContent,children:[i(o,{style:e.statusSection,children:[r(o,{style:[e.statusDot,{backgroundColor:s}]}),i(o,{style:e.statusInfo,children:[r(a,{style:[e.statusLabel,{color:s}],numberOfLines:1,testID:O,children:R}),f?r(a,{style:e.observerText,numberOfLines:1,testID:W,children:f}):null]})]}),i(o,{style:e.querySection,children:[r(a,{style:e.queryHash,numberOfLines:n?void 0:2,testID:z,children:D}),!n&&(l||y)?i(o,{style:e.secondaryRow,children:[l?r(a,{style:e.secondaryText,numberOfLines:1,testID:H,children:l}):null,y]}):null]}),i(o,{style:e.rightSection,children:[(d||c!==void 0||!n&&g)&&i(o,{style:e.badgeContainer,children:[d||(c!==void 0?r(a,{style:[e.statusBadge,{color:I||s}],children:c}):null),!n&&g?r(a,{style:e.bottomRightText,numberOfLines:1,children:g}):null]}),S&&r(o,{style:e.chevronContainer,children:n?r(T,{size:14,color:t.color.textTertiary}):r(C,{size:14,color:t.color.textTertiary})})]})]})}),u?r(o,{style:e.trailingAction,children:u}):null]}),n&&m&&r(o,{style:e.expandedContent,children:m})]})})}var e=x.create({rowWrapper:{position:"relative",marginHorizontal:8,marginVertical:3},rowWrapperExpanded:{marginVertical:12},row:{backgroundColor:"rgba(12, 12, 12, 0.9)",borderRadius:8,borderWidth:1,borderColor:t.color.border,borderBottomWidth:1,borderBottomColor:t.color.separator,padding:12,paddingHorizontal:12,transform:[{scale:1}]},selectedRow:{backgroundColor:t.color.accentSoft,borderColor:t.color.accentBorderStrong,transform:[{scale:1.01}],shadowColor:t.color.accent,shadowOffset:{width:0,height:0},shadowOpacity:.1,shadowRadius:8,elevation:2},expandedRowActive:{transform:[{scale:1.02}],borderWidth:2,paddingBottom:16,shadowOffset:{width:0,height:0},shadowOpacity:.8,shadowRadius:20,elevation:10},headerRow:{flexDirection:"row",alignItems:"center"},headerPress:{flex:1,minWidth:0},trailingAction:{marginLeft:8,justifyContent:"center"},rowContent:{flexDirection:"row",alignItems:"center",justifyContent:"space-between"},statusSection:{flexDirection:"row",alignItems:"center",gap:8,width:90,minWidth:90},statusDot:{width:8,height:8,borderRadius:4},statusInfo:{flex:1,maxWidth:70},statusLabel:{fontSize:11,fontWeight:"600",lineHeight:14},observerText:{fontSize:10,color:t.color.textTertiary,marginTop:1},querySection:{flex:2,paddingHorizontal:12},queryHash:{fontFamily:w,fontSize:12,color:t.color.text,lineHeight:16},secondaryRow:{flexDirection:"row",alignItems:"center",gap:6,marginTop:1},secondaryText:{fontSize:10,color:t.color.textTertiary,marginTop:1},rightSection:{flexDirection:"row",alignItems:"center",gap:8},badgeContainer:{flexDirection:"column",alignItems:"flex-end",gap:2},statusBadge:{fontSize:12,fontWeight:"600",fontVariant:["tabular-nums"]},chevronContainer:{padding:2},expandedContent:{marginTop:8,paddingTop:8,borderTopWidth:1,borderTopColor:t.color.separator,marginLeft:24},bottomRightText:{fontSize:9,color:t.color.textTertiary,fontFamily:w}});export{k as a};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export*from"react-native-web";import{unstable_createElement as P,NativeModules as H,AccessibilityInfo as O,Animated as R,Appearance as D,AppRegistry as $,AppState as F,BackHandler as K,Clipboard as z,Dimensions as j,Easing as U,I18nManager as Y,Keyboard as _,InteractionManager as q,LayoutAnimation as G,Linking as J,NativeEventEmitter as Q,PanResponder as X,PixelRatio as Z,Platform as ee,Share as te,StyleSheet as ne,UIManager as oe,Vibration as ae,CheckBox as ie,FlatList as re,Image as se,ImageBackground as ce,KeyboardAvoidingView as de,Picker as le,ProgressBar as pe,RefreshControl as ue,SafeAreaView as xe,SectionList as be,StatusBar as fe,Input as me,Touchable as he,TouchableNativeFeedback as ye,VirtualizedList as ve,YellowBox as ge,LogBox as we,DeviceEventEmitter as Te,useColorScheme as Ae,useLocaleContext as We,useWindowDimensions as ke}from"react-native-web";import*as e from"react-native-web";import{createElement as x,forwardRef as b}from"react";function n(r){let c=b((p,u)=>{let{accessibilityState:t,accessibilityValue:s,...o}=p;for(let a of["busy","checked","disabled","expanded","selected"])t?.[a]!==void 0&&o[`aria-${a}`]===void 0&&(o[`aria-${a}`]=t[a]);for(let[a,d]of Object.entries({min:"valuemin",max:"valuemax",now:"valuenow",text:"valuetext"}))s?.[a]!==void 0&&o[`aria-${d}`]===void 0&&(o[`aria-${d}`]=s[a]);return x(r,{...o,ref:u})});return c.displayName=r.displayName??r.name??"NativeWebView",c}var h=n(e.View),y=n(e.Text),v=n(e.TextInput),g=n(e.TouchableOpacity),w=n(e.TouchableHighlight),T=n(e.TouchableWithoutFeedback),A=n(e.Pressable),W=n(e.ScrollView),k=n(e.Modal),C=n(e.Switch),E=n(e.ActivityIndicator),S=n(e.Button),B=e.findNodeHandle,I={alert(r,c,p,u){if(typeof document>"u")return;let t=document.createElement("dialog");t.dataset.buoyRoot="",t.setAttribute("aria-label",r),t.style.cssText="position:fixed;inset:0;margin:auto;width:min(440px,90vw);padding:24px;border:1px solid #475569;border-radius:14px;background:#17212e;color:#f1f5f9;font:14px system-ui;box-shadow:0 20px 80px #0008;z-index:2147483647";let s=document.createElement("h2");if(s.textContent=r,s.style.cssText="font-size:18px;margin:0 0 12px",t.appendChild(s),c){let i=document.createElement("p");i.textContent=c,i.style.cssText="line-height:1.5;white-space:pre-wrap;margin:0 0 20px",t.appendChild(i)}let o=document.createElement("div");o.style.cssText="display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px";let a=p?.length?p:[{text:"OK"}],d=()=>{t.close?.(),t.remove()};for(let i of a){let l=document.createElement("button");l.type="button",l.textContent=i.text??"OK",l.style.cssText=`padding:9px 14px;border:1px solid #64748b;border-radius:7px;color:white;background:${i.style==="destructive"?"#a52b38":"#283a4d"};cursor:pointer;font:inherit`,l.onclick=()=>{d(),i.onPress?.()},o.appendChild(l)}t.addEventListener("cancel",i=>{i.preventDefault(),u?.cancelable!==!1&&(d(),u?.onDismiss?.())}),t.appendChild(o),document.body.appendChild(t),t.showModal?t.showModal():t.setAttribute("open","")}};export{h as a,y as b,v as c,g as d,w as e,T as f,A as g,W as h,k as i,C as j,E as k,S as l,B as m,I as n,P as o,H as p,O as q,R as r,D as s,$ as t,F as u,K as v,z as w,j as x,U as y,Y as z,_ as A,q as B,G as C,J as D,Q as E,X as F,Z as G,ee as H,te as I,ne as J,oe as K,ae as L,ie as M,re as N,se as O,ce as P,de as Q,le as R,pe as S,ue as T,xe as U,be as V,fe as W,me as X,he as Y,ye as Z,ve as _,ge as $,we as aa,Te as ba,Ae as ca,We as da,ke as ea};
@@ -0,0 +1,274 @@
1
+ "use client";
2
+
3
+ // src/ui/gameUI/constants/macOSDesignSystemColors.ts
4
+ var macOSColors = {
5
+ // Background Colors
6
+ background: {
7
+ base: "#0A0A0C",
8
+ // Main app background, darkest layer
9
+ card: "#1A1A1C",
10
+ // Card backgrounds, elevated surfaces
11
+ hover: "#1D1D1F",
12
+ // Hover states for interactive elements
13
+ input: "#26262A"
14
+ // Input field backgrounds, recessed areas
15
+ },
16
+ // Border Colors
17
+ border: {
18
+ default: "#2D2D2F",
19
+ // Main borders, dividers
20
+ toggle: "#3D3D3F",
21
+ // Toggle switch backgrounds
22
+ input: "#3D3D42",
23
+ // Input field borders
24
+ hover: "#4D4D4F"
25
+ // Hover state borders
26
+ },
27
+ // Text Colors
28
+ text: {
29
+ primary: "#F5F5F7",
30
+ // Main text, headers
31
+ secondary: "#A1A1A6",
32
+ // Subtitles, secondary information
33
+ muted: "#8E8E93",
34
+ // Placeholder text, disabled states
35
+ disabled: "#9E9EA0",
36
+ // Inactive elements
37
+ icon: "#6D6D6F"
38
+ // Icon colors, subtle graphics
39
+ },
40
+ // Semantic Colors
41
+ semantic: {
42
+ // Success
43
+ success: "#34C759",
44
+ // green-500 equivalent
45
+ successLight: "#52D976",
46
+ // green-400 equivalent
47
+ successLighter: "#86E29F",
48
+ // green-300 equivalent
49
+ successBackground: "rgba(52, 199, 89, 0.15)",
50
+ // green-900/80 equivalent
51
+ // Error
52
+ error: "#FF453A",
53
+ // red-500 equivalent
54
+ errorLight: "#FF6961",
55
+ // red-400 equivalent
56
+ errorLighter: "#FF887F",
57
+ // red-300 equivalent
58
+ errorBackground: "rgba(255, 69, 58, 0.15)",
59
+ // red-900/80 equivalent
60
+ // Warning - Using the preferred cyberpunk yellow
61
+ warning: "#FFEB3B",
62
+ // Bright cyberpunk yellow
63
+ warningLight: "#FFF066",
64
+ // Lighter variant
65
+ warningBackground: "rgba(255, 235, 59, 0.15)",
66
+ // yellow background
67
+ // Info - Using the preferred cyberpunk cyan
68
+ info: "#00B8E6",
69
+ // Bright cyberpunk cyan
70
+ infoLight: "#40CCFF",
71
+ // Lighter variant
72
+ infoLighter: "#70D8FF",
73
+ // Even lighter variant
74
+ infoBackground: "rgba(0, 184, 230, 0.1)",
75
+ // cyan background
76
+ // Debug
77
+ debug: "#BF5AF2"
78
+ // purple-400 equivalent
79
+ },
80
+ // Platform-Specific Colors
81
+ platform: {
82
+ ios: "#E5E5EA",
83
+ // gray-100 equivalent
84
+ android: "#86E29F",
85
+ // green-300 equivalent
86
+ web: "#70B8FF",
87
+ // blue-300 equivalent
88
+ webAlt: "#5AC8FA",
89
+ // cyan-400 equivalent
90
+ tv: "#B381F0"
91
+ // purple-300 equivalent
92
+ },
93
+ // Shadow System
94
+ shadows: {
95
+ sm: "0 0.5rem 1.5rem rgba(0,0,0,0.15)",
96
+ md: "0 0.75rem 2.5rem rgba(0,0,0,0.25)",
97
+ lg: "0 1rem 3rem rgba(0,0,0,0.3)",
98
+ xl: "0 1.5rem 3rem rgba(0,0,0,0.35)",
99
+ // Glow Effects
100
+ successGlow: "0 0 8px rgba(52, 199, 89, 0.1)",
101
+ errorGlow: "0 0 8px rgba(255, 69, 58, 0.1)",
102
+ warningGlow: "0 0 8px rgba(255, 235, 59, 0.2)",
103
+ infoGlow: "0 0 8px rgba(0, 184, 230, 0.2)",
104
+ infoGlowStrong: "0 0 10px rgba(0, 184, 230, 0.3)"
105
+ },
106
+ // Data Types (for syntax highlighting)
107
+ dataTypes: {
108
+ object: "#00B8E6",
109
+ // Cyan (matching preferred info color)
110
+ array: "#FFEB3B",
111
+ // Yellow (matching preferred warning color)
112
+ string: "#34C759",
113
+ // Green
114
+ number: "#FF9F0A",
115
+ // Orange
116
+ boolean: "#BF5AF2",
117
+ // Purple
118
+ function: "#5E5CE6",
119
+ // Indigo
120
+ undefined: "#8E8E93",
121
+ // Gray
122
+ null: "#FF453A"
123
+ // Red
124
+ },
125
+ // Diff Viewer Colors
126
+ diff: {
127
+ // Line backgrounds
128
+ addedBackground: "rgba(52, 199, 89, 0.1)",
129
+ removedBackground: "rgba(255, 69, 58, 0.1)",
130
+ modifiedBackground: "rgba(0, 184, 230, 0.1)",
131
+ // Using cyan
132
+ unchangedBackground: "transparent",
133
+ contextBackground: "rgba(245, 245, 247, 0.02)",
134
+ // Text colors
135
+ addedText: "#34C759",
136
+ removedText: "#FF453A",
137
+ modifiedText: "#00B8E6",
138
+ // Using cyan
139
+ unchangedText: "#A1A1A6",
140
+ // Word-level highlights
141
+ addedWordHighlight: "rgba(52, 199, 89, 0.3)",
142
+ removedWordHighlight: "rgba(255, 69, 58, 0.3)",
143
+ // Line numbers
144
+ lineNumberBackground: "#0A0A0C",
145
+ lineNumberText: "#8E8E93",
146
+ lineNumberBorder: "#2D2D2F",
147
+ // Markers
148
+ markerAddedBackground: "rgba(52, 199, 89, 0.2)",
149
+ markerRemovedBackground: "rgba(255, 69, 58, 0.2)",
150
+ markerModifiedBackground: "rgba(0, 184, 230, 0.2)",
151
+ // Using cyan
152
+ markerText: "#8E8E93"
153
+ }
154
+ };
155
+ var buildMacOSGameUIColors = () => ({
156
+ // Base backgrounds
157
+ background: macOSColors.background.base,
158
+ panel: macOSColors.background.card,
159
+ backdrop: "rgba(0, 0, 0, 0.85)",
160
+ buttonBackground: macOSColors.background.hover,
161
+ pureBlack: "#000000",
162
+ // Borders
163
+ border: macOSColors.border.default,
164
+ blackTint1: macOSColors.background.base,
165
+ blackTint2: macOSColors.background.card,
166
+ blackTint3: macOSColors.background.hover,
167
+ // Status Colors
168
+ success: macOSColors.semantic.success,
169
+ warning: macOSColors.semantic.warning,
170
+ error: macOSColors.semantic.error,
171
+ info: macOSColors.semantic.info,
172
+ critical: macOSColors.semantic.error,
173
+ optional: macOSColors.semantic.debug,
174
+ // Tool Colors
175
+ env: macOSColors.semantic.success,
176
+ storage: macOSColors.semantic.debug,
177
+ query: macOSColors.semantic.info,
178
+ debug: macOSColors.semantic.error,
179
+ network: macOSColors.semantic.success,
180
+ // Data Types
181
+ dataTypes: macOSColors.dataTypes,
182
+ // Text
183
+ text: macOSColors.text.primary,
184
+ primary: macOSColors.text.primary,
185
+ primaryLight: macOSColors.text.primary,
186
+ secondary: macOSColors.text.secondary,
187
+ tertiary: macOSColors.text.secondary,
188
+ muted: macOSColors.text.muted,
189
+ // Diff
190
+ diff: macOSColors.diff,
191
+ // Additional properties for compatibility
192
+ neonGlow: {
193
+ primary: macOSColors.semantic.info,
194
+ secondary: macOSColors.semantic.debug,
195
+ tertiary: macOSColors.semantic.success
196
+ }
197
+ });
198
+ var macOSGameUIColors = buildMacOSGameUIColors();
199
+ var refreshMacOSGameUIColors = () => {
200
+ Object.assign(macOSGameUIColors, buildMacOSGameUIColors());
201
+ };
202
+
203
+ // src/ui/gameUI/constants/gameUIColors.ts
204
+ var macOSTheme = macOSGameUIColors;
205
+ var activeTheme = macOSTheme;
206
+ var fallbacks = {
207
+ background: "rgba(8, 12, 21, 0.98)",
208
+ panel: "rgba(16, 22, 35, 0.98)",
209
+ backdrop: "rgba(0, 0, 0, 0.85)",
210
+ buttonBackground: "rgba(12, 16, 26, 0.9)",
211
+ pureBlack: "#000000",
212
+ // Default text colors for dark background
213
+ primary: "#FFFFFF",
214
+ primaryLight: "#F1F5F9"
215
+ };
216
+ var gameUIColors = { ...fallbacks, ...activeTheme };
217
+ var refreshGameUIColors = () => {
218
+ refreshMacOSGameUIColors();
219
+ Object.assign(gameUIColors, activeTheme);
220
+ };
221
+ var buoyColors = {
222
+ // Backgrounds (dark to light)
223
+ base: "#121212",
224
+ card: "#1A1A1A",
225
+ /**
226
+ * Card fill for surfaces that sit over a ToolBackground: translucent so the
227
+ * field reads through, but calibrated against the BRIGHTEST scene in the
228
+ * catalogue (Live Sky's noon clouds/sun bloom, ~215 luminance) so a card's
229
+ * backing stays ≤ ~45 luminance and text never washes out. Over the "off"
230
+ * preset it is visually indistinguishable from `card`.
231
+ */
232
+ cardScrim: "rgba(10,13,20,0.9)",
233
+ hover: "#242424",
234
+ input: "#2A2A2A",
235
+ // Borders
236
+ border: "#333333",
237
+ borderStrong: "#444444",
238
+ // Text (light to dark)
239
+ text: "#E0E0E0",
240
+ textSecondary: "#A0A0A0",
241
+ textMuted: "#888888",
242
+ // Accent colors
243
+ primary: "#20C997",
244
+ // Buoy teal
245
+ success: "#20C997",
246
+ // Same as primary
247
+ warning: "#FFA94D",
248
+ // Orange
249
+ error: "#EF4444",
250
+ // Red
251
+ info: "#00B8E6"
252
+ // Cyan for info/devices
253
+ };
254
+ var dialColors = {
255
+ dialBackground: "#050505",
256
+ dialGradient1: "rgba(255, 255, 255, 0.05)",
257
+ dialGradient2: "rgba(255, 255, 255, 0.03)",
258
+ dialGradient3: "rgba(255, 255, 255, 0.06)",
259
+ dialBorder: "rgba(255, 255, 255, 0.12)",
260
+ dialShadow: "#000000",
261
+ dialGridLine: "rgba(255, 255, 255, 0.08)",
262
+ hubFill: "rgba(5, 5, 5, 0.34)",
263
+ hubHalo: "rgba(5, 5, 5, 0.12)"
264
+ };
265
+
266
+ export {
267
+ macOSColors,
268
+ macOSGameUIColors,
269
+ refreshMacOSGameUIColors,
270
+ gameUIColors,
271
+ refreshGameUIColors,
272
+ buoyColors,
273
+ dialColors
274
+ };
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{a as I}from"./chunk-L2DTKDER.mjs";import{f as y}from"./chunk-CE5U3CSQ.mjs";import{createContext as G,useContext as O,useState as T,useCallback as A,useMemo as V,useEffect as U}from"react";import{jsx as Y}from"react/jsx-runtime";var k=G(null);function j({children:t,initialAdapters:e=[]}){let[o,n]=T(()=>{let r=new Map;return e.forEach(s=>{r.set(s.adapter.id,{...s,enabled:s.enabled??!0})}),r}),[u,l]=T(null),[c,E]=T(0),d=A(()=>E(r=>r+1),[]);U(()=>{let r=[];return o.forEach(s=>{if(s.enabled){let f=s.adapter.subscribe(d);r.push(f)}}),()=>{r.forEach(s=>s())}},[o,d]);let a=V(()=>Array.from(o.values()).filter(r=>r.enabled).sort((r,s)=>(r.priority??100)-(s.priority??100)).map(r=>r.adapter),[o,c]),m=A(r=>o.get(r)?.adapter,[o]),x=A(r=>{n(s=>{let f=new Map(s);return f.set(r.adapter.id,{...r,enabled:r.enabled??!0}),f})},[]),p=A(r=>{n(s=>{let f=new Map(s);return f.delete(r),f})},[]),i=A(r=>{let s=[];return(u&&r?.sources===void 0?a.filter(C=>C.id===u):a).forEach(C=>{r?.sources&&!r.sources.includes(C.id)||(s=s.concat(C.getEntries()))}),r&&(s=X(s,r)),s.sort((C,q)=>q.timestamp-C.timestamp),s},[a,u,c]),h=A(()=>{let r={};return a.forEach(s=>{r[s.id]=s.getEntryCount()}),r},[a,c]),W=V(()=>({adapters:a,getAdapter:m,registerAdapter:x,unregisterAdapter:p,getAllEntries:i,getEntryCounts:h,selectedAdapterId:u,setSelectedAdapterId:l,refresh:d}),[a,m,x,p,i,h,u,d]);return Y(k.Provider,{value:W,children:t})}function b(){let t=O(k);if(!t)throw new Error("useHistoryContext must be used within a HistoryProvider");return t}function v(){return b().adapters}function J(t){return b().getAdapter(t)}function F(t){let{getAllEntries:e}=b();return e(t)}function Q(){return b().getEntryCounts()}function X(t,e){return t.filter(o=>{if(e.searchText){let n=e.searchText.toLowerCase();if(!o.label.toLowerCase().includes(n))return!1}if(e.onlyWithChanges&&!o.hasStateChange||e.onlyErrors&&o.status!=="error"||e.afterTimestamp&&o.timestamp<e.afterTimestamp||e.beforeTimestamp&&o.timestamp>e.beforeTimestamp)return!1;if(e.ignoredPatterns?.length){for(let n of e.ignoredPatterns)if(new RegExp(n).test(o.label))return!1}if(e.includedPatterns?.length){let n=!1;for(let u of e.includedPatterns)if(new RegExp(u).test(o.label)){n=!0;break}if(!n)return!1}return!0})}import{View as Z,Text as _,StyleSheet as tt}from"react-native-web";import{jsx as M}from"react/jsx-runtime";function et(t){let o=Date.now()-t;return o<1e3?"just now":o<6e4?`${Math.floor(o/1e3)}s ago`:o<36e5?`${Math.floor(o/6e4)}m ago`:`${Math.floor(o/36e5)}h ago`}function rt(t,e){if(e?.color)return e.color;if(t.status==="error")return y.error;if(t.status==="pending")return y.warning;if(t.status==="success")return y.success;if(t.hasStateChange)return y.success;if(t.isSkipped)return y.textMuted;if(t.isInFuture)return y.textMuted+"80";switch(t.source){case"redux":return"#764ABC";case"zustand":return"#443E38";case"mmkv":return"#4CAF50";case"async-storage":return"#2196F3";case"react-query":return"#FF4154";case"jotai":return"#000000";case"legend-state":return"#7C3AED";default:return y.textSecondary}}function ot(t){return t.isSkipped?"Skipped":t.isInFuture?"Future":t.status?t.status.charAt(0).toUpperCase()+t.status.slice(1):t.hasStateChange?"Changed":"Action"}function st(t,e){return e?.name?e.name:t.category?t.category:t.source}function w({entry:t,adapter:e,isSelected:o,onPress:n,showSource:u=!0,showDuration:l=!0}){let c=rt(t,e),E=ot(t),d=u?st(t,e):void 0,a=et(t.timestamp);l&&t.duration!==void 0&&(a=`${t.duration.toFixed(1)}ms \xB7 ${a}`);let m=t.hasStateChange?M(Z,{style:B.changeBadge,children:M(_,{style:B.changeBadgeText,children:"\u26A1"})}):void 0;return M(I,{statusDotColor:c,statusLabel:E,statusSublabel:d,primaryText:t.label,bottomRightText:a,customBadge:m,isSelected:o,onPress:n?()=>n(t):void 0,showChevron:!!n})}var B=tt.create({changeBadge:{paddingHorizontal:4},changeBadgeText:{fontSize:12}});import{useCallback as R,useMemo as L}from"react";import{FlatList as z,View as $,Text as P,StyleSheet as nt}from"react-native-web";import{jsx as g,jsxs as K}from"react/jsx-runtime";function D({filter:t,selectedEntryId:e,onSelectEntry:o,showSource:n=!0,emptyMessage:u="No history entries yet",ListHeaderComponent:l,ListFooterComponent:c}){let E=F(t),d=v(),a=L(()=>{let i=new Map;return d.forEach(h=>i.set(h.id,h)),i},[d]),m=R(i=>`${i.source}-${i.id}`,[]),x=R(({item:i})=>{let h=a.get(i.source);return g(w,{entry:i,adapter:h,isSelected:e===i.id,onPress:o,showSource:n})},[a,e,o,n]),p=L(()=>K($,{style:H.emptyContainer,children:[g(P,{style:H.emptyText,children:u}),g(P,{style:H.emptySubtext,children:"Actions will appear here as they happen"})]}),[u]);return g(z,{data:E,keyExtractor:m,renderItem:x,ListEmptyComponent:p,ListHeaderComponent:l,ListFooterComponent:c,contentContainerStyle:H.listContent,showsVerticalScrollIndicator:!1,removeClippedSubviews:!0,maxToRenderPerBatch:15,windowSize:10,initialNumToRender:15,getItemLayout:void 0})}function N({entries:t,adapters:e=[],selectedEntryId:o,onSelectEntry:n,showSource:u=!0,emptyMessage:l="No history entries yet",ListHeaderComponent:c,ListFooterComponent:E}){let d=L(()=>{let p=new Map;return e.forEach(i=>p.set(i.id,i)),p},[e]),a=R(p=>`${p.source}-${p.id}`,[]),m=R(({item:p})=>{let i=d.get(p.source);return g(w,{entry:p,adapter:i,isSelected:o===p.id,onPress:n,showSource:u})},[d,o,n,u]),x=L(()=>K($,{style:H.emptyContainer,children:[g(P,{style:H.emptyText,children:l}),g(P,{style:H.emptySubtext,children:"Actions will appear here as they happen"})]}),[l]);return g(z,{data:t,keyExtractor:a,renderItem:m,ListEmptyComponent:x,ListHeaderComponent:c,ListFooterComponent:E,contentContainerStyle:H.listContent,showsVerticalScrollIndicator:!1,removeClippedSubviews:!0,maxToRenderPerBatch:15,windowSize:10,initialNumToRender:15})}var H=nt.create({listContent:{flexGrow:1,paddingVertical:4},emptyContainer:{flex:1,alignItems:"center",justifyContent:"center",paddingVertical:60,paddingHorizontal:20},emptyText:{fontSize:16,fontWeight:"600",color:y.text,marginBottom:8},emptySubtext:{fontSize:13,color:y.textMuted,textAlign:"center"}});export{j as a,b,v as c,J as d,F as e,Q as f,w as g,D as h,N as i};
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import{c as x}from"./chunk-GBUZCZE4.mjs";import{useCallback as ne,useEffect as se,useRef as G,useState as j}from"react";var E=new Map;function ie(e){try{return JSON.parse(e)}catch{return}}function re(e,t,n={}){let[s,a]=j(()=>E.has(e)?E.get(e):t),[b,g]=j(()=>E.has(e)),c=G(e);c.current=e;let d=G(n);d.current=n,se(()=>{if(E.has(e)){a(E.get(e)),g(!0);return}let l=!1,h=d.current.storage??x,S=d.current.parse??ie;return h.getItem(e).then(p=>{if(!l){if(p!=null){let u;try{u=S(p)}catch{}u!==void 0&&(E.set(e,u),a(u))}g(!0)}}).catch(()=>{l||g(!0)}),()=>{l=!0}},[e]);let y=ne(l=>{a(h=>{let S=typeof l=="function"?l(h):l;E.set(c.current,S);let p=d.current.storage??x,u=d.current.serialize??JSON.stringify;try{p.setItem(c.current,u(S)).catch(()=>{})}catch{}return S})},[]);return[s,y,b]}function oe(){E.clear()}import{useCallback as O,useEffect as z,useMemo as ae,useState as P}from"react";function le(e,t={}){let[n,s]=P(()=>e.getAll()),[a,b]=P(()=>t.initialFilter??{}),[g,c]=P(()=>e.getEnabled());z(()=>e.subscribe(s),[e]);let d=t.filterItems,y=ae(()=>d?d(n,a):n,[n,a,d]),l=O(()=>{e.clear()},[e]),h=O(()=>{let p=!g;e.setEnabled(p),c(p)},[e,g]),S=O(p=>e.getById(p),[e]);return{items:n,filteredItems:y,filter:a,setFilter:b,isEnabled:g,toggleCapture:h,clear:l,getById:S}}function ce(e,t){let[n,s]=P(e);return z(()=>t(s),[t]),n}import{useCallback as de,useEffect as ue,useState as Y}from"react";function fe(e,t={}){let{enabled:n=!0,maxEvents:s=500,select:a}=t,[b,g]=Y([]),[c,d]=Y(n);ue(()=>{if(!n){d(!1);return}let l=null,h=null,S=e.subscribeToEvents(p=>{h=p,l==null&&(l=requestAnimationFrame(()=>{if(l=null,!h)return;let u=h;h=null,a&&(u=a(u)),u.length>s&&(u=u.slice(0,s)),g(u)}))});return d(!0),()=>{S(),l!=null&&cancelAnimationFrame(l)}},[e,n,s,a]);let y=de(()=>{e.clearEvents()},[e]);return{events:b,clearEvents:y,isActive:c}}import{useState as I,useEffect as T,useCallback as ge}from"react";import{Platform as o,Dimensions as k,PixelRatio as $,AccessibilityInfo as m,Appearance as L,I18nManager as w,NativeModules as C,Keyboard as W,AppState as A,StatusBar as pe}from"react-native-web";async function X(){let[e,t,n]=await Promise.all([m.isScreenReaderEnabled(),m.isReduceMotionEnabled(),m.isReduceTransparencyEnabled()]),s={isScreenReaderEnabled:e,isReduceMotionEnabled:t,isReduceTransparencyEnabled:n};if(o.OS==="ios"){let[a,b,g,c,d]=await Promise.all([m.isBoldTextEnabled?.()??Promise.resolve(!1),m.isGrayscaleEnabled?.()??Promise.resolve(!1),m.isInvertColorsEnabled?.()??Promise.resolve(!1),m.isDarkerSystemColorsEnabled?.()??Promise.resolve(!1),m.prefersCrossFadeTransitions?.()??Promise.resolve(!1)]);s.isBoldTextEnabled=a,s.isGrayscaleEnabled=b,s.isInvertColorsEnabled=g,s.isDarkerSystemColorsEnabled=c,s.prefersCrossFadeTransitions=d}if(o.OS==="android"){let a=await m.isHighTextContrastEnabled?.()??!1;s.isHighTextContrastEnabled=a}return s}function F(){let e=o.constants,t={os:o.OS,version:o.Version,reactNativeVersion:e.reactNativeVersion,isTesting:o.isTesting??!1,isDisableAnimations:e.isDisableAnimations??!1};return o.OS==="ios"?{...t,osVersion:e.osVersion,systemName:e.systemName,interfaceIdiom:e.interfaceIdiom,isPad:o.isPad,isTV:o.isTV,isVision:o.isVision??!1,isMacCatalyst:o.isMacCatalyst??!1,forceTouchAvailable:e.forceTouchAvailable}:o.OS==="android"?{...t,apiLevel:e.Version,release:e.Release,brand:e.Brand,manufacturer:e.Manufacturer,model:e.Model,fingerprint:e.Fingerprint,serial:e.Serial,uiMode:e.uiMode}:t}function V(){let e=k.get("window"),t=k.get("screen"),n={window:{width:e.width,height:e.height,scale:e.scale,fontScale:e.fontScale},screen:{width:t.width,height:t.height,scale:t.scale,fontScale:t.fontScale},pixelRatio:$.get(),fontScale:$.getFontScale(),isLandscape:e.width>e.height,isPortrait:e.height>e.width};if(o.OS==="ios")try{let s=C.DeviceInfo?.getConstants?.();n.isIPhoneNotched=s?.isIPhoneX_deprecated??!1}catch{n.isIPhoneNotched=!1}if(o.OS==="android")try{let s=C.DeviceInfo?.getConstants?.();n.isEdgeToEdge=s?.isEdgeToEdge??!1,n.densityDpi=Math.round(e.scale*160)}catch{}return n}async function _(){return new Promise(e=>{let t=!1;o.OS==="ios"?C.StatusBarManager?.getHeight?.(n=>{t||(t=!0,e(n?.height??null))})??e(null):o.OS==="android"?(t=!0,e(pe.currentHeight??null)):(t=!0,e(null)),setTimeout(()=>{t||(t=!0,e(null))},100)})}function M(){let e={isRTL:w.isRTL,doLeftAndRightSwapInRTL:w.doLeftAndRightSwapInRTL};return o.OS==="android"&&(e.localeIdentifier=w.localeIdentifier),e}function B(){if(o.OS==="ios")try{return{userDefaults:C.SettingsManager?.getConstants?.()?.settings??{}}}catch{return{}}return{}}function N(){let e={};if(o.OS==="android"){let t=o.constants;e.serial=t.Serial,e.fingerprint=t.Fingerprint;try{let n=C.PlatformConstants;n?.getAndroidID&&(e.androidId=n.getAndroidID())}catch{}}return e}function me(e){let n=[e.platform.os,e.platform.version,e.display.window.width,e.display.window.height,e.display.pixelRatio,e.platform.interfaceIdiom??"",e.platform.forceTouchAvailable??!1,e.display.isIPhoneNotched??!1,e.platform.model??"",e.platform.brand??"",e.platform.manufacturer??"",e.platform.uiMode??""].join("|"),s=0;for(let a=0;a<n.length;a++){let b=n.charCodeAt(a);s=(s<<5)-s+b,s=s&s}return Math.abs(s).toString(16).padStart(8,"0")}function be(){let[e,t]=I(!0),[n,s]=I(F()),[a,b]=I(V()),[g,c]=I({isScreenReaderEnabled:!1,isReduceMotionEnabled:!1,isReduceTransparencyEnabled:!1}),[d,y]=I(()=>{let f=L.getColorScheme()??null;return{colorScheme:f,prefersDarkMode:f==="dark"}}),[l,h]=I(M()),[S,p]=I({height:null,isVisible:!0}),[u,U]=I({isVisible:!1,height:0,animationDuration:0}),[H,Q]=I({currentState:A.currentState,isActive:A.currentState==="active"}),[J,Z]=I(N()),[K,ee]=I(B()),[q,te]=I(Date.now()),R=ge(async()=>{t(!0);let[f,i]=await Promise.all([X(),_()]);s(F()),b(V()),c(f);let r=L.getColorScheme()??null;y({colorScheme:r,prefersDarkMode:r==="dark"}),h(M()),p(v=>({...v,height:i})),Z(N()),ee(B()),te(Date.now()),t(!1)},[]);return T(()=>{R()},[R]),T(()=>{let f=k.addEventListener("change",({window:i,screen:r})=>{b(v=>({...v,window:{width:i.width,height:i.height,scale:i.scale,fontScale:i.fontScale},screen:{width:r.width,height:r.height,scale:r.scale,fontScale:r.fontScale},isLandscape:i.width>i.height,isPortrait:i.height>i.width}))});return()=>f.remove()},[]),T(()=>{let f=L.addChangeListener(({colorScheme:i})=>{let r=i??null;y({colorScheme:r,prefersDarkMode:r==="dark"})});return()=>f.remove()},[]),T(()=>{let f=W.addListener(o.OS==="ios"?"keyboardWillShow":"keyboardDidShow",r=>{U({isVisible:!0,height:r.endCoordinates.height,animationDuration:r.duration??0})}),i=W.addListener(o.OS==="ios"?"keyboardWillHide":"keyboardDidHide",r=>{U({isVisible:!1,height:0,animationDuration:r.duration??0})});return()=>{f.remove(),i.remove()}},[]),T(()=>{let f=A.addEventListener("change",i=>{Q({currentState:i,isActive:i==="active"})});return()=>f.remove()},[]),T(()=>{let f=[m.addEventListener("screenReaderChanged",i=>{c(r=>({...r,isScreenReaderEnabled:i}))}),m.addEventListener("reduceMotionChanged",i=>{c(r=>({...r,isReduceMotionEnabled:i}))}),m.addEventListener("reduceTransparencyChanged",i=>{c(r=>({...r,isReduceTransparencyEnabled:i}))})];if(o.OS==="ios"){let i=(r,v)=>m.addEventListener(r,v);f.push(i("boldTextChanged",r=>{c(v=>({...v,isBoldTextEnabled:r}))}),i("grayscaleChanged",r=>{c(v=>({...v,isGrayscaleEnabled:r}))}),i("invertColorsChanged",r=>{c(v=>({...v,isInvertColorsEnabled:r}))}))}return()=>{f.forEach(i=>i.remove())}},[]),{platform:n,display:a,accessibility:g,appearance:d,locale:l,statusBar:S,keyboard:u,appState:H,identifiers:J,settings:K,timestamp:q,isLoading:e,refresh:R,generateFingerprint:()=>me({platform:n,display:a,accessibility:g,appearance:d,locale:l,statusBar:S,keyboard:u,appState:H,identifiers:J,settings:K,timestamp:q,isLoading:e})}}async function he(){let[e,t]=await Promise.all([X(),_()]),n=L.getColorScheme()??null;return{platform:F(),display:V(),accessibility:e,appearance:{colorScheme:n,prefersDarkMode:n==="dark"},locale:M(),statusBar:{height:t,isVisible:!0},keyboard:{isVisible:!1,height:0,animationDuration:0},appState:{currentState:A.currentState,isActive:A.currentState==="active"},identifiers:N(),settings:B(),timestamp:Date.now(),isLoading:!1}}function Se(e){console.log(`
3
+ ========================================`),console.log(" DEVICE INFO REPORT"),console.log(`========================================
4
+ `),console.log("--- PLATFORM ---"),console.log(JSON.stringify(e.platform,null,2)),console.log(`
5
+ --- DISPLAY ---`),console.log(JSON.stringify(e.display,null,2)),console.log(`
6
+ --- ACCESSIBILITY ---`),console.log(JSON.stringify(e.accessibility,null,2)),console.log(`
7
+ --- APPEARANCE ---`),console.log(JSON.stringify(e.appearance,null,2)),console.log(`
8
+ --- LOCALE ---`),console.log(JSON.stringify(e.locale,null,2)),console.log(`
9
+ --- STATUS BAR ---`),console.log(JSON.stringify(e.statusBar,null,2)),console.log(`
10
+ --- KEYBOARD ---`),console.log(JSON.stringify(e.keyboard,null,2)),console.log(`
11
+ --- APP STATE ---`),console.log(JSON.stringify(e.appState,null,2)),console.log(`
12
+ --- IDENTIFIERS ---`),console.log(JSON.stringify(e.identifiers,null,2)),console.log(`
13
+ --- SETTINGS ---`);let t=Object.keys(e.settings.userDefaults??{});console.log(`userDefaults: ${t.length} keys`),t.length>0&&t.length<=20&&console.log(JSON.stringify(e.settings,null,2)),console.log(`
14
+ --- METADATA ---`),console.log(`timestamp: ${e.timestamp}`),console.log(`isLoading: ${e.isLoading}`),console.log(`
15
+ ========================================
16
+ `)}export{re as a,oe as b,le as c,ce as d,fe as e,be as f,he as g,Se as h};