react-native-inapp-inspector 2.4.2 → 2.5.1

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 (221) hide show
  1. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  3. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  4. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  5. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  6. package/android/.gradle/8.9/gc.properties +0 -0
  7. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  8. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  9. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  10. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  11. package/android/.gradle/9.2.0/gc.properties +0 -0
  12. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  13. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  14. package/android/.gradle/vcs-1/gc.properties +0 -0
  15. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  16. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +523 -2
  17. package/dist/commonjs/capture.d.ts +2 -0
  18. package/dist/commonjs/capture.js +1 -1
  19. package/dist/commonjs/components/AnalyticsDetail.js +23 -23
  20. package/dist/commonjs/components/AnalyticsEventCard.js +1 -1
  21. package/dist/commonjs/components/AnalyticsGraph.js +44 -44
  22. package/dist/commonjs/components/AnimatedBrandOwl.js +32 -32
  23. package/dist/commonjs/components/AppHeaderLogo.js +6 -6
  24. package/dist/commonjs/components/BrandCircleIcon.js +28 -28
  25. package/dist/commonjs/components/BrandSquareIcon.js +33 -33
  26. package/dist/commonjs/components/ConsoleLogCard.js +1 -1
  27. package/dist/commonjs/components/Inspector/AnalyticsTab.js +2 -2
  28. package/dist/commonjs/components/Inspector/ConfirmationModal.js +23 -25
  29. package/dist/commonjs/components/Inspector/ConsoleTab.js +5 -5
  30. package/dist/commonjs/components/Inspector/CrashTab.js +44 -11
  31. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +1 -1
  32. package/dist/commonjs/components/Inspector/FabLauncher.js +30 -25
  33. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
  34. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +54 -0
  35. package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
  36. package/dist/commonjs/components/Inspector/GlobalCrashScreenModal.js +234 -0
  37. package/dist/commonjs/components/Inspector/InspectorHeader.js +137 -127
  38. package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +1 -1
  39. package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +114 -32
  40. package/dist/commonjs/components/Inspector/MainScreen.js +26 -19
  41. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +38 -35
  42. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +36 -0
  43. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +345 -123
  44. package/dist/commonjs/components/Inspector/NetworkTab.js +14 -14
  45. package/dist/commonjs/components/Inspector/PushCard.js +1 -1
  46. package/dist/commonjs/components/Inspector/PushDetail.js +9 -9
  47. package/dist/commonjs/components/Inspector/PushTab.js +3 -3
  48. package/dist/commonjs/components/Inspector/ReduxTab.js +9 -7
  49. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
  50. package/dist/commonjs/components/Inspector/SecondaryTelemetryStrip.js +43 -0
  51. package/dist/commonjs/components/Inspector/SettingsPanel.js +102 -73
  52. package/dist/commonjs/components/Inspector/SocketCard.js +1 -1
  53. package/dist/commonjs/components/Inspector/SocketDetail.js +73 -63
  54. package/dist/commonjs/components/Inspector/SocketTab.js +4 -4
  55. package/dist/commonjs/components/Inspector/StorageTab.js +10 -10
  56. package/dist/commonjs/components/Inspector/SupportModal.js +2 -2
  57. package/dist/commonjs/components/Inspector/SupportPage.js +1 -1
  58. package/dist/commonjs/components/JsonViewer.js +47 -45
  59. package/dist/commonjs/components/LogCard.js +22 -20
  60. package/dist/commonjs/components/ModuleErrorBoundary.js +5 -5
  61. package/dist/commonjs/components/NetworkIcons.d.ts +27 -0
  62. package/dist/commonjs/components/NetworkIcons.js +103 -5
  63. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  64. package/dist/commonjs/constants/telemetryConfig.js +1 -1
  65. package/dist/commonjs/constants/version.d.ts +1 -1
  66. package/dist/commonjs/constants/version.js +1 -1
  67. package/dist/commonjs/crash.d.ts +1 -1
  68. package/dist/commonjs/crash.js +1 -1
  69. package/dist/commonjs/customHooks/crashHandler.d.ts +2 -1
  70. package/dist/commonjs/customHooks/crashHandler.js +7 -7
  71. package/dist/commonjs/editor.d.ts +13 -0
  72. package/dist/commonjs/editor.js +1 -0
  73. package/dist/commonjs/helpers/index.d.ts +1 -0
  74. package/dist/commonjs/helpers/index.js +1 -1
  75. package/dist/commonjs/helpers/settingsStore.js +1 -1
  76. package/dist/commonjs/helpers/telemetry.js +1 -1
  77. package/dist/commonjs/i18n/index.js +1 -1
  78. package/dist/commonjs/i18n/locales/ar.json +1 -1
  79. package/dist/commonjs/i18n/locales/bn.json +1 -1
  80. package/dist/commonjs/i18n/locales/de.json +1 -1
  81. package/dist/commonjs/i18n/locales/en.json +1 -1
  82. package/dist/commonjs/i18n/locales/es.json +1 -1
  83. package/dist/commonjs/i18n/locales/fr.json +1 -1
  84. package/dist/commonjs/i18n/locales/gu.json +1 -1
  85. package/dist/commonjs/i18n/locales/hi.json +1 -1
  86. package/dist/commonjs/i18n/locales/id.json +1 -1
  87. package/dist/commonjs/i18n/locales/it.json +1 -1
  88. package/dist/commonjs/i18n/locales/ja.json +1 -1
  89. package/dist/commonjs/i18n/locales/kn.json +1 -1
  90. package/dist/commonjs/i18n/locales/ko.json +1 -1
  91. package/dist/commonjs/i18n/locales/ml.json +1 -1
  92. package/dist/commonjs/i18n/locales/mr.json +1 -1
  93. package/dist/commonjs/i18n/locales/nl.json +1 -1
  94. package/dist/commonjs/i18n/locales/pa.json +1 -1
  95. package/dist/commonjs/i18n/locales/pl.json +1 -1
  96. package/dist/commonjs/i18n/locales/pt.json +1 -1
  97. package/dist/commonjs/i18n/locales/ru.json +1 -1
  98. package/dist/commonjs/i18n/locales/ta.json +1 -1
  99. package/dist/commonjs/i18n/locales/te.json +1 -1
  100. package/dist/commonjs/i18n/locales/tr.json +1 -1
  101. package/dist/commonjs/i18n/locales/vi.json +1 -1
  102. package/dist/commonjs/i18n/locales/zh.json +1 -1
  103. package/dist/commonjs/index.d.ts +4 -1
  104. package/dist/commonjs/index.js +3 -3
  105. package/dist/commonjs/native/NativeInspector.d.ts +3 -0
  106. package/dist/commonjs/native/NativeInspector.js +1 -1
  107. package/dist/commonjs/native/NativeNetworkInspector.d.ts +4 -0
  108. package/dist/commonjs/styles/AppColors.d.ts +42 -2
  109. package/dist/commonjs/styles/AppColors.js +1 -1
  110. package/dist/commonjs/styles/common.js +1 -1
  111. package/dist/commonjs/styles/index.d.ts +7 -0
  112. package/dist/commonjs/styles/index.js +1 -1
  113. package/dist/commonjs/types/editor.d.ts +96 -0
  114. package/dist/commonjs/types/editor.js +1 -0
  115. package/dist/commonjs/types/interfaces.d.ts +21 -0
  116. package/dist/esm/capture.d.ts +2 -0
  117. package/dist/esm/capture.js +1 -1
  118. package/dist/esm/components/AnalyticsDetail.js +31 -31
  119. package/dist/esm/components/AnalyticsEventCard.js +1 -1
  120. package/dist/esm/components/AnalyticsGraph.js +74 -74
  121. package/dist/esm/components/AnimatedBrandOwl.js +114 -114
  122. package/dist/esm/components/AppHeaderLogo.js +7 -7
  123. package/dist/esm/components/BrandCircleIcon.js +70 -70
  124. package/dist/esm/components/BrandSquareIcon.js +61 -61
  125. package/dist/esm/components/ConsoleLogCard.js +1 -1
  126. package/dist/esm/components/Inspector/AnalyticsTab.js +14 -14
  127. package/dist/esm/components/Inspector/ConfirmationModal.js +23 -25
  128. package/dist/esm/components/Inspector/ConsoleTab.js +17 -17
  129. package/dist/esm/components/Inspector/CrashTab.js +202 -169
  130. package/dist/esm/components/Inspector/DeviceInfoTab.js +75 -75
  131. package/dist/esm/components/Inspector/FabLauncher.js +56 -51
  132. package/dist/esm/components/Inspector/FloatingCaptureWidget.d.ts +3 -0
  133. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +54 -0
  134. package/dist/esm/components/Inspector/GlobalCrashScreenModal.d.ts +11 -0
  135. package/dist/esm/components/Inspector/GlobalCrashScreenModal.js +234 -0
  136. package/dist/esm/components/Inspector/InspectorHeader.js +162 -152
  137. package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +1 -1
  138. package/dist/esm/components/Inspector/LanguageSelectorModal.js +140 -58
  139. package/dist/esm/components/Inspector/MainScreen.js +61 -54
  140. package/dist/esm/components/Inspector/MediaGalleryTab.js +55 -52
  141. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +36 -0
  142. package/dist/esm/components/Inspector/MediaPreviewModal.js +345 -123
  143. package/dist/esm/components/Inspector/NetworkTab.js +74 -74
  144. package/dist/esm/components/Inspector/PushCard.js +1 -1
  145. package/dist/esm/components/Inspector/PushDetail.js +18 -18
  146. package/dist/esm/components/Inspector/PushTab.js +1 -1
  147. package/dist/esm/components/Inspector/ReduxTab.js +18 -16
  148. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.d.ts +2 -0
  149. package/dist/esm/components/Inspector/SecondaryTelemetryStrip.js +43 -0
  150. package/dist/esm/components/Inspector/SettingsPanel.js +224 -195
  151. package/dist/esm/components/Inspector/SocketCard.js +8 -8
  152. package/dist/esm/components/Inspector/SocketDetail.js +106 -96
  153. package/dist/esm/components/Inspector/SocketTab.js +18 -18
  154. package/dist/esm/components/Inspector/StorageTab.js +47 -47
  155. package/dist/esm/components/Inspector/SupportModal.js +64 -64
  156. package/dist/esm/components/Inspector/SupportPage.js +5 -5
  157. package/dist/esm/components/JsonViewer.js +51 -49
  158. package/dist/esm/components/LogCard.js +41 -39
  159. package/dist/esm/components/ModuleErrorBoundary.js +10 -10
  160. package/dist/esm/components/NetworkIcons.d.ts +27 -0
  161. package/dist/esm/components/NetworkIcons.js +101 -3
  162. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  163. package/dist/esm/constants/telemetryConfig.js +1 -1
  164. package/dist/esm/constants/version.d.ts +1 -1
  165. package/dist/esm/constants/version.js +1 -1
  166. package/dist/esm/crash.d.ts +1 -1
  167. package/dist/esm/crash.js +1 -1
  168. package/dist/esm/customHooks/crashHandler.d.ts +2 -1
  169. package/dist/esm/customHooks/crashHandler.js +7 -7
  170. package/dist/esm/editor.d.ts +13 -0
  171. package/dist/esm/editor.js +1 -0
  172. package/dist/esm/helpers/index.d.ts +1 -0
  173. package/dist/esm/helpers/index.js +4 -4
  174. package/dist/esm/helpers/settingsStore.js +1 -1
  175. package/dist/esm/helpers/telemetry.js +1 -1
  176. package/dist/esm/i18n/index.js +1 -1
  177. package/dist/esm/i18n/locales/ar.json +1 -1
  178. package/dist/esm/i18n/locales/bn.json +1 -1
  179. package/dist/esm/i18n/locales/de.json +1 -1
  180. package/dist/esm/i18n/locales/en.json +1 -1
  181. package/dist/esm/i18n/locales/es.json +1 -1
  182. package/dist/esm/i18n/locales/fr.json +1 -1
  183. package/dist/esm/i18n/locales/gu.json +1 -1
  184. package/dist/esm/i18n/locales/hi.json +1 -1
  185. package/dist/esm/i18n/locales/id.json +1 -1
  186. package/dist/esm/i18n/locales/it.json +1 -1
  187. package/dist/esm/i18n/locales/ja.json +1 -1
  188. package/dist/esm/i18n/locales/kn.json +1 -1
  189. package/dist/esm/i18n/locales/ko.json +1 -1
  190. package/dist/esm/i18n/locales/ml.json +1 -1
  191. package/dist/esm/i18n/locales/mr.json +1 -1
  192. package/dist/esm/i18n/locales/nl.json +1 -1
  193. package/dist/esm/i18n/locales/pa.json +1 -1
  194. package/dist/esm/i18n/locales/pl.json +1 -1
  195. package/dist/esm/i18n/locales/pt.json +1 -1
  196. package/dist/esm/i18n/locales/ru.json +1 -1
  197. package/dist/esm/i18n/locales/ta.json +1 -1
  198. package/dist/esm/i18n/locales/te.json +1 -1
  199. package/dist/esm/i18n/locales/tr.json +1 -1
  200. package/dist/esm/i18n/locales/vi.json +1 -1
  201. package/dist/esm/i18n/locales/zh.json +1 -1
  202. package/dist/esm/index.d.ts +4 -1
  203. package/dist/esm/index.js +5 -5
  204. package/dist/esm/native/NativeInspector.d.ts +3 -0
  205. package/dist/esm/native/NativeInspector.js +1 -1
  206. package/dist/esm/native/NativeNetworkInspector.d.ts +4 -0
  207. package/dist/esm/styles/AppColors.d.ts +42 -2
  208. package/dist/esm/styles/AppColors.js +1 -1
  209. package/dist/esm/styles/common.js +1 -1
  210. package/dist/esm/styles/index.d.ts +7 -0
  211. package/dist/esm/styles/index.js +1 -1
  212. package/dist/esm/types/editor.d.ts +96 -0
  213. package/dist/esm/types/editor.js +1 -0
  214. package/dist/esm/types/interfaces.d.ts +21 -0
  215. package/editor.d.ts +1 -0
  216. package/editor.js +1 -0
  217. package/ios/NetworkInspectorModule.mm +429 -0
  218. package/package.json +10 -1
  219. package/react-native-inapp-inspector.podspec +1 -1
  220. package/src/native/NativeInspector.ts +57 -4
  221. package/src/native/NativeNetworkInspector.ts +4 -0
