react-native-inapp-inspector 2.3.24 → 2.3.25

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 (145) hide show
  1. package/dist/commonjs/components/AnalyticsDetail.js +8 -8
  2. package/dist/commonjs/components/AnalyticsEventCard.js +11 -8
  3. package/dist/commonjs/components/AppHeaderLogo.js +1 -1
  4. package/dist/commonjs/components/BrandSquareIcon.js +12 -12
  5. package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -0
  6. package/dist/commonjs/components/ConsoleLogCard.js +92 -80
  7. package/dist/commonjs/components/EndOfListFooter.d.ts +5 -1
  8. package/dist/commonjs/components/EndOfListFooter.js +27 -5
  9. package/dist/commonjs/components/Inspector/AnalyticsTab.js +30 -298
  10. package/dist/commonjs/components/Inspector/ConsoleTab.js +38 -93
  11. package/dist/commonjs/components/Inspector/CrashDetail.js +12 -12
  12. package/dist/commonjs/components/Inspector/CrashTab.js +43 -33
  13. package/dist/commonjs/components/Inspector/DebuggingTab.js +9 -9
  14. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +54 -52
  15. package/dist/commonjs/components/Inspector/InspectorHeader.js +1 -1
  16. package/dist/commonjs/components/Inspector/MainScreen.js +23 -25
  17. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +1 -1
  18. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +3 -3
  19. package/dist/commonjs/components/Inspector/NetworkTab.js +31 -31
  20. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +3 -3
  21. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +21 -22
  22. package/dist/commonjs/components/Inspector/ReduxTab.js +110 -97
  23. package/dist/commonjs/components/Inspector/SettingsPanel.js +48 -100
  24. package/dist/commonjs/components/Inspector/StorageTab.js +56 -52
  25. package/dist/commonjs/components/Inspector/TabBar.js +29 -26
  26. package/dist/commonjs/components/JsonViewer.js +169 -164
  27. package/dist/commonjs/components/LogCard.js +34 -38
  28. package/dist/commonjs/components/LogSyntaxHighlighter.js +3 -3
  29. package/dist/commonjs/components/SegmentedTabs.d.ts +4 -1
  30. package/dist/commonjs/components/SegmentedTabs.js +8 -8
  31. package/dist/commonjs/constants/index.js +1 -1
  32. package/dist/commonjs/constants/version.d.ts +1 -1
  33. package/dist/commonjs/constants/version.js +1 -1
  34. package/dist/commonjs/customHooks/networkLogger.js +1 -2
  35. package/dist/commonjs/helpers/index.d.ts +6 -0
  36. package/dist/commonjs/helpers/index.js +4 -4
  37. package/dist/commonjs/helpers/memoryManager.d.ts +0 -1
  38. package/dist/commonjs/helpers/memoryManager.js +1 -1
  39. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  40. package/dist/commonjs/helpers/settingsStore.js +1 -1
  41. package/dist/commonjs/i18n/index.d.ts +35 -0
  42. package/dist/commonjs/i18n/index.js +1 -1
  43. package/dist/commonjs/i18n/locales/ar.json +1 -0
  44. package/dist/commonjs/i18n/locales/de.json +1 -0
  45. package/dist/commonjs/i18n/locales/en.json +1 -1
  46. package/dist/commonjs/i18n/locales/es.json +1 -0
  47. package/dist/commonjs/i18n/locales/fr.json +1 -0
  48. package/dist/commonjs/i18n/locales/hi.json +1 -0
  49. package/dist/commonjs/i18n/locales/ja.json +1 -0
  50. package/dist/commonjs/i18n/locales/ko.json +1 -0
  51. package/dist/commonjs/i18n/locales/pt.json +1 -0
  52. package/dist/commonjs/i18n/locales/ru.json +1 -0
  53. package/dist/commonjs/i18n/locales/zh.json +1 -0
  54. package/dist/commonjs/index.d.ts +2 -4
  55. package/dist/commonjs/index.js +2 -2
  56. package/dist/commonjs/styles/AppColors.d.ts +40 -0
  57. package/dist/commonjs/styles/AppColors.js +1 -1
  58. package/dist/commonjs/styles/index.js +1 -1
  59. package/dist/commonjs/types/enums.d.ts +0 -20
  60. package/dist/commonjs/types/enums.js +1 -1
  61. package/dist/esm/components/AnalyticsDetail.js +75 -75
  62. package/dist/esm/components/AnalyticsEventCard.js +20 -17
  63. package/dist/esm/components/AppHeaderLogo.js +5 -5
  64. package/dist/esm/components/BrandSquareIcon.js +39 -39
  65. package/dist/esm/components/ConsoleLogCard.d.ts +1 -0
  66. package/dist/esm/components/ConsoleLogCard.js +98 -86
  67. package/dist/esm/components/EndOfListFooter.d.ts +5 -1
  68. package/dist/esm/components/EndOfListFooter.js +36 -14
  69. package/dist/esm/components/Inspector/AnalyticsTab.js +47 -315
  70. package/dist/esm/components/Inspector/ConsoleTab.js +61 -116
  71. package/dist/esm/components/Inspector/CrashDetail.js +49 -49
  72. package/dist/esm/components/Inspector/CrashTab.js +75 -65
  73. package/dist/esm/components/Inspector/DebuggingTab.js +31 -31
  74. package/dist/esm/components/Inspector/DeviceInfoTab.js +146 -144
  75. package/dist/esm/components/Inspector/InspectorHeader.js +5 -5
  76. package/dist/esm/components/Inspector/MainScreen.js +51 -53
  77. package/dist/esm/components/Inspector/MediaGalleryTab.js +1 -1
  78. package/dist/esm/components/Inspector/MediaPreviewModal.js +31 -31
  79. package/dist/esm/components/Inspector/NetworkTab.js +63 -63
  80. package/dist/esm/components/Inspector/NpmStarPrompt.js +42 -42
  81. package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -46
  82. package/dist/esm/components/Inspector/ReduxTab.js +163 -150
  83. package/dist/esm/components/Inspector/SettingsPanel.js +136 -188
  84. package/dist/esm/components/Inspector/StorageTab.js +88 -84
  85. package/dist/esm/components/Inspector/TabBar.js +37 -34
  86. package/dist/esm/components/JsonViewer.js +173 -168
  87. package/dist/esm/components/LogCard.js +38 -42
  88. package/dist/esm/components/LogSyntaxHighlighter.js +1 -1
  89. package/dist/esm/components/SegmentedTabs.d.ts +4 -1
  90. package/dist/esm/components/SegmentedTabs.js +8 -8
  91. package/dist/esm/constants/index.js +1 -1
  92. package/dist/esm/constants/version.d.ts +1 -1
  93. package/dist/esm/constants/version.js +1 -1
  94. package/dist/esm/customHooks/networkLogger.js +1 -2
  95. package/dist/esm/helpers/index.d.ts +6 -0
  96. package/dist/esm/helpers/index.js +4 -4
  97. package/dist/esm/helpers/memoryManager.d.ts +0 -1
  98. package/dist/esm/helpers/memoryManager.js +1 -1
  99. package/dist/esm/helpers/remoteConfig.js +1 -1
  100. package/dist/esm/helpers/settingsStore.js +1 -1
  101. package/dist/esm/i18n/index.d.ts +35 -0
  102. package/dist/esm/i18n/index.js +1 -1
  103. package/dist/esm/i18n/locales/ar.json +1 -0
  104. package/dist/esm/i18n/locales/de.json +1 -0
  105. package/dist/esm/i18n/locales/en.json +1 -1
  106. package/dist/esm/i18n/locales/es.json +1 -0
  107. package/dist/esm/i18n/locales/fr.json +1 -0
  108. package/dist/esm/i18n/locales/hi.json +1 -0
  109. package/dist/esm/i18n/locales/ja.json +1 -0
  110. package/dist/esm/i18n/locales/ko.json +1 -0
  111. package/dist/esm/i18n/locales/pt.json +1 -0
  112. package/dist/esm/i18n/locales/ru.json +1 -0
  113. package/dist/esm/i18n/locales/zh.json +1 -0
  114. package/dist/esm/index.d.ts +2 -4
  115. package/dist/esm/index.js +5 -5
  116. package/dist/esm/styles/AppColors.d.ts +40 -0
  117. package/dist/esm/styles/AppColors.js +1 -1
  118. package/dist/esm/styles/index.js +1 -1
  119. package/dist/esm/types/enums.d.ts +0 -20
  120. package/dist/esm/types/enums.js +1 -1
  121. package/package.json +1 -15
  122. package/dist/commonjs/bundle.d.ts +0 -2
  123. package/dist/commonjs/bundle.js +0 -1
  124. package/dist/commonjs/components/Inspector/BundleTab.d.ts +0 -48
  125. package/dist/commonjs/components/Inspector/BundleTab.js +0 -1297
  126. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +0 -27
  127. package/dist/commonjs/components/Inspector/PerformanceTab.js +0 -454
  128. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -115
  129. package/dist/commonjs/customHooks/bundleAnalyzer.js +0 -1
  130. package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -144
  131. package/dist/commonjs/customHooks/performanceTracker.js +0 -63
  132. package/dist/commonjs/performance.d.ts +0 -2
  133. package/dist/commonjs/performance.js +0 -1
  134. package/dist/esm/bundle.d.ts +0 -2
  135. package/dist/esm/bundle.js +0 -1
  136. package/dist/esm/components/Inspector/BundleTab.d.ts +0 -48
  137. package/dist/esm/components/Inspector/BundleTab.js +0 -1297
  138. package/dist/esm/components/Inspector/PerformanceTab.d.ts +0 -27
  139. package/dist/esm/components/Inspector/PerformanceTab.js +0 -454
  140. package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -115
  141. package/dist/esm/customHooks/bundleAnalyzer.js +0 -1
  142. package/dist/esm/customHooks/performanceTracker.d.ts +0 -144
  143. package/dist/esm/customHooks/performanceTracker.js +0 -63
  144. package/dist/esm/performance.d.ts +0 -2
  145. package/dist/esm/performance.js +0 -1