@@ -1,104 +1,104 @@
1
- import j,{useCallback as se,useMemo as H,useRef as qe}from"react";import{FlatList as De,Pressable as He,ScrollView as We,Text as V,TextInput as Ge,View as C}from"react-native";import{useInspector as _e}from"./InspectorContext";import O from"../TouchableScale";import Te from"../AnimatedEntrance";import Qe from"../DomainHeader";import Ue from"../LogCard";import Ke from"../EmptyState";import Xe from"../EndOfListFooter";import Je from"./NetworkFilterModal";import b from"../../styles";import{AppColors as o}from"../../styles/AppColors";import{AppFonts as I}from"../../styles/AppFonts";import{METHOD_COLORS as ze}from"../../constants";import{useTranslation as Ye}from"../../i18n";import{SearchIcon as Ze,ClearIcon as Co,TrashIcon as So,SortArrowIcon as To,FilterIcon as Vo,ChevronIcon as Io,CheckIcon as Fo,CircleCheckIcon as Ro,CircleXIcon as Lo,LayersIcon as Ve,ClockIcon as Bo,RequestIcon as Po,ResponseIcon as Eo,AtomIcon as Mo}from"../NetworkIcons";const No=j.memo(()=>{const{groupedData:Q,loadMoreSection:ne,search:F,setSearch:U,setSearchScope:de,quickFilter:K,setQuickFilter:le,handleDelete:Ie,isGroupByPageEnabled:k,setIsGroupByPageEnabled:ke,selectedLogs:X,sortOrder:Fe,setSortOrder:J,statusFilters:R,setStatusFilters:v,methodFilters:L,setMethodFilters:W,latencyFilter:$,setLatencyFilter:Y,protocolFilter:A,setProtocolFilter:Z,networkSortBy:q,setNetworkSortBy:ee,filteredLogs:B,logs:G,toggleSectionFilter:ce,toggleSectionCollapse:ue,minStart:ge,totalRange:pe,newLogIds:he,toggleSelect:me,setSelected:ye,maxNetworkLogs:ae}=_e(),{t:oe}=Ye(),Re=qe(null),[Le,fe]=j.useState(!1),[we,Ce]=j.useState(!1),[te,Se]=j.useState(ae||50);j.useEffect(()=>{Se(ae||50)},[F,K,ae]);const Be=H(()=>k?Q:Q.slice(0,te),[k,Q,te]),Pe=se(e=>e?.id?String(e.id):"",[]),M=H(()=>R.size>0&&!R.has("all")||L.size>0&&!L.has("all")||$!=="all"||A!=="all"||q!=="time_desc",[R,L,$,A,q]),Ee=H(()=>{let e=0;return R.size>0&&!R.has("all")&&(e+=R.size),L.size>0&&!L.has("all")&&(e+=L.size),$!=="all"&&e++,A!=="all"&&e++,q!=="time_desc"&&e++,e},[R,L,$,A,q]),Me=H(()=>({statusCodes:R.size>0?new Set(R):new Set(["all"]),methods:L.size>0?new Set(L):new Set(["all"]),latency:$,protocol:A,sortBy:q}),[R,L,$,A,q]),Ne=se(e=>{e.statusCodes.has("all")||e.statusCodes.size===0?v(new Set):v(new Set(e.statusCodes)),e.methods.has("all")||e.methods.size===0?W(new Set):W(new Set([...e.methods].map(T=>T))),Y(e.latency||"all"),Z(e.protocol||"all"),ee(e.sortBy||"time_desc"),e.sortBy==="time_asc"?J("oldest"):J("newest")},[v,W,Y,Z,ee,J]),P=H(()=>{let e=0,T=0,z=0,x=0,_=0,re=0;return G.forEach(S=>{const N=typeof S.status=="number"?S.status:parseInt(String(S.status),10);S.status===0||S.status==null||!isNaN(N)&&N>=400?e++:!isNaN(N)&&N>=200&&N<400&&T++,(S.duration||0)>=500&&z++;const E=(S.method||"").toUpperCase();E==="POST"&&x++,E==="GET"&&_++;const ie=(S.url||"").toLowerCase(),D=(S.client||"").toLowerCase();(ie.includes("graphql")||D.includes("graphql")||D.includes("apollo"))&&re++}),{all:G.length,errors:e,success:T,slow:z,post:x,get:_,graphql:re}},[G]),Oe=H(()=>[{id:"all",label:"All",count:P.all,color:o.purple},{id:"errors",label:"Errors",count:P.errors,color:o.errorColor},{id:"success",label:"2xx OK",count:P.success,color:o.greenColor},{id:"slow",label:"Slow >500ms",count:P.slow,color:o.warningIconGold},{id:"POST",label:"POST",count:P.post,color:ze.POST||o.blue500},{id:"GET",label:"GET",count:P.get,color:ze.GET||o.emerald500},{id:"graphql",label:"GraphQL",count:P.graphql,color:o.graphqlPink}],[P]),$e=se(({item:e,index:T})=>{if(e.type==="header")return<Te index={T}distance={8}>
1
+ import j,{useCallback as se,useMemo as H,useRef as qe}from"react";import{FlatList as De,Pressable as He,ScrollView as We,Text as V,TextInput as Ge,View as S}from"react-native";import{useInspector as _e}from"./InspectorContext";import O from"../TouchableScale";import Te from"../AnimatedEntrance";import Qe from"../DomainHeader";import Ue from"../LogCard";import Ke from"../EmptyState";import Xe from"../EndOfListFooter";import Je from"./NetworkFilterModal";import b from"../../styles";import{AppColors as o}from"../../styles/AppColors";import{AppFonts as I}from"../../styles/AppFonts";import{METHOD_COLORS as ze}from"../../constants";import{useTranslation as Ye}from"../../i18n";import{SearchIcon as Ze,ClearIcon as So,TrashIcon as Co,SortArrowIcon as To,FilterIcon as Vo,ChevronIcon as Io,CheckIcon as Fo,CircleCheckIcon as Ro,CircleXIcon as Lo,LayersIcon as Ve,ClockIcon as Bo,RequestIcon as Po,ResponseIcon as Eo,AtomIcon as Mo}from"../NetworkIcons";const No=j.memo(()=>{const{groupedData:Q,loadMoreSection:ne,search:F,setSearch:U,setSearchScope:de,quickFilter:K,setQuickFilter:le,handleDelete:Ie,isGroupByPageEnabled:k,setIsGroupByPageEnabled:ke,selectedLogs:X,sortOrder:Fe,setSortOrder:J,statusFilters:R,setStatusFilters:v,methodFilters:L,setMethodFilters:W,latencyFilter:$,setLatencyFilter:Y,protocolFilter:A,setProtocolFilter:Z,networkSortBy:q,setNetworkSortBy:ee,filteredLogs:E,logs:G,toggleSectionFilter:ce,toggleSectionCollapse:ue,minStart:ge,totalRange:pe,newLogIds:he,toggleSelect:me,setSelected:ye,maxNetworkLogs:ae}=_e(),{t:oe}=Ye(),Re=qe(null),[Le,fe]=j.useState(!1),[we,Se]=j.useState(!1),[te,Ce]=j.useState(ae||50);j.useEffect(()=>{Ce(ae||50)},[F,K,ae]);const Be=H(()=>k?Q:Q.slice(0,te),[k,Q,te]),Pe=se(e=>e?.id?String(e.id):"",[]),M=H(()=>R.size>0&&!R.has("all")||L.size>0&&!L.has("all")||$!=="all"||A!=="all"||q!=="time_desc",[R,L,$,A,q]),Ee=H(()=>{let e=0;return R.size>0&&!R.has("all")&&(e+=R.size),L.size>0&&!L.has("all")&&(e+=L.size),$!=="all"&&e++,A!=="all"&&e++,q!=="time_desc"&&e++,e},[R,L,$,A,q]),Me=H(()=>({statusCodes:R.size>0?new Set(R):new Set(["all"]),methods:L.size>0?new Set(L):new Set(["all"]),latency:$,protocol:A,sortBy:q}),[R,L,$,A,q]),Ne=se(e=>{e.statusCodes.has("all")||e.statusCodes.size===0?v(new Set):v(new Set(e.statusCodes)),e.methods.has("all")||e.methods.size===0?W(new Set):W(new Set([...e.methods].map(T=>T))),Y(e.latency||"all"),Z(e.protocol||"all"),ee(e.sortBy||"time_desc"),e.sortBy==="time_asc"?J("oldest"):J("newest")},[v,W,Y,Z,ee,J]),B=H(()=>{let e=0,T=0,z=0,x=0,_=0,re=0;return G.forEach(C=>{const N=typeof C.status=="number"?C.status:parseInt(String(C.status),10);C.status===0||C.status==null||!isNaN(N)&&N>=400?e++:!isNaN(N)&&N>=200&&N<400&&T++,(C.duration||0)>=500&&z++;const P=(C.method||"").toUpperCase();P==="POST"&&x++,P==="GET"&&_++;const ie=(C.url||"").toLowerCase(),D=(C.client||"").toLowerCase();(ie.includes("graphql")||D.includes("graphql")||D.includes("apollo"))&&re++}),{all:G.length,errors:e,success:T,slow:z,post:x,get:_,graphql:re}},[G]),Oe=H(()=>[{id:"all",label:"All",count:B.all,color:o.purple},{id:"errors",label:"Errors",count:B.errors,color:o.errorColor},{id:"success",label:"2xx OK",count:B.success,color:o.greenColor},{id:"slow",label:"Slow >500ms",count:B.slow,color:o.warningIconGold},{id:"POST",label:"POST",count:B.post,color:ze.POST||o.blue500},{id:"GET",label:"GET",count:B.get,color:ze.GET||o.emerald500},{id:"graphql",label:"GraphQL",count:B.graphql,color:o.graphqlPink}],[B]),$e=se(({item:e,index:T})=>{if(e.type==="header")return<Te index={T}distance={8}>
2
2
  <Qe pageName={e.pageName}color={e.color}stats={e.stats}activeFilters={e.activeFilters}onToggleFilter={ce}isCollapsed={e.isCollapsed}onToggleCollapse={ue}isFirst={e.isFirst}timestamp={e.timestamp}/>
3
- </Te>;if(e.type==="loadMore"){const{pageName:re,color:S,remainingCount:N,totalCount:E,loadedCount:ie,loadMoreStep:D,hasMore:Ae}=e;return<C style={[b.treeNodeRow,b.treeNodeRowLast]}>
4
- <C style={b.treeLines}>
5
- <C style={[b.modernTreeLine,{borderColor:S},b.modernTreeLineLast]}/>
6
- </C>
7
- <C style={b.treeCardWrapper}>
8
- {Ae?<O onPress={()=>ne(re,D||10)}hitSlop={6}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:9,paddingHorizontal:12,marginVertical:3,marginRight:2,borderRadius:10,backgroundColor:`${S}14`,borderWidth:1.5,borderColor:`${S}40`,shadowColor:S,shadowOffset:{width:0,height:1.5},shadowOpacity:.1,shadowRadius:3,elevation:2}}>
9
- <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
10
- <C style={{width:22,height:22,borderRadius:11,backgroundColor:S,alignItems:"center",justifyContent:"center",shadowColor:S,shadowOffset:{width:0,height:1},shadowOpacity:.25,shadowRadius:2,elevation:1}}>
3
+ </Te>;if(e.type==="loadMore"){const{pageName:re,color:C,remainingCount:N,totalCount:P,loadedCount:ie,loadMoreStep:D,hasMore:Ae}=e;return<S style={[b.treeNodeRow,b.treeNodeRowLast]}>
4
+ <S style={b.treeLines}>
5
+ <S style={[b.modernTreeLine,{borderColor:C},b.modernTreeLineLast]}/>
6
+ </S>
7
+ <S style={b.treeCardWrapper}>
8
+ {Ae?<O onPress={()=>ne(re,D||10)}hitSlop={6}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:9,paddingHorizontal:12,marginVertical:3,marginRight:2,borderRadius:10,backgroundColor:`${C}14`,borderWidth:1.5,borderColor:`${C}40`,shadowColor:C,shadowOffset:{width:0,height:1.5},shadowOpacity:.1,shadowRadius:3,elevation:2}}>
9
+ <S style={{flexDirection:"row",alignItems:"center",gap:8}}>
10
+ <S style={{width:22,height:22,borderRadius:11,backgroundColor:C,alignItems:"center",justifyContent:"center",shadowColor:C,shadowOffset:{width:0,height:1},shadowOpacity:.25,shadowRadius:2,elevation:1}}>
11
11
  <Io color={o.white}size={9}direction="down"/>
12
- </C>
13
- <C>
14
- <V style={{fontFamily:I.interBold,fontSize:12,color:S}}>
12
+ </S>
13
+ <S>
14
+ <V style={{fontFamily:I.interBold,fontSize:12,color:C}}>
15
15
  {oe("footer.loadMoreRequests",{count:D,defaultValue:`Load ${D} More Requests`})}
16
16
  </V>
17
17
  <V style={{fontFamily:I.interRegular,fontSize:9.5,color:o.grayTextWeak,marginTop:1}}>
18
- Showing {ie} of {E} requests
18
+ Showing {ie} of {P} requests
19
19
  </V>
20
- </C>
21
- </C>
20
+ </S>
21
+ </S>
22
22
 
23
- <C style={{flexDirection:"row",alignItems:"center",backgroundColor:`${S}25`,paddingHorizontal:8,paddingVertical:4,borderRadius:8,borderWidth:1,borderColor:`${S}40`,gap:3}}>
24
- <V style={{fontFamily:I.interBold,fontSize:10.5,color:S}}>
23
+ <S style={{flexDirection:"row",alignItems:"center",backgroundColor:`${C}25`,paddingHorizontal:8,paddingVertical:4,borderRadius:8,borderWidth:1,borderColor:`${C}40`,gap:3}}>
24
+ <V style={{fontFamily:I.interBold,fontSize:10.5,color:C}}>
25
25
  +{N}
26
26
  </V>
27
- <V style={{fontFamily:I.interRegular,fontSize:9,color:S}}>
27
+ <V style={{fontFamily:I.interRegular,fontSize:9,color:C}}>
28
28
  more
29
29
  </V>
30
- </C>
31
- </O>:<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:7,paddingHorizontal:11,marginVertical:3,marginRight:2,borderRadius:9,backgroundColor:`${S}0A`,borderWidth:1,borderColor:`${S}25`}}>
32
- <C style={{flexDirection:"row",alignItems:"center",gap:7}}>
33
- <C style={{width:17,height:17,borderRadius:8.5,backgroundColor:`${S}25`,alignItems:"center",justifyContent:"center"}}>
34
- <Fo color={S}size={8}/>
35
- </C>
30
+ </S>
31
+ </O>:<S style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:7,paddingHorizontal:11,marginVertical:3,marginRight:2,borderRadius:9,backgroundColor:`${C}0A`,borderWidth:1,borderColor:`${C}25`}}>
32
+ <S style={{flexDirection:"row",alignItems:"center",gap:7}}>
33
+ <S style={{width:17,height:17,borderRadius:8.5,backgroundColor:`${C}25`,alignItems:"center",justifyContent:"center"}}>
34
+ <Fo color={C}size={8}/>
35
+ </S>
36
36
  <V style={{fontFamily:I.interMedium,fontSize:11,color:o.grayTextStrong}}>
37
- {oe("footer.allLoaded",{count:E,defaultValue:`All ${E} requests loaded`})}
37
+ {oe("footer.allLoaded",{count:P,defaultValue:`All ${P} requests loaded`})}
38
38
  </V>
39
- </C>
39
+ </S>
40
40
 
41
- <C style={{backgroundColor:`${S}18`,paddingHorizontal:7,paddingVertical:2,borderRadius:6}}>
42
- <V style={{fontFamily:I.interBold,fontSize:9.5,color:S}}>
43
- {E}/{E}
41
+ <S style={{backgroundColor:`${C}18`,paddingHorizontal:7,paddingVertical:2,borderRadius:6}}>
42
+ <V style={{fontFamily:I.interBold,fontSize:9.5,color:C}}>
43
+ {P}/{P}
44
44
  </V>
45
- </C>
46
- </C>}
47
- </C>
48
- </C>}const{log:z,isLast:x,color:_}=e;return<Te index={T}distance={8}style={k?[b.treeNodeRow,x&&b.treeNodeRowLast]:{marginBottom:6,marginHorizontal:2}}>
49
- {k&&<C style={b.treeLines}>
50
- <C style={[b.modernTreeLine,{borderColor:_},x&&b.modernTreeLineLast]}/>
51
- {!x&&<C style={[b.modernTreeBranch,{borderColor:_}]}/>}
52
- </C>}
53
- <C style={k?b.treeCardWrapper:{flex:1}}>
45
+ </S>
46
+ </S>}
47
+ </S>
48
+ </S>}const{log:z,isLast:x,color:_}=e;return<Te index={T}distance={8}style={k?[b.treeNodeRow,x&&b.treeNodeRowLast]:{marginBottom:5,marginHorizontal:5}}>
49
+ {k&&<S style={b.treeLines}>
50
+ <S style={[b.modernTreeLine,{borderColor:_},x&&b.modernTreeLineLast]}/>
51
+ {!x&&<S style={[b.modernTreeBranch,{borderColor:_}]}/>}
52
+ </S>}
53
+ <S style={k?b.treeCardWrapper:{flex:1}}>
54
54
  <Ue item={z}isSelected={X.has(z.id)}onToggleSelect={me}onPress={()=>{ye(z)}}timelineMinStart={ge}timelineTotalRange={pe}isNew={he.has(z.id)}searchStr={F}/>
55
- </C>
56
- </Te>},[k,ge,pe,he,X,me,F,ce,ue,ne,ye,oe]);return<C style={{flex:1}}>
57
- <C style={{marginTop:6}}>
55
+ </S>
56
+ </Te>},[k,ge,pe,he,X,me,F,ce,ue,ne,ye,oe]);return<S style={{flex:1}}>
57
+ <S style={{marginTop:6}}>
58
58
 
59
- <C style={b.toolbarRow}>
60
- <C style={[b.searchContainer,we&&{borderColor:o.purple,borderWidth:1.5}]}>
59
+ <S style={b.toolbarRow}>
60
+ <S style={[b.searchContainer,we&&{borderColor:o.purple,borderWidth:1.5}]}>
61
61
  <Ze color={we?o.purple:o.grayTextWeak}size={15}/>
62
- <Ge placeholder="Search URL, status, method, headers, body..."placeholderTextColor={o.grayTextWeak}value={F}onChangeText={U}onFocus={()=>Ce(!0)}onBlur={()=>Ce(!1)}style={b.searchInput}autoCorrect={!1}autoCapitalize="none"/>
62
+ <Ge placeholder="Search URL, status, method, headers, body..."placeholderTextColor={o.grayTextWeak}value={F}onChangeText={U}onFocus={()=>Se(!0)}onBlur={()=>Se(!1)}style={b.searchInput}autoCorrect={!1}autoCapitalize="none"/>
63
63
 