@@ -1,170 +1,183 @@
1
- import Pe,{useCallback as Q,useMemo as O,useRef as Le,useState as X}from"react";import{FlatList as Fe,Platform as We,Pressable as Y,StyleSheet as He,Text as C,TextInput as De,TouchableOpacity as _,View as T}from"react-native";import{useTranslation as Oe}from"../../i18n";import{useInspector as Ee}from"./InspectorContext";import Me from"../TouchableScale";import $e from"../AnimatedEntrance";import Ne from"../EmptyState";import Ue from"../EndOfListFooter";import Te from"../HighlightText";import{getSize as we,openInVSCode as Ge}from"../../helpers";import B from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as S}from"../../styles/AppFonts";import{getActionHistory as Ke,getReduxAutoRefresh as Ze,setReduxAutoRefresh as qe}from"../../customHooks/reduxLogger";import{TerminalIcon as Je,SearchIcon as Qe,ClearIcon as Xe,LayersIcon as Ye,ClockIcon as _e,ForwardChevronIcon as Tt,SortArrowIcon as Ct,BoltIcon as U,AtomIcon as St,ScreenIcon as At,ListenerIcon as Rt,DocIcon as Vt,LoadingSpinnerIcon as It,CircleAlertIcon as Bt,TextAaIcon as Pt,HeaderPauseIcon as Lt}from"../NetworkIcons";const Ce=E=>{switch(E){case"saga":return{label:"SAGA",renderIcon:(A,R=9)=><U color={A}size={R}/>,bg:e.purple100,text:e.brandPurple,border:e.purple200};case"thunk":return{label:"THUNK",renderIcon:(A,R=9)=><St color={A}size={R}/>,bg:e.amber100,text:e.amber800Warm,border:e.amber200};case"ui":return{label:"UI",renderIcon:(A,R=9)=><At color={A}size={R}/>,bg:e.sky100,text:e.sky600,border:e.sky400};case"listener":return{label:"LISTENER",renderIcon:(A,R=9)=><Rt color={A}size={R}/>,bg:e.teal100,text:e.teal700,border:e.teal400};default:return{label:"DIRECT",renderIcon:(A,R=9)=><U color={A}size={R}/>,bg:e.slate100,text:e.slate700,border:e.slate200}}},vt=Pe.memo(()=>{const{t:E}=Oe(),{reduxState:A,reduxLastActionMap:R,reduxSearch:k,setReduxSearch:G,setSelectedReduxSlice:K}=Ee(),Se=Le(null),[P,Ae]=X("latest"),[D,ze]=X(!Ze()),Re=Q(()=>{ze(r=>{const z=!r;return qe(!z),z})},[]),ke=O(()=>we(A),[A]),Z=O(()=>Ke(),[R]),M=O(()=>!A||typeof A!="object"?[]:Object.keys(A).map(z=>{const o=A[z],I=Array.isArray(o),$=o&&typeof o=="object";let H="Primitive",L=0;I?(L=o.length,H=`Array [${L}]`):$?(L=Object.keys(o).length,H=`Object {${L}}`):typeof o<"u"&&(L=1,H=typeof o);let j="live",N;$&&(o.loading===!0||o.isLoading===!0||o.status==="loading"||o.status==="pending"?(j="loading",N="Loading"):o.error||o.hasError||o.status==="error"||o.status==="failed"?(j="error",N=typeof o.error=="string"?o.error:"Error"):L===0&&(j="empty",N="Empty"));const V=R[z],Ie=V?.updatedAt||0,Be=Z.filter(v=>!v.affectedSlices||v.affectedSlices.length===0?!0:v.affectedSlices.includes(z)).length;let q;if(V){let v;if(V.payload!==void 0&&V.payload!==null)try{if(typeof V.payload=="object"){const J=Object.keys(V.payload);v=`{ ${J.slice(0,3).join(", ")}${J.length>3?"...":""} }`}else v=String(V.payload)}catch{}q={type:V.type,timestamp:V.timestamp,updatedAt:V.updatedAt,payloadPreview:v,originType:V.originType,callerFile:V.callerFile,callerLine:V.callerLine,callerCol:V.callerCol}}return{id:`slice-${z}`,name:z,keysCount:L,sizeStr:we(o),typeLabel:H,status:j,statusMessage:N,timelineCount:Be,lastAction:q,updatedAt:Ie}}),[A,R,Z]),F=O(()=>{let r=M;if(k&&k.trim().length>0){const z=k.trim().toLowerCase().split(/\s+/).filter(Boolean);r=r.filter(o=>{const I=A?A[o.name]:null,$=[o.name||"",o.lastAction?.type||"",o.lastAction?.payloadPreview||"",o.lastAction?.originType||"",o.status||"",o.statusMessage||"",I?typeof I=="string"?I:JSON.stringify(I):""].join(" ").toLowerCase();return z.every(H=>$.includes(H))})}return[...r].sort((z,o)=>P==="latest"&&o.updatedAt!==z.updatedAt?o.updatedAt-z.updatedAt:z.name.localeCompare(o.name))},[M,k,P,A]),W=O(()=>{const r=Object.values(R);return r.length===0?null:r.reduce((z,o)=>z?(o.updatedAt||0)>(z.updatedAt||0)?o:z:o,null)},[R]),Ve=Q(({item:r,index:z})=>{const o=r.updatedAt>0&&Date.now()-r.updatedAt<5e3;return<$e index={z}distance={8}>
2
- <Me onPress={()=>{K(r.name)}}style={[t.card,o&&t.cardRecentlyUpdated]}>
3
-
4
- <T style={t.cardHeader}>
5
- <T style={t.sliceBadge}>
6
- <C style={t.sliceBadgeText}>SLICE</C>
7
- </T>
1
+ import Fe,{useCallback as ee,useMemo as N,useRef as We,useState as q}from"react";import{FlatList as Oe,Platform as te,Pressable as Ce,StyleSheet as Ee,Text as R,TextInput as Me,TouchableOpacity as Te,View as C}from"react-native";import{useTranslation as Ne}from"../../i18n";import{useInspector as $e}from"./InspectorContext";import Ue from"../TouchableScale";import Ge from"../AnimatedEntrance";import Ke from"../EmptyState";import Ze from"../EndOfListFooter";import Se from"../HighlightText";import{getSize as Re,openInVSCode as qe,getCleanCallerDisplay as Je}from"../../helpers";import F from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{getActionHistory as Qe,getReduxAutoRefresh as Xe,setReduxAutoRefresh as _e}from"../../customHooks/reduxLogger";import{TerminalIcon as Ie,SearchIcon as Ye,ClearIcon as Ct,LayersIcon as Tt,ClockIcon as St,SizeIcon as Rt,ForwardChevronIcon as It,SortArrowIcon as At,BoltIcon as G,AtomIcon as Vt,ScreenIcon as Bt,ListenerIcon as Ht,DocIcon as Lt,LoadingSpinnerIcon as Pt,CircleAlertIcon as Dt,TextAaIcon as Ft,HeaderPauseIcon as Wt}from"../NetworkIcons";const ke=L=>{switch(L){case"saga":return{label:"SAGA",renderIcon:(I,z=9)=><G color={I}size={z}/>,bg:e.purple100,text:e.brandPurple,border:e.purple200};case"thunk":return{label:"THUNK",renderIcon:(I,z=9)=><Vt color={I}size={z}/>,bg:e.amber100,text:e.amber800Warm,border:e.amber200};case"ui":return{label:"UI",renderIcon:(I,z=9)=><Bt color={I}size={z}/>,bg:e.sky100,text:e.sky600,border:e.sky400};case"listener":return{label:"LISTENER",renderIcon:(I,z=9)=><Ht color={I}size={z}/>,bg:e.teal100,text:e.teal700,border:e.teal400};default:return{label:"DIRECT",renderIcon:(I,z=9)=><G color={I}size={z}/>,bg:e.slate100,text:e.slate700,border:e.slate200}}},Ot=Fe.memo(()=>{const{t:L}=Ne(),{reduxState:I,reduxLastActionMap:z,reduxSearch:A,setReduxSearch:K,setSelectedReduxSlice:J}=$e(),ze=We(null),[Q,Ae]=q(100),[W,Ve]=q("latest"),[$,Be]=q(!Xe()),ve=ee(()=>{Be(t=>{const S=!t;return _e(!S),S})},[]),He=N(()=>Re(I),[I]),X=N(()=>Qe(),[z]),U=N(()=>!I||typeof I!="object"?[]:Object.keys(I).map(S=>{const T=I[S],v=Array.isArray(T),M=T&&typeof T=="object";let D="Primitive",H=0;v?(H=T.length,D=`Array [${H}]`):M?(H=Object.keys(T).length,D=`Object {${H}}`):typeof T<"u"&&(H=1,D=typeof T);let O="live",B;M&&(T.loading===!0||T.isLoading===!0||T.status==="loading"||T.status==="pending"?(O="loading",B="Loading"):T.error||T.hasError||T.status==="error"||T.status==="failed"?(O="error",B=typeof T.error=="string"?T.error:"Error"):H===0&&(O="empty",B="Empty"));const V=z[S],Pe=V?.updatedAt||0,De=X.filter(E=>!E.affectedSlices||E.affectedSlices.length===0?!0:E.affectedSlices.includes(S)).length;let _;if(V){let E;if(V.payload!==void 0&&V.payload!==null)try{if(typeof V.payload=="object"){const Y=Object.keys(V.payload);E=`{ ${Y.slice(0,3).join(", ")}${Y.length>3?"...":""} }`}else E=String(V.payload)}catch{}_={type:V.type,timestamp:V.timestamp,updatedAt:V.updatedAt,payloadPreview:E,originType:V.originType,callerFile:V.callerFile,callerLine:V.callerLine,callerCol:V.callerCol}}return{id:`slice-${S}`,name:S,keysCount:H,sizeStr:Re(T),typeLabel:D,status:O,statusMessage:B,timelineCount:De,lastAction:_,updatedAt:Pe}}),[I,z,X]),P=N(()=>{let t=U;if(A&&A.trim().length>0){const S=A.trim().toLowerCase().split(/\s+/).filter(Boolean);t=t.filter(T=>{const v=I?I[T.name]:null,M=[T.name||"",T.lastAction?.type||"",T.lastAction?.payloadPreview||"",T.lastAction?.originType||"",T.status||"",T.statusMessage||"",v?typeof v=="string"?v:JSON.stringify(v):""].join(" ").toLowerCase();return S.every(D=>M.includes(D))})}return[...t].sort((S,T)=>W==="latest"&&T.updatedAt!==S.updatedAt?T.updatedAt-S.updatedAt:S.name.localeCompare(T.name))},[U,A,W,I]),Z=N(()=>P.slice(0,Q),[P,Q]),j=N(()=>{const t=Object.values(z);return t.length===0?null:t.reduce((S,T)=>S?(T.updatedAt||0)>(S.updatedAt||0)?T:S:T,null)},[z]),Le=ee(({item:t,index:S})=>{const T=t.updatedAt>0&&Date.now()-t.updatedAt<5e3,v=t.status==="error"?e.errorColor:t.status==="loading"?e.warningIconGold:t.status==="empty"?e.grayTextWeak:e.greenColor,M=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,H=t.status==="error"?e.red600:t.status==="loading"?e.amber800Warm:t.status==="empty"?e.grayTextWeak:e.emerald700,O=t.lastAction?.callerFile?Je(t.lastAction.callerFile):null;return<Ge index={S}distance={8}>
2
+ <C style={r.cardContainer}>
3
+ <Ue onPress={()=>{J(t.name)}}style={[r.card,{borderLeftWidth:3.5,borderLeftColor:v,backgroundColor:t.status==="error"?e.errorCardBg:e.white},T&&r.cardRecentlyUpdated]}>
4
+ <C style={r.cardBody}>
5
+
6
+ <C style={r.cardHeaderRow}>
7
+ <C style={r.cardHeaderLeft}>
8
+ <R style={r.serialNumber}>#{S+1}</R>
9
+ <C style={[r.methodBadge,{backgroundColor:e.violet600}]}>
10
+ <R style={r.methodBadgeText}>REDUX</R>
11
+ </C>
12
+ <C style={[r.chip,{backgroundColor:`${e.violet600}14`,borderColor:`${e.violet600}2E`}]}>
13
+ <R style={[r.chipText,{color:e.violet600}]}>
14
+ {t.typeLabel.toUpperCase()}
15
+ </R>
16
+ </C>
8
17
 
9
- <Te text={r.name}search={k}style={t.sliceName}highlightStyle={t.highlight}/>
10
-
11
-
12
- {r.status==="loading"?<T style={t.loadingPill}>
13
- <It color={e.amber800Warm}size={10}/>
14
- <C style={t.loadingPillText}>Loading</C>
15
- </T>:r.status==="error"?<T style={t.errorPill}>
16
- <Bt color={e.red600}size={10}/>
17
- <C style={t.errorPillText}>Error</C>
18
- </T>:r.status==="empty"?<T style={t.emptyPill}>
19
- <C style={t.emptyPillText}>Empty</C>
20
- </T>:<T style={t.livePill}>
21
- <T style={t.liveDot}/>
22
- <C style={t.livePillText}>Live</C>
23
- </T>}
24
-
25
- {r.lastAction?.timestamp&&<T style={t.timePill}>
26
- <_e color={e.purple}size={10}/>
27
- <C style={t.timeText}>
28
- {r.lastAction.timestamp}
18
+ {t.lastAction?.originType&&(()=>{const B=ke(t.lastAction.originType);return<C style={[r.chip,{backgroundColor:B.bg,borderColor:B.border}]}>
19
+ {B.renderIcon(B.text,8.5)}
20
+ <R style={[r.chipText,{color:B.text}]}>
21
+ {B.label}
22
+ </R>
23
+ </C>})()}
29
24
  </C>
30
- </T>}
31
25
 
32
- <Tt color={e.grayTextWeak}size={13}/>
33
- </T>
34
-
35
-
36
- <T style={t.statsRow}>
37
- <T style={t.pill}>
38
- <Ye color={e.grayTextWeak}size={11}/>
39
- <C style={t.pillValue}>{r.typeLabel}</C>
40
- </T>
41
- <T style={t.pill}>
42
- <C style={t.pillLabel}>Size:</C>
43
- <C style={t.pillValue}>{r.sizeStr}</C>
44
- </T>
45
- {r.timelineCount>0&&<T style={t.pill}>
46
- <C style={t.pillLabel}>Actions:</C>
47
- <C style={t.pillValue}>{r.timelineCount}</C>
48
- </T>}
49
- </T>
50
-
51
-
52
- {r.lastAction&&<T style={t.lastActionRow}>
53
- <T style={{flexDirection:"row",alignItems:"center",gap:5,flex:1,minWidth:0,flexWrap:"wrap"}}>
54
- <U color={e.brandPurple}size={12}/>
55
- <C style={t.lastActionLabel}>{E("redux.last","Last")}:</C>
26
+ <C style={r.cardHeaderRight}>
27
+ <C style={[r.statusPill,{backgroundColor:M,borderColor:D}]}>
28
+ {t.status==="loading"?<Pt color={e.amber800Warm}size={10}/>:t.status==="error"?<Dt color={e.red600}size={10}/>:t.status==="empty"?null:<C style={r.liveDot}/>}
29
+ <R style={[r.statusPillText,{color:H}]}>
30
+ {t.status==="loading"?"Loading":t.status==="error"?t.statusMessage||"Error":t.status==="empty"?"Empty":"Live"}
31
+ </R>
32
+ </C>
33
+ <It color={e.grayTextWeak}size={13}/>
34
+ </C>
35
+ </C>
56
36
 
57
-
58
- {r.lastAction.originType&&(()=>{const I=Ce(r.lastAction.originType);return<T style={{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:I.bg,paddingHorizontal:4.5,paddingVertical:1.5,borderRadius:3.5,borderWidth:1,borderColor:I.border}}>
59
- {I.renderIcon(I.text,8.5)}
60
- <C style={{fontFamily:S.interBold,fontSize:8,color:I.text,letterSpacing:.3}}>
61
- {I.label}
62
- </C>
63
- </T>})()}
37
+
38
+ <C style={r.cardMainRow}>
39
+ <C style={r.sliceNameRow}>
40
+ <Se text={t.name}search={A}style={r.sliceNameText}highlightStyle={r.highlight}numberOfLines={1}/>
41
+ {t.timelineCount>0&&<C style={r.actionCountChip}>
42
+ <G color={e.violet600}size={9}/>
43
+ <R style={r.actionCountChipText}>
44
+ {t.timelineCount}
45
+ </R>
46
+ </C>}
47
+ </C>
48
+ <C style={r.actionPreviewRow}>
49
+ <Ie color={e.grayTextWeak}size={10}/>
50
+ {t.lastAction?<Se text={t.lastAction.type+(t.lastAction.payloadPreview?` \xB7 ${t.lastAction.payloadPreview}`:"")}search={A}style={r.actionPreviewText}highlightStyle={r.highlight}numberOfLines={1}/>:<R style={r.actionPreviewEmptyText}numberOfLines={1}>
51
+ Initial state (no actions dispatched yet)
52
+ </R>}
53
+ </C>
54
+ </C>
64
55
 
65
- <Te text={r.lastAction.type}search={k}style={t.lastActionValue}highlightStyle={t.highlight}numberOfLines={1}/>
56
+
57
+ <C style={r.cardFooterRow}>
58
+ <C style={r.footerLeft}>
59
+ <St color={e.grayTextWeak}size={10}/>
60
+ <R style={r.footerTimestampText}numberOfLines={1}>
61
+ {t.lastAction?.timestamp||"Initial state"}
62
+ </R>
63
+ {O&&<Ce onPress={()=>qe(t.lastAction.callerFile,t.lastAction.callerLine,t.lastAction.callerCol)}hitSlop={6}style={r.callerChip}>
64
+ <Lt color={e.sky600}size={9}/>
65
+ <R style={r.callerChipText}>
66
+ {O.display}
67
+ </R>
68
+ </Ce>}
69
+ </C>
66
70
 
67
-
68
- {r.lastAction.callerFile&&<Y onPress={()=>Ge(r.lastAction.callerFile,r.lastAction.callerLine,r.lastAction.callerCol)}hitSlop={6}style={{flexDirection:"row",alignItems:"center",gap:2.5,backgroundColor:e.sky100,paddingHorizontal:4.5,paddingVertical:1.5,borderRadius:3,borderWidth:.5,borderColor:e.sky400}}>
69
- <Vt color={e.sky600}size={9}/>
70
- <C style={{fontFamily:S.interMedium,fontSize:8.5,color:e.sky600}}>
71
- {r.lastAction.callerFile.split("/").pop()}:{r.lastAction.callerLine||1}
72
- </C>
73
- </Y>}
71
+ <C style={r.footerRight}>
72
+ <C style={r.metaStatChip}>
73
+ <Rt color={e.violet600}size={9.5}/>
74
+ <R style={r.metaStatText}>
75
+ {t.sizeStr}
76
+ </R>
77
+ </C>
78
+ <C style={r.metaStatChip}>
79
+ <Tt color={e.violet600}size={9.5}/>
80
+ <R style={r.metaStatText}>
81
+ {t.keysCount} keys
82
+ </R>
83
+ </C>
84
+ </C>
85
+ </C>
86
+ </C>
74
87
 
75
- {r.lastAction.payloadPreview&&<C style={t.payloadPreviewText}numberOfLines={1}>
76
- {r.lastAction.payloadPreview}
77
- </C>}
78
- </T>
79
- </T>}
80
- </Me>
81
- </$e>},[k,K,E]);return A?<T style={{flex:1,backgroundColor:e.grayBackground}}>
88
+
89
+ <C style={r.waterfallContainer}>
90
+ <C style={[r.waterfallBar,{backgroundColor:v,width:T?"100%":"35%"}]}/>
91
+ </C>
92
+ </Ue>
93
+ </C>
94
+ </Ge>},[A,J]);return I?<C style={{flex:1,backgroundColor:e.grayBackground}}>
82
95
 
83
- <T style={t.overviewCard}>
84
- <T style={t.statCol}>
85
- <C style={t.statHeading}>ACTIVE SLICES</C>
86
- <C style={t.statBigVal}>{M.length}</C>
87
- </T>
88
- <T style={t.statDivider}/>
89
- <T style={t.statCol}>
90
- <C style={t.statHeading}>TOTAL STATE</C>
91
- <C style={t.statBigVal}>{ke}</C>
92
- </T>
93
- <T style={t.statDivider}/>
94
- <T style={[t.statCol,{flex:1.6}]}>
95
- <T style={{flexDirection:"row",alignItems:"center",gap:4}}>
96
- <C style={t.statHeading}>LAST ACTION</C>
97
- {W?.originType&&(()=>{const r=Ce(W.originType);return<T style={{flexDirection:"row",alignItems:"center",gap:2,backgroundColor:r.bg,paddingHorizontal:4,paddingVertical:1,borderRadius:3}}>
98
- {r.renderIcon(r.text,8)}
99
- <C style={{fontFamily:S.interBold,fontSize:7.5,color:r.text}}>
100
- {r.label}
101
- </C>
102
- </T>})()}
103
- </T>
104
- <C style={t.statLastAction}numberOfLines={1}>
105
- {W?W.type:"Initial"}
96
+ <C style={r.overviewCard}>
97
+ <C style={r.statCol}>
98
+ <R style={r.statHeading}>{L("redux.activeSlices","ACTIVE SLICES")}</R>
99
+ <R style={r.statBigVal}>{U.length}</R>
100
+ </C>
101
+ <C style={r.statDivider}/>
102
+ <C style={r.statCol}>
103
+ <R style={r.statHeading}>{L("redux.totalState","TOTAL STATE")}</R>
104
+ <R style={r.statBigVal}>{He}</R>
105
+ </C>
106
+ <C style={r.statDivider}/>
107
+ <C style={[r.statCol,{flex:1.6}]}>
108
+ <C style={{flexDirection:"row",alignItems:"center",gap:4}}>
109
+ <R style={r.statHeading}>{L("redux.lastActionHeader","LAST ACTION")}</R>
110
+ {j?.originType&&(()=>{const t=ke(j.originType);return<C style={{flexDirection:"row",alignItems:"center",gap:2,backgroundColor:t.bg,paddingHorizontal:4,paddingVertical:1,borderRadius:3}}>
111
+ {t.renderIcon(t.text,8)}
112
+ <R style={{fontFamily:k.interBold,fontSize:7.5,color:t.text}}>
113
+ {t.label}
114
+ </R>
115
+ </C>})()}
106
116
  </C>
107
- {W?.timestamp&&<C style={t.statLastTime}>
108
- {W.timestamp}
109
- </C>}
110
- </T>
111
- </T>
117
+ <R style={r.statLastAction}numberOfLines={1}>
118
+ {j?j.type:"Initial"}
119
+ </R>
120
+ {j?.timestamp&&<R style={r.statLastTime}>
121
+ {j.timestamp}
122
+ </R>}
123
+ </C>
124
+ </C>
112
125
 
113
126
 
114
- <T style={t.toolbarContainer}>
115
- <T style={t.searchRow}>
116
- <T style={B.searchContainer}>
117
- <Qe color={e.grayTextWeak}size={15}/>
118
- <De accessible={!0}accessibilityRole="search"accessibilityLabel="Search Redux slices or actions"accessibilityHint="Type to filter state slices in real time"placeholder="Search Redux slices or actions..."placeholderTextColor={e.grayTextWeak}value={k}onChangeText={G}style={B.searchInput}autoCorrect={!1}autoCapitalize="none"/>
119
- {k.length>0&&<T style={{flexDirection:"row",alignItems:"center",gap:4}}>
120
- <T style={{backgroundColor:`${e.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
121
- <C style={{color:e.purple,fontSize:9.5,fontFamily:S.interBold}}>
122
- {F.length}
123
- </C>
124
- </T>
125
- <Y accessible={!0}accessibilityRole="button"accessibilityLabel="Clear search input"onPress={()=>G("")}hitSlop={10}>
126
- <Xe color={e.grayTextWeak}size={14}/>
127
- </Y>
128
- </T>}
129
- </T>
127
+ <C style={r.toolbarContainer}>
128
+ <C style={r.searchRow}>
129
+ <C style={F.searchContainer}>
130
+ <Ye color={e.grayTextWeak}size={15}/>
131
+ <Me 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={A}onChangeText={K}style={F.searchInput}autoCorrect={!1}autoCapitalize="none"/>
132
+ {A.length>0&&<C style={{flexDirection:"row",alignItems:"center",gap:4}}>
133
+ <C style={{backgroundColor:`${e.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
134
+ <R style={{color:e.purple,fontSize:9.5,fontFamily:k.interBold}}>
135
+ {P.length}
136
+ </R>
137
+ </C>
138
+ <Ce accessible={!0}accessibilityRole="button"accessibilityLabel="Clear search input"onPress={()=>K("")}hitSlop={10}>
139
+ <Ct color={e.grayTextWeak}size={14}/>
140
+ </Ce>
141
+ </C>}
142
+ </C>
130
143
 
131
144
 
132
- <_ accessible={!0}accessibilityRole="button"accessibilityLabel={D?"Resume live Redux updates":"Pause live Redux updates"}accessibilityHint="Toggles automatic recording of Redux state updates"style={[B.toolbarBtn,D&&{backgroundColor:`${e.darkOrange}1F`,borderColor:e.darkOrange}]}onPress={Re}hitSlop={6}>
133
- <Lt isPaused={D}color={D?e.darkOrange:e.grayTextStrong}size={16}/>
134
- </_>
145
+ <Te accessible={!0}accessibilityRole="button"accessibilityLabel={$?"Resume live Redux updates":"Pause live Redux updates"}accessibilityHint="Toggles automatic recording of Redux state updates"style={[F.toolbarBtn,$&&{backgroundColor:`${e.darkOrange}1F`,borderColor:e.darkOrange}]}onPress={ve}hitSlop={6}>
146
+ <Wt isPaused={$}color={$?e.darkOrange:e.grayTextStrong}size={16}/>
147
+ </Te>
135
148
 
136
149
 
137
- <_ accessible={!0}accessibilityRole="button"accessibilityLabel={`Sort order: ${P==="latest"?"Recently updated first":"Alphabetical A to Z"}`}accessibilityHint="Switches sorting between recently updated and alphabetical"style={[B.toolbarBtn,P==="latest"&&{backgroundColor:`${e.brandPurple}1F`,borderColor:e.brandPurple}]}onPress={()=>Ae(r=>r==="latest"?"alpha":"latest")}hitSlop={6}>
138
- <Ct color={P==="latest"?e.brandPurple:e.grayTextStrong}size={16}/>
139
- </_>
140
- </T>
150
+ <Te accessible={!0}accessibilityRole="button"accessibilityLabel={`Sort order: ${W==="latest"?"Recently updated first":"Alphabetical A to Z"}`}accessibilityHint="Switches sorting between recently updated and alphabetical"style={[F.toolbarBtn,W==="latest"&&{backgroundColor:`${e.brandPurple}1F`,borderColor:e.brandPurple}]}onPress={()=>Ve(t=>t==="latest"?"alpha":"latest")}hitSlop={6}>
151
+ <At color={W==="latest"?e.brandPurple:e.grayTextStrong}size={16}/>
152
+ </Te>
153
+ </C>
141
154
 
142
- <T style={t.headerSubRow}>
143
- <C style={t.resultCount}>
144
- Showing {F.length} of {M.length} state slices
155
+ <C style={r.headerSubRow}>
156
+ <R style={r.resultCount}>
157
+ Showing {P.length} of {U.length} state slices
158
+ </R>
159
+ <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
160
+ {$&&<C style={r.pausedBannerPill}>
161
+ <R style={r.pausedBannerText}>PAUSED</R>
162
+ </C>}
163
+ <C style={{flexDirection:"row",alignItems:"center",gap:4}}>
164
+ {W==="latest"?<G color={e.brandPurple}size={11}/>:<Ft color={e.brandPurple}size={11}/>}
165
+ <R style={r.sortLabel}>
166
+ {W==="latest"?"Newest Updates First":"Alphabetical (A-Z)"}
167
+ </R>
168
+ </C>
145
169
  </C>
146
- <T style={{flexDirection:"row",alignItems:"center",gap:8}}>
147
- {D&&<T style={t.pausedBannerPill}>
148
- <C style={t.pausedBannerText}>PAUSED</C>
149
- </T>}
150
- <T style={{flexDirection:"row",alignItems:"center",gap:4}}>
151
- {P==="latest"?<U color={e.brandPurple}size={11}/>:<Pt color={e.brandPurple}size={11}/>}
152
- <C style={t.sortLabel}>
153
- {P==="latest"?"Newest Updates First":"Alphabetical (A-Z)"}
154
- </C>
155
- </T>
156
- </T>
157
- </T>
158
- </T>
170
+ </C>
171
+ </C>
159
172
 
160
173
 
161
- <Fe ref={Se}data={F}keyExtractor={r=>r.id}renderItem={Ve}initialNumToRender={12}maxToRenderPerBatch={8}windowSize={5}removeClippedSubviews={We.OS==="android"}renderToHardwareTextureAndroid={!0}ListEmptyComponent={<Ne 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?<Ue count={F.length}label="slices"/>:null}contentContainerStyle={[t.listContent,F.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
162
- </T>:<T style={B.emptyContainer}>
163
- <T style={B.emptyIconWrap}>
164
- <Je color={e.purple}size={32}/>
165
- </T>
166
- <C style={B.emptyTitle}>No Redux Store Connected</C>
167
- <C style={B.emptySub}>
168
- Call connectReduxStore(store) or use inspectorReduxMiddleware at app initialization.
174
+ <Oe ref={ze}data={Z}keyExtractor={t=>t.id}renderItem={Le}getItemLayout={(t,S)=>({length:126,offset:126*S,index:S})}initialNumToRender={12}maxToRenderPerBatch={8}windowSize={5}removeClippedSubviews={te.OS==="android"}renderToHardwareTextureAndroid={!0}ListEmptyComponent={<Ke isSearch={A.trim().length>0}searchQuery={A}onClearSearch={()=>K("")}customTitle={A.trim().length>0?"No Matching Slices":"No Redux State Detected"}customSub={A.trim().length>0?`No Redux slices match "${A}"`:"Attach the Redux store or dispatch actions to see state slices."}/>}ListFooterComponent={P.length>0?<Ze count={Z.length}totalCount={P.length}label="slices"hasMore={Z.length<P.length}onLoadMore={()=>Ae(t=>t+10)}/>:null}contentContainerStyle={[r.listContent,P.length===0&&{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
175
+ </C>:<C style={F.emptyContainer}>
176
+ <C style={F.emptyIconWrap}>
177
+ <Ie color={e.purple}size={32}/>
169
178
  </C>
170
- </T>}),t=He.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:S.interBold,fontSize:9,color:e.grayTextWeak,letterSpacing:.5},statBigVal:{fontFamily:S.interBold,fontSize:14,color:e.primaryBlack,marginTop:2},statLastAction:{fontFamily:S.interBold,fontSize:11,color:e.purple,marginTop:2},statLastTime:{fontFamily:S.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:S.interMedium,fontSize:11,color:e.grayTextWeak},sortLabel:{fontFamily:S.interMedium,fontSize:10.5,color:e.brandPurple},listContent:{padding:12,paddingBottom:36},card:{backgroundColor:e.white,borderRadius:12,padding:12,marginBottom:10,borderWidth:1,borderColor:e.dividerColor,shadowColor:e.primaryBlack,shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:4,elevation:2},cardRecentlyUpdated:{borderColor:`${e.brandPurple}66`,backgroundColor:e.purpleTintBg},cardHeader:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},sliceBadge:{backgroundColor:e.violetSoftBg,paddingHorizontal:6,paddingVertical:3,borderRadius:5,borderWidth:1,borderColor:e.violetSoftBorder},sliceBadgeText:{fontFamily:S.interBold,fontSize:9.5,color:e.purple700,letterSpacing:.4},sliceName:{flex:1,fontFamily:S.interBold,fontSize:13.5,color:e.primaryBlack},timePill:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:`${e.purple}14`,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1,borderColor:`${e.purple}2E`},timeText:{fontFamily:S.interMedium,fontSize:10,color:e.purple},statsRow:{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap",marginBottom:6},pill:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:e.grayBackground,paddingHorizontal:7,paddingVertical:3,borderRadius:5,borderWidth:1,borderColor:e.dividerColor},pillLabel:{fontFamily:S.interMedium,fontSize:10.5,color:e.grayTextWeak},pillValue:{fontFamily:S.interBold,fontSize:10.5,color:e.primaryBlack},livePill:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:e.emeraldBg,paddingHorizontal:6,paddingVertical:3,borderRadius:5,borderWidth:1,borderColor:e.emeraldBorder},liveDot:{width:6,height:6,borderRadius:3,backgroundColor:e.emerald500},livePillText:{fontFamily:S.interBold,fontSize:10,color:e.emerald700},loadingPill:{backgroundColor:e.amber100,paddingHorizontal:6,paddingVertical:3,borderRadius:5,borderWidth:1,borderColor:e.amber200},loadingPillText:{fontFamily:S.interBold,fontSize:9.5,color:e.amber800Warm},errorPill:{backgroundColor:e.red100,paddingHorizontal:6,paddingVertical:3,borderRadius:5,borderWidth:1,borderColor:e.errorBorder},errorPillText:{fontFamily:S.interBold,fontSize:9.5,color:e.red600},emptyPill:{backgroundColor:e.grayBackground,paddingHorizontal:6,paddingVertical:3,borderRadius:5,borderWidth:1,borderColor:e.dividerColor},emptyPillText:{fontFamily:S.interMedium,fontSize:9.5,color:e.grayTextWeak},lastActionRow:{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:e.grayBackground,borderRadius:6,paddingHorizontal:8,paddingVertical:5,marginTop:4,borderWidth:1,borderColor:e.dividerColor},lastActionLabel:{fontFamily:S.interMedium,fontSize:10.5,color:e.grayTextWeak},lastActionValue:{fontFamily:S.interBold,fontSize:11,color:e.primaryBlack},payloadPreviewText:{flex:1,fontFamily:S.interRegular,fontSize:10,color:e.grayTextWeak,marginLeft:4},highlight:{backgroundColor:e.yellow200,color:e.yellow800,fontFamily:S.interBold},pausedBannerPill:{backgroundColor:e.amber100,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1,borderColor:e.amber200},pausedBannerText:{fontFamily:S.interBold,fontSize:9,color:e.amber800Warm,letterSpacing:.5}});export default vt;
179
+ <R style={F.emptyTitle}>{L("redux.noStoreConnected","No Redux Store Connected")}</R>
180
+ <R style={F.emptySub}>
181
+ {L("redux.connectStoreTip","Call connectReduxStore(store) or use inspectorReduxMiddleware at app initialization.")}
182
+ </R>
183
+ </C>}),r=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:k.interBold,fontSize:9,color:e.grayTextWeak,letterSpacing:.5},statBigVal:{fontFamily:k.interBold,fontSize:14,color:e.primaryBlack,marginTop:2},statLastAction:{fontFamily:k.interBold,fontSize:11,color:e.purple,marginTop:2},statLastTime:{fontFamily:k.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:k.interMedium,fontSize:11,color:e.grayTextWeak},sortLabel:{fontFamily:k.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:k.interBold,fontSize:10.5,lineHeight:13,color:e.grayTextWeak},methodBadge:{paddingHorizontal:5.5,paddingVertical:2,borderRadius:4,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:k.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:k.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:k.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:k.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:k.interBold,fontSize:8.5,lineHeight:11,color:e.violet600},actionPreviewRow:{flexDirection:"row",alignItems:"center",gap:4.5,minHeight:15},actionPreviewText:{fontFamily:te.select({ios:"Menlo",default:"monospace"}),fontSize:10,lineHeight:13,color:e.grayTextWeak,flex:1},actionPreviewEmptyText:{fontFamily:k.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:k.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:k.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:k.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},pausedBannerPill:{backgroundColor:e.amber100,paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1,borderColor:e.amber200},pausedBannerText:{fontFamily:k.interBold,fontSize:9,color:e.amber800Warm,letterSpacing:.5}});export default Ot;