64
- {F.length>0&&<C style={{flexDirection:"row",alignItems:"center",gap:4}}>
65
- <C style={{backgroundColor:`${o.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
64
+ {F.length>0&&<S style={{flexDirection:"row",alignItems:"center",gap:4}}>
65
+ <S style={{backgroundColor:`${o.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
66
66
  <V style={{color:o.purple,fontSize:9.5,fontFamily:I.interBold}}>
67
- {B.length}
67
+ {E.length}
68
68
  </V>
69
- </C>
69
+ </S>
70
70
  <He onPress={()=>U("")}hitSlop={10}style={b.clearBtn}>
71
- <Co color={o.grayTextWeak}size={13}/>
71
+ <So color={o.grayTextWeak}size={13}/>
72
72
  </He>
73
- </C>}
74
- </C>
73
+ </S>}
74
+ </S>
75
75
 
76
- <C style={b.toolbarRight}>
76
+ <S style={b.toolbarRight}>
77
77
  <O style={[b.toolbarBtn,{borderColor:`${o.errorColor}38`,backgroundColor:`${o.errorColor}0F`}]}onPress={Ie}hitSlop={6}>
78
- <So color={o.errorColor}size={15}/>
79
- {X.size>0&&<C style={b.trashBadge}>
78
+ <Co color={o.errorColor}size={15}/>
79
+ {X.size>0&&<S style={b.trashBadge}>
80
80
  <V style={b.trashBadgeText}>
81
81
  {X.size}
82
82
  </V>
83
- </C>}
83
+ </S>}
84
84
  </O>
85
85
 
86
86
  <O style={[b.toolbarBtn,k&&{borderColor:o.purple,backgroundColor:`${o.purple}15`}]}onPress={()=>ke(e=>!e)}hitSlop={6}accessibilityLabel={k?"Page Accordion Grouping Enabled (Tap for Plain List)":"Plain List Enabled (Tap for Page Accordion)"}accessibilityRole="button">
87
87
  <Ve color={k?o.purple:o.grayTextStrong}size={16}/>
88
- {k&&<C style={b.activeFilterDot}/>}
88
+ {k&&<S style={b.activeFilterDot}/>}
89
89
  </O>
90
90
 
91
91
  <O style={b.toolbarBtn}onPress={()=>J(e=>e==="newest"?"oldest":"newest")}hitSlop={10}>
92
92
  <To direction={Fe==="newest"?"down":"up"}color={o.grayTextStrong}size={18}/>
93
93
  </O>
94
- </C>
95
- </C>
94
+ </S>
95
+ </S>
96
96
 
97
97
 
98
- <C style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:12,gap:6}}>
98
+ <S style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:8,gap:6}}>
99
99
  <We horizontal showsHorizontalScrollIndicator={!1}style={{flex:1}}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingRight:6}}>
100
100
  {Oe.map(e=>{const T=K===e.id,z=e.color||o.purple,x=T?o.white:z;return<O key={e.id}onPress={()=>{le(T?"all":e.id)}}>
101
- <C style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:T?z:`${z}12`,borderWidth:1,borderColor:T?z:`${z}30`,gap:5}}>
101
+ <S style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:T?z:`${z}12`,borderWidth:1,borderColor:T?z:`${z}30`,gap:5}}>
102
102
  {e.id==="all"&&<Ve size={11}color={x}/>}
103
103
  {e.id==="errors"&&<Lo size={11}color={x}/>}
104
104
  {e.id==="success"&&<Ro size={11}color={x}/>}
@@ -109,45 +109,45 @@ import j,{useCallback as se,useMemo as H,useRef as qe}from"react";import{FlatLis
109
109
  <V style={{fontFamily:I.interBold,fontSize:10.5,color:T?o.white:o.primaryBlack}}>
110
110
  {e.label}
111
111
  </V>
112
- <C style={{backgroundColor:T?"rgba(255,255,255,0.25)":`${z}20`,paddingHorizontal:5,paddingVertical:1,borderRadius:8}}>
112
+ <S style={{backgroundColor:T?"rgba(255,255,255,0.25)":`${z}20`,paddingHorizontal:5,paddingVertical:1,borderRadius:8}}>
113
113
  <V style={{fontFamily:I.interBold,fontSize:9,color:T?o.white:z}}>
114
114
  {e.count}
115
115
  </V>
116
- </C>
117
- </C>
116
+ </S>
117
+ </S>
118
118
  </O>})}
119
119
  </We>
120
120
 
121
121
  <O onPress={()=>fe(!0)}style={{flexShrink:0}}>
122
- <C style={{flexDirection:"row",alignItems:"center",paddingHorizontal:10,paddingVertical:4.5,borderRadius:8,backgroundColor:M?`${o.purple}20`:o.grayBackground,borderWidth:1,borderColor:M?o.purple:o.grayBorderSecondary,gap:5,shadowColor:o.black,shadowOpacity:.04,shadowRadius:2,shadowOffset:{width:0,height:1},elevation:1}}>
122
+ <S style={{flexDirection:"row",alignItems:"center",paddingHorizontal:10,paddingVertical:4.5,borderRadius:8,backgroundColor:M?`${o.purple}20`:o.grayBackground,borderWidth:1,borderColor:M?o.purple:o.grayBorderSecondary,gap:5,shadowColor:o.black,shadowOpacity:.04,shadowRadius:2,shadowOffset:{width:0,height:1},elevation:1}}>
123
123
  <Vo size={11}color={M?o.purple:o.grayText}/>
124
124
  <V style={{fontFamily:I.interBold,fontSize:10.5,color:M?o.purple:o.grayText}}>
125
125
  {oe("network.moreFilters","More Filters")}
126
126
  </V>
127
- {M&&<C style={{backgroundColor:o.purple,paddingHorizontal:4.5,paddingVertical:1,borderRadius:6}}>
127
+ {M&&<S style={{backgroundColor:o.purple,paddingHorizontal:4.5,paddingVertical:1,borderRadius:6}}>
128
128
  <V style={{fontFamily:I.interBold,fontSize:8.5,color:o.white}}>
129
129
  {Ee}
130
130
  </V>
131
- </C>}
132
- </C>
131
+ </S>}
132
+ </S>
133
133
  </O>
134
- </C>
134
+ </S>
135
135
 
136
136
 
137
- {(K!=="all"||F.trim().length>0||M||B.length!==G.length)&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginHorizontal:12,marginBottom:8,paddingHorizontal:10,paddingVertical:5.5,backgroundColor:`${o.purple}10`,borderRadius:8,borderWidth:1,borderColor:`${o.purple}25`}}>
137
+ {(K!=="all"||F.trim().length>0||M||E.length!==G.length)&&<S style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginHorizontal:8,marginBottom:8,paddingHorizontal:8,paddingVertical:5.5,backgroundColor:`${o.purple}10`,borderRadius:8,borderWidth:1,borderColor:`${o.purple}25`}}>
138
138
  <V style={{fontFamily:I.interMedium,fontSize:10.5,color:o.purple}}>
139
- Showing {B.length} of {G.length} requests
139
+ Showing {E.length} of {G.length} requests
140
140
  </V>
141
141
  <O onPress={()=>{U(""),le("all"),v(new Set),W(new Set),Y("all"),Z("all"),ee("time_desc"),de("all")}}>
142
142
  <V style={{fontFamily:I.interBold,fontSize:10.5,color:o.errorColor}}>
143
143
  Clear All Filters
144
144
  </V>
145
145
  </O>
146
- </C>}
147
- </C>
146
+ </S>}
147
+ </S>
148
148
 
149
- <De ref={Re}data={Be}keyExtractor={Pe}renderItem={$e}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}ListEmptyComponent={<Ke isSearch={F.length>0||M||K!=="all"}searchQuery={F}customTitle={F.length>0?"No matching API requests":"No network activity"}onClearSearch={()=>{U(""),v(new Set),W(new Set),Y("all"),Z("all"),ee("time_desc"),le("all"),de("all")}}/>}ListFooterComponent={Q.length>0?<Xe count={k?B.length:Math.min(te,B.length)}totalCount={B.length}label="requests"hasMore={!k&&B.length>te}loadMoreStep={30}onLoadMore={()=>Se(e=>e+30)}/>:null}contentContainerStyle={[b.listContent,B.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
149
+ <De ref={Re}data={Be}keyExtractor={Pe}renderItem={$e}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}ListEmptyComponent={<Ke isSearch={F.length>0||M||K!=="all"}searchQuery={F}customTitle={F.length>0?"No matching API requests":"No network activity"}onClearSearch={()=>{U(""),v(new Set),W(new Set),Y("all"),Z("all"),ee("time_desc"),le("all"),de("all")}}/>}ListFooterComponent={Q.length>0?<Xe count={k?E.length:Math.min(te,E.length)}totalCount={E.length}label="requests"hasMore={!k&&E.length>te}loadMoreStep={30}onLoadMore={()=>Ce(e=>e+30)}/>:null}style={{flex:1}}contentContainerStyle={[b.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
150
150
 
151
151
 
152
152
  <Je visible={Le}onClose={()=>fe(!1)}filters={Me}onApply={Ne}searchQuery={F}/>
153
- </C>});export default No;
153
+ </S>});export default No;
@@ -87,4 +87,4 @@ import O,{useMemo as R}from"react";import{StyleSheet as F,Text as T,View as C}fr
87
87
  </C>
88
88
  </C>
89
89
  </C>
90
- </J>}const o=F.create({card:{height:140,alignSelf:"stretch",borderRadius:10,overflow:"hidden",borderWidth:1,borderColor:e.dividerColor,shadowColor:e.shadowColorString,marginBottom:6},cardBody:{height:"100%",paddingHorizontal:12,paddingTop:10,paddingBottom:8,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22},cardHeaderLeft:{flexDirection:"row",alignItems:"center",flex:1,marginRight:8,gap:6,minWidth:0,overflow:"hidden"},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},serialNumber:{fontFamily:S.interBold,color:e.grayTextWeak,fontSize:10},methodBadge:{paddingHorizontal:7,paddingVertical:2.5,borderRadius:5,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:S.interBold,fontSize:9.5,lineHeight:12,letterSpacing:.5,color:e.white},chip:{paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},chipText:{fontFamily:S.interBold,fontSize:9,lineHeight:12},statusPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:2.5,borderRadius:6,borderWidth:1,flexShrink:0},statusPillText:{fontFamily:S.interBold,fontSize:10,lineHeight:13},messageBox:{backgroundColor:e.grayBackground,borderRadius:7,borderWidth:1,borderColor:e.dividerColor,paddingHorizontal:10,paddingVertical:6,height:68,minHeight:68,maxHeight:68,justifyContent:"center",gap:2,overflow:"hidden"},messageTitle:{fontFamily:S.interBold,fontSize:12,color:e.primaryBlack,lineHeight:16},messageBody:{fontFamily:S.interRegular,fontSize:11,color:e.grayText,lineHeight:15},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},cardDateRow:{flexDirection:"row",alignItems:"center",gap:3.5},cardDateText:{fontFamily:S.interRegular,fontSize:10,lineHeight:13,color:e.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.skySoftBg,borderColor:e.skySoftBorder,borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,flexShrink:1,minWidth:0},callerChipText:{color:e.skySoftText,fontSize:9,lineHeight:12,fontFamily:S.interBold},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${e.purple}14`,borderColor:`${e.purple}2B`,borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4},metaStatText:{color:e.purple,fontSize:9,lineHeight:12,fontFamily:S.interBold}});function ee(r,t){return r.item===t.item&&r.searchStr===t.searchStr&&r.onPress===t.onPress}export default O.memo(Z,ee);
90
+ </J>}const o=F.create({card:{height:140,alignSelf:"stretch",borderRadius:10,overflow:"hidden",borderWidth:1,borderColor:e.dividerColor,shadowColor:e.shadowColorString,marginBottom:6},cardBody:{height:"100%",paddingHorizontal:8,paddingTop:8,paddingBottom:6,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22},cardHeaderLeft:{flexDirection:"row",alignItems:"center",flex:1,marginRight:4,gap:4.5,minWidth:0,overflow:"hidden"},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:4,flexShrink:0},serialNumber:{fontFamily:S.interBold,color:e.grayTextWeak,fontSize:10},methodBadge:{paddingHorizontal:6,paddingVertical:2,borderRadius:5,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:S.interBold,fontSize:9.5,lineHeight:12,letterSpacing:.5,color:e.white},chip:{paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:S.interBold,fontSize:9,lineHeight:12},statusPill:{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:6,paddingVertical:2,borderRadius:6,borderWidth:1,flexShrink:0},statusPillText:{fontFamily:S.interBold,fontSize:9.5,lineHeight:12},messageBox:{backgroundColor:e.grayBackground,borderRadius:7,borderWidth:1,borderColor:e.dividerColor,paddingHorizontal:7,paddingVertical:5,height:68,minHeight:68,maxHeight:68,justifyContent:"center",gap:2,overflow:"hidden"},messageTitle:{fontFamily:S.interBold,fontSize:12,color:e.primaryBlack,lineHeight:16},messageBody:{fontFamily:S.interRegular,fontSize:11,color:e.grayText,lineHeight:15},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:4},footerLeft:{flexDirection:"row",alignItems:"center",gap:4.5,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:4,flexShrink:0},cardDateRow:{flexDirection:"row",alignItems:"center",gap:3.5},cardDateText:{fontFamily:S.interRegular,fontSize:10,lineHeight:13,color:e.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.skySoftBg,borderColor:e.skySoftBorder,borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,flexShrink:1,minWidth:0},callerChipText:{color:e.skySoftText,fontSize:9,lineHeight:12,fontFamily:S.interBold},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${e.purple}14`,borderColor:`${e.purple}2B`,borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4},metaStatText:{color:e.purple,fontSize:9,lineHeight:12,fontFamily:S.interBold}});function ee(r,t){return r.item===t.item&&r.searchStr===t.searchStr&&r.onPress===t.onPress}export default O.memo(Z,ee);
@@ -1,4 +1,4 @@
1
- import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as P,StyleSheet as E,Text as T,View as C}from"react-native";import I from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as V}from"../../styles/AppFonts";import{useTranslation as _}from"../../i18n";import{formatDateTime as Y}from"../../helpers";import{sharePushReport as q}from"../../helpers/shareFormatter";import G from"../ShareButton";import R from"../CopyButton";import F from"../JsonViewer";import Q from"../SegmentedTabs";import{BellIcon as X,ClockIcon as Z,CloudPushIcon as Te,EyeIcon as Ce,LayersIcon as Ve,MetadataIcon as Se,RawJsonIcon as Be,LinkChainIcon as Ie,VolumeIcon as De,BoltIcon as Pe,BuildingIcon as Re,SettingsIcon as Fe}from"../NetworkIcons";const A=U.memo(function({item:o}){const{t:B}=_(),[z,N]=J("preview"),v=j(()=>o?Y(o.timestamp):"",[o]);if(!o)return null;const W=async()=>{await q(o)},H=[{key:"preview",label:B("push.preview","Preview"),themeColor:e.brandPurple,icon:S=><Ce size={12}color={S?e.white:e.grayText}/>},{key:"payload",label:B("push.payload","Custom Payload"),themeColor:e.violet600,icon:S=><Ve size={12}color={S?e.white:e.grayText}/>},{key:"headers",label:B("push.deliveryMetadata","Delivery Metadata"),themeColor:e.teal600,icon:S=><Se size={12}color={S?e.white:e.grayText}/>},{key:"raw",label:B("push.rawPayload","Raw Payload"),themeColor:e.sky600,icon:S=><Be size={12}color={S?e.white:e.grayText}/>}],O=(o.source||"PUSH").toUpperCase(),L=(o.appState||"STATE").toUpperCase(),$=!!(o.data?.deepLink||o.data?.openDirectUrl||o.data?._od||o.customDomainAttributes?.openDirectUrl),M=o.data?.deepLink||o.data?.openDirectUrl||o.data?._od||o.customDomainAttributes?.openDirectUrl||"";return<C style={{flex:1}}>
1
+ import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as P,StyleSheet as E,Text as T,View as C}from"react-native";import I from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as V}from"../../styles/AppFonts";import{useTranslation as _}from"../../i18n";import{formatDateTime as Y}from"../../helpers";import{sharePushReport as q}from"../../helpers/shareFormatter";import G from"../ShareButton";import R from"../CopyButton";import F from"../JsonViewer";import Q from"../SegmentedTabs";import{BellIcon as X,ClockIcon as Z,CloudPushIcon as Te,EyeIcon as Ce,LayersIcon as Ve,MetadataIcon as Se,RawJsonIcon as Be,LinkChainIcon as Ie,VolumeIcon as De,BoltIcon as Pe,BuildingIcon as Re,SettingsIcon as Fe}from"../NetworkIcons";const A=U.memo(function({item:o}){const{t:S}=_(),[z,N]=J("preview"),v=j(()=>o?Y(o.timestamp):"",[o]);if(!o)return null;const W=async()=>{await q(o)},H=[{key:"preview",label:S("push.preview","Preview"),themeColor:e.brandPurple,icon:B=><Ce size={12}color={B?e.white:e.grayText}/>},{key:"payload",label:S("push.payload","Custom Payload"),themeColor:e.violet600,icon:B=><Ve size={12}color={B?e.white:e.grayText}/>},{key:"headers",label:S("push.deliveryMetadata","Delivery Metadata"),themeColor:e.teal600,icon:B=><Se size={12}color={B?e.white:e.grayText}/>},{key:"raw",label:S("push.rawPayload","Raw Payload"),themeColor:e.sky600,icon:B=><Be size={12}color={B?e.white:e.grayText}/>}],O=(o.source||"PUSH").toUpperCase(),L=(o.appState||"STATE").toUpperCase(),$=!!(o.data?.deepLink||o.data?.openDirectUrl||o.data?._od||o.customDomainAttributes?.openDirectUrl),M=o.data?.deepLink||o.data?.openDirectUrl||o.data?._od||o.customDomainAttributes?.openDirectUrl||"";return<C style={{flex:1}}>
2
2
 
3
3
  <C style={{paddingHorizontal:8,paddingTop:4}}>
4
4
  <C style={I.detailInfoBar}>
@@ -66,7 +66,7 @@ import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as
66
66
  {$?<C style={{flexDirection:"row",alignItems:"center",gap:4,marginTop:2}}>
67
67
  <Ie size={11}color={e.brandPurple}/>
68
68
  <T style={{fontSize:10,fontFamily:V.interBold,color:e.brandPurple}}>
69
- {B("push.link","LINK")}:
69
+ {S("push.link","LINK")}:
70
70
  </T>
71
71
  <T style={{fontSize:10.5,fontFamily:V.interRegular,color:e.sky600}}numberOfLines={1}>
72
72
  {M}
@@ -79,7 +79,7 @@ import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as
79
79
 
80
80
 
81
81
  <C style={{paddingHorizontal:8,paddingVertical:6}}>
82
- <Q tabs={H}activeKey={z}onChange={S=>N(S)}scrollable={!0}/>
82
+ <Q tabs={H}activeKey={z}onChange={B=>N(B)}scrollable={!0}/>
83
83
  </C>
84
84
 
85
85
 
@@ -92,9 +92,9 @@ import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as
92
92
  <X size={12}color={e.white}/>
93
93
  </C>
94
94
  <T style={t.mockupAppName}>
95
- {o.domain||B("push.appNotification","App Notification")}
95
+ {o.domain||S("push.appNotification","App Notification")}
96
96
  </T>
97
- <T style={t.mockupTime}>• {B("push.now","now")}</T>
97
+ <T style={t.mockupTime}>• {S("push.now","now")}</T>
98
98
  </C>
99
99
 
100
100
 
@@ -136,10 +136,10 @@ import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as
136
136
  {o.customDomainAttributes&&Object.keys(o.customDomainAttributes).length>0&&<C style={t.sectionCard}>
137
137
  <C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:8}}>
138
138
  <Re size={13}color={e.blue600}/>
139
- <T style={t.sectionTitle}>{B("push.domainFields","Domain Specific Fields")}</T>
139
+ <T style={t.sectionTitle}>{S("push.domainFields","Domain Specific Fields")}</T>
140
140
  </C>
141
- {Object.entries(o.customDomainAttributes).map(([S,D])=><C key={S}style={t.keyValRow}>
142
- <T style={t.keyText}>{S}:</T>
141
+ {Object.entries(o.customDomainAttributes).map(([B,D])=><C key={B}style={t.keyValRow}>
142
+ <T style={t.keyText}>{B}:</T>
143
143
  <T style={t.valText}numberOfLines={2}>
144
144
  {typeof D=="object"?JSON.stringify(D):String(D)}
145
145
  </T>
@@ -153,42 +153,42 @@ import U,{useMemo as j,useState as J}from"react";import{Image as K,ScrollView as
153
153
  <C style={t.sectionCard}>
154
154
  <C style={{flexDirection:"row",alignItems:"center",gap:6,marginBottom:8}}>
155
155
  <Fe size={13}color={e.slate600}/>
156
- <T style={t.sectionTitle}>{B("push.deliveryMetadata","Delivery & Message Metadata")}</T>
156
+ <T style={t.sectionTitle}>{S("push.deliveryMetadata","Delivery & Message Metadata")}</T>
157
157
  </C>
158
158
  <C style={t.keyValRow}>
159
- <T style={t.keyText}>Message ID:</T>
159
+ <T style={t.keyText}>{S("push.messageId","Message ID:")}</T>
160
160
  <T style={t.valText}selectable>{o.id||"N/A"}</T>
161
161
  </C>
162
162
  <C style={t.keyValRow}>
163
- <T style={t.keyText}>Source / Domain:</T>
163
+ <T style={t.keyText}>{S("push.sourceDomain","Source / Domain:")}</T>
164
164
  <T style={t.valText}>{o.domain||o.source||"N/A"}</T>
165
165
  </C>
166
166
  <C style={t.keyValRow}>
167
- <T style={t.keyText}>App State:</T>
167
+ <T style={t.keyText}>{S("push.appState","App State:")}</T>
168
168
  <T style={t.valText}>{o.appState}</T>
169
169
  </C>
170
170
  <C style={t.keyValRow}>
171
- <T style={t.keyText}>Action Type:</T>
171
+ <T style={t.keyText}>{S("push.actionType","Action Type:")}</T>
172
172
  <T style={t.valText}>{o.action}</T>
173
173
  </C>
174
174
  <C style={t.keyValRow}>
175
- <T style={t.keyText}>Timestamp:</T>
175
+ <T style={t.keyText}>{S("push.timestamp","Timestamp:")}</T>
176
176
  <T style={t.valText}>{v}</T>
177
177
  </C>
178
178
  <C style={t.keyValRow}>
179
- <T style={t.keyText}>Channel ID:</T>
179
+ <T style={t.keyText}>{S("push.channelId","Channel ID:")}</T>
180
180
  <T style={t.valText}>{o.channelId||"default"}</T>
181
181
  </C>
182
182
  <C style={t.keyValRow}>
183
- <T style={t.keyText}>Sound:</T>
183
+ <T style={t.keyText}>{S("push.sound","Sound:")}</T>
184
184
  <T style={t.valText}>{o.sound||"default"}</T>
185
185
  </C>
186
186
  <C style={t.keyValRow}>
187
- <T style={t.keyText}>Badge Count:</T>
187
+ <T style={t.keyText}>{S("push.badgeCount","Badge Count:")}</T>
188
188
  <T style={t.valText}>{o.badge!=null?o.badge:"None"}</T>
189
189
  </C>
190
190
  <C style={t.keyValRow}>
191
- <T style={t.keyText}>Collapse Key:</T>
191
+ <T style={t.keyText}>{S("push.collapseKey","Collapse Key:")}</T>
192
192
  <T style={t.valText}>{o.collapseKey||"None"}</T>
193
193
  </C>
194
194
  </C>
@@ -41,5 +41,5 @@ import K,{useCallback as B,useMemo as F,useRef as ne,useState as U}from"react";i
41
41
  </C>
42
42
 
43
43
 
44
- <Ce ref={W}data={V}renderItem={re}keyExtractor={le}contentContainerStyle={k.listContent}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}ListEmptyComponent={<Ee isSearch={!!(r||T!=="all")}searchQuery={r}customTitle={r||T!=="all"?x("push.noMatching","No matching push notifications"):x("push.noNotifications","No push notifications captured yet")}customSub={r||T!=="all"?x("push.adjustSearchFilter","Try adjusting your search query or filter chips."):x("push.noNotificationsDesc","Incoming or opened push payloads from any domain (Salesforce, FCM, APNs, etc.) will appear here automatically.")}onClearSearch={()=>{R(""),M("all")}}showReload={!1}/>}ListFooterComponent={P.length>0?<Fe count={V.length}totalCount={P.length}label="push notifications"loadMoreStep={J}hasMore={V.length<P.length}onLoadMore={()=>$(e=>e+J)}/>:null}/>
44
+ <Ce ref={W}data={V}renderItem={re}keyExtractor={le}style={{flex:1}}contentContainerStyle={[k.listContent,{flexGrow:1}]}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}keyboardShouldPersistTaps="handled"ListEmptyComponent={<Ee isSearch={!!(r||T!=="all")}searchQuery={r}customTitle={r||T!=="all"?x("push.noMatching","No matching push notifications"):x("push.noNotifications","No push notifications captured yet")}customSub={r||T!=="all"?x("push.adjustSearchFilter","Try adjusting your search query or filter chips."):x("push.noNotificationsDesc","Incoming or opened push payloads from any domain (Salesforce, FCM, APNs, etc.) will appear here automatically.")}onClearSearch={()=>{R(""),M("all")}}showReload={!1}/>}ListFooterComponent={P.length>0?<Fe count={V.length}totalCount={P.length}label="push notifications"loadMoreStep={J}hasMore={V.length<P.length}onLoadMore={()=>$(e=>e+J)}/>:null}/>
45
45
  </C>}),k=we.create({carouselWrapper:{paddingVertical:6,borderBottomWidth:1,borderBottomColor:t.dividerColor,backgroundColor:t.white},carouselContent:{paddingHorizontal:8,gap:6,flexDirection:"row",alignItems:"center"},filterPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:9,paddingVertical:4.5,borderRadius:20,backgroundColor:t.grayBackground,borderWidth:1,borderColor:t.dividerColor},filterPillText:{fontSize:11,fontFamily:G.interMedium,color:t.primaryBlack},countBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:10},countBadgeText:{fontSize:9.5,fontFamily:G.interBold},listContent:{padding:8,paddingBottom:24}});X.displayName="PushTab";export default X;
@@ -1,13 +1,15 @@
1
- import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react";import{FlatList as De,Platform as Fe,Pressable as Ce,StyleSheet as Ee,Text as S,TextInput as We,TouchableOpacity as Oe,View as C}from"react-native";import{useTranslation as Me}from"../../i18n";import{useInspector as je}from"./InspectorContext";import Ne from"../TouchableScale";import $e from"../AnimatedEntrance";import Ue from"../EmptyState";import Ge from"../EndOfListFooter";import Te from"../HighlightText";import{getSize as Se,openInVSCode as _e,getCleanCallerDisplay as Ze}from"../../helpers";import O from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as R}from"../../styles/AppFonts";import{getActionHistory as Ke}from"../../customHooks/reduxLogger";import{TerminalIcon as Ie,SearchIcon as Je,ClearIcon as Qe,LayersIcon as Xe,ClockIcon as Ye,SizeIcon as Ct,ForwardChevronIcon as Tt,SortArrowIcon as St,BoltIcon as U,AtomIcon as It,ScreenIcon as At,ListenerIcon as Rt,DocIcon as Vt,LoadingSpinnerIcon as Bt,CircleAlertIcon as Ht,TextAaIcon as Lt}from"../NetworkIcons";const Ae=L=>{switch(L){case"saga":return{label:"SAGA",renderIcon:(A,z=9)=><U color={A}size={z}/>,bg:e.purple100,text:e.brandPurple,border:e.purple200};case"thunk":return{label:"THUNK",renderIcon:(A,z=9)=><It color={A}size={z}/>,bg:e.amber100,text:e.amber800Warm,border:e.amber200};case"ui":return{label:"UI",renderIcon:(A,z=9)=><At color={A}size={z}/>,bg:e.sky100,text:e.sky600,border:e.sky400};case"listener":return{label:"LISTENER",renderIcon:(A,z=9)=><Rt color={A}size={z}/>,bg:e.teal100,text:e.teal700,border:e.teal400};default:return{label:"DIRECT",renderIcon:(A,z=9)=><U color={A}size={z}/>,bg:e.slate100,text:e.slate700,border:e.slate200}}},Re=50,ze=10,Pt=ee.memo(()=>{const{t:L}=Me(),{reduxState:A,reduxLastActionMap:z,reduxSearch:k,setReduxSearch:G,setSelectedReduxSlice:Z}=je(),K=Pe(null),[q,J]=te(Re),[P,ke]=te("latest");ee.useEffect(()=>{J(Re),K.current?.scrollToOffset({offset:0,animated:!1})},[k,P]);const Ve=N(()=>Se(A),[A]),Q=N(()=>Ke(),[z]),$=N(()=>!A||typeof A!="object"?[]:Object.keys(A).map(I=>{const T=A[I],B=Array.isArray(T),j=T&&typeof T=="object";let F="Primitive",H=0;B?(H=T.length,F=`Array [${H}]`):j?(H=Object.keys(T).length,F=`Object {${H}}`):typeof T<"u"&&(H=1,F=typeof T);let E="live",v;j&&(T.loading===!0||T.isLoading===!0||T.status==="loading"||T.status==="pending"?(E="loading",v="Loading"):T.error||T.hasError||T.status==="error"||T.status==="failed"?(E="error",v=typeof T.error=="string"?T.error:"Error"):H===0&&(E="empty",v="Empty"));const V=z[I],Be=V?.updatedAt||0,He=Q.filter(W=>!W.affectedSlices||W.affectedSlices.length===0?!0:W.affectedSlices.includes(I)).length;let X;if(V){let W;if(V.payload!==void 0&&V.payload!==null)try{if(typeof V.payload=="object"){const Y=Object.keys(V.payload);W=`{ ${Y.slice(0,3).join(", ")}${Y.length>3?"...":""} }`}else W=String(V.payload)}catch{}X={type:V.type,timestamp:V.timestamp,updatedAt:V.updatedAt,payloadPreview:W,originType:V.originType,callerFile:V.callerFile,callerLine:V.callerLine,callerCol:V.callerCol}}return{id:`slice-${I}`,name:I,keysCount:H,sizeStr:Se(T),typeLabel:F,status:E,statusMessage:v,timelineCount:He,lastAction:X,updatedAt:Be}}),[A,z,Q]),D=N(()=>{let t=$;if(k&&k.trim().length>0){const I=k.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(T=>{const B=A?A[T.name]:null,j=[T.name||"",T.lastAction?.type||"",T.lastAction?.payloadPreview||"",T.lastAction?.originType||"",T.status||"",T.statusMessage||"",B?typeof B=="string"?B:JSON.stringify(B):""].join(" ").toLowerCase();return I.every(F=>j.includes(F))})}return[...t].sort((I,T)=>P==="latest"&&T.updatedAt!==I.updatedAt?T.updatedAt-I.updatedAt:I.name.localeCompare(T.name))},[$,k,P,A]),_=N(()=>D.slice(0,q),[D,q]),M=N(()=>{const t=Object.values(z);return t.length===0?null:t.reduce((I,T)=>I?(T.updatedAt||0)>(I.updatedAt||0)?T:I:T,null)},[z]),ve=Le(({item:t,index:I})=>{const T=t.updatedAt>0&&Date.now()-t.updatedAt<5e3,B=t.status==="error"?e.errorColor:t.status==="loading"?e.warningIconGold:t.status==="empty"?e.grayTextWeak:e.greenColor,j=t.status==="error"?e.red100:t.status==="loading"?e.amber100:t.status==="empty"?e.grayBackground:e.emeraldBg,F=t.status==="error"?e.errorBorder:t.status==="loading"?e.amber200:t.status==="empty"?e.dividerColor:e.emeraldBorder,H=t.status==="error"?e.red600:t.status==="loading"?e.amber800Warm:t.status==="empty"?e.grayTextWeak:e.emerald700,E=t.lastAction?.callerFile?Ze(t.lastAction.callerFile):null;return<$e index={I}distance={8}>
1
+ import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react";import{FlatList as De,Platform as Fe,Pressable as Ce,StyleSheet as Ee,Text as S,TextInput as We,TouchableOpacity as Oe,View as C}from"react-native";import{useTranslation as Me}from"../../i18n";import{useInspector as je}from"./InspectorContext";import Ne from"../TouchableScale";import $e from"../AnimatedEntrance";import Ue from"../EmptyState";import Ge from"../EndOfListFooter";import Te from"../HighlightText";import{getSize as Se,openInVSCode as _e,getCleanCallerDisplay as Ze}from"../../helpers";import O from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as R}from"../../styles/AppFonts";import{getActionHistory as Ke}from"../../customHooks/reduxLogger";import{TerminalIcon as Ie,SearchIcon as Je,ClearIcon as Qe,LayersIcon as Xe,ClockIcon as Ye,SizeIcon as Ct,ForwardChevronIcon as Tt,SortArrowIcon as St,BoltIcon as U,AtomIcon as It,ScreenIcon as At,ListenerIcon as Rt,DocIcon as Vt,LoadingSpinnerIcon as Bt,CircleAlertIcon as Ht,TextAaIcon as Lt}from"../NetworkIcons";const Ae=B=>{switch(B){case"saga":return{label:"SAGA",renderIcon:(A,z=9)=><U color={A}size={z}/>,bg:e.purple100,text:e.brandPurple,border:e.purple200};case"thunk":return{label:"THUNK",renderIcon:(A,z=9)=><It color={A}size={z}/>,bg:e.amber100,text:e.amber800Warm,border:e.amber200};case"ui":return{label:"UI",renderIcon:(A,z=9)=><At color={A}size={z}/>,bg:e.sky100,text:e.sky600,border:e.sky400};case"listener":return{label:"LISTENER",renderIcon:(A,z=9)=><Rt color={A}size={z}/>,bg:e.teal100,text:e.teal700,border:e.teal400};default:return{label:"DIRECT",renderIcon:(A,z=9)=><U color={A}size={z}/>,bg:e.slate100,text:e.slate700,border:e.slate200}}},Re=50,ze=10,Pt=ee.memo(()=>{const{t:B}=Me(),{reduxState:A,reduxLastActionMap:z,reduxSearch:k,setReduxSearch:G,setSelectedReduxSlice:Z}=je(),K=Pe(null),[q,J]=te(Re),[P,ke]=te("latest");ee.useEffect(()=>{J(Re),K.current?.scrollToOffset({offset:0,animated:!1})},[k,P]);const Ve=N(()=>Se(A),[A]),Q=N(()=>Ke(),[z]),$=N(()=>!A||typeof A!="object"?[]:Object.keys(A).map(I=>{const T=A[I],H=Array.isArray(T),j=T&&typeof T=="object";let D="Primitive",L=0;H?(L=T.length,D=`Array [${L}]`):j?(L=Object.keys(T).length,D=`Object {${L}}`):typeof T<"u"&&(L=1,D=typeof T);let E="live",v;j&&(T.loading===!0||T.isLoading===!0||T.status==="loading"||T.status==="pending"?(E="loading",v="Loading"):T.error||T.hasError||T.status==="error"||T.status==="failed"?(E="error",v=typeof T.error=="string"?T.error:"Error"):L===0&&(E="empty",v="Empty"));const V=z[I],Be=V?.updatedAt||0,He=Q.filter(W=>!W.affectedSlices||W.affectedSlices.length===0?!0:W.affectedSlices.includes(I)).length;let X;if(V){let W;if(V.payload!==void 0&&V.payload!==null)try{if(typeof V.payload=="object"){const Y=Object.keys(V.payload);W=`{ ${Y.slice(0,3).join(", ")}${Y.length>3?"...":""} }`}else W=String(V.payload)}catch{}X={type:V.type,timestamp:V.timestamp,updatedAt:V.updatedAt,payloadPreview:W,originType:V.originType,callerFile:V.callerFile,callerLine:V.callerLine,callerCol:V.callerCol}}return{id:`slice-${I}`,name:I,keysCount:L,sizeStr:Se(T),typeLabel:D,status:E,statusMessage:v,timelineCount:He,lastAction:X,updatedAt:Be}}),[A,z,Q]),F=N(()=>{let t=$;if(k&&k.trim().length>0){const I=k.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(T=>{const H=A?A[T.name]:null,j=[T.name||"",T.lastAction?.type||"",T.lastAction?.payloadPreview||"",T.lastAction?.originType||"",T.status||"",T.statusMessage||"",H?typeof H=="string"?H:JSON.stringify(H):""].join(" ").toLowerCase();return I.every(D=>j.includes(D))})}return[...t].sort((I,T)=>P==="latest"&&T.updatedAt!==I.updatedAt?T.updatedAt-I.updatedAt:I.name.localeCompare(T.name))},[$,k,P,A]),_=N(()=>F.slice(0,q),[F,q]),M=N(()=>{const t=Object.values(z);return t.length===0?null:t.reduce((I,T)=>I?(T.updatedAt||0)>(I.updatedAt||0)?T:I:T,null)},[z]),ve=Le(({item:t,index:I})=>{const T=t.updatedAt>0&&Date.now()-t.updatedAt<5e3,H=t.status==="error"?e.errorColor:t.status==="loading"?e.warningIconGold:t.status==="empty"?e.grayTextWeak:e.greenColor,j=t.status==="error"?e.red100:t.status==="loading"?e.amber100:t.status==="empty"?e.grayBackground:e.emeraldBg,D=t.status==="error"?e.errorBorder:t.status==="loading"?e.amber200:t.status==="empty"?e.dividerColor:e.emeraldBorder,L=t.status==="error"?e.red600:t.status==="loading"?e.amber800Warm:t.status==="empty"?e.grayTextWeak:e.emerald700,E=t.lastAction?.callerFile?Ze(t.lastAction.callerFile):null;return<$e index={I}distance={8}>
2
2
  <C style={o.cardContainer}>
3
- <Ne onPress={()=>{Z(t.name)}}style={[o.card,{borderLeftWidth:3.5,borderLeftColor:B,backgroundColor:t.status==="error"?e.errorCardBg:e.white},T&&o.cardRecentlyUpdated]}>
3
+ <Ne onPress={()=>{Z(t.name)}}style={[o.card,{borderLeftWidth:3.5,borderLeftColor:H,backgroundColor:t.status==="error"?e.errorCardBg:e.white},T&&o.cardRecentlyUpdated]}>
4
4
  <C style={o.cardBody}>
5
5
 
6
6
  <C style={o.cardHeaderRow}>
7
7
  <C style={o.cardHeaderLeft}>
8
8
  <S style={o.serialNumber}>#{I+1}</S>
9
9
  <C style={[o.methodBadge,{backgroundColor:e.violet600}]}>
10
- <S style={o.methodBadgeText}>REDUX</S>
10
+ <S style={o.methodBadgeText}>
11
+ {B("redux.title","REDUX").toUpperCase()}
12
+ </S>
11
13
  </C>
12
14
  <C style={[o.chip,{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`}]}>
13
15
  <S style={[o.chipText,{color:e.violet600}]}>
@@ -24,9 +26,9 @@ import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react
24
26
  </C>
25
27
 
26
28
  <C style={o.cardHeaderRight}>
27
- <C style={[o.statusPill,{backgroundColor:j,borderColor:F}]}>
29
+ <C style={[o.statusPill,{backgroundColor:j,borderColor:D}]}>
28
30
  {t.status==="loading"?<Bt color={e.amber800Warm}size={10}/>:t.status==="error"?<Ht color={e.red600}size={10}/>:t.status==="empty"?null:<C style={o.liveDot}/>}
29
- <S style={[o.statusPillText,{color:H}]}>
31
+ <S style={[o.statusPillText,{color:L}]}>
30
32
  {t.status==="loading"?"Loading":t.status==="error"?t.statusMessage||"Error":t.status==="empty"?"Empty":"Live"}
31
33
  </S>
32
34
  </C>
@@ -87,7 +89,7 @@ import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react
87
89
 
88
90
 
89
91
  <C style={o.waterfallContainer}>
90
- <C style={[o.waterfallBar,{backgroundColor:B,width:T?"100%":"35%"}]}/>
92
+ <C style={[o.waterfallBar,{backgroundColor:H,width:T?"100%":"35%"}]}/>
91
93
  </C>
92
94
  </Ne>
93
95
  </C>
@@ -95,18 +97,18 @@ import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react
95
97
 
96
98
  <C style={o.overviewCard}>
97
99
  <C style={o.statCol}>
98
- <S style={o.statHeading}>{L("redux.activeSlices","ACTIVE SLICES")}</S>
100
+ <S style={o.statHeading}>{B("redux.activeSlices","ACTIVE SLICES")}</S>
99
101
  <S style={o.statBigVal}>{$.length}</S>
100
102
  </C>
101
103
  <C style={o.statDivider}/>
102
104
  <C style={o.statCol}>
103
- <S style={o.statHeading}>{L("redux.totalState","TOTAL STATE")}</S>
105
+ <S style={o.statHeading}>{B("redux.totalState","TOTAL STATE")}</S>
104
106
  <S style={o.statBigVal}>{Ve}</S>
105
107
  </C>
106
108
  <C style={o.statDivider}/>
107
109
  <C style={[o.statCol,{flex:1.6}]}>
108
110
  <C style={{flexDirection:"row",alignItems:"center",gap:4}}>
109
- <S style={o.statHeading}>{L("redux.lastActionHeader","LAST ACTION")}</S>
111
+ <S style={o.statHeading}>{B("redux.lastActionHeader","LAST ACTION")}</S>
110
112
  {M?.originType&&(()=>{const t=Ae(M.originType);return<C style={{flexDirection:"row",alignItems:"center",gap:2,backgroundColor:t.bg,paddingHorizontal:4,paddingVertical:1,borderRadius:3}}>
111
113
  {t.renderIcon(t.text,8)}
112
114
  <S style={{fontFamily:R.interBold,fontSize:7.5,color:t.text}}>
@@ -128,11 +130,11 @@ import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react
128
130
  <C style={o.searchRow}>
129
131
  <C style={O.searchContainer}>
130
132
  <Je color={e.grayTextWeak}size={15}/>
131
- <We accessible={!0}accessibilityRole="search"accessibilityLabel="Search Redux slices or actions"accessibilityHint="Type to filter state slices in real time"placeholder={L("redux.searchPlaceholder","Search state or actions...")}placeholderTextColor={e.grayTextWeak}value={k}onChangeText={G}style={O.searchInput}autoCorrect={!1}autoCapitalize="none"/>
133
+ <We accessible={!0}accessibilityRole="search"accessibilityLabel="Search Redux slices or actions"accessibilityHint="Type to filter state slices in real time"placeholder={B("redux.searchPlaceholder","Search state or actions...")}placeholderTextColor={e.grayTextWeak}value={k}onChangeText={G}style={O.searchInput}autoCorrect={!1}autoCapitalize="none"/>
132
134
  {k.length>0&&<C style={{flexDirection:"row",alignItems:"center",gap:4}}>
133
135
  <C style={{backgroundColor:`${e.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
134
136
  <S style={{color:e.purple,fontSize:9.5,fontFamily:R.interBold}}>
135
- {D.length}
137
+ {F.length}
136
138
  </S>
137
139
  </C>
138
140
  <Ce accessible={!0}accessibilityRole="button"accessibilityLabel="Clear search input"onPress={()=>G("")}hitSlop={10}>
@@ -149,7 +151,7 @@ import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react
149
151
 
150
152
  <C style={o.headerSubRow}>
151
153
  <S style={o.resultCount}>
152
- Showing {D.length} of {$.length} state slices
154
+ Showing {F.length} of {$.length} state slices
153
155
  </S>
154
156
  <C style={{flexDirection:"row",alignItems:"center",gap:4}}>
155
157
  {P==="latest"?<U color={e.brandPurple}size={11}/>:<Lt color={e.brandPurple}size={11}/>}
@@ -161,13 +163,13 @@ import ee,{useCallback as Le,useMemo as N,useRef as Pe,useState as te}from"react
161
163
  </C>
162
164
 
163
165
 
164
- <De ref={K}data={_}keyExtractor={t=>t.id}renderItem={ve}getItemLayout={(t,I)=>({length:126,offset:126*I,index:I})}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}ListEmptyComponent={<Ue isSearch={k.trim().length>0}searchQuery={k}onClearSearch={()=>G("")}customTitle={k.trim().length>0?"No Matching Slices":"No Redux State Detected"}customSub={k.trim().length>0?`No Redux slices match "${k}"`:"Attach the Redux store or dispatch actions to see state slices."}/>}ListFooterComponent={D.length>0?<Ge count={_.length}totalCount={D.length}label="slices"loadMoreStep={ze}hasMore={_.length<D.length}onLoadMore={()=>J(t=>t+ze)}/>:null}contentContainerStyle={[o.listContent,D.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
166
+ <De ref={K}data={_}keyExtractor={t=>t.id}renderItem={ve}getItemLayout={(t,I)=>({length:126,offset:126*I,index:I})}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}ListEmptyComponent={<Ue isSearch={k.trim().length>0}searchQuery={k}onClearSearch={()=>G("")}customTitle={k.trim().length>0?"No Matching Slices":"No Redux State Detected"}customSub={k.trim().length>0?`No Redux slices match "${k}"`:"Attach the Redux store or dispatch actions to see state slices."}/>}ListFooterComponent={F.length>0?<Ge count={_.length}totalCount={F.length}label="slices"loadMoreStep={ze}hasMore={_.length<F.length}onLoadMore={()=>J(t=>t+ze)}/>:null}style={{flex:1}}contentContainerStyle={[o.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
165
167
  </C>:<C style={O.emptyContainer}>
166
168
  <C style={O.emptyIconWrap}>
167
169
  <Ie color={e.purple}size={32}/>
168
170
  </C>
169
- <S style={O.emptyTitle}>{L("redux.noStoreConnected","No Redux Store Connected")}</S>
171
+ <S style={O.emptyTitle}>{B("redux.noStoreConnected","No Redux Store Connected")}</S>
170
172
  <S style={O.emptySub}>
171
- {L("redux.connectStoreTip","Call connectReduxStore(store) or use inspectorReduxMiddleware at app initialization.")}
173
+ {B("redux.connectStoreTip","Call connectReduxStore(store) or use inspectorReduxMiddleware at app initialization.")}
172
174
  </S>
173
- </C>}),o=Ee.create({overviewCard:{flexDirection:"row",alignItems:"center",backgroundColor:e.white,marginHorizontal:12,marginTop:10,borderRadius:12,padding:12,borderWidth:1,borderColor:e.dividerColor,shadowColor:e.primaryBlack,shadowOffset:{width:0,height:1},shadowOpacity:.03,shadowRadius:3,elevation:1},statCol:{flex:1},statDivider:{width:1,height:28,backgroundColor:e.dividerColor,marginHorizontal:8},statHeading:{fontFamily:R.interBold,fontSize:9,color:e.grayTextWeak,letterSpacing:.5},statBigVal:{fontFamily:R.interBold,fontSize:14,color:e.primaryBlack,marginTop:2},statLastAction:{fontFamily:R.interBold,fontSize:11,color:e.purple,marginTop:2},statLastTime:{fontFamily:R.interRegular,fontSize:9.5,color:e.grayTextWeak},toolbarContainer:{backgroundColor:e.white,borderBottomWidth:1,borderBottomColor:e.dividerColor,paddingHorizontal:12,paddingTop:8,paddingBottom:6,marginTop:8},searchRow:{flexDirection:"row",alignItems:"center",gap:8},headerSubRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginTop:6,paddingHorizontal:2},resultCount:{fontFamily:R.interMedium,fontSize:11,color:e.grayTextWeak},sortLabel:{fontFamily:R.interMedium,fontSize:10.5,color:e.brandPurple},listContent:{paddingVertical:8,paddingBottom:36},cardContainer:{paddingHorizontal:10,paddingVertical:4,height:126},card:{backgroundColor:e.white,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,shadowColor:e.shadowColorString,shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:2.5,elevation:1.5,height:118,overflow:"hidden"},cardRecentlyUpdated:{borderColor:`${e.brandPurple}66`,backgroundColor:e.purpleTintBg},cardBody:{paddingHorizontal:12,paddingTop:9,paddingBottom:7,flex:1,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22,gap:6},cardHeaderLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},serialNumber:{fontFamily:R.interBold,fontSize:10.5,lineHeight:13,color:e.grayTextWeak},methodBadge:{paddingHorizontal:5.5,paddingVertical:2,borderRadius:4,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:R.interBold,color:e.white,fontSize:9,lineHeight:12,letterSpacing:.4},chip:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:R.interBold,fontSize:8.5,lineHeight:11,letterSpacing:.3},statusPill:{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},liveDot:{width:6,height:6,borderRadius:3,backgroundColor:e.emerald500},statusPillText:{fontFamily:R.interBold,fontSize:9.5,lineHeight:12},cardMainRow:{height:48,minHeight:48,maxHeight:48,justifyContent:"space-between",gap:3},sliceNameRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},sliceNameText:{fontFamily:R.interBold,fontSize:12.5,lineHeight:16,color:e.primaryBlack,flex:1},actionCountChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},actionCountChipText:{fontFamily:R.interBold,fontSize:8.5,lineHeight:11,color:e.violet600},actionPreviewRow:{flexDirection:"row",alignItems:"center",gap:4.5,minHeight:15},actionPreviewText:{fontFamily:Fe.select({ios:"Menlo",default:"monospace"}),fontSize:10,lineHeight:13,color:e.grayTextWeak,flex:1},actionPreviewEmptyText:{fontFamily:R.interRegular,fontSize:10,lineHeight:13,color:e.slate400,fontStyle:"italic",flex:1},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},footerTimestampText:{fontFamily:R.interRegular,fontSize:10,lineHeight:13,color:e.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:e.sky100,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3,borderWidth:.5,borderColor:e.sky400,marginLeft:4},callerChipText:{fontFamily:R.interMedium,fontSize:8.5,lineHeight:11,color:e.sky600},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.violetSoftBg,borderColor:e.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:R.interBold,color:e.violetSoftText,fontSize:9,lineHeight:12},waterfallContainer:{height:2.5,width:"100%",backgroundColor:e.graySurface,borderRadius:1.5,overflow:"hidden"},waterfallBar:{height:"100%",borderRadius:1.5},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2}});export default Pt;
175
+ </C>}),o=Ee.create({overviewCard:{flexDirection:"row",alignItems:"center",backgroundColor:e.white,marginHorizontal:8,marginTop:8,borderRadius:12,padding:10,borderWidth:1,borderColor:e.dividerColor,shadowColor:e.primaryBlack,shadowOffset:{width:0,height:1},shadowOpacity:.03,shadowRadius:3,elevation:1},statCol:{flex:1},statDivider:{width:1,height:28,backgroundColor:e.dividerColor,marginHorizontal:6},statHeading:{fontFamily:R.interBold,fontSize:9,color:e.grayTextWeak,letterSpacing:.5},statBigVal:{fontFamily:R.interBold,fontSize:14,color:e.primaryBlack,marginTop:2},statLastAction:{fontFamily:R.interBold,fontSize:11,color:e.purple,marginTop:2},statLastTime:{fontFamily:R.interRegular,fontSize:9.5,color:e.grayTextWeak},toolbarContainer:{backgroundColor:e.white,borderBottomWidth:1,borderBottomColor:e.dividerColor,paddingHorizontal:8,paddingTop:8,paddingBottom:6,marginTop:8},searchRow:{flexDirection:"row",alignItems:"center",gap:8},headerSubRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginTop:6,paddingHorizontal:2},resultCount:{fontFamily:R.interMedium,fontSize:11,color:e.grayTextWeak},sortLabel:{fontFamily:R.interMedium,fontSize:10.5,color:e.brandPurple},listContent:{paddingVertical:8,paddingBottom:36},cardContainer:{paddingHorizontal:5,paddingVertical:4,height:126},card:{backgroundColor:e.white,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,shadowColor:e.shadowColorString,shadowOffset:{width:0,height:1},shadowOpacity:.05,shadowRadius:2.5,elevation:1.5,height:118,overflow:"hidden"},cardRecentlyUpdated:{borderColor:`${e.brandPurple}66`,backgroundColor:e.purpleTintBg},cardBody:{paddingHorizontal:8,paddingTop:8,paddingBottom:6,flex:1,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22,gap:4.5},cardHeaderLeft:{flexDirection:"row",alignItems:"center",gap:4.5,flex:1,minWidth:0},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},serialNumber:{fontFamily:R.interBold,fontSize:10.5,lineHeight:13,color:e.grayTextWeak},methodBadge:{paddingHorizontal:5.5,paddingVertical:2,borderRadius:4,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:R.interBold,color:e.white,fontSize:9,lineHeight:12,letterSpacing:.4},chip:{flexDirection:"row",alignItems:"center",gap:3,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1},chipText:{fontFamily:R.interBold,fontSize:8.5,lineHeight:11,letterSpacing:.3},statusPill:{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},liveDot:{width:6,height:6,borderRadius:3,backgroundColor:e.emerald500},statusPillText:{fontFamily:R.interBold,fontSize:9.5,lineHeight:12},cardMainRow:{height:48,minHeight:48,maxHeight:48,justifyContent:"space-between",gap:3},sliceNameRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:6},sliceNameText:{fontFamily:R.interBold,fontSize:12.5,lineHeight:16,color:e.primaryBlack,flex:1},actionCountChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},actionCountChipText:{fontFamily:R.interBold,fontSize:8.5,lineHeight:11,color:e.violet600},actionPreviewRow:{flexDirection:"row",alignItems:"center",gap:4.5,minHeight:15},actionPreviewText:{fontFamily:Fe.select({ios:"Menlo",default:"monospace"}),fontSize:10,lineHeight:13,color:e.grayTextWeak,flex:1},actionPreviewEmptyText:{fontFamily:R.interRegular,fontSize:10,lineHeight:13,color:e.slate400,fontStyle:"italic",flex:1},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},footerTimestampText:{fontFamily:R.interRegular,fontSize:10,lineHeight:13,color:e.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:e.sky100,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3,borderWidth:.5,borderColor:e.sky400,marginLeft:4},callerChipText:{fontFamily:R.interMedium,fontSize:8.5,lineHeight:11,color:e.sky600},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:e.violetSoftBg,borderColor:e.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:R.interBold,color:e.violetSoftText,fontSize:9,lineHeight:12},waterfallContainer:{height:2.5,width:"100%",backgroundColor:e.graySurface,borderRadius:1.5,overflow:"hidden"},waterfallBar:{height:"100%",borderRadius:1.5},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2}});export default Pt;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const SecondaryTelemetryStrip: React.FC